From a6bddab7a12c066a324d028337d2dca354f97949 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:00:37 +0000 Subject: [PATCH] Bump github.com/snowflakedb/gosnowflake from 1.6.20 to 1.6.23 in /ext Bumps [github.com/snowflakedb/gosnowflake](https://github.com/snowflakedb/gosnowflake) from 1.6.20 to 1.6.23. - [Release notes](https://github.com/snowflakedb/gosnowflake/releases) - [Changelog](https://github.com/snowflakedb/gosnowflake/blob/master/release.go) - [Commits](https://github.com/snowflakedb/gosnowflake/compare/v1.6.20...v1.6.23) --- updated-dependencies: - dependency-name: github.com/snowflakedb/gosnowflake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- ext/go.mod | 47 +- ext/go.sum | 130 +- .../99designs/keyring/.golangci.yml | 14 +- .../99designs/keyring/docker-compose.yml | 2 +- .../github.com/99designs/keyring/file.go | 9 +- .../github.com/99designs/keyring/keychain.go | 7 +- .../JohnCGriffin/overflow/.travis.yml | 1 + .../JohnCGriffin/overflow/README.md | 84 + .../JohnCGriffin/overflow/overflow.go | 129 + .../JohnCGriffin/overflow/overflow_impl.go | 386 + .../overflow/overflow_template.sh | 110 + .../apache/arrow/go/{v10 => v12}/LICENSE.txt | 71 - .../arrow/go/{v10 => v12}/arrow/.editorconfig | 0 .../arrow/go/{v10 => v12}/arrow/.gitignore | 0 .../arrow/go/{v10 => v12}/arrow/Gopkg.lock | 0 .../arrow/go/{v10 => v12}/arrow/Gopkg.toml | 0 .../arrow/go/{v10 => v12}/arrow/Makefile | 0 .../arrow/go/{v10 => v12}/arrow/array.go | 7 +- .../go/{v10 => v12}/arrow/array/array.go | 15 +- .../go/{v10 => v12}/arrow/array/binary.go | 27 +- .../{v10 => v12}/arrow/array/binarybuilder.go | 43 +- .../go/{v10 => v12}/arrow/array/boolean.go | 17 +- .../arrow/array/booleanbuilder.go | 29 +- .../{v10 => v12}/arrow/array/bufferbuilder.go | 16 +- .../arrow/array/bufferbuilder_byte.go | 2 +- .../arrow/array/bufferbuilder_numeric.gen.go | 6 +- .../array/bufferbuilder_numeric.gen.go.tmpl | 6 +- .../go/{v10 => v12}/arrow/array/builder.go | 35 +- .../go/{v10 => v12}/arrow/array/compare.go | 18 +- .../go/{v10 => v12}/arrow/array/concat.go | 184 +- .../arrow/go/{v10 => v12}/arrow/array/data.go | 6 +- .../go/{v10 => v12}/arrow/array/decimal128.go | 65 +- .../go/{v10 => v12}/arrow/array/decimal256.go | 63 +- .../go/{v10 => v12}/arrow/array/dictionary.go | 111 +- .../apache/arrow/go/v12/arrow/array/diff.go | 315 + .../arrow/go/{v10 => v12}/arrow/array/doc.go | 0 .../arrow/go/v12/arrow/array/encoded.go | 470 + .../go/{v10 => v12}/arrow/array/extension.go | 21 +- .../go/v12/arrow/array/extension_builder.go | 23 + .../arrow/array/fixed_size_list.go | 32 +- .../arrow/array/fixedsize_binary.go | 11 +- .../arrow/array/fixedsize_binarybuilder.go | 34 +- .../go/{v10 => v12}/arrow/array/float16.go | 7 +- .../arrow/array/float16_builder.go | 32 +- .../go/{v10 => v12}/arrow/array/interval.go | 99 +- .../{v10 => v12}/arrow/array/json_reader.go | 6 +- .../arrow/go/{v10 => v12}/arrow/array/list.go | 46 +- .../arrow/go/{v10 => v12}/arrow/array/map.go | 83 +- .../arrow/go/{v10 => v12}/arrow/array/null.go | 27 +- .../{v10 => v12}/arrow/array/numeric.gen.go | 160 +- .../arrow/array/numeric.gen.go.tmpl | 32 +- .../arrow/array/numericbuilder.gen.go | 355 +- .../arrow/array/numericbuilder.gen.go.tmpl | 85 +- .../array/numericbuilder.gen_test.go.tmpl | 11 +- .../go/{v10 => v12}/arrow/array/record.go | 40 +- .../go/{v10 => v12}/arrow/array/string.go | 47 +- .../go/{v10 => v12}/arrow/array/struct.go | 44 +- .../go/{v10 => v12}/arrow/array/table.go | 48 +- .../go/{v10 => v12}/arrow/array/union.go | 80 +- .../arrow/go/{v10 => v12}/arrow/array/util.go | 42 +- .../go/{v10 => v12}/arrow/arrio/arrio.go | 2 +- .../go/{v10 => v12}/arrow/bitutil/Makefile | 0 .../{v10 => v12}/arrow/bitutil/bitmap_ops.go | 46 + .../arrow/bitutil/bitmap_ops_amd64.go | 6 + .../arrow/bitutil/bitmap_ops_arm64.go | 2 + .../arrow/bitutil/bitmap_ops_avx2_amd64.go | 14 + .../arrow/bitutil/bitmap_ops_avx2_amd64.s | 181 + .../arrow/bitutil/bitmap_ops_noasm.go | 2 + .../arrow/bitutil/bitmap_ops_ppc64le.go | 2 + .../arrow/bitutil/bitmap_ops_s390x.go | 2 + .../arrow/bitutil/bitmap_ops_sse4_amd64.go | 14 + .../arrow/bitutil/bitmap_ops_sse4_amd64.s | 245 + .../go/{v10 => v12}/arrow/bitutil/bitmaps.go | 181 +- .../go/{v10 => v12}/arrow/bitutil/bitutil.go | 2 +- .../arrow/bitutil/endian_default.go | 0 .../arrow/bitutil/endian_s390x.go | 0 .../arrow/go/{v10 => v12}/arrow/compare.go | 4 + .../arrow/go/v12/arrow/compute/arithmetic.go | 1227 + .../apache/arrow/go/v12/arrow/compute/cast.go | 587 + .../arrow/go/v12/arrow/compute/datum.go | 305 + .../go/v12/arrow/compute/datumkind_string.go | 30 + .../apache/arrow/go/v12/arrow/compute/doc.go | 34 + .../apache/arrow/go/v12/arrow/compute/exec.go | 199 + .../arrow/go/v12/arrow/compute/executor.go | 1114 + .../arrow/go/v12/arrow/compute/expression.go | 895 + .../arrow/go/v12/arrow/compute/fieldref.go | 603 + .../go/v12/arrow/compute/funckind_string.go | 29 + .../arrow/go/v12/arrow/compute/functions.go | 430 + .../arrow/compute/internal/exec/hash_util.go | 24 + .../v12/arrow/compute/internal/exec/kernel.go | 695 + .../v12/arrow/compute/internal/exec/span.go | 651 + .../v12/arrow/compute/internal/exec/utils.go | 398 + .../arrow/compute/internal/kernels/Makefile | 110 + .../internal/kernels/base_arithmetic.go | 897 + .../internal/kernels/base_arithmetic_amd64.go | 151 + .../kernels/base_arithmetic_avx2_amd64.go | 60 + .../kernels/base_arithmetic_avx2_amd64.s | 35529 ++++++++ .../kernels/base_arithmetic_sse4_amd64.go | 60 + .../kernels/base_arithmetic_sse4_amd64.s | 39139 +++++++++ .../kernels/basic_arithmetic_noasm.go | 32 + .../compute/internal/kernels/boolean_cast.go | 107 + .../arrow/compute/internal/kernels/cast.go | 115 + .../compute/internal/kernels/cast_numeric.go | 87 + .../internal/kernels/cast_numeric_amd64.go | 33 + .../kernels/cast_numeric_avx2_amd64.go | 32 + .../kernels/cast_numeric_avx2_amd64.s | 11545 +++ .../kernels/cast_numeric_neon_arm64.go | 41 + .../kernels/cast_numeric_neon_arm64.s | 6087 ++ .../kernels/cast_numeric_sse4_amd64.go | 32 + .../kernels/cast_numeric_sse4_amd64.s | 9045 +++ .../compute/internal/kernels/cast_temporal.go | 455 + .../kernels/compareoperator_string.go | 30 + .../internal/kernels/constant_factor.go | 81 + .../internal/kernels/constant_factor_amd64.go | 57 + .../kernels/constant_factor_avx2_amd64.go | 77 + .../kernels/constant_factor_avx2_amd64.s | 781 + .../kernels/constant_factor_sse4_amd64.go | 77 + .../kernels/constant_factor_sse4_amd64.s | 597 + .../v12/arrow/compute/internal/kernels/doc.go | 19 + .../arrow/compute/internal/kernels/helpers.go | 989 + .../compute/internal/kernels/numeric_cast.go | 866 + .../compute/internal/kernels/rounding.go | 809 + .../internal/kernels/roundmode_string.go | 34 + .../internal/kernels/scalar_arithmetic.go | 412 + .../internal/kernels/scalar_boolean.go | 334 + .../kernels/scalar_comparison_amd64.go | 110 + .../kernels/scalar_comparison_avx2_amd64.go | 109 + .../kernels/scalar_comparison_avx2_amd64.s | 67310 ++++++++++++++++ .../kernels/scalar_comparison_noasm.go | 25 + .../kernels/scalar_comparison_sse4_amd64.go | 109 + .../kernels/scalar_comparison_sse4_amd64.s | 58288 +++++++++++++ .../internal/kernels/scalar_comparisons.go | 701 + .../compute/internal/kernels/string_casts.go | 409 + .../arrow/compute/internal/kernels/types.go | 109 + .../compute/internal/kernels/vector_hash.go | 565 + .../internal/kernels/vector_run_end_encode.go | 957 + .../internal/kernels/vector_selection.go | 1789 + .../arrow/go/v12/arrow/compute/registry.go | 209 + .../arrow/go/v12/arrow/compute/scalar_bool.go | 133 + .../go/v12/arrow/compute/scalar_compare.go | 137 + .../arrow/go/v12/arrow/compute/selection.go | 729 + .../arrow/go/v12/arrow/compute/utils.go | 400 + .../arrow/go/v12/arrow/compute/vector_hash.go | 59 + .../go/v12/arrow/compute/vector_run_ends.go | 90 + .../arrow/go/{v10 => v12}/arrow/datatype.go | 29 +- .../go/{v10 => v12}/arrow/datatype_binary.go | 0 .../arrow/go/v12/arrow/datatype_encoded.go | 67 + .../{v10 => v12}/arrow/datatype_extension.go | 10 +- .../{v10 => v12}/arrow/datatype_fixedwidth.go | 23 + .../go/{v10 => v12}/arrow/datatype_nested.go | 30 +- .../go/{v10 => v12}/arrow/datatype_null.go | 0 .../arrow/datatype_numeric.gen.go | 0 .../arrow/datatype_numeric.gen.go.tmpl | 0 .../arrow/datatype_numeric.gen.go.tmpldata | 0 .../arrow/decimal128/decimal128.go | 118 +- .../arrow/decimal256/decimal256.go | 147 +- .../apache/arrow/go/{v10 => v12}/arrow/doc.go | 6 +- .../arrow/go/v12/arrow/encoded/ree_utils.go | 219 + .../arrow/go/{v10 => v12}/arrow/endian/big.go | 0 .../go/{v10 => v12}/arrow/endian/endian.go | 4 +- .../go/{v10 => v12}/arrow/endian/little.go | 0 .../arrow/go/{v10 => v12}/arrow/errors.go | 0 .../go/{v10 => v12}/arrow/float16/float16.go | 0 .../arrow/internal/debug/assert_off.go | 0 .../arrow/internal/debug/assert_on.go | 0 .../{v10 => v12}/arrow/internal/debug/doc.go | 0 .../arrow/internal/debug/log_off.go | 0 .../arrow/internal/debug/log_on.go | 0 .../{v10 => v12}/arrow/internal/debug/util.go | 0 .../arrow/internal/dictutils/dict.go | 6 +- .../arrow/internal/flatbuf/Binary.go | 0 .../arrow/internal/flatbuf/Block.go | 0 .../arrow/internal/flatbuf/BodyCompression.go | 0 .../internal/flatbuf/BodyCompressionMethod.go | 0 .../arrow/internal/flatbuf/Bool.go | 0 .../arrow/internal/flatbuf/Buffer.go | 0 .../arrow/internal/flatbuf/CompressionType.go | 0 .../arrow/internal/flatbuf/Date.go | 0 .../arrow/internal/flatbuf/DateUnit.go | 0 .../arrow/internal/flatbuf/Decimal.go | 0 .../arrow/internal/flatbuf/DictionaryBatch.go | 0 .../internal/flatbuf/DictionaryEncoding.go | 0 .../arrow/internal/flatbuf/DictionaryKind.go | 0 .../arrow/internal/flatbuf/Duration.go | 0 .../arrow/internal/flatbuf/Endianness.go | 0 .../arrow/internal/flatbuf/Feature.go | 0 .../arrow/internal/flatbuf/Field.go | 0 .../arrow/internal/flatbuf/FieldNode.go | 0 .../arrow/internal/flatbuf/FixedSizeBinary.go | 0 .../arrow/internal/flatbuf/FixedSizeList.go | 0 .../arrow/internal/flatbuf/FloatingPoint.go | 0 .../arrow/internal/flatbuf/Footer.go | 0 .../arrow/internal/flatbuf/Int.go | 0 .../arrow/internal/flatbuf/Interval.go | 0 .../arrow/internal/flatbuf/IntervalUnit.go | 0 .../arrow/internal/flatbuf/KeyValue.go | 0 .../arrow/internal/flatbuf/LargeBinary.go | 0 .../arrow/internal/flatbuf/LargeList.go | 0 .../arrow/internal/flatbuf/LargeUtf8.go | 0 .../arrow/internal/flatbuf/List.go | 0 .../arrow/internal/flatbuf/Map.go | 0 .../arrow/internal/flatbuf/Message.go | 0 .../arrow/internal/flatbuf/MessageHeader.go | 0 .../arrow/internal/flatbuf/MetadataVersion.go | 0 .../arrow/internal/flatbuf/Null.go | 0 .../arrow/internal/flatbuf/Precision.go | 0 .../arrow/internal/flatbuf/RecordBatch.go | 0 .../arrow/internal/flatbuf/RunEndEncoded.go | 55 + .../internal/flatbuf/RunLengthEncoded.go | 50 + .../arrow/internal/flatbuf/Schema.go | 0 .../flatbuf/SparseMatrixCompressedAxis.go | 0 .../internal/flatbuf/SparseMatrixIndexCSR.go | 0 .../internal/flatbuf/SparseMatrixIndexCSX.go | 0 .../arrow/internal/flatbuf/SparseTensor.go | 0 .../internal/flatbuf/SparseTensorIndex.go | 0 .../internal/flatbuf/SparseTensorIndexCOO.go | 0 .../internal/flatbuf/SparseTensorIndexCSF.go | 0 .../arrow/internal/flatbuf/Struct_.go | 0 .../arrow/internal/flatbuf/Tensor.go | 0 .../arrow/internal/flatbuf/TensorDim.go | 0 .../arrow/internal/flatbuf/Time.go | 0 .../arrow/internal/flatbuf/TimeUnit.go | 0 .../arrow/internal/flatbuf/Timestamp.go | 0 .../arrow/internal/flatbuf/Type.go | 3 + .../arrow/internal/flatbuf/Union.go | 0 .../arrow/internal/flatbuf/UnionMode.go | 0 .../arrow/internal/flatbuf/Utf8.go | 0 .../go/{v10 => v12}/arrow/internal/utils.go | 6 +- .../go/{v10 => v12}/arrow/ipc/compression.go | 19 +- .../go/{v10 => v12}/arrow/ipc/endian_swap.go | 6 +- .../go/{v10 => v12}/arrow/ipc/file_reader.go | 29 +- .../go/{v10 => v12}/arrow/ipc/file_writer.go | 34 +- .../arrow/go/{v10 => v12}/arrow/ipc/ipc.go | 29 +- .../go/{v10 => v12}/arrow/ipc/message.go | 6 +- .../go/{v10 => v12}/arrow/ipc/metadata.go | 36 +- .../arrow/go/{v10 => v12}/arrow/ipc/reader.go | 14 +- .../arrow/go/{v10 => v12}/arrow/ipc/writer.go | 183 +- .../go/{v10 => v12}/arrow/memory/Makefile | 0 .../go/{v10 => v12}/arrow/memory/allocator.go | 6 - .../go/{v10 => v12}/arrow/memory/buffer.go | 2 +- .../arrow/memory/cgo_allocator.go | 2 +- .../arrow/memory/cgo_allocator_defaults.go | 0 .../arrow/memory/cgo_allocator_logging.go | 0 .../arrow/memory/checked_allocator.go | 0 .../go/v12/arrow/memory/default_allocator.go | 25 + .../go/v12/arrow/memory/default_mallocator.go | 29 + .../arrow/go/{v10 => v12}/arrow/memory/doc.go | 2 + .../{v10 => v12}/arrow/memory/go_allocator.go | 0 .../memory/internal/cgoalloc/allocator.cc | 0 .../memory/internal/cgoalloc/allocator.go | 0 .../memory/internal/cgoalloc/allocator.h | 0 .../arrow/memory/internal/cgoalloc/helpers.h | 0 .../go/v12/arrow/memory/mallocator/doc.go | 21 + .../v12/arrow/memory/mallocator/mallocator.go | 115 + .../go/{v10 => v12}/arrow/memory/memory.go | 0 .../{v10 => v12}/arrow/memory/memory_amd64.go | 0 .../{v10 => v12}/arrow/memory/memory_arm64.go | 0 .../arrow/memory/memory_avx2_amd64.go | 0 .../arrow/memory/memory_avx2_amd64.s | 0 .../arrow/memory/memory_js_wasm.go | 0 .../arrow/memory/memory_neon_arm64.go | 0 .../arrow/memory/memory_neon_arm64.s | 0 .../{v10 => v12}/arrow/memory/memory_noasm.go | 0 .../arrow/memory/memory_sse4_amd64.go | 0 .../arrow/memory/memory_sse4_amd64.s | 0 .../go/{v10 => v12}/arrow/memory/util.go | 0 .../go/{v10 => v12}/arrow/numeric.schema.json | 0 .../go/{v10 => v12}/arrow/numeric.tmpldata | 0 .../arrow/go/{v10 => v12}/arrow/record.go | 1 + .../arrow/go/v12/arrow/scalar/append.go | 263 + .../arrow/go/v12/arrow/scalar/binary.go | 203 + .../arrow/go/v12/arrow/scalar/compare.go | 97 + .../arrow/go/v12/arrow/scalar/nested.go | 821 + .../arrow/go/v12/arrow/scalar/numeric.gen.go | 797 + .../go/v12/arrow/scalar/numeric.gen.go.tmpl | 149 + .../v12/arrow/scalar/numeric.gen.go.tmpldata | 52 + .../v12/arrow/scalar/numeric.gen_test.go.tmpl | 63 + .../apache/arrow/go/v12/arrow/scalar/parse.go | 777 + .../arrow/go/v12/arrow/scalar/scalar.go | 1064 + .../arrow/go/v12/arrow/scalar/temporal.go | 481 + .../arrow/go/{v10 => v12}/arrow/schema.go | 12 +- .../arrow/go/{v10 => v12}/arrow/table.go | 36 +- .../arrow/go/{v10 => v12}/arrow/tools.go | 0 .../go/{v10 => v12}/arrow/type_string.go | 6 +- .../{v10 => v12}/arrow/type_traits_boolean.go | 2 +- .../arrow/type_traits_decimal128.go | 4 +- .../arrow/type_traits_decimal256.go | 4 +- .../{v10 => v12}/arrow/type_traits_float16.go | 4 +- .../arrow/type_traits_interval.go | 4 +- .../arrow/type_traits_numeric.gen.go | 2 +- .../arrow/type_traits_numeric.gen.go.tmpl | 2 +- .../type_traits_numeric.gen_test.go.tmpl | 2 +- .../go/{v10 => v12}/arrow/unionmode_string.go | 0 .../internal/bitutils/bit_block_counter.go | 39 +- .../internal/bitutils/bit_run_reader.go | 6 +- .../internal/bitutils/bit_set_run_reader.go | 19 +- .../internal/bitutils/bitmap_generate.go | 4 +- .../go/v12/internal/hashing/hash_funcs.go | 90 + .../go/v12/internal/hashing/hash_string.go | 26 + .../internal/hashing/hash_string_go1.19.go | 30 + .../internal/hashing/types.tmpldata | 0 .../internal/hashing/xxh3_memo_table.gen.go | 6 +- .../hashing/xxh3_memo_table.gen.go.tmpl | 4 +- .../internal/hashing/xxh3_memo_table.go | 118 +- .../go/{v10 => v12}/internal/utils/Makefile | 0 .../{v10 => v12}/internal/utils/buf_reader.go | 0 .../internal/utils/endians_default.go | 1 - .../internal/utils/endians_s390x.go | 0 .../go/{v10 => v12}/internal/utils/math.go | 0 .../go/{v10 => v12}/internal/utils/min_max.go | 0 .../internal/utils/min_max_amd64.go | 1 - .../internal/utils/min_max_arm64.go | 1 - .../internal/utils/min_max_avx2_amd64.go | 1 - .../internal/utils/min_max_avx2_amd64.s | 0 .../internal/utils/min_max_neon_arm64.go | 2 +- .../internal/utils/min_max_neon_arm64.s | 0 .../internal/utils/min_max_noasm.go | 1 - .../internal/utils/min_max_ppc64le.go | 1 - .../internal/utils/min_max_s390x.go | 1 - .../internal/utils/min_max_sse4_amd64.go | 1 - .../internal/utils/min_max_sse4_amd64.s | 0 .../internal/utils/transpose_ints.go | 0 .../internal/utils/transpose_ints.go.tmpl | 0 .../internal/utils/transpose_ints.tmpldata | 0 .../internal/utils/transpose_ints_amd64.go | 1 - .../utils/transpose_ints_amd64.go.tmpl | 0 .../internal/utils/transpose_ints_arm64.go | 1 - .../utils/transpose_ints_avx2_amd64.go | 1 - .../utils/transpose_ints_avx2_amd64.s | 0 .../internal/utils/transpose_ints_def.go | 2 +- .../internal/utils/transpose_ints_noasm.go | 3 +- .../utils/transpose_ints_noasm.go.tmpl | 0 .../internal/utils/transpose_ints_ppc64le.go | 1 - .../internal/utils/transpose_ints_s390x.go | 1 - .../utils/transpose_ints_s390x.go.tmpl | 0 .../utils/transpose_ints_simd.go.tmpl | 0 .../utils/transpose_ints_sse4_amd64.go | 1 - .../utils/transpose_ints_sse4_amd64.s | 0 .../arrow/go/{v10 => v12}/parquet/.gitignore | 0 .../{v10 => v12}/parquet/compress/brotli.go | 7 +- .../{v10 => v12}/parquet/compress/compress.go | 5 +- .../go/{v10 => v12}/parquet/compress/gzip.go | 3 +- .../{v10 => v12}/parquet/compress/snappy.go | 3 +- .../go/{v10 => v12}/parquet/compress/zstd.go | 2 +- .../arrow/go/{v10 => v12}/parquet/doc.go | 9 +- .../parquet/encryption_properties.go | 2 +- .../parquet/internal/debug/assert_off.go | 0 .../parquet/internal/debug/assert_on.go | 0 .../parquet/internal/debug/doc.go | 0 .../parquet/internal/debug/log_off.go | 0 .../parquet/internal/debug/log_on.go | 0 .../gen-go/parquet/GoUnusedProtection__.go | 0 .../internal/gen-go/parquet/parquet-consts.go | 0 .../internal/gen-go/parquet/parquet.go | 0 .../internal/gen-go/parquet/staticcheck.conf | 0 .../{v10 => v12}/parquet/reader_properties.go | 4 +- .../arrow/go/{v10 => v12}/parquet/tools.go | 0 .../arrow/go/{v10 => v12}/parquet/types.go | 4 +- .../go/{v10 => v12}/parquet/version_string.go | 0 .../{v10 => v12}/parquet/writer_properties.go | 6 +- .../github.com/aws/aws-sdk-go-v2/NOTICE.txt | 2 +- .../aws/aws-sdk-go-v2/aws/credential_cache.go | 6 + .../aws/aws-sdk-go-v2/aws/credentials.go | 39 + .../aws-sdk-go-v2/aws/go_module_metadata.go | 2 +- .../aws/protocol/eventstream/CHANGELOG.md | 8 + .../eventstream/go_module_metadata.go | 2 +- .../aws/protocol/xml/error_utils.go | 16 +- .../aws/ratelimit/token_rate_limit.go | 4 - .../aws/aws-sdk-go-v2/aws/retry/middleware.go | 5 +- .../aws/signer/internal/v4/headers.go | 1 + .../aws-sdk-go-v2/aws/signer/v4/middleware.go | 7 +- .../aws-sdk-go-v2/credentials/CHANGELOG.md | 94 + .../credentials/go_module_metadata.go | 2 +- .../feature/s3/manager/CHANGELOG.md | 104 + .../feature/s3/manager/go_module_metadata.go | 2 +- .../internal/awsutil/path_value.go | 2 +- .../internal/configsources/CHANGELOG.md | 32 + .../configsources/go_module_metadata.go | 2 +- .../internal/endpoints/v2/CHANGELOG.md | 32 + .../endpoints/v2/go_module_metadata.go | 2 +- .../aws-sdk-go-v2/internal/v4a/CHANGELOG.md | 36 + .../internal/v4a/go_module_metadata.go | 2 +- .../internal/accept-encoding/CHANGELOG.md | 8 + .../accept-encoding/go_module_metadata.go | 2 +- .../service/internal/checksum/CHANGELOG.md | 32 + .../internal/checksum/go_module_metadata.go | 2 +- .../internal/presigned-url/CHANGELOG.md | 32 + .../presigned-url/go_module_metadata.go | 2 +- .../service/internal/s3shared/CHANGELOG.md | 33 + .../internal/s3shared/go_module_metadata.go | 2 +- .../internal/s3shared/s3100continue.go | 54 + .../aws/aws-sdk-go-v2/service/s3/CHANGELOG.md | 67 + .../aws-sdk-go-v2/service/s3/api_client.go | 12 +- .../service/s3/api_op_PutObject.go | 3 + .../service/s3/api_op_UploadPart.go | 3 + .../service/s3/go_module_metadata.go | 2 +- .../service/s3/internal/customizations/doc.go | 1 - .../s3/internal/endpoints/endpoints.go | 36 + .../aws-sdk-go-v2/service/s3/types/enums.go | 2 + .../aws-sdk-go-v2/service/s3/types/errors.go | 81 +- .../github.com/aws/smithy-go/CHANGELOG.md | 10 + ext/vendor/github.com/aws/smithy-go/Makefile | 34 + ext/vendor/github.com/aws/smithy-go/README.md | 2 +- .../aws/smithy-go/encoding/xml/doc.go | 2 +- .../aws/smithy-go/go_module_metadata.go | 2 +- .../gabriel-vasile/mimetype/README.md | 2 +- .../mimetype/internal/magic/archive.go | 12 +- .../mimetype/internal/magic/ftyp.go | 35 +- .../mimetype/internal/magic/image.go | 4 + .../gabriel-vasile/mimetype/mime.go | 2 +- .../mimetype/supported_mimes.md | 4 +- .../gabriel-vasile/mimetype/tree.go | 8 +- ext/vendor/github.com/goccy/go-json/Makefile | 4 +- ext/vendor/github.com/goccy/go-json/README.md | 2 +- ext/vendor/github.com/goccy/go-json/decode.go | 31 + ext/vendor/github.com/goccy/go-json/error.go | 2 + .../internal/decoder/anonymous_field.go | 4 + .../goccy/go-json/internal/decoder/array.go | 5 + .../goccy/go-json/internal/decoder/assign.go | 438 + .../goccy/go-json/internal/decoder/bool.go | 5 + .../goccy/go-json/internal/decoder/bytes.go | 5 + .../goccy/go-json/internal/decoder/float.go | 12 + .../goccy/go-json/internal/decoder/func.go | 5 + .../goccy/go-json/internal/decoder/int.go | 4 + .../go-json/internal/decoder/interface.go | 70 + .../goccy/go-json/internal/decoder/invalid.go | 10 + .../goccy/go-json/internal/decoder/map.go | 93 + .../goccy/go-json/internal/decoder/number.go | 11 + .../goccy/go-json/internal/decoder/option.go | 2 + .../goccy/go-json/internal/decoder/path.go | 670 + .../goccy/go-json/internal/decoder/ptr.go | 9 + .../goccy/go-json/internal/decoder/slice.go | 79 + .../goccy/go-json/internal/decoder/string.go | 11 + .../goccy/go-json/internal/decoder/struct.go | 4 + .../goccy/go-json/internal/decoder/type.go | 1 + .../goccy/go-json/internal/decoder/uint.go | 4 + .../internal/decoder/unmarshal_json.go | 5 + .../internal/decoder/unmarshal_text.go | 5 + .../internal/decoder/wrapped_string.go | 5 + .../go-json/internal/encoder/compiler.go | 2 - .../goccy/go-json/internal/errors/error.go | 19 + ext/vendor/github.com/goccy/go-json/path.go | 84 + .../google/flatbuffers/go/builder.go | 21 + .../github.com/google/flatbuffers/go/lib.go | 5 + .../klauspost/compress/.goreleaser.yml | 2 +- .../github.com/klauspost/compress/README.md | 24 +- .../klauspost/compress/flate/deflate.go | 123 +- .../klauspost/compress/flate/stateless.go | 19 +- .../klauspost/compress/fse/compress.go | 31 +- .../klauspost/compress/huff0/bitreader.go | 8 +- .../klauspost/compress/huff0/compress.go | 114 +- .../compress/huff0/decompress_amd64.s | 584 +- .../klauspost/compress/zstd/blockdec.go | 16 +- .../klauspost/compress/zstd/decodeheader.go | 9 +- .../klauspost/compress/zstd/decoder.go | 95 +- .../compress/zstd/decoder_options.go | 26 +- .../klauspost/compress/zstd/dict.go | 8 +- .../klauspost/compress/zstd/enc_base.go | 26 +- .../klauspost/compress/zstd/enc_best.go | 63 +- .../klauspost/compress/zstd/enc_better.go | 12 +- .../klauspost/compress/zstd/enc_dfast.go | 16 +- .../klauspost/compress/zstd/enc_fast.go | 14 +- .../klauspost/compress/zstd/encoder.go | 35 + .../compress/zstd/encoder_options.go | 36 +- .../klauspost/compress/zstd/framedec.go | 58 +- .../compress/zstd/internal/xxhash/README.md | 49 +- .../compress/zstd/internal/xxhash/xxhash.go | 47 +- .../zstd/internal/xxhash/xxhash_amd64.s | 336 +- .../zstd/internal/xxhash/xxhash_arm64.s | 140 +- .../zstd/internal/xxhash/xxhash_asm.go | 2 +- .../zstd/internal/xxhash/xxhash_other.go | 19 +- .../klauspost/compress/zstd/seqdec_amd64.s | 28 +- .../klauspost/compress/zstd/zstd.go | 31 +- .../klauspost/cpuid/v2/CONTRIBUTING.txt | 70 +- .../github.com/klauspost/cpuid/v2/README.md | 354 +- .../github.com/klauspost/cpuid/v2/cpuid.go | 411 +- .../klauspost/cpuid/v2/detect_arm64.go | 3 +- .../klauspost/cpuid/v2/detect_ref.go | 3 +- .../klauspost/cpuid/v2/detect_x86.go | 5 +- .../klauspost/cpuid/v2/featureid_string.go | 313 +- .../klauspost/cpuid/v2/os_darwin_arm64.go | 112 +- .../klauspost/cpuid/v2/os_other_arm64.go | 5 +- .../klauspost/cpuid/v2/os_safe_linux_arm64.go | 3 +- .../cpuid/v2/os_unsafe_linux_arm64.go | 3 +- .../pierrec/lz4/v4/internal/lz4block/block.go | 9 +- .../lz4/v4/internal/xxh32/xxh32zero.go | 2 +- .../snowflakedb/gosnowflake/.gitignore | 3 + .../snowflakedb/gosnowflake/arrow_chunk.go | 69 +- .../snowflakedb/gosnowflake/async.go | 55 +- .../snowflakedb/gosnowflake/auth.go | 155 +- .../gosnowflake/authexternalbrowser.go | 60 +- .../gosnowflake/azure_storage_client.go | 38 +- .../snowflakedb/gosnowflake/bind_uploader.go | 23 +- .../gosnowflake/chunk_downloader.go | 56 +- .../snowflakedb/gosnowflake/connection.go | 295 +- .../gosnowflake/connection_util.go | 17 +- .../snowflakedb/gosnowflake/converter.go | 448 +- .../github.com/snowflakedb/gosnowflake/doc.go | 83 +- .../github.com/snowflakedb/gosnowflake/dsn.go | 168 +- .../snowflakedb/gosnowflake/errors.go | 7 +- .../gosnowflake/file_transfer_agent.go | 20 +- .../snowflakedb/gosnowflake/file_util.go | 7 +- .../gosnowflake/gcs_storage_client.go | 42 +- .../snowflakedb/gosnowflake/gosnowflake.mak | 3 +- .../snowflakedb/gosnowflake/monitoring.go | 24 +- .../snowflakedb/gosnowflake/multistatement.go | 30 +- .../snowflakedb/gosnowflake/restful.go | 50 +- .../snowflakedb/gosnowflake/retry.go | 35 +- .../gosnowflake/s3_storage_client.go | 14 +- .../snowflakedb/gosnowflake/storage_client.go | 17 - .../snowflakedb/gosnowflake/test_util.go | 33 + .../snowflakedb/gosnowflake/transaction.go | 42 +- .../snowflakedb/gosnowflake/util.go | 23 + .../snowflakedb/gosnowflake/version.go | 2 +- ext/vendor/golang.org/x/exp/LICENSE | 27 + ext/vendor/golang.org/x/exp/PATENTS | 22 + .../x/exp/constraints/constraints.go | 50 + ext/vendor/golang.org/x/exp/maps/maps.go | 94 + ext/vendor/golang.org/x/exp/slices/slices.go | 258 + ext/vendor/golang.org/x/exp/slices/sort.go | 126 + .../golang.org/x/exp/slices/zsortfunc.go | 479 + .../golang.org/x/exp/slices/zsortordered.go | 481 + ext/vendor/golang.org/x/sync/LICENSE | 27 + ext/vendor/golang.org/x/sync/PATENTS | 22 + .../golang.org/x/sync/errgroup/errgroup.go | 132 + ext/vendor/modules.txt | 113 +- 526 files changed, 265910 insertions(+), 2781 deletions(-) create mode 100644 ext/vendor/github.com/JohnCGriffin/overflow/.travis.yml create mode 100644 ext/vendor/github.com/JohnCGriffin/overflow/README.md create mode 100644 ext/vendor/github.com/JohnCGriffin/overflow/overflow.go create mode 100644 ext/vendor/github.com/JohnCGriffin/overflow/overflow_impl.go create mode 100644 ext/vendor/github.com/JohnCGriffin/overflow/overflow_template.sh rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/LICENSE.txt (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/.editorconfig (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/.gitignore (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/Gopkg.lock (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/Gopkg.toml (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/Makefile (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/array.go (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/binary.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/binarybuilder.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/boolean.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/booleanbuilder.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/bufferbuilder.go (93%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/bufferbuilder_byte.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/bufferbuilder_numeric.gen.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/bufferbuilder_numeric.gen.go.tmpl (94%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/builder.go (92%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/compare.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/concat.go (73%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/data.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/decimal128.go (85%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/decimal256.go (85%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/dictionary.go (94%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/array/diff.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/doc.go (100%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/array/encoded.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/extension.go (95%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension_builder.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/fixed_size_list.go (90%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/fixedsize_binary.go (90%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/fixedsize_binarybuilder.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/float16.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/float16_builder.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/interval.go (90%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/json_reader.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/list.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/map.go (82%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/null.go (87%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/numeric.gen.go (88%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/numeric.gen.go.tmpl (72%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/numericbuilder.gen.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/numericbuilder.gen.go.tmpl (80%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/numericbuilder.gen_test.go.tmpl (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/record.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/string.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/struct.go (89%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/table.go (86%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/union.go (94%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/array/util.go (92%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/arrio/arrio.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/Makefile (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops.go (63%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_amd64.go (81%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_arm64.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_avx2_amd64.go (71%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_avx2_amd64.s (52%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_noasm.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_ppc64le.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_s390x.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_sse4_amd64.go (71%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmap_ops_sse4_amd64.s (51%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitmaps.go (77%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/bitutil.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/endian_default.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/bitutil/endian_s390x.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/compare.go (95%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/arithmetic.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/cast.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datum.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datumkind_string.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/doc.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/exec.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/executor.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/expression.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/fieldref.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/funckind_string.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/functions.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/hash_util.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/kernel.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/span.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/utils.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/Makefile create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/basic_arithmetic_noasm.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/boolean_cast.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_temporal.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/compareoperator_string.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/doc.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/helpers.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/numeric_cast.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/rounding.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/roundmode_string.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_arithmetic.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_boolean.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_noasm.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.s create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparisons.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/string_casts.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/types.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_hash.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_run_end_encode.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_selection.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/registry.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_bool.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_compare.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/selection.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/utils.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_hash.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_run_ends.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype.go (94%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_binary.go (100%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_encoded.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_extension.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_fixedwidth.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_nested.go (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_null.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_numeric.gen.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_numeric.gen.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/datatype_numeric.gen.go.tmpldata (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/decimal128/decimal128.go (81%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/decimal256/decimal256.go (83%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/doc.go (92%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/encoded/ree_utils.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/endian/big.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/endian/endian.go (91%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/endian/little.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/errors.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/float16/float16.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/assert_off.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/assert_on.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/doc.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/log_off.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/log_on.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/debug/util.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/dictutils/dict.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Binary.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Block.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/BodyCompression.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/BodyCompressionMethod.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Bool.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Buffer.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/CompressionType.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Date.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/DateUnit.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Decimal.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/DictionaryBatch.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/DictionaryEncoding.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/DictionaryKind.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Duration.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Endianness.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Feature.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Field.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/FieldNode.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/FixedSizeBinary.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/FixedSizeList.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/FloatingPoint.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Footer.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Int.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Interval.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/IntervalUnit.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/KeyValue.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/LargeBinary.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/LargeList.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/LargeUtf8.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/List.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Map.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Message.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/MessageHeader.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/MetadataVersion.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Null.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Precision.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/RecordBatch.go (100%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunEndEncoded.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunLengthEncoded.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Schema.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseMatrixCompressedAxis.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseMatrixIndexCSR.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseMatrixIndexCSX.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseTensor.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseTensorIndex.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseTensorIndexCOO.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/SparseTensorIndexCSF.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Struct_.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Tensor.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/TensorDim.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Time.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/TimeUnit.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Timestamp.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Type.go (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Union.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/UnionMode.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/flatbuf/Utf8.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/internal/utils.go (90%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/compression.go (87%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/endian_swap.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/file_reader.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/file_writer.go (92%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/ipc.go (84%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/message.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/metadata.go (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/reader.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/ipc/writer.go (87%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/Makefile (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/allocator.go (80%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/buffer.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/cgo_allocator.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/cgo_allocator_defaults.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/cgo_allocator_logging.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/checked_allocator.go (100%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_allocator.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_mallocator.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/doc.go (88%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/go_allocator.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/internal/cgoalloc/allocator.cc (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/internal/cgoalloc/allocator.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/internal/cgoalloc/allocator.h (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/internal/cgoalloc/helpers.h (100%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/doc.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/mallocator.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_amd64.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_arm64.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_avx2_amd64.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_avx2_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_js_wasm.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_neon_arm64.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_neon_arm64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_noasm.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_sse4_amd64.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/memory_sse4_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/memory/util.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/numeric.schema.json (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/numeric.tmpldata (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/record.go (97%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/append.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/binary.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/compare.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/nested.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpl create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpldata create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen_test.go.tmpl create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/parse.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/scalar.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/temporal.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/schema.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/table.go (87%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/tools.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_string.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_boolean.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_decimal128.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_decimal256.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_float16.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_interval.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_numeric.gen.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_numeric.gen.go.tmpl (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/type_traits_numeric.gen_test.go.tmpl (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/arrow/unionmode_string.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/bitutils/bit_block_counter.go (92%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/bitutils/bit_run_reader.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/bitutils/bit_set_run_reader.go (95%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/bitutils/bitmap_generate.go (96%) create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_funcs.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string.go create mode 100644 ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string_go1.19.go rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/hashing/types.tmpldata (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/hashing/xxh3_memo_table.gen.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/hashing/xxh3_memo_table.gen.go.tmpl (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/hashing/xxh3_memo_table.go (81%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/Makefile (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/buf_reader.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/endians_default.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/endians_s390x.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/math.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_arm64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_avx2_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_avx2_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_neon_arm64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_neon_arm64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_noasm.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_ppc64le.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_s390x.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_sse4_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/min_max_sse4_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints.tmpldata (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_amd64.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_arm64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_avx2_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_avx2_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_def.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_noasm.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_noasm.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_ppc64le.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_s390x.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_s390x.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_simd.go.tmpl (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_sse4_amd64.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/internal/utils/transpose_ints_sse4_amd64.s (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/.gitignore (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/compress/brotli.go (94%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/compress/compress.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/compress/gzip.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/compress/snappy.go (96%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/compress/zstd.go (98%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/doc.go (90%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/encryption_properties.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/debug/assert_off.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/debug/assert_on.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/debug/doc.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/debug/log_off.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/debug/log_on.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/gen-go/parquet/GoUnusedProtection__.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/gen-go/parquet/parquet-consts.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/gen-go/parquet/parquet.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/internal/gen-go/parquet/staticcheck.conf (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/reader_properties.go (97%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/tools.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/types.go (99%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/version_string.go (100%) rename ext/vendor/github.com/apache/arrow/go/{v10 => v12}/parquet/writer_properties.go (99%) create mode 100644 ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go create mode 100644 ext/vendor/github.com/goccy/go-json/internal/decoder/assign.go create mode 100644 ext/vendor/github.com/goccy/go-json/internal/decoder/path.go create mode 100644 ext/vendor/github.com/goccy/go-json/path.go create mode 100644 ext/vendor/github.com/snowflakedb/gosnowflake/test_util.go create mode 100644 ext/vendor/golang.org/x/exp/LICENSE create mode 100644 ext/vendor/golang.org/x/exp/PATENTS create mode 100644 ext/vendor/golang.org/x/exp/constraints/constraints.go create mode 100644 ext/vendor/golang.org/x/exp/maps/maps.go create mode 100644 ext/vendor/golang.org/x/exp/slices/slices.go create mode 100644 ext/vendor/golang.org/x/exp/slices/sort.go create mode 100644 ext/vendor/golang.org/x/exp/slices/zsortfunc.go create mode 100644 ext/vendor/golang.org/x/exp/slices/zsortordered.go create mode 100644 ext/vendor/golang.org/x/sync/LICENSE create mode 100644 ext/vendor/golang.org/x/sync/PATENTS create mode 100644 ext/vendor/golang.org/x/sync/errgroup/errgroup.go diff --git a/ext/go.mod b/ext/go.mod index a8f6d91..b4c920c 100644 --- a/ext/go.mod +++ b/ext/go.mod @@ -4,54 +4,57 @@ go 1.20 require ( github.com/mattn/go-pointer v0.0.1 - github.com/snowflakedb/gosnowflake v1.6.20 + github.com/snowflakedb/gosnowflake v1.6.23 ) require ( github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect - github.com/99designs/keyring v1.2.1 // indirect + github.com/99designs/keyring v1.2.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.1.2 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 // indirect + github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c // indirect github.com/andybalholm/brotli v1.0.4 // indirect - github.com/apache/arrow/go/v10 v10.0.1 // indirect + github.com/apache/arrow/go/v12 v12.0.1 // indirect github.com/apache/thrift v0.16.0 // indirect - github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.12.20 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 // indirect - github.com/aws/smithy-go v1.13.3 // indirect + github.com/aws/aws-sdk-go-v2 v1.17.7 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.18 // indirect + github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 // indirect + github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 // indirect + github.com/aws/smithy-go v1.13.5 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/form3tech-oss/jwt-go v3.2.5+incompatible // indirect - github.com/gabriel-vasile/mimetype v1.4.1 // indirect - github.com/goccy/go-json v0.9.11 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/goccy/go-json v0.10.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/flatbuffers v2.0.8+incompatible // indirect + github.com/google/flatbuffers v23.1.21+incompatible // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/klauspost/asmfmt v1.3.2 // indirect - github.com/klauspost/compress v1.15.11 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect + github.com/klauspost/compress v1.15.15 // indirect + github.com/klauspost/cpuid/v2 v2.2.3 // indirect github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect github.com/mtibben/percent v0.2.1 // indirect - github.com/pierrec/lz4/v4 v4.1.16 // indirect + github.com/pierrec/lz4/v4 v4.1.17 // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/sirupsen/logrus v1.9.0 // indirect github.com/zeebo/xxh3 v1.0.2 // indirect golang.org/x/crypto v0.7.0 // indirect + golang.org/x/exp v0.0.0-20230206171751-46f607a40771 // indirect golang.org/x/mod v0.8.0 // indirect golang.org/x/net v0.8.0 // indirect + golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/term v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/ext/go.sum b/ext/go.sum index da70667..84f7b4d 100644 --- a/ext/go.sum +++ b/ext/go.sum @@ -1,7 +1,7 @@ github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= -github.com/99designs/keyring v1.2.1 h1:tYLp1ULvO7i3fI5vE21ReQuj99QFSs7lGm0xWyJo87o= -github.com/99designs/keyring v1.2.1/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/99designs/keyring v1.2.2 h1:pZd3neh/EmUzWONb35LxQfvuY7kiSXAq3HQd97+XBn0= +github.com/99designs/keyring v1.2.2/go.mod h1:wes/FrByc8j7lFOAGLGSNEg8f/PaI3cgTBqhFkHUrPk= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= @@ -11,50 +11,51 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0 h1:u/LLAOFgsMv7HmNL4 github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.0.0/go.mod h1:2e8rMJtl2+2j+HXbTBwnyGpm5Nou7KhvSfxOq8JpTag= github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c h1:RGWPOewvKIROun94nF7v2cua9qP+thov/7M50KEoeSU= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= -github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6ez9cI= -github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v12 v12.0.1 h1:JsR2+hzYYjgSUkBSaahpqCetqZMr76djX80fF/DiJbg= +github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= -github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk= -github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 h1:tcFliCWne+zOuUfKNRn8JdFBuWPDuISDH08wD2ULkhk= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8/go.mod h1:JTnlBSot91steJeti4ryyu/tLd4Sk84O5W22L7O2EQU= -github.com/aws/aws-sdk-go-v2/config v1.17.7 h1:odVM52tFHhpqZBKNjVW5h+Zt1tKHbhdTQRb+0WHrNtw= -github.com/aws/aws-sdk-go-v2/config v1.17.7/go.mod h1:dN2gja/QXxFF15hQreyrqYhLBaQo1d9ZKe/v/uplQoI= -github.com/aws/aws-sdk-go-v2/credentials v1.12.20 h1:9+ZhlDY7N9dPnUmf7CDfW9In4sW5Ff3bh7oy4DzS1IE= -github.com/aws/aws-sdk-go-v2/credentials v1.12.20/go.mod h1:UKY5HyIux08bbNA7Blv4PcXQ8cTkGh7ghHMFklaviR4= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17 h1:r08j4sbZu/RVi+BNxkBJwPMUYY3P8mgSDuKkZ/ZN1lE= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 h1:fAoVmNGhir6BR+RU0/EI+6+D7abM+MCwWf8v4ip5jNI= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33/go.mod h1:84XgODVR8uRhmOnUkKGUZKqIMxmjmLOR8Uyp7G/TPwc= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 h1:s4g/wnzMf+qepSNgTvaQQHNxyMLKSawNhKCPNy++2xY= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 h1:/K482T5A3623WJgWT8w1yRAFK4RzGzEl7y39yhtn9eA= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24 h1:wj5Rwc05hvUSvKuOF29IYb9QrCLjU+rHAy/x/o0DK2c= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 h1:ZSIPAkAsCCjYrhqfw2+lNzWDzxzHXEckFkTePL5RSWQ= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14/go.mod h1:AyGgqiKv9ECM6IZeNQtdT8NnMvUb3/2wokeq2Fgryto= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 h1:Lh1AShsuIJTwMkoxVCAYPJgNG5H+eN6SmoUn8nOZ5wE= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9/go.mod h1:a9j48l6yL5XINLHLcOKInjdvknN+vWqPBxqeIDw7ktw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 h1:BBYoNQt2kUZUUK4bIPsKrCcjVPUMNsgQpNAwhznK/zo= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18/go.mod h1:NS55eQ4YixUJPTC+INxi2/jCqe1y2Uw3rnh9wEOVJxY= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 h1:Jrd/oMh0PKQc6+BowB+pLEwLIgaQF29eYbe7E1Av9Ug= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 h1:3/gm/JTX9bX8CpzTgIlrtYpB3EVBDxyg/GY/QdcIEZw= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11/go.mod h1:fmgDANqTUCxciViKl9hb/zD5LFbvPINFRgWhDbR+vZo= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.23 h1:pwvCchFUEnlceKIgPUouBJwK81aCkQ8UDMORfeFtW10= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5 h1:GUnZ62TevLqIoDyHeiWj2P7EqaosgakBKVvWriIdLQY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.5/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.19 h1:9pPi0PsFNAGILFfPCk8Y0iyEBGc6lu6OQ97U7hmdesg= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= -github.com/aws/smithy-go v1.13.3 h1:l7LYxGuzK6/K+NzJ2mC+VvLUbae0sL3bXU//04MkmnA= -github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/aws-sdk-go-v2 v1.17.7 h1:CLSjnhJSTSogvqUGhIC6LqFKATMRexcxLZ0i/Nzk9Eg= +github.com/aws/aws-sdk-go-v2 v1.17.7/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno= +github.com/aws/aws-sdk-go-v2/config v1.18.19 h1:AqFK6zFNtq4i1EYu+eC7lcKHYnZagMn6SW171la0bGw= +github.com/aws/aws-sdk-go-v2/config v1.18.19/go.mod h1:XvTmGMY8d52ougvakOv1RpiTLPz9dlG/OQHsKU/cMmY= +github.com/aws/aws-sdk-go-v2/credentials v1.13.18 h1:EQMdtHwz0ILTW1hoP+EwuWhwCG1hD6l3+RWFQABET4c= +github.com/aws/aws-sdk-go-v2/credentials v1.13.18/go.mod h1:vnwlwjIe+3XJPBYKu1et30ZPABG3VaXJYr8ryohpIyM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1 h1:gt57MN3liKiyGopcqgNzJb2+d9MJaKT/q1OksHNXVE4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.1/go.mod h1:lfUx8puBRdM5lVVMQlwt2v+ofiG/X6Ms+dy0UkG/kXw= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 h1:E3Y+OfzOK1+rmRo/K2G0ml8Vs+Xqk0kOnf4nS0kUtBc= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59/go.mod h1:1M4PLSBUVfBI0aP+C9XI7SM6kZPCGYyI6izWz0TGprE= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 h1:sJLYcS+eZn5EeNINGHSCRAwUJMFVqklwkH36Vbyai7M= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31/go.mod h1:QT0BqUvX1Bh2ABdTGnjqEjvjzrCfIniM9Sc8zn9Yndo= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 h1:1mnRASEKnkqsntcxHaysxwgVoUUp5dkiB+l3llKnqyg= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25/go.mod h1:zBHOPwhBc3FlQjQJE/D3IfPWiWaQmT06Vq9aNukDo0k= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32 h1:p5luUImdIqywn6JpQsW3tq5GNOxKmOnEpybzPx+d1lk= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.32/go.mod h1:XGhIBZDEgfqmFIugclZ6FU7v75nHhBDtzuB4xB/tEi4= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 h1:DWYZIsyqagnWL00f8M/SOr9fN063OEQWn9LLTbdYXsk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23/go.mod h1:uIiFgURZbACBEQJfqTZPb/jxO7R+9LeoHUFudtIdeQI= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 h1:CeuSeq/8FnYpPtnuIeLQEEvDv9zUjneuYi8EghMBdwQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26/go.mod h1:2UqAAwMUXKeRkAHIlDJqvMVgOWkUi/AUXPk/YIe+Dg4= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 h1:5LHn8JQ0qvjD9L9JhMtylnkcw7j05GDZqM9Oin6hpr0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25/go.mod h1:/95IA+0lMnzW6XzqYJRpjjsAbKEORVeO0anQqjd2CNU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 h1:e2ooMhpYGhDnBfSvIyusvAwX7KexuZaHbQY2Dyei7VU= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0/go.mod h1:bh2E0CXKZsQN+faiKVqC40vfNMAWheoULBCnEgO9K+8= +github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 h1:B1G2pSPvbAtQjilPq+Y7jLIzCOwKzuVEl+aBBaNG0AQ= +github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0/go.mod h1:ncltU6n4Nof5uJttDtcNQ537uNuwYqsZZQcpkd2/GUQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.6 h1:5V7DWLBd7wTELVz5bPpwzYy/sikk0gsgZfj40X+l5OI= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.6/go.mod h1:Y1VOmit/Fn6Tz1uFAeCO6Q7M2fmfXSCLeL5INVYsLuY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6 h1:B8cauxOH1W1v7rd8RdI/MWnoR4Ze0wIHWrb90qczxj4= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.6/go.mod h1:Lh/bc9XUf8CfOY6Jp5aIkQtN+j1mc+nExc+KXj9jx2s= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.7 h1:bWNgNdRko2x6gqa0blfATqAZKZokPIeM1vfmQt2pnvM= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.7/go.mod h1:JuTnSoeePXmMVe9G8NcjjwgOKEfZ4cOjMuT2IBT/2eI= +github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= +github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -65,20 +66,20 @@ github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQx github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= github.com/form3tech-oss/jwt-go v3.2.5+incompatible h1:/l4kBbb4/vGSsdtB5nUe8L7B9mImVMaBPw9L/0TBHU8= github.com/form3tech-oss/jwt-go v3.2.5+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= -github.com/gabriel-vasile/mimetype v1.4.1 h1:TRWk7se+TOjCYgRth7+1/OYLNiRNIotknkFtf/dnN7Q= -github.com/gabriel-vasile/mimetype v1.4.1/go.mod h1:05Vi0w3Y9c/lNvJOdmIwvrrAhX3rYhfQQCaf9VJcv7M= -github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= -github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= -github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/flatbuffers v23.1.21+incompatible h1:bUqzx/MXCDxuS0hRJL2EfjyZL3uQrPbMocUa8zGqsTA= +github.com/google/flatbuffers v23.1.21+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU= github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0= @@ -88,11 +89,11 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGw github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/klauspost/asmfmt v1.3.2 h1:4Ri7ox3EwapiOjCki+hw14RyKk201CN4rzyCJRFLpK4= github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= -github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= -github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/klauspost/compress v1.15.15 h1:EF27CXIuDsYJ6mmvtBRlEuB2UVOqHG1tAXgZ7yIO+lw= +github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4= +github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= +github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -106,8 +107,8 @@ github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8Ie github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs= github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pierrec/lz4/v4 v4.1.16 h1:kQPfno+wyx6C5572ABwV+Uo3pDFzQ7yhyGchSyRda0c= -github.com/pierrec/lz4/v4 v4.1.16/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc= +github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -115,12 +116,12 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/snowflakedb/gosnowflake v1.6.20 h1:WkWTTOnc2yQ/6LpCDZQQe0c9jquxsitvYYNTIgvy0lw= -github.com/snowflakedb/gosnowflake v1.6.20/go.mod h1:FM1+PWUdwB9udFDsXdfD58NONC0m+MlOSmQRvimobSM= +github.com/snowflakedb/gosnowflake v1.6.23 h1:uO+zMTXJcSHzOm6ks5To8ergNjt5Dy6cr5QtStpRFT8= +github.com/snowflakedb/gosnowflake v1.6.23/go.mod h1:KfO4F7bk+aXPUIvBqYxvPhxLlu2/w4TtSC8Rw/yr5Mg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= @@ -128,34 +129,31 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 h1:tnebWN09GYg9OLPss1KXj8txwZc6X6uMr6VFdcGNbHw= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771 h1:xP7rWLUr1e1n2xkK5YB4LI0hPEy3LJC6Wk+D4pGlOJg= +golang.org/x/exp v0.0.0-20230206171751-46f607a40771/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= diff --git a/ext/vendor/github.com/99designs/keyring/.golangci.yml b/ext/vendor/github.com/99designs/keyring/.golangci.yml index d5b9097..f83428e 100644 --- a/ext/vendor/github.com/99designs/keyring/.golangci.yml +++ b/ext/vendor/github.com/99designs/keyring/.golangci.yml @@ -2,11 +2,9 @@ linters: enable: - bodyclose - contextcheck - - deadcode - depguard - durationcheck - dupl - - errcheck - errchkjson - errname - exhaustive @@ -14,9 +12,6 @@ linters: - gocritic - gofmt - goimports - - gosimple - - govet - - ineffassign - makezero - misspell - nakedret @@ -25,15 +20,10 @@ linters: - noctx - prealloc - revive - - rowserrcheck - - staticcheck - - structcheck + # - rowserrcheck - thelper - tparallel - - typecheck - unconvert - unparam - - unused - - varcheck - - wastedassign + # - wastedassign - whitespace diff --git a/ext/vendor/github.com/99designs/keyring/docker-compose.yml b/ext/vendor/github.com/99designs/keyring/docker-compose.yml index 8319281..9020220 100644 --- a/ext/vendor/github.com/99designs/keyring/docker-compose.yml +++ b/ext/vendor/github.com/99designs/keyring/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.9" services: keyring: - image: golang:1.17 + image: golang:1.19 volumes: - .:/usr/local/src/keyring working_dir: /usr/local/src/keyring diff --git a/ext/vendor/github.com/99designs/keyring/file.go b/ext/vendor/github.com/99designs/keyring/file.go index a325a15..0d25b57 100644 --- a/ext/vendor/github.com/99designs/keyring/file.go +++ b/ext/vendor/github.com/99designs/keyring/file.go @@ -3,7 +3,6 @@ package keyring import ( "encoding/json" "fmt" - "io/ioutil" "os" "path/filepath" "time" @@ -45,7 +44,7 @@ func (k *fileKeyring) resolveDir() (string, error) { stat, err := os.Stat(dir) if os.IsNotExist(err) { err = os.MkdirAll(dir, 0700) - } else if err != nil && !stat.IsDir() { + } else if err != nil && stat != nil && !stat.IsDir() { err = fmt.Errorf("%s is a file, not a directory", dir) } @@ -75,7 +74,7 @@ func (k *fileKeyring) Get(key string) (Item, error) { return Item{}, err } - bytes, err := ioutil.ReadFile(filename) + bytes, err := os.ReadFile(filename) if os.IsNotExist(err) { return Item{}, ErrKeyNotFound } else if err != nil { @@ -144,7 +143,7 @@ func (k *fileKeyring) Set(i Item) error { if err != nil { return err } - return ioutil.WriteFile(filename, []byte(token), 0600) + return os.WriteFile(filename, []byte(token), 0600) } func (k *fileKeyring) filename(key string) (string, error) { @@ -172,7 +171,7 @@ func (k *fileKeyring) Keys() ([]string, error) { } var keys = []string{} - files, _ := ioutil.ReadDir(dir) + files, _ := os.ReadDir(dir) for _, f := range files { keys = append(keys, filenameUnescape(f.Name())) } diff --git a/ext/vendor/github.com/99designs/keyring/keychain.go b/ext/vendor/github.com/99designs/keyring/keychain.go index 8850922..d4e634e 100644 --- a/ext/vendor/github.com/99designs/keyring/keychain.go +++ b/ext/vendor/github.com/99designs/keyring/keychain.go @@ -227,7 +227,12 @@ func (k *keychain) Remove(key string) error { } debugf("Removing keychain item service=%q, account=%q, keychain %q", k.service, key, k.path) - return gokeychain.DeleteItem(item) + err := gokeychain.DeleteItem(item) + if err == gokeychain.ErrorItemNotFound { + return ErrKeyNotFound + } + + return err } func (k *keychain) Keys() ([]string, error) { diff --git a/ext/vendor/github.com/JohnCGriffin/overflow/.travis.yml b/ext/vendor/github.com/JohnCGriffin/overflow/.travis.yml new file mode 100644 index 0000000..4f2ee4d --- /dev/null +++ b/ext/vendor/github.com/JohnCGriffin/overflow/.travis.yml @@ -0,0 +1 @@ +language: go diff --git a/ext/vendor/github.com/JohnCGriffin/overflow/README.md b/ext/vendor/github.com/JohnCGriffin/overflow/README.md new file mode 100644 index 0000000..418e427 --- /dev/null +++ b/ext/vendor/github.com/JohnCGriffin/overflow/README.md @@ -0,0 +1,84 @@ +[![Build Status](https://travis-ci.org/JohnCGriffin/overflow.png)](https://travis-ci.org/JohnCGriffin/overflow) +# overflow +Check for int/int8/int16/int64/int32 integer overflow in Golang arithmetic. +### Install +``` +go get github.com/johncgriffin/overflow +``` +Note that because Go has no template types, the majority of repetitive code is +generated by overflow_template.sh. If you have to change an +algorithm, change it there and regenerate the Go code via: +``` +go generate +``` +### Synopsis + +``` +package main + +import "fmt" +import "math" +import "github.com/JohnCGriffin/overflow" + +func main() { + + addend := math.MaxInt64 - 5 + + for i := 0; i < 10; i++ { + sum, ok := overflow.Add(addend, i) + fmt.Printf("%v+%v -> (%v,%v)\n", + addend, i, sum, ok) + } + +} +``` +yields the output +``` +9223372036854775802+0 -> (9223372036854775802,true) +9223372036854775802+1 -> (9223372036854775803,true) +9223372036854775802+2 -> (9223372036854775804,true) +9223372036854775802+3 -> (9223372036854775805,true) +9223372036854775802+4 -> (9223372036854775806,true) +9223372036854775802+5 -> (9223372036854775807,true) +9223372036854775802+6 -> (0,false) +9223372036854775802+7 -> (0,false) +9223372036854775802+8 -> (0,false) +9223372036854775802+9 -> (0,false) +``` + +For int, int64, and int32 types, provide Add, Add32, Add64, Sub, Sub32, Sub64, etc. +Unsigned types not covered at the moment, but such additions are welcome. + +### Stay calm and panic + +There's a good case to be made that a panic is an unidiomatic but proper response. Iff you +believe that there's no valid way to continue your program after math goes wayward, you can +use the easier Addp, Mulp, Subp, and Divp versions which return the normal result or panic. + + +- - - +MIT License + +Copyright (c) 2017 John C. Griffin, + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + diff --git a/ext/vendor/github.com/JohnCGriffin/overflow/overflow.go b/ext/vendor/github.com/JohnCGriffin/overflow/overflow.go new file mode 100644 index 0000000..17e2417 --- /dev/null +++ b/ext/vendor/github.com/JohnCGriffin/overflow/overflow.go @@ -0,0 +1,129 @@ +/*Package overflow offers overflow-checked integer arithmetic operations +for int, int32, and int64. Each of the operations returns a +result,bool combination. This was prompted by the need to know when +to flow into higher precision types from the math.big library. + +For instance, assuing a 64 bit machine: + +10 + 20 -> 30 +int(math.MaxInt64) + 1 -> -9223372036854775808 + +whereas + +overflow.Add(10,20) -> (30, true) +overflow.Add(math.MaxInt64,1) -> (0, false) + +Add, Sub, Mul, Div are for int. Add64, Add32, etc. are specifically sized. + +If anybody wishes an unsigned version, submit a pull request for code +and new tests. */ +package overflow + +//go:generate ./overflow_template.sh + +import "math" + +func _is64Bit() bool { + maxU32 := uint(math.MaxUint32) + return ((maxU32 << 1) >> 1) == maxU32 +} + +/********** PARTIAL TEST COVERAGE FROM HERE DOWN ************* + +The only way that I could see to do this is a combination of +my normal 64 bit system and a GopherJS running on Node. My +understanding is that its ints are 32 bit. + +So, FEEL FREE to carefully review the code visually. + +*************************************************************/ + +// Unspecified size, i.e. normal signed int + +// Add sums two ints, returning the result and a boolean status. +func Add(a, b int) (int, bool) { + if _is64Bit() { + r64, ok := Add64(int64(a), int64(b)) + return int(r64), ok + } + r32, ok := Add32(int32(a), int32(b)) + return int(r32), ok +} + +// Sub returns the difference of two ints and a boolean status. +func Sub(a, b int) (int, bool) { + if _is64Bit() { + r64, ok := Sub64(int64(a), int64(b)) + return int(r64), ok + } + r32, ok := Sub32(int32(a), int32(b)) + return int(r32), ok +} + +// Mul returns the product of two ints and a boolean status. +func Mul(a, b int) (int, bool) { + if _is64Bit() { + r64, ok := Mul64(int64(a), int64(b)) + return int(r64), ok + } + r32, ok := Mul32(int32(a), int32(b)) + return int(r32), ok +} + +// Div returns the quotient of two ints and a boolean status +func Div(a, b int) (int, bool) { + if _is64Bit() { + r64, ok := Div64(int64(a), int64(b)) + return int(r64), ok + } + r32, ok := Div32(int32(a), int32(b)) + return int(r32), ok +} + +// Quotient returns the quotient, remainder and status of two ints +func Quotient(a, b int) (int, int, bool) { + if _is64Bit() { + q64, r64, ok := Quotient64(int64(a), int64(b)) + return int(q64), int(r64), ok + } + q32, r32, ok := Quotient32(int32(a), int32(b)) + return int(q32), int(r32), ok +} + +/************* Panic versions for int ****************/ + +// Addp returns the sum of two ints, panicking on overflow +func Addp(a, b int) int { + r, ok := Add(a, b) + if !ok { + panic("addition overflow") + } + return r +} + +// Subp returns the difference of two ints, panicking on overflow. +func Subp(a, b int) int { + r, ok := Sub(a, b) + if !ok { + panic("subtraction overflow") + } + return r +} + +// Mulp returns the product of two ints, panicking on overflow. +func Mulp(a, b int) int { + r, ok := Mul(a, b) + if !ok { + panic("multiplication overflow") + } + return r +} + +// Divp returns the quotient of two ints, panicking on overflow. +func Divp(a, b int) int { + r, ok := Div(a, b) + if !ok { + panic("division failure") + } + return r +} diff --git a/ext/vendor/github.com/JohnCGriffin/overflow/overflow_impl.go b/ext/vendor/github.com/JohnCGriffin/overflow/overflow_impl.go new file mode 100644 index 0000000..d1cbe86 --- /dev/null +++ b/ext/vendor/github.com/JohnCGriffin/overflow/overflow_impl.go @@ -0,0 +1,386 @@ +package overflow + +// This is generated code, created by overflow_template.sh executed +// by "go generate" + + + + +// Add8 performs + operation on two int8 operands +// returning a result and status +func Add8(a, b int8) (int8, bool) { + c := a + b + if (c > a) == (b > 0) { + return c, true + } + return c, false +} + +// Add8p is the unchecked panicing version of Add8 +func Add8p(a, b int8) int8 { + r, ok := Add8(a, b) + if !ok { + panic("addition overflow") + } + return r +} + + +// Sub8 performs - operation on two int8 operands +// returning a result and status +func Sub8(a, b int8) (int8, bool) { + c := a - b + if (c < a) == (b > 0) { + return c, true + } + return c, false +} + +// Sub8p is the unchecked panicing version of Sub8 +func Sub8p(a, b int8) int8 { + r, ok := Sub8(a, b) + if !ok { + panic("subtraction overflow") + } + return r +} + + +// Mul8 performs * operation on two int8 operands +// returning a result and status +func Mul8(a, b int8) (int8, bool) { + if a == 0 || b == 0 { + return 0, true + } + c := a * b + if (c < 0) == ((a < 0) != (b < 0)) { + if c/b == a { + return c, true + } + } + return c, false +} + +// Mul8p is the unchecked panicing version of Mul8 +func Mul8p(a, b int8) int8 { + r, ok := Mul8(a, b) + if !ok { + panic("multiplication overflow") + } + return r +} + + + +// Div8 performs / operation on two int8 operands +// returning a result and status +func Div8(a, b int8) (int8, bool) { + q, _, ok := Quotient8(a, b) + return q, ok +} + +// Div8p is the unchecked panicing version of Div8 +func Div8p(a, b int8) int8 { + r, ok := Div8(a, b) + if !ok { + panic("division failure") + } + return r +} + +// Quotient8 performs + operation on two int8 operands +// returning a quotient, a remainder and status +func Quotient8(a, b int8) (int8, int8, bool) { + if b == 0 { + return 0, 0, false + } + c := a / b + status := (c < 0) == ((a < 0) != (b < 0)) + return c, a % b, status +} + + + +// Add16 performs + operation on two int16 operands +// returning a result and status +func Add16(a, b int16) (int16, bool) { + c := a + b + if (c > a) == (b > 0) { + return c, true + } + return c, false +} + +// Add16p is the unchecked panicing version of Add16 +func Add16p(a, b int16) int16 { + r, ok := Add16(a, b) + if !ok { + panic("addition overflow") + } + return r +} + + +// Sub16 performs - operation on two int16 operands +// returning a result and status +func Sub16(a, b int16) (int16, bool) { + c := a - b + if (c < a) == (b > 0) { + return c, true + } + return c, false +} + +// Sub16p is the unchecked panicing version of Sub16 +func Sub16p(a, b int16) int16 { + r, ok := Sub16(a, b) + if !ok { + panic("subtraction overflow") + } + return r +} + + +// Mul16 performs * operation on two int16 operands +// returning a result and status +func Mul16(a, b int16) (int16, bool) { + if a == 0 || b == 0 { + return 0, true + } + c := a * b + if (c < 0) == ((a < 0) != (b < 0)) { + if c/b == a { + return c, true + } + } + return c, false +} + +// Mul16p is the unchecked panicing version of Mul16 +func Mul16p(a, b int16) int16 { + r, ok := Mul16(a, b) + if !ok { + panic("multiplication overflow") + } + return r +} + + + +// Div16 performs / operation on two int16 operands +// returning a result and status +func Div16(a, b int16) (int16, bool) { + q, _, ok := Quotient16(a, b) + return q, ok +} + +// Div16p is the unchecked panicing version of Div16 +func Div16p(a, b int16) int16 { + r, ok := Div16(a, b) + if !ok { + panic("division failure") + } + return r +} + +// Quotient16 performs + operation on two int16 operands +// returning a quotient, a remainder and status +func Quotient16(a, b int16) (int16, int16, bool) { + if b == 0 { + return 0, 0, false + } + c := a / b + status := (c < 0) == ((a < 0) != (b < 0)) + return c, a % b, status +} + + + +// Add32 performs + operation on two int32 operands +// returning a result and status +func Add32(a, b int32) (int32, bool) { + c := a + b + if (c > a) == (b > 0) { + return c, true + } + return c, false +} + +// Add32p is the unchecked panicing version of Add32 +func Add32p(a, b int32) int32 { + r, ok := Add32(a, b) + if !ok { + panic("addition overflow") + } + return r +} + + +// Sub32 performs - operation on two int32 operands +// returning a result and status +func Sub32(a, b int32) (int32, bool) { + c := a - b + if (c < a) == (b > 0) { + return c, true + } + return c, false +} + +// Sub32p is the unchecked panicing version of Sub32 +func Sub32p(a, b int32) int32 { + r, ok := Sub32(a, b) + if !ok { + panic("subtraction overflow") + } + return r +} + + +// Mul32 performs * operation on two int32 operands +// returning a result and status +func Mul32(a, b int32) (int32, bool) { + if a == 0 || b == 0 { + return 0, true + } + c := a * b + if (c < 0) == ((a < 0) != (b < 0)) { + if c/b == a { + return c, true + } + } + return c, false +} + +// Mul32p is the unchecked panicing version of Mul32 +func Mul32p(a, b int32) int32 { + r, ok := Mul32(a, b) + if !ok { + panic("multiplication overflow") + } + return r +} + + + +// Div32 performs / operation on two int32 operands +// returning a result and status +func Div32(a, b int32) (int32, bool) { + q, _, ok := Quotient32(a, b) + return q, ok +} + +// Div32p is the unchecked panicing version of Div32 +func Div32p(a, b int32) int32 { + r, ok := Div32(a, b) + if !ok { + panic("division failure") + } + return r +} + +// Quotient32 performs + operation on two int32 operands +// returning a quotient, a remainder and status +func Quotient32(a, b int32) (int32, int32, bool) { + if b == 0 { + return 0, 0, false + } + c := a / b + status := (c < 0) == ((a < 0) != (b < 0)) + return c, a % b, status +} + + + +// Add64 performs + operation on two int64 operands +// returning a result and status +func Add64(a, b int64) (int64, bool) { + c := a + b + if (c > a) == (b > 0) { + return c, true + } + return c, false +} + +// Add64p is the unchecked panicing version of Add64 +func Add64p(a, b int64) int64 { + r, ok := Add64(a, b) + if !ok { + panic("addition overflow") + } + return r +} + + +// Sub64 performs - operation on two int64 operands +// returning a result and status +func Sub64(a, b int64) (int64, bool) { + c := a - b + if (c < a) == (b > 0) { + return c, true + } + return c, false +} + +// Sub64p is the unchecked panicing version of Sub64 +func Sub64p(a, b int64) int64 { + r, ok := Sub64(a, b) + if !ok { + panic("subtraction overflow") + } + return r +} + + +// Mul64 performs * operation on two int64 operands +// returning a result and status +func Mul64(a, b int64) (int64, bool) { + if a == 0 || b == 0 { + return 0, true + } + c := a * b + if (c < 0) == ((a < 0) != (b < 0)) { + if c/b == a { + return c, true + } + } + return c, false +} + +// Mul64p is the unchecked panicing version of Mul64 +func Mul64p(a, b int64) int64 { + r, ok := Mul64(a, b) + if !ok { + panic("multiplication overflow") + } + return r +} + + + +// Div64 performs / operation on two int64 operands +// returning a result and status +func Div64(a, b int64) (int64, bool) { + q, _, ok := Quotient64(a, b) + return q, ok +} + +// Div64p is the unchecked panicing version of Div64 +func Div64p(a, b int64) int64 { + r, ok := Div64(a, b) + if !ok { + panic("division failure") + } + return r +} + +// Quotient64 performs + operation on two int64 operands +// returning a quotient, a remainder and status +func Quotient64(a, b int64) (int64, int64, bool) { + if b == 0 { + return 0, 0, false + } + c := a / b + status := (c < 0) == ((a < 0) != (b < 0)) + return c, a % b, status +} + diff --git a/ext/vendor/github.com/JohnCGriffin/overflow/overflow_template.sh b/ext/vendor/github.com/JohnCGriffin/overflow/overflow_template.sh new file mode 100644 index 0000000..b21fb04 --- /dev/null +++ b/ext/vendor/github.com/JohnCGriffin/overflow/overflow_template.sh @@ -0,0 +1,110 @@ +#!/bin/sh + +exec > overflow_impl.go + +echo "package overflow + +// This is generated code, created by overflow_template.sh executed +// by \"go generate\" + +" + + +for SIZE in 8 16 32 64 +do +echo " + +// Add${SIZE} performs + operation on two int${SIZE} operands +// returning a result and status +func Add${SIZE}(a, b int${SIZE}) (int${SIZE}, bool) { + c := a + b + if (c > a) == (b > 0) { + return c, true + } + return c, false +} + +// Add${SIZE}p is the unchecked panicing version of Add${SIZE} +func Add${SIZE}p(a, b int${SIZE}) int${SIZE} { + r, ok := Add${SIZE}(a, b) + if !ok { + panic(\"addition overflow\") + } + return r +} + + +// Sub${SIZE} performs - operation on two int${SIZE} operands +// returning a result and status +func Sub${SIZE}(a, b int${SIZE}) (int${SIZE}, bool) { + c := a - b + if (c < a) == (b > 0) { + return c, true + } + return c, false +} + +// Sub${SIZE}p is the unchecked panicing version of Sub${SIZE} +func Sub${SIZE}p(a, b int${SIZE}) int${SIZE} { + r, ok := Sub${SIZE}(a, b) + if !ok { + panic(\"subtraction overflow\") + } + return r +} + + +// Mul${SIZE} performs * operation on two int${SIZE} operands +// returning a result and status +func Mul${SIZE}(a, b int${SIZE}) (int${SIZE}, bool) { + if a == 0 || b == 0 { + return 0, true + } + c := a * b + if (c < 0) == ((a < 0) != (b < 0)) { + if c/b == a { + return c, true + } + } + return c, false +} + +// Mul${SIZE}p is the unchecked panicing version of Mul${SIZE} +func Mul${SIZE}p(a, b int${SIZE}) int${SIZE} { + r, ok := Mul${SIZE}(a, b) + if !ok { + panic(\"multiplication overflow\") + } + return r +} + + + +// Div${SIZE} performs / operation on two int${SIZE} operands +// returning a result and status +func Div${SIZE}(a, b int${SIZE}) (int${SIZE}, bool) { + q, _, ok := Quotient${SIZE}(a, b) + return q, ok +} + +// Div${SIZE}p is the unchecked panicing version of Div${SIZE} +func Div${SIZE}p(a, b int${SIZE}) int${SIZE} { + r, ok := Div${SIZE}(a, b) + if !ok { + panic(\"division failure\") + } + return r +} + +// Quotient${SIZE} performs + operation on two int${SIZE} operands +// returning a quotient, a remainder and status +func Quotient${SIZE}(a, b int${SIZE}) (int${SIZE}, int${SIZE}, bool) { + if b == 0 { + return 0, 0, false + } + c := a / b + status := (c < 0) == ((a < 0) != (b < 0)) + return c, a % b, status +} +" +done diff --git a/ext/vendor/github.com/apache/arrow/go/v10/LICENSE.txt b/ext/vendor/github.com/apache/arrow/go/v12/LICENSE.txt similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/LICENSE.txt rename to ext/vendor/github.com/apache/arrow/go/v12/LICENSE.txt index bb586ce..9ea2e1f 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/LICENSE.txt +++ b/ext/vendor/github.com/apache/arrow/go/v12/LICENSE.txt @@ -203,77 +203,6 @@ -------------------------------------------------------------------------------- -src/plasma/fling.cc and src/plasma/fling.h: Apache 2.0 - -Copyright 2013 Sharvil Nanavati - -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. - --------------------------------------------------------------------------------- - -src/plasma/thirdparty/ae: Modified / 3-Clause BSD - -Copyright (c) 2006-2010, Salvatore Sanfilippo -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Redis nor the names of its contributors may be used - to endorse or promote products derived from this software without - specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - --------------------------------------------------------------------------------- - -src/plasma/thirdparty/dlmalloc.c: CC0 - -This is a version (aka dlmalloc) of malloc/free/realloc written by -Doug Lea and released to the public domain, as explained at -http://creativecommons.org/publicdomain/zero/1.0/ Send questions, -comments, complaints, performance data, etc to dl@cs.oswego.edu - --------------------------------------------------------------------------------- - -src/plasma/common.cc (some portions) - -Copyright (c) Austin Appleby (aappleby (AT) gmail) - -Some portions of this file are derived from code in the MurmurHash project - -All code is released to the public domain. For business purposes, Murmurhash is -under the MIT license. - -https://sites.google.com/site/murmurhash/ - --------------------------------------------------------------------------------- - src/arrow/util (some portions): Apache 2.0, and 3-clause BSD Some portions of this module are derived from code in the Chromium project, diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/.editorconfig b/ext/vendor/github.com/apache/arrow/go/v12/arrow/.editorconfig similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/.editorconfig rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/.editorconfig diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/.gitignore b/ext/vendor/github.com/apache/arrow/go/v12/arrow/.gitignore similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/.gitignore rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/.gitignore diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/Gopkg.lock b/ext/vendor/github.com/apache/arrow/go/v12/arrow/Gopkg.lock similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/Gopkg.lock rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/Gopkg.lock diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/Gopkg.toml b/ext/vendor/github.com/apache/arrow/go/v12/arrow/Gopkg.toml similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/Gopkg.toml rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/Gopkg.toml diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/Makefile b/ext/vendor/github.com/apache/arrow/go/v12/arrow/Makefile similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/Makefile rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/Makefile diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array.go index 52c8998..ffcd20c 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array.go @@ -20,7 +20,7 @@ import ( "encoding/json" "fmt" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/memory" ) // ArrayData is the underlying memory and metadata of an Arrow array, corresponding @@ -105,6 +105,11 @@ type Array interface { // IsValid returns true if value at index is not null. // NOTE: IsValid will panic if NullBitmapBytes is not empty and 0 > i ≥ Len. IsValid(i int) bool + // ValueStr returns the value at index as a string. + ValueStr(i int) string + + // Get single value to be marshalled with `json.Marshal` + GetOneForMarshal(i int) interface{} Data() ArrayData diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/array.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/array.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/array.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/array.go index 7db2a8f..6231ae9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/array.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/array.go @@ -19,20 +19,15 @@ package array import ( "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) -type arraymarshal interface { - arrow.Array - - getOneForMarshal(i int) interface{} -} - const ( // UnknownNullCount specifies the NullN should be calculated from the null bitmap buffer. UnknownNullCount = -1 + NullValueStr = "(null)" ) type array struct { @@ -175,8 +170,8 @@ func init() { arrow.LARGE_STRING: func(data arrow.ArrayData) arrow.Array { return NewLargeStringData(data) }, arrow.LARGE_BINARY: func(data arrow.ArrayData) arrow.Array { return NewLargeBinaryData(data) }, arrow.LARGE_LIST: func(data arrow.ArrayData) arrow.Array { return NewLargeListData(data) }, - arrow.INTERVAL: func(data arrow.ArrayData) arrow.Array { return NewIntervalData(data) }, arrow.INTERVAL_MONTH_DAY_NANO: func(data arrow.ArrayData) arrow.Array { return NewMonthDayNanoIntervalData(data) }, + arrow.RUN_END_ENCODED: func(data arrow.ArrayData) arrow.Array { return NewRunEndEncodedData(data) }, // invalid data types to fill out array to size 2^6 - 1 63: invalidDataType, diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binary.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binary.go index 0ce181e..0cc8e21 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binary.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binary.go @@ -18,11 +18,12 @@ package array import ( "bytes" + "encoding/base64" "fmt" "strings" "unsafe" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" "github.com/goccy/go-json" ) @@ -56,7 +57,15 @@ func (a *Binary) Value(i int) []byte { return a.valueBytes[a.valueOffsets[idx]:a.valueOffsets[idx+1]] } -// ValueString returns the string at index i without performing additional allocations. +// ValueString returns the string at index i +func (a *Binary) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return base64.StdEncoding.EncodeToString(a.Value(i)) +} + +// ValueStr returns the string at index i without performing additional allocations. // The string is only valid for the lifetime of the Binary array. func (a *Binary) ValueString(i int) string { b := a.Value(i) @@ -141,7 +150,7 @@ func (a *Binary) setData(data *Data) { } } -func (a *Binary) getOneForMarshal(i int) interface{} { +func (a *Binary) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -151,7 +160,7 @@ func (a *Binary) getOneForMarshal(i int) interface{} { func (a *Binary) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := 0; i < a.Len(); i++ { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } // golang marshal standard says that []byte will be marshalled // as a base64-encoded string @@ -191,6 +200,12 @@ func (a *LargeBinary) Value(i int) []byte { return a.valueBytes[a.valueOffsets[idx]:a.valueOffsets[idx+1]] } +func (a *LargeBinary) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return base64.StdEncoding.EncodeToString(a.Value(i)) +} func (a *LargeBinary) ValueString(i int) string { b := a.Value(i) return *(*string)(unsafe.Pointer(&b)) @@ -274,7 +289,7 @@ func (a *LargeBinary) setData(data *Data) { } } -func (a *LargeBinary) getOneForMarshal(i int) interface{} { +func (a *LargeBinary) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -284,7 +299,7 @@ func (a *LargeBinary) getOneForMarshal(i int) interface{} { func (a *LargeBinary) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := 0; i < a.Len(); i++ { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } // golang marshal standard says that []byte will be marshalled // as a base64-encoded string diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binarybuilder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binarybuilder.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binarybuilder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binarybuilder.go index 1674b86..401587e 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/binarybuilder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/binarybuilder.go @@ -24,9 +24,9 @@ import ( "reflect" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -173,6 +173,12 @@ func (b *BinaryBuilder) AppendStringValues(v []string, valid []bool) { b.builder.unsafeAppendBoolsToBitmap(valid, len(v)) } +func (b *BinaryBuilder) UnsafeAppend(v []byte) { + b.appendNextOffset() + b.values.unsafeAppend(v) + b.UnsafeAppendBoolToBitmap(true) +} + func (b *BinaryBuilder) Value(i int) []byte { start := b.getOffsetVal(i) var end int @@ -214,6 +220,9 @@ func (b *BinaryBuilder) ReserveData(n int) { // additional memory will be allocated. If n is smaller, the allocated memory may be reduced. func (b *BinaryBuilder) Resize(n int) { b.offsets.resize((n + 1) * b.offsetByteWidth) + if (n * b.offsetByteWidth) < b.offsets.Len() { + b.offsets.SetLength(n * b.offsetByteWidth) + } b.builder.resize(n, b.init) } @@ -280,7 +289,27 @@ func (b *BinaryBuilder) appendNextOffset() { b.appendOffsetVal(numBytes) } -func (b *BinaryBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *BinaryBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + switch b.dtype.ID() { + case arrow.BINARY, arrow.LARGE_BINARY: + decodedVal, err := base64.StdEncoding.DecodeString(s) + if err != nil { + return fmt.Errorf("could not decode base64 string: %w", err) + } + b.Append(decodedVal) + case arrow.STRING, arrow.LARGE_STRING: + b.Append([]byte(s)) + default: + return fmt.Errorf("cannot append string to type %s", b.dtype) + } + return nil +} + +func (b *BinaryBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -307,9 +336,9 @@ func (b *BinaryBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *BinaryBuilder) unmarshal(dec *json.Decoder) error { +func (b *BinaryBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -327,7 +356,7 @@ func (b *BinaryBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/boolean.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/boolean.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/boolean.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/boolean.go index 2eed49b..0f386be 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/boolean.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/boolean.go @@ -18,11 +18,12 @@ package array import ( "fmt" + "strconv" "strings" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -55,6 +56,14 @@ func (a *Boolean) Value(i int) bool { return bitutil.BitIsSet(a.values, a.array.data.offset+i) } +func (a *Boolean) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } else { + return strconv.FormatBool(a.Value(i)) + } +} + func (a *Boolean) String() string { o := new(strings.Builder) o.WriteString("[") @@ -81,7 +90,7 @@ func (a *Boolean) setData(data *Data) { } } -func (a *Boolean) getOneForMarshal(i int) interface{} { +func (a *Boolean) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.Value(i) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/booleanbuilder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/booleanbuilder.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/booleanbuilder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/booleanbuilder.go index 760d755..75c53a4 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/booleanbuilder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/booleanbuilder.go @@ -23,10 +23,10 @@ import ( "strconv" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -82,6 +82,19 @@ func (b *BooleanBuilder) AppendEmptyValue() { b.UnsafeAppend(false) } +func (b *BooleanBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + val, err := strconv.ParseBool(s) + if err != nil { + return err + } + b.Append(val) + return nil +} + func (b *BooleanBuilder) UnsafeAppend(v bool) { bitutil.SetBit(b.nullBitmap.Bytes(), b.length) if v { @@ -172,7 +185,7 @@ func (b *BooleanBuilder) newData() *Data { return res } -func (b *BooleanBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *BooleanBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -205,9 +218,9 @@ func (b *BooleanBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *BooleanBuilder) unmarshal(dec *json.Decoder) error { +func (b *BooleanBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -226,7 +239,7 @@ func (b *BooleanBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("boolean builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder.go similarity index 93% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder.go index f8a6bed..50e5a26 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder.go @@ -19,9 +19,9 @@ package array import ( "sync/atomic" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" ) type bufBuilder interface { @@ -32,6 +32,7 @@ type bufBuilder interface { Bytes() []byte resize(int) Advance(int) + SetLength(int) Append([]byte) Reset() Finish() *memory.Buffer @@ -96,6 +97,15 @@ func (b *bufferBuilder) resize(elements int) { } } +func (b *bufferBuilder) SetLength(length int) { + if length > b.length { + b.Advance(length) + return + } + + b.length = length +} + // Advance increases the buffer by length and initializes the skipped bytes to zero. func (b *bufferBuilder) Advance(length int) { if b.capacity < b.length+length { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_byte.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_byte.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_byte.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_byte.go index c34a409..7e30639 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_byte.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_byte.go @@ -16,7 +16,7 @@ package array -import "github.com/apache/arrow/go/v10/arrow/memory" +import "github.com/apache/arrow/go/v12/arrow/memory" type byteBufferBuilder struct { bufferBuilder diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go index 1b87e6e..1425d0b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go @@ -19,9 +19,9 @@ package array import ( - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" ) type int64BufferBuilder struct { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go.tmpl similarity index 94% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go.tmpl index 71d03c0..ccda145 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/bufferbuilder_numeric.gen.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/bufferbuilder_numeric.gen.go.tmpl @@ -17,9 +17,9 @@ package array import ( - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" ) {{range .In}} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/builder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/builder.go similarity index 92% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/builder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/builder.go index 6a2146c..1805d97 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/builder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/builder.go @@ -20,9 +20,9 @@ import ( "fmt" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -61,6 +61,9 @@ type Builder interface { // AppendEmptyValue adds a new zero value of the appropriate type AppendEmptyValue() + // AppendValueFromString adds a new value from a string. Inverse of array.ValueStr(i int) string + AppendValueFromString(string) error + // Reserve ensures there is enough space for appending n elements // by checking the capacity and calling Resize if necessary. Reserve(n int) @@ -74,11 +77,13 @@ type Builder interface { // a new array. NewArray() arrow.Array + UnsafeAppendBoolToBitmap(bool) + init(capacity int) resize(newBits int, init func(int)) - unmarshalOne(*json.Decoder) error - unmarshal(*json.Decoder) error + UnmarshalOne(*json.Decoder) error + Unmarshal(*json.Decoder) error newData() *Data } @@ -279,15 +284,6 @@ func NewBuilder(mem memory.Allocator, dtype arrow.DataType) Builder { case arrow.TIME64: typ := dtype.(*arrow.Time64Type) return NewTime64Builder(mem, typ) - case arrow.INTERVAL: - switch dtype.(type) { - case *arrow.DayTimeIntervalType: - return NewDayTimeIntervalBuilder(mem) - case *arrow.MonthIntervalType: - return NewMonthIntervalBuilder(mem) - case *arrow.MonthDayNanoIntervalType: - return NewMonthDayNanoIntervalBuilder(mem) - } case arrow.INTERVAL_MONTHS: return NewMonthIntervalBuilder(mem) case arrow.INTERVAL_DAY_TIME: @@ -322,16 +318,23 @@ func NewBuilder(mem memory.Allocator, dtype arrow.DataType) Builder { return NewLargeListBuilderWithField(mem, typ.ElemField()) case arrow.MAP: typ := dtype.(*arrow.MapType) - return NewMapBuilder(mem, typ.KeyType(), typ.ItemType(), typ.KeysSorted) + return NewMapBuilderWithType(mem, typ) case arrow.EXTENSION: typ := dtype.(arrow.ExtensionType) - return NewExtensionBuilder(mem, typ) + bldr := NewExtensionBuilder(mem, typ) + if custom, ok := typ.(ExtensionBuilderWrapper); ok { + return custom.NewBuilder(bldr) + } + return bldr case arrow.FIXED_SIZE_LIST: typ := dtype.(*arrow.FixedSizeListType) return NewFixedSizeListBuilder(mem, typ.Len(), typ.Elem()) case arrow.DURATION: typ := dtype.(*arrow.DurationType) return NewDurationBuilder(mem, typ) + case arrow.RUN_END_ENCODED: + typ := dtype.(*arrow.RunEndEncodedType) + return NewRunEndEncodedBuilder(mem, typ.RunEnds(), typ.Encoded()) } panic(fmt.Errorf("arrow/array: unsupported builder for %T", dtype)) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/compare.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/compare.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/compare.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/compare.go index 828ed47..75b9993 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/compare.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/compare.go @@ -20,8 +20,8 @@ import ( "fmt" "math" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/float16" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/float16" ) // RecordEqual reports whether the two provided records are equal. @@ -333,6 +333,9 @@ func Equal(left, right arrow.Array) bool { case *DenseUnion: r := right.(*DenseUnion) return arrayDenseUnionEqual(l, r) + case *RunEndEncoded: + r := right.(*RunEndEncoded) + return arrayRunEndEncodedEqual(l, r) default: panic(fmt.Errorf("arrow/array: unknown array type %T", l)) } @@ -402,18 +405,18 @@ func (eq equalOption) f32(f1, f2 float32) bool { v2 := float64(f2) switch { case eq.nansEq: - return math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) + return v1 == v2 || math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) default: - return math.Abs(v1-v2) <= eq.atol + return v1 == v2 || math.Abs(v1-v2) <= eq.atol } } func (eq equalOption) f64(v1, v2 float64) bool { switch { case eq.nansEq: - return math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) + return v1 == v2 || math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) default: - return math.Abs(v1-v2) <= eq.atol + return v1 == v2 || math.Abs(v1-v2) <= eq.atol } } @@ -591,6 +594,9 @@ func arrayApproxEqual(left, right arrow.Array, opt equalOption) bool { case *DenseUnion: r := right.(*DenseUnion) return arrayDenseUnionApproxEqual(l, r, opt) + case *RunEndEncoded: + r := right.(*RunEndEncoded) + return arrayRunEndEncodedApproxEqual(l, r, opt) default: panic(fmt.Errorf("arrow/array: unknown array type %T", l)) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/concat.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/concat.go similarity index 73% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/concat.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/concat.go index db574de..c8e1231 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/concat.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/concat.go @@ -22,12 +22,13 @@ import ( "math" "math/bits" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/internal/bitutils" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/encoded" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/bitutils" + "github.com/apache/arrow/go/v12/internal/utils" ) // Concatenate creates a new arrow.Array which is the concatenation of the @@ -42,7 +43,12 @@ func Concatenate(arrs []arrow.Array, mem memory.Allocator) (result arrow.Array, defer func() { if pErr := recover(); pErr != nil { - err = fmt.Errorf("arrow/concat: unknown error: %v", pErr) + switch e := pErr.(type) { + case error: + err = fmt.Errorf("arrow/concat: %w", e) + default: + err = fmt.Errorf("arrow/concat: %v", pErr) + } } }() @@ -517,6 +523,50 @@ func concat(data []arrow.ArrayData, mem memory.Allocator) (arrow.ArrayData, erro if err != nil { return nil, err } + case *arrow.RunEndEncodedType: + physicalLength, overflow := int(0), false + // we can't use gatherChildren because the Offset and Len of + // data doesn't correspond to the physical length or offset + runs := make([]arrow.ArrayData, len(data)) + values := make([]arrow.ArrayData, len(data)) + for i, d := range data { + plen := encoded.GetPhysicalLength(d) + off := encoded.FindPhysicalOffset(d) + + runs[i] = NewSliceData(d.Children()[0], int64(off), int64(off+plen)) + defer runs[i].Release() + values[i] = NewSliceData(d.Children()[1], int64(off), int64(off+plen)) + defer values[i].Release() + + physicalLength, overflow = addOvf(physicalLength, plen) + if overflow { + return nil, fmt.Errorf("%w: run end encoded array length must fit into a 32-bit signed integer", + arrow.ErrInvalid) + } + } + + runEndsByteWidth := runs[0].DataType().(arrow.FixedWidthDataType).Bytes() + runEndsBuffers := gatherFixedBuffers(runs, 1, runEndsByteWidth) + outRunEndsLen := physicalLength * runEndsByteWidth + outRunEndsBuf := memory.NewResizableBuffer(mem) + outRunEndsBuf.Resize(outRunEndsLen) + defer outRunEndsBuf.Release() + + if err := updateRunEnds(runEndsByteWidth, data, runEndsBuffers, outRunEndsBuf); err != nil { + return nil, err + } + + out.childData = make([]arrow.ArrayData, 2) + out.childData[0] = NewData(data[0].Children()[0].DataType(), int(physicalLength), + []*memory.Buffer{nil, outRunEndsBuf}, nil, 0, 0) + + var err error + out.childData[1], err = concat(values, mem) + if err != nil { + out.childData[0].Release() + return nil, err + } + default: return nil, fmt.Errorf("concatenate not implemented for type %s", dt) } @@ -565,3 +615,123 @@ func concatBitmaps(bitmaps []bitmap, mem memory.Allocator) (*memory.Buffer, erro } return out, nil } + +func updateRunEnds(byteWidth int, inputData []arrow.ArrayData, inputBuffers []*memory.Buffer, outputBuffer *memory.Buffer) error { + switch byteWidth { + case 2: + out := arrow.Int16Traits.CastFromBytes(outputBuffer.Bytes()) + return updateRunsInt16(inputData, inputBuffers, out) + case 4: + out := arrow.Int32Traits.CastFromBytes(outputBuffer.Bytes()) + return updateRunsInt32(inputData, inputBuffers, out) + case 8: + out := arrow.Int64Traits.CastFromBytes(outputBuffer.Bytes()) + return updateRunsInt64(inputData, inputBuffers, out) + } + return fmt.Errorf("%w: invalid dataType for RLE runEnds", arrow.ErrInvalid) +} + +func updateRunsInt16(inputData []arrow.ArrayData, inputBuffers []*memory.Buffer, output []int16) error { + // for now we will not attempt to optimize by checking if we + // can fold the end and beginning of each array we're concatenating + // into a single run + pos := 0 + for i, buf := range inputBuffers { + if buf.Len() == 0 { + continue + } + src := arrow.Int16Traits.CastFromBytes(buf.Bytes()) + if pos == 0 { + pos += copy(output, src) + continue + } + + lastEnd := output[pos-1] + // we can check the last runEnd in the src and add it to the + // last value that we're adjusting them all by to see if we + // are going to overflow + if int64(lastEnd)+int64(int(src[len(src)-1])-inputData[i].Offset()) > math.MaxInt16 { + return fmt.Errorf("%w: overflow in run-length-encoded run ends concat", arrow.ErrInvalid) + } + + // adjust all of the run ends by first normalizing them (e - data[i].offset) + // then adding the previous value we ended on. Since the offset + // is a logical length offset it should be accurate to just subtract + // it from each value. + for j, e := range src { + output[pos+j] = lastEnd + int16(int(e)-inputData[i].Offset()) + } + pos += len(src) + } + return nil +} + +func updateRunsInt32(inputData []arrow.ArrayData, inputBuffers []*memory.Buffer, output []int32) error { + // for now we will not attempt to optimize by checking if we + // can fold the end and beginning of each array we're concatenating + // into a single run + pos := 0 + for i, buf := range inputBuffers { + if buf.Len() == 0 { + continue + } + src := arrow.Int32Traits.CastFromBytes(buf.Bytes()) + if pos == 0 { + pos += copy(output, src) + continue + } + + lastEnd := output[pos-1] + // we can check the last runEnd in the src and add it to the + // last value that we're adjusting them all by to see if we + // are going to overflow + if int64(lastEnd)+int64(int(src[len(src)-1])-inputData[i].Offset()) > math.MaxInt32 { + return fmt.Errorf("%w: overflow in run-length-encoded run ends concat", arrow.ErrInvalid) + } + + // adjust all of the run ends by first normalizing them (e - data[i].offset) + // then adding the previous value we ended on. Since the offset + // is a logical length offset it should be accurate to just subtract + // it from each value. + for j, e := range src { + output[pos+j] = lastEnd + int32(int(e)-inputData[i].Offset()) + } + pos += len(src) + } + return nil +} + +func updateRunsInt64(inputData []arrow.ArrayData, inputBuffers []*memory.Buffer, output []int64) error { + // for now we will not attempt to optimize by checking if we + // can fold the end and beginning of each array we're concatenating + // into a single run + pos := 0 + for i, buf := range inputBuffers { + if buf.Len() == 0 { + continue + } + src := arrow.Int64Traits.CastFromBytes(buf.Bytes()) + if pos == 0 { + pos += copy(output, src) + continue + } + + lastEnd := output[pos-1] + // we can check the last runEnd in the src and add it to the + // last value that we're adjusting them all by to see if we + // are going to overflow + if uint64(lastEnd)+uint64(int(src[len(src)-1])-inputData[i].Offset()) > math.MaxInt64 { + return fmt.Errorf("%w: overflow in run-length-encoded run ends concat", arrow.ErrInvalid) + } + + // adjust all of the run ends by first normalizing them (e - data[i].offset) + // then adding the previous value we ended on. Since the offset + // is a logical length offset it should be accurate to just subtract + // it from each value. + for j, e := range src { + output[pos+j] = lastEnd + e - int64(inputData[i].Offset()) + } + pos += len(src) + } + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/data.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/data.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/data.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/data.go index 7aad760..55a84d8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/data.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/data.go @@ -22,9 +22,9 @@ import ( "sync/atomic" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" ) // Data represents the memory and metadata of an Arrow array. diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal128.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal128.go similarity index 85% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal128.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal128.go index 3b773c0..bc2db26 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal128.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal128.go @@ -25,11 +25,11 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/decimal128" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -48,6 +48,13 @@ func NewDecimal128Data(data arrow.ArrayData) *Decimal128 { } func (a *Decimal128) Value(i int) decimal128.Num { return a.values[i] } +func (a *Decimal128) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } else { + return a.GetOneForMarshal(i).(string) + } +} func (a *Decimal128) Values() []decimal128.Num { return a.values } @@ -80,7 +87,7 @@ func (a *Decimal128) setData(data *Data) { } } -func (a *Decimal128) getOneForMarshal(i int) interface{} { +func (a *Decimal128) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -91,10 +98,11 @@ func (a *Decimal128) getOneForMarshal(i int) interface{} { return f.Text('g', int(typ.Precision)) } +// ["1.23", ] func (a *Decimal128) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := 0; i < a.Len(); i++ { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) } @@ -259,32 +267,45 @@ func (b *Decimal128Builder) newData() (data *Data) { return } -func (b *Decimal128Builder) unmarshalOne(dec *json.Decoder) error { - t, err := dec.Token() +func (b *Decimal128Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + val, err := decimal128.FromString(s, b.dtype.Precision, b.dtype.Scale) if err != nil { + b.AppendNull() return err } + b.Append(val) + return nil +} - var out *big.Float - var tmp big.Int +func (b *Decimal128Builder) UnmarshalOne(dec *json.Decoder) error { + t, err := dec.Token() + if err != nil { + return err + } switch v := t.(type) { case float64: - out = big.NewFloat(v) + val, err := decimal128.FromFloat64(v, b.dtype.Precision, b.dtype.Scale) + if err != nil { + return err + } + b.Append(val) case string: - // there's no strong rationale for using ToNearestAway, it's just - // what got me the closest equivalent values with the values - // that I tested with, and there isn't a good way to push - // an option all the way down here to control it. - out, _, err = big.ParseFloat(v, 10, 127, big.ToNearestAway) + val, err := decimal128.FromString(v, b.dtype.Precision, b.dtype.Scale) if err != nil { return err } + b.Append(val) case json.Number: - out, _, err = big.ParseFloat(v.String(), 10, 127, big.ToNearestAway) + val, err := decimal128.FromString(v.String(), b.dtype.Precision, b.dtype.Scale) if err != nil { return err } + b.Append(val) case nil: b.AppendNull() return nil @@ -296,14 +317,12 @@ func (b *Decimal128Builder) unmarshalOne(dec *json.Decoder) error { } } - val, _ := out.Mul(out, big.NewFloat(math.Pow10(int(b.dtype.Scale)))).Int(&tmp) - b.Append(decimal128.FromBigInt(val)) return nil } -func (b *Decimal128Builder) unmarshal(dec *json.Decoder) error { +func (b *Decimal128Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -325,7 +344,7 @@ func (b *Decimal128Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("decimal128 builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal256.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal256.go similarity index 85% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal256.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal256.go index 4fe0e45..0b9cfed 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/decimal256.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/decimal256.go @@ -25,11 +25,11 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/decimal256" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -48,6 +48,13 @@ func NewDecimal256Data(data arrow.ArrayData) *Decimal256 { } func (a *Decimal256) Value(i int) decimal256.Num { return a.values[i] } +func (a *Decimal256) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } else { + return a.GetOneForMarshal(i).(string) + } +} func (a *Decimal256) Values() []decimal256.Num { return a.values } @@ -80,7 +87,7 @@ func (a *Decimal256) setData(data *Data) { } } -func (a *Decimal256) getOneForMarshal(i int) interface{} { +func (a *Decimal256) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -94,7 +101,7 @@ func (a *Decimal256) getOneForMarshal(i int) interface{} { func (a *Decimal256) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := 0; i < a.Len(); i++ { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) } @@ -259,31 +266,45 @@ func (b *Decimal256Builder) newData() (data *Data) { return } -func (b *Decimal256Builder) unmarshalOne(dec *json.Decoder) error { - t, err := dec.Token() +func (b *Decimal256Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + val, err := decimal256.FromString(s, b.dtype.Precision, b.dtype.Scale) if err != nil { + b.AppendNull() return err } + b.Append(val) + return nil +} - var out *big.Float +func (b *Decimal256Builder) UnmarshalOne(dec *json.Decoder) error { + t, err := dec.Token() + if err != nil { + return err + } switch v := t.(type) { case float64: - out = big.NewFloat(v) + val, err := decimal256.FromFloat64(v, b.dtype.Precision, b.dtype.Scale) + if err != nil { + return err + } + b.Append(val) case string: - // there's no strong rationale for using ToNearestAway, it's just - // what got me the closest equivalent values with the values - // that I tested with, and there isn't a good way to push - // an option all the way down here to control it. - out, _, err = big.ParseFloat(v, 10, 255, big.ToNearestAway) + out, err := decimal256.FromString(v, b.dtype.Precision, b.dtype.Scale) if err != nil { return err } + b.Append(out) case json.Number: - out, _, err = big.ParseFloat(v.String(), 10, 255, big.ToNearestAway) + out, err := decimal256.FromString(v.String(), b.dtype.Precision, b.dtype.Scale) if err != nil { return err } + b.Append(out) case nil: b.AppendNull() return nil @@ -295,14 +316,12 @@ func (b *Decimal256Builder) unmarshalOne(dec *json.Decoder) error { } } - val, _ := out.Mul(out, big.NewFloat(math.Pow10(int(b.dtype.Scale)))).Int(nil) - b.Append(decimal256.FromBigInt(val)) return nil } -func (b *Decimal256Builder) unmarshal(dec *json.Decoder) error { +func (b *Decimal256Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -324,7 +343,7 @@ func (b *Decimal256Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("arrow/array: decimal256 builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/dictionary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/dictionary.go similarity index 94% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/dictionary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/dictionary.go index 2409e29..6ecda0b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/dictionary.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/dictionary.go @@ -25,14 +25,14 @@ import ( "sync/atomic" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/decimal128" - "github.com/apache/arrow/go/v10/arrow/float16" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/internal/hashing" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/hashing" + "github.com/apache/arrow/go/v12/internal/utils" "github.com/goccy/go-json" ) @@ -213,13 +213,15 @@ func (d *Dictionary) Release() { func (d *Dictionary) setData(data *Data) { d.array.setData(data) + dictType := data.dtype.(*arrow.DictionaryType) if data.dictionary == nil { - panic("arrow/array: no dictionary set in Data for Dictionary array") + if data.length > 0 { + panic("arrow/array: no dictionary set in Data for Dictionary array") + } + } else { + debug.Assert(arrow.TypeEqual(dictType.ValueType, data.dictionary.DataType()), "mismatched dictionary value types") } - dictType := data.dtype.(*arrow.DictionaryType) - debug.Assert(arrow.TypeEqual(dictType.ValueType, data.dictionary.DataType()), "mismatched dictionary value types") - indexData := NewData(dictType.IndexType, data.length, data.buffers, data.childData, data.nulls, data.offset) defer indexData.Release() d.indices = MakeFromData(indexData) @@ -251,6 +253,10 @@ func (d *Dictionary) CanCompareIndices(other *Dictionary) bool { return ArraySliceEqual(d.Dictionary(), 0, minlen, other.Dictionary(), 0, minlen) } +func (d *Dictionary) ValueStr(i int) string { + return d.Dictionary().ValueStr(d.GetValueIndex(i)) +} + func (d *Dictionary) String() string { return fmt.Sprintf("{ dictionary: %v\n indices: %v }", d.Dictionary(), d.Indices()) } @@ -279,18 +285,18 @@ func (d *Dictionary) GetValueIndex(i int) int { return -1 } -func (d *Dictionary) getOneForMarshal(i int) interface{} { +func (d *Dictionary) GetOneForMarshal(i int) interface{} { if d.IsNull(i) { return nil } vidx := d.GetValueIndex(i) - return d.Dictionary().(arraymarshal).getOneForMarshal(vidx) + return d.Dictionary().GetOneForMarshal(vidx) } func (d *Dictionary) MarshalJSON() ([]byte, error) { vals := make([]interface{}, d.Len()) for i := 0; i < d.Len(); i++ { - vals[i] = d.getOneForMarshal(i) + vals[i] = d.GetOneForMarshal(i) } return json.Marshal(vals) } @@ -400,6 +406,7 @@ type DictionaryBuilder interface { NewDictionaryArray() *Dictionary NewDelta() (indices, delta arrow.Array, err error) AppendArray(arrow.Array) error + AppendIndices([]int, []bool) ResetFull() } @@ -718,14 +725,14 @@ func (b *dictionaryBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("dictionary builder must upack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } -func (b *dictionaryBuilder) unmarshal(dec *json.Decoder) error { +func (b *dictionaryBuilder) Unmarshal(dec *json.Decoder) error { bldr := NewBuilder(b.mem, b.dt.ValueType) defer bldr.Release() - if err := bldr.unmarshal(dec); err != nil { + if err := bldr.Unmarshal(dec); err != nil { return err } @@ -734,7 +741,11 @@ func (b *dictionaryBuilder) unmarshal(dec *json.Decoder) error { return b.AppendArray(arr) } -func (b *dictionaryBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *dictionaryBuilder) AppendValueFromString(s string) error { + return fmt.Errorf("%w: AppendValueFromString to dictionary not yet implemented", arrow.ErrNotImplemented) +} + +func (b *dictionaryBuilder) UnmarshalOne(dec *json.Decoder) error { return errors.New("unmarshal json to dictionary not yet implemented") } @@ -771,7 +782,7 @@ func (b *dictionaryBuilder) newWithDictOffset(offset int) (indices, dict *Data, indices.Retain() b.deltaOffset = b.memoTable.Size() - dict, err = getDictArrayData(b.mem, b.dt.ValueType, b.memoTable, offset) + dict, err = GetDictArrayData(b.mem, b.dt.ValueType, b.memoTable, offset) b.reset() return } @@ -883,6 +894,60 @@ func (b *dictionaryBuilder) AppendArray(arr arrow.Array) error { return nil } +func (b *dictionaryBuilder) AppendIndices(indices []int, valid []bool) { + b.length += len(indices) + switch idxbldr := b.idxBuilder.Builder.(type) { + case *Int8Builder: + vals := make([]int8, len(indices)) + for i, v := range indices { + vals[i] = int8(v) + } + idxbldr.AppendValues(vals, valid) + case *Int16Builder: + vals := make([]int16, len(indices)) + for i, v := range indices { + vals[i] = int16(v) + } + idxbldr.AppendValues(vals, valid) + case *Int32Builder: + vals := make([]int32, len(indices)) + for i, v := range indices { + vals[i] = int32(v) + } + idxbldr.AppendValues(vals, valid) + case *Int64Builder: + vals := make([]int64, len(indices)) + for i, v := range indices { + vals[i] = int64(v) + } + idxbldr.AppendValues(vals, valid) + case *Uint8Builder: + vals := make([]uint8, len(indices)) + for i, v := range indices { + vals[i] = uint8(v) + } + idxbldr.AppendValues(vals, valid) + case *Uint16Builder: + vals := make([]uint16, len(indices)) + for i, v := range indices { + vals[i] = uint16(v) + } + idxbldr.AppendValues(vals, valid) + case *Uint32Builder: + vals := make([]uint32, len(indices)) + for i, v := range indices { + vals[i] = uint32(v) + } + idxbldr.AppendValues(vals, valid) + case *Uint64Builder: + vals := make([]uint64, len(indices)) + for i, v := range indices { + vals[i] = uint64(v) + } + idxbldr.AppendValues(vals, valid) + } +} + type NullDictionaryBuilder struct { dictionaryBuilder } @@ -1471,7 +1536,7 @@ func (u *unifier) GetResult() (outType arrow.DataType, outDict arrow.Array, err } outType = &arrow.DictionaryType{IndexType: indexType, ValueType: u.valueType} - dictData, err := getDictArrayData(u.mem, u.valueType, u.memoTable, 0) + dictData, err := GetDictArrayData(u.mem, u.valueType, u.memoTable, 0) if err != nil { return nil, nil, err } @@ -1496,7 +1561,7 @@ func (u *unifier) GetResultWithIndexType(indexType arrow.DataType) (arrow.Array, case arrow.INT16: toobig = dictLen > math.MaxInt16 case arrow.UINT32: - toobig = dictLen > math.MaxUint32 + toobig = uint(dictLen) > math.MaxUint32 case arrow.INT32: toobig = dictLen > math.MaxInt32 case arrow.UINT64: @@ -1509,7 +1574,7 @@ func (u *unifier) GetResultWithIndexType(indexType arrow.DataType) (arrow.Array, return nil, errors.New("arrow/array: cannot combine dictionaries. unified dictionary requires a larger index type") } - dictData, err := getDictArrayData(u.mem, u.valueType, u.memoTable, 0) + dictData, err := GetDictArrayData(u.mem, u.valueType, u.memoTable, 0) if err != nil { return nil, err } diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/diff.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/diff.go new file mode 100644 index 0000000..3203017 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/diff.go @@ -0,0 +1,315 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 array + +import ( + "fmt" + "strings" + + "github.com/apache/arrow/go/v12/arrow" +) + +// Edit represents one entry in the edit script to compare two arrays. +type Edit struct { + Insert bool + RunLength int64 +} + +// Edits is a slice of Edit structs that represents an edit script to compare two arrays. +// When applied to the base array, it produces the target array. +// Each element of "insert" determines whether an element was inserted into (true) +// or deleted from (false) base. Each insertion or deletion is followed by a run of +// elements which are unchanged from base to target; the length of this run is stored +// in RunLength. (Note that the edit script begins and ends with a run of shared +// elements but both fields of the struct must have the same length. To accommodate this +// the first element of "insert" should be ignored.) +// +// For example for base "hlloo" and target "hello", the edit script would be +// [ +// +// {"insert": false, "run_length": 1}, // leading run of length 1 ("h") +// {"insert": true, "run_length": 3}, // insert("e") then a run of length 3 ("llo") +// {"insert": false, "run_length": 0} // delete("o") then an empty run +// +// ] +type Edits []Edit + +// String returns a simple string representation of the edit script. +func (e Edits) String() string { + return fmt.Sprintf("%v", []Edit(e)) +} + +// UnifiedDiff returns a string representation of the diff of base and target in Unified Diff format. +func (e Edits) UnifiedDiff(base, target arrow.Array) string { + var s strings.Builder + baseIndex := int64(0) + targetIndex := int64(0) + wrotePosition := false + for i := 0; i < len(e); i++ { + if i > 0 { + if !wrotePosition { + s.WriteString(fmt.Sprintf("@@ -%d, +%d @@\n", baseIndex, targetIndex)) + wrotePosition = true + } + if e[i].Insert { + s.WriteString(fmt.Sprintf("+%v\n", stringAt(target, targetIndex))) + targetIndex++ + } else { + s.WriteString(fmt.Sprintf("-%v\n", stringAt(base, baseIndex))) + baseIndex++ + } + } + for j := int64(0); j < e[i].RunLength; j++ { + baseIndex++ + targetIndex++ + wrotePosition = false + } + } + return s.String() +} + +func stringAt(arr arrow.Array, i int64) string { + if arr.IsNull(int(i)) { + return "null" + } + dt := arr.DataType() + switch { + case arrow.TypeEqual(dt, arrow.PrimitiveTypes.Float32): + return fmt.Sprintf("%f", arr.(*Float32).Value(int(i))) + case arrow.TypeEqual(dt, arrow.PrimitiveTypes.Float64): + return fmt.Sprintf("%f", arr.(*Float64).Value(int(i))) + case arrow.TypeEqual(dt, arrow.PrimitiveTypes.Date32): + return arr.(*Date32).Value(int(i)).FormattedString() + case arrow.TypeEqual(dt, arrow.PrimitiveTypes.Date64): + return arr.(*Date64).Value(int(i)).FormattedString() + case arrow.TypeEqual(dt, arrow.FixedWidthTypes.Timestamp_s): + return arr.(*Timestamp).Value(int(i)).ToTime(arrow.Second).String() + case arrow.TypeEqual(dt, arrow.FixedWidthTypes.Timestamp_ms): + return arr.(*Timestamp).Value(int(i)).ToTime(arrow.Millisecond).String() + case arrow.TypeEqual(dt, arrow.FixedWidthTypes.Timestamp_us): + return arr.(*Timestamp).Value(int(i)).ToTime(arrow.Microsecond).String() + case arrow.TypeEqual(dt, arrow.FixedWidthTypes.Timestamp_ns): + return arr.(*Timestamp).Value(int(i)).ToTime(arrow.Nanosecond).String() + } + s := NewSlice(arr, i, i+1) + defer s.Release() + st, _ := s.MarshalJSON() + return strings.Trim(string(st[1:len(st)-1]), "\n") +} + +// Diff compares two arrays, returning an edit script which expresses the difference +// between them. The edit script can be applied to the base array to produce the target. +// 'base' is a baseline for comparison. +// 'target' is an array of identical type to base whose elements differ from base's. +func Diff(base, target arrow.Array) (edits Edits, err error) { + if !arrow.TypeEqual(base.DataType(), target.DataType()) { + return nil, fmt.Errorf("%w: only taking the diff of like-typed arrays is supported", arrow.ErrNotImplemented) + } + switch base.DataType().ID() { + case arrow.EXTENSION: + return Diff(base.(ExtensionArray).Storage(), target.(ExtensionArray).Storage()) + case arrow.DICTIONARY: + return nil, fmt.Errorf("%w: diffing arrays of type %s is not implemented", arrow.ErrNotImplemented, base.DataType()) + case arrow.RUN_END_ENCODED: + return nil, fmt.Errorf("%w: diffing arrays of type %s is not implemented", arrow.ErrNotImplemented, base.DataType()) + } + d := newQuadraticSpaceMyersDiff(base, target) + return d.Diff() +} + +// editPoint represents an intermediate state in the comparison of two arrays +type editPoint struct { + base int + target int +} + +type quadraticSpaceMyersDiff struct { + base arrow.Array + target arrow.Array + finishIndex int + editCount int + endpointBase []int + insert []bool + baseBegin int + targetBegin int + baseEnd int + targetEnd int +} + +func newQuadraticSpaceMyersDiff(base, target arrow.Array) *quadraticSpaceMyersDiff { + d := &quadraticSpaceMyersDiff{ + base: base, + target: target, + finishIndex: -1, + editCount: 0, + endpointBase: []int{}, + insert: []bool{}, + baseBegin: 0, + targetBegin: 0, + baseEnd: base.Len(), + targetEnd: target.Len(), + } + d.endpointBase = []int{d.extendFrom(editPoint{d.baseBegin, d.targetBegin}).base} + if d.baseEnd-d.baseBegin == d.targetEnd-d.targetBegin && d.endpointBase[0] == d.baseEnd { + // trivial case: base == target + d.finishIndex = 0 + } + return d +} + +func (d *quadraticSpaceMyersDiff) valuesEqual(baseIndex, targetIndex int) bool { + baseNull := d.base.IsNull(baseIndex) + targetNull := d.target.IsNull(targetIndex) + if baseNull || targetNull { + return baseNull && targetNull + } + return SliceEqual(d.base, int64(baseIndex), int64(baseIndex+1), d.target, int64(targetIndex), int64(targetIndex+1)) +} + +// increment the position within base and target (the elements skipped in this way were +// present in both sequences) +func (d *quadraticSpaceMyersDiff) extendFrom(p editPoint) editPoint { + for p.base != d.baseEnd && p.target != d.targetEnd { + if !d.valuesEqual(p.base, p.target) { + break + } + p.base++ + p.target++ + } + return p +} + +// increment the position within base (the element pointed to was deleted) +// then extend maximally +func (d *quadraticSpaceMyersDiff) deleteOne(p editPoint) editPoint { + if p.base != d.baseEnd { + p.base++ + } + return d.extendFrom(p) +} + +// increment the position within target (the element pointed to was inserted) +// then extend maximally +func (d *quadraticSpaceMyersDiff) insertOne(p editPoint) editPoint { + if p.target != d.targetEnd { + p.target++ + } + return d.extendFrom(p) +} + +// beginning of a range for storing per-edit state in endpointBase and insert +func storageOffset(editCount int) int { + return editCount * (editCount + 1) / 2 +} + +// given edit_count and index, augment endpointBase[index] with the corresponding +// position in target (which is only implicitly represented in editCount, index) +func (d *quadraticSpaceMyersDiff) getEditPoint(editCount, index int) editPoint { + insertionsMinusDeletions := 2*(index-storageOffset(editCount)) - editCount + maximalBase := d.endpointBase[index] + maximalTarget := min(d.targetBegin+((maximalBase-d.baseBegin)+insertionsMinusDeletions), d.targetEnd) + return editPoint{maximalBase, maximalTarget} +} + +func (d *quadraticSpaceMyersDiff) Next() { + d.editCount++ + if len(d.endpointBase) < storageOffset(d.editCount+1) { + d.endpointBase = append(d.endpointBase, make([]int, storageOffset(d.editCount+1)-len(d.endpointBase))...) + } + if len(d.insert) < storageOffset(d.editCount+1) { + d.insert = append(d.insert, make([]bool, storageOffset(d.editCount+1)-len(d.insert))...) + } + previousOffset := storageOffset(d.editCount - 1) + currentOffset := storageOffset(d.editCount) + + // try deleting from base first + for i, iOut := 0, 0; i < d.editCount; i, iOut = i+1, iOut+1 { + previousEndpoint := d.getEditPoint(d.editCount-1, i+previousOffset) + d.endpointBase[iOut+currentOffset] = d.deleteOne(previousEndpoint).base + } + + // check if inserting from target could do better + for i, iOut := 0, 1; i < d.editCount; i, iOut = i+1, iOut+1 { + // retrieve the previously computed best endpoint for (editCount, iOut) + // for comparison with the best endpoint achievable with an insertion + endpointAfterDeletion := d.getEditPoint(d.editCount, iOut+currentOffset) + + previousEndpoint := d.getEditPoint(d.editCount-1, i+previousOffset) + endpointAfterInsertion := d.insertOne(previousEndpoint) + + if endpointAfterInsertion.base-endpointAfterDeletion.base >= 0 { + // insertion was more efficient; keep it and mark the insertion in insert + d.insert[iOut+currentOffset] = true + d.endpointBase[iOut+currentOffset] = endpointAfterInsertion.base + } + } + + finish := editPoint{d.baseEnd, d.targetEnd} + for iOut := 0; iOut < d.editCount+1; iOut++ { + if d.getEditPoint(d.editCount, iOut+currentOffset) == finish { + d.finishIndex = iOut + currentOffset + return + } + } +} + +func (d *quadraticSpaceMyersDiff) Done() bool { + return d.finishIndex != -1 +} + +func (d *quadraticSpaceMyersDiff) GetEdits() (Edits, error) { + if !d.Done() { + panic("GetEdits called but Done() = false") + } + + length := d.editCount + 1 + edits := make(Edits, length) + index := d.finishIndex + endpoint := d.getEditPoint(d.editCount, d.finishIndex) + + for i := d.editCount; i > 0; i-- { + insert := d.insert[index] + edits[i].Insert = insert + insertionsMinusDeletions := (endpoint.base - d.baseBegin) - (endpoint.target - d.targetBegin) + if insert { + insertionsMinusDeletions++ + } else { + insertionsMinusDeletions-- + } + index = (i-1-insertionsMinusDeletions)/2 + storageOffset(i-1) + + // endpoint of previous edit + previous := d.getEditPoint(i-1, index) + in := 0 + if insert { + in = 1 + } + edits[i].RunLength = int64(endpoint.base - previous.base - (1 - in)) + endpoint = previous + } + edits[0].Insert = false + edits[0].RunLength = int64(endpoint.base - d.baseBegin) + + return edits, nil +} + +func (d *quadraticSpaceMyersDiff) Diff() (edits Edits, err error) { + for !d.Done() { + d.Next() + } + return d.GetEdits() +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/doc.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/doc.go diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/encoded.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/encoded.go new file mode 100644 index 0000000..3571a97 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/encoded.go @@ -0,0 +1,470 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 array + +import ( + "bytes" + "fmt" + "math" + "reflect" + "strings" + "sync/atomic" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/encoded" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/utils" + "github.com/goccy/go-json" +) + +// RunEndEncoded represents an array containing two children: +// an array of int32 values defining the ends of each run of values +// and an array of values +type RunEndEncoded struct { + array + + ends arrow.Array + values arrow.Array +} + +func NewRunEndEncodedArray(runEnds, values arrow.Array, logicalLength, offset int) *RunEndEncoded { + data := NewData(arrow.RunEndEncodedOf(runEnds.DataType(), values.DataType()), logicalLength, + []*memory.Buffer{nil}, []arrow.ArrayData{runEnds.Data(), values.Data()}, 0, offset) + defer data.Release() + return NewRunEndEncodedData(data) +} + +func NewRunEndEncodedData(data arrow.ArrayData) *RunEndEncoded { + r := &RunEndEncoded{} + r.refCount = 1 + r.setData(data.(*Data)) + return r +} + +func (r *RunEndEncoded) Values() arrow.Array { return r.values } +func (r *RunEndEncoded) RunEndsArr() arrow.Array { return r.ends } + +func (r *RunEndEncoded) Retain() { + r.array.Retain() + r.values.Retain() + r.ends.Retain() +} + +func (r *RunEndEncoded) Release() { + r.array.Release() + r.values.Release() + r.ends.Release() +} + +// LogicalValuesArray returns an array holding the values of each +// run, only over the range of run values inside the logical offset/length +// range of the parent array. +// +// Example +// +// For this array: +// RunEndEncoded: { Offset: 150, Length: 1500 } +// RunEnds: [ 1, 2, 4, 6, 10, 1000, 1750, 2000 ] +// Values: [ "a", "b", "c", "d", "e", "f", "g", "h" ] +// +// LogicalValuesArray will return the following array: +// [ "f", "g" ] +// +// This is because the offset of 150 tells it to skip the values until +// "f" which corresponds with the logical offset (the run from 10 - 1000), +// and stops after "g" because the length + offset goes to 1650 which is +// within the run from 1000 - 1750, corresponding to the "g" value. +// +// Note +// +// The return from this needs to be Released. +func (r *RunEndEncoded) LogicalValuesArray() arrow.Array { + physOffset := r.GetPhysicalOffset() + physLength := r.GetPhysicalLength() + data := NewSliceData(r.data.Children()[1], int64(physOffset), int64(physOffset+physLength)) + defer data.Release() + return MakeFromData(data) +} + +// LogicalRunEndsArray returns an array holding the logical indexes +// of each run end, only over the range of run end values relative +// to the logical offset/length range of the parent array. +// +// For arrays with an offset, this is not a slice of the existing +// internal run ends array. Instead a new array is created with run-ends +// that are adjusted so the new array can have an offset of 0. As a result +// this method can be expensive to call for an array with a non-zero offset. +// +// Example +// +// For this array: +// RunEndEncoded: { Offset: 150, Length: 1500 } +// RunEnds: [ 1, 2, 4, 6, 10, 1000, 1750, 2000 ] +// Values: [ "a", "b", "c", "d", "e", "f", "g", "h" ] +// +// LogicalRunEndsArray will return the following array: +// [ 850, 1500 ] +// +// This is because the offset of 150 tells us to skip all run-ends less +// than 150 (by finding the physical offset), and we adjust the run-ends +// accordingly (1000 - 150 = 850). The logical length of the array is 1500, +// so we know we don't want to go past the 1750 run end. Thus the last +// run-end is determined by doing: min(1750 - 150, 1500) = 1500. +// +// Note +// +// The return from this needs to be Released +func (r *RunEndEncoded) LogicalRunEndsArray(mem memory.Allocator) arrow.Array { + physOffset := r.GetPhysicalOffset() + physLength := r.GetPhysicalLength() + + if r.data.offset == 0 { + data := NewSliceData(r.data.childData[0], 0, int64(physLength)) + defer data.Release() + return MakeFromData(data) + } + + bldr := NewBuilder(mem, r.data.childData[0].DataType()) + defer bldr.Release() + bldr.Resize(physLength) + + switch e := r.ends.(type) { + case *Int16: + for _, v := range e.Int16Values()[physOffset : physOffset+physLength] { + v -= int16(r.data.offset) + v = int16(utils.MinInt(int(v), r.data.length)) + bldr.(*Int16Builder).Append(v) + } + case *Int32: + for _, v := range e.Int32Values()[physOffset : physOffset+physLength] { + v -= int32(r.data.offset) + v = int32(utils.MinInt(int(v), r.data.length)) + bldr.(*Int32Builder).Append(v) + } + case *Int64: + for _, v := range e.Int64Values()[physOffset : physOffset+physLength] { + v -= int64(r.data.offset) + v = int64(utils.MinInt(int(v), r.data.length)) + bldr.(*Int64Builder).Append(v) + } + } + + return bldr.NewArray() +} + +func (r *RunEndEncoded) setData(data *Data) { + if len(data.childData) != 2 { + panic(fmt.Errorf("%w: arrow/array: RLE array must have exactly 2 children", arrow.ErrInvalid)) + } + debug.Assert(data.dtype.ID() == arrow.RUN_END_ENCODED, "invalid type for RunLengthEncoded") + if !data.dtype.(*arrow.RunEndEncodedType).ValidRunEndsType(data.childData[0].DataType()) { + panic(fmt.Errorf("%w: arrow/array: run ends array must be int16, int32, or int64", arrow.ErrInvalid)) + } + if data.childData[0].NullN() > 0 { + panic(fmt.Errorf("%w: arrow/array: run ends array cannot contain nulls", arrow.ErrInvalid)) + } + + r.array.setData(data) + + r.ends = MakeFromData(r.data.childData[0]) + r.values = MakeFromData(r.data.childData[1]) +} + +func (r *RunEndEncoded) GetPhysicalOffset() int { + return encoded.FindPhysicalOffset(r.data) +} + +func (r *RunEndEncoded) GetPhysicalLength() int { + return encoded.GetPhysicalLength(r.data) +} + +func (r *RunEndEncoded) ValueStr(i int) string { + value := r.values.GetOneForMarshal(i) + if byts, ok := value.(json.RawMessage); ok { + value = string(byts) + } + return fmt.Sprintf("{%d -> %v}", + r.ends.GetOneForMarshal(i), + value) +} +func (r *RunEndEncoded) String() string { + var buf bytes.Buffer + buf.WriteByte('[') + for i := 0; i < r.ends.Len(); i++ { + if i != 0 { + buf.WriteByte(',') + } + + value := r.values.GetOneForMarshal(i) + if byts, ok := value.(json.RawMessage); ok { + value = string(byts) + } + fmt.Fprintf(&buf, "{%d -> %v}", + r.ends.GetOneForMarshal(i), + value) + } + + buf.WriteByte(']') + return buf.String() +} + +func (r *RunEndEncoded) GetOneForMarshal(i int) interface{} { + physIndex := encoded.FindPhysicalIndex(r.data, i+r.data.offset) + return r.values.GetOneForMarshal(physIndex) +} + +func (r *RunEndEncoded) MarshalJSON() ([]byte, error) { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + buf.WriteByte('[') + for i := 0; i < r.Len(); i++ { + if i != 0 { + buf.WriteByte(',') + } + if err := enc.Encode(r.GetOneForMarshal(i)); err != nil { + return nil, err + } + } + buf.WriteByte(']') + return buf.Bytes(), nil +} + +func arrayRunEndEncodedEqual(l, r *RunEndEncoded) bool { + // types were already checked before getting here, so we know + // the encoded types are equal + mr := encoded.NewMergedRuns([2]arrow.Array{l, r}) + for mr.Next() { + lIndex := mr.IndexIntoArray(0) + rIndex := mr.IndexIntoArray(1) + if !SliceEqual(l.values, lIndex, lIndex+1, r.values, rIndex, rIndex+1) { + return false + } + } + return true +} + +func arrayRunEndEncodedApproxEqual(l, r *RunEndEncoded, opt equalOption) bool { + // types were already checked before getting here, so we know + // the encoded types are equal + mr := encoded.NewMergedRuns([2]arrow.Array{l, r}) + for mr.Next() { + lIndex := mr.IndexIntoArray(0) + rIndex := mr.IndexIntoArray(1) + if !sliceApproxEqual(l.values, lIndex, lIndex+1, r.values, rIndex, rIndex+1, opt) { + return false + } + } + return true +} + +type RunEndEncodedBuilder struct { + builder + + dt arrow.DataType + runEnds Builder + values Builder + maxRunEnd uint64 + + lastUnmarshalled interface{} +} + +func NewRunEndEncodedBuilder(mem memory.Allocator, runEnds, encoded arrow.DataType) *RunEndEncodedBuilder { + dt := arrow.RunEndEncodedOf(runEnds, encoded) + if !dt.ValidRunEndsType(runEnds) { + panic("arrow/ree: invalid runEnds type for run length encoded array") + } + + var maxEnd uint64 + switch runEnds.ID() { + case arrow.INT16: + maxEnd = math.MaxInt16 + case arrow.INT32: + maxEnd = math.MaxInt32 + case arrow.INT64: + maxEnd = math.MaxInt64 + } + return &RunEndEncodedBuilder{ + builder: builder{refCount: 1, mem: mem}, + dt: dt, + runEnds: NewBuilder(mem, runEnds), + values: NewBuilder(mem, encoded), + maxRunEnd: maxEnd, + lastUnmarshalled: nil, + } +} + +func (b *RunEndEncodedBuilder) Type() arrow.DataType { + return b.dt +} + +func (b *RunEndEncodedBuilder) Release() { + debug.Assert(atomic.LoadInt64(&b.refCount) > 0, "too many releases") + + if atomic.AddInt64(&b.refCount, -1) == 0 { + b.values.Release() + b.runEnds.Release() + } +} + +func (b *RunEndEncodedBuilder) addLength(n uint64) { + if uint64(b.length)+n > b.maxRunEnd { + panic(fmt.Errorf("%w: %s array length must fit be less than %d", arrow.ErrInvalid, b.dt, b.maxRunEnd)) + } + + b.length += int(n) +} + +func (b *RunEndEncodedBuilder) finishRun() { + b.lastUnmarshalled = nil + if b.length == 0 { + return + } + + switch bldr := b.runEnds.(type) { + case *Int16Builder: + bldr.Append(int16(b.length)) + case *Int32Builder: + bldr.Append(int32(b.length)) + case *Int64Builder: + bldr.Append(int64(b.length)) + } +} + +func (b *RunEndEncodedBuilder) ValueBuilder() Builder { return b.values } +func (b *RunEndEncodedBuilder) Append(n uint64) { + b.finishRun() + b.addLength(n) +} +func (b *RunEndEncodedBuilder) AppendRuns(runs []uint64) { + for _, r := range runs { + b.finishRun() + b.addLength(r) + } +} +func (b *RunEndEncodedBuilder) ContinueRun(n uint64) { + b.addLength(n) +} +func (b *RunEndEncodedBuilder) AppendNull() { + b.finishRun() + b.values.AppendNull() + b.addLength(1) +} + +func (b *RunEndEncodedBuilder) NullN() int { + return UnknownNullCount +} + +func (b *RunEndEncodedBuilder) AppendEmptyValue() { + b.AppendNull() +} + +func (b *RunEndEncodedBuilder) Reserve(n int) { + b.values.Reserve(n) + b.runEnds.Reserve(n) +} + +func (b *RunEndEncodedBuilder) Resize(n int) { + b.values.Resize(n) + b.runEnds.Resize(n) +} + +func (b *RunEndEncodedBuilder) NewRunEndEncodedArray() *RunEndEncoded { + data := b.newData() + defer data.Release() + return NewRunEndEncodedData(data) +} + +func (b *RunEndEncodedBuilder) NewArray() arrow.Array { + return b.NewRunEndEncodedArray() +} + +func (b *RunEndEncodedBuilder) newData() (data *Data) { + b.finishRun() + values := b.values.NewArray() + defer values.Release() + runEnds := b.runEnds.NewArray() + defer runEnds.Release() + + data = NewData( + b.dt, b.length, []*memory.Buffer{nil}, + []arrow.ArrayData{runEnds.Data(), values.Data()}, 0, 0) + b.reset() + return +} + +func (b *RunEndEncodedBuilder) AppendValueFromString(s string) error { + dec := json.NewDecoder(strings.NewReader(s)) + return b.UnmarshalOne(dec) +} + +func (b *RunEndEncodedBuilder) UnmarshalOne(dec *json.Decoder) error { + var value interface{} + if err := dec.Decode(&value); err != nil { + return err + } + + // if we unmarshalled the same value as the previous one, we want to + // continue the run. However, there's an edge case. At the start of + // unmarshalling, lastUnmarshalled will be nil, but we might get + // nil as the first value we unmarshal. In that case we want to + // make sure we add a new run instead. We can detect that case by + // checking that the number of runEnds matches the number of values + // we have, which means no matter what we have to start a new run + if reflect.DeepEqual(value, b.lastUnmarshalled) && (value != nil || b.runEnds.Len() != b.values.Len()) { + b.ContinueRun(1) + return nil + } + + data, err := json.Marshal(value) + if err != nil { + return err + } + + b.Append(1) + b.lastUnmarshalled = value + return b.ValueBuilder().UnmarshalOne(json.NewDecoder(bytes.NewReader(data))) +} + +func (b *RunEndEncodedBuilder) Unmarshal(dec *json.Decoder) error { + b.finishRun() + for dec.More() { + if err := b.UnmarshalOne(dec); err != nil { + return err + } + } + return nil +} + +func (b *RunEndEncodedBuilder) UnmarshalJSON(data []byte) error { + dec := json.NewDecoder(bytes.NewReader(data)) + t, err := dec.Token() + if err != nil { + return err + } + + if delim, ok := t.(json.Delim); !ok || delim != '[' { + return fmt.Errorf("list builder must unpack from json array, found %s", delim) + } + + return b.Unmarshal(dec) +} + +var ( + _ arrow.Array = (*RunEndEncoded)(nil) + _ Builder = (*RunEndEncodedBuilder)(nil) +) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/extension.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/extension.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension.go index 6de83fa..38f2630 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/extension.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension.go @@ -20,8 +20,8 @@ import ( "fmt" "reflect" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -38,7 +38,6 @@ type ExtensionArray interface { ExtensionType() arrow.ExtensionType // Storage returns the underlying storage array for this array. Storage() arrow.Array - // by having a non-exported function in the interface, it means that // consumers must embed ExtensionArrayBase in their structs in order // to fulfill this interface. @@ -77,7 +76,7 @@ func NewExtensionArrayWithStorage(dt arrow.ExtensionType, storage arrow.Array) a base := ExtensionArrayBase{} base.refCount = 1 - base.storage = storage.(arraymarshal) + base.storage = storage storage.Retain() storageData := storage.Data().(*Data) @@ -127,15 +126,15 @@ func NewExtensionData(data arrow.ArrayData) ExtensionArray { // type ExtensionArrayBase struct { array - storage arraymarshal + storage arrow.Array } func (e *ExtensionArrayBase) String() string { return fmt.Sprintf("(%s)%s", e.data.dtype, e.storage) } -func (e *ExtensionArrayBase) getOneForMarshal(i int) interface{} { - return e.storage.getOneForMarshal(i) +func (e *ExtensionArrayBase) GetOneForMarshal(i int) interface{} { + return e.storage.GetOneForMarshal(i) } func (e *ExtensionArrayBase) MarshalJSON() ([]byte, error) { @@ -181,7 +180,13 @@ func (e *ExtensionArrayBase) setData(data *Data) { storageData := NewData(extType.StorageType(), data.length, data.buffers, data.childData, data.nulls, data.offset) storageData.SetDictionary(data.dictionary) defer storageData.Release() - e.storage = MakeFromData(storageData).(arraymarshal) + e.storage = MakeFromData(storageData) +} + +// ValueStr returns the value at index i as a string. +// This needs to be implemented by the extension array type. +func (e *ExtensionArrayBase) ValueStr(i int) string { + panic("arrow/array: ValueStr wasn't implemented by this extension array type") } // no-op function that exists simply to force embedding this in any extension array types. diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension_builder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension_builder.go new file mode 100644 index 0000000..a71287f --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/extension_builder.go @@ -0,0 +1,23 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 array + +// ExtensionBuilderWrapper is an interface that you need to implement in your custom extension type if you want to provide a customer builder as well. +// See example in ./arrow/internal/testing/types/extension_types.go +type ExtensionBuilderWrapper interface { + NewBuilder(bldr *ExtensionBuilder) Builder +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixed_size_list.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixed_size_list.go similarity index 90% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixed_size_list.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixed_size_list.go index c13f596..c0c8676 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixed_size_list.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixed_size_list.go @@ -22,10 +22,10 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -46,6 +46,12 @@ func NewFixedSizeListData(data arrow.ArrayData) *FixedSizeList { func (a *FixedSizeList) ListValues() arrow.Array { return a.values } +func (a *FixedSizeList) ValueStr(i int) string { + if !a.IsValid(i) { + return NullValueStr + } + return string(a.GetOneForMarshal(i).(json.RawMessage)) +} func (a *FixedSizeList) String() string { o := new(strings.Builder) o.WriteString("[") @@ -112,7 +118,7 @@ func (a *FixedSizeList) Release() { a.values.Release() } -func (a *FixedSizeList) getOneForMarshal(i int) interface{} { +func (a *FixedSizeList) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -278,7 +284,13 @@ func (b *FixedSizeListBuilder) newData() (data *Data) { return } -func (b *FixedSizeListBuilder) unmarshalOne(dec *json.Decoder) error { + +func (b *FixedSizeListBuilder) AppendValueFromString(s string) error { + dec := json.NewDecoder(strings.NewReader(s)) + return b.UnmarshalOne(dec) +} + +func (b *FixedSizeListBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -287,7 +299,7 @@ func (b *FixedSizeListBuilder) unmarshalOne(dec *json.Decoder) error { switch t { case json.Delim('['): b.Append(true) - if err := b.values.unmarshal(dec); err != nil { + if err := b.values.Unmarshal(dec); err != nil { return err } // consume ']' @@ -308,9 +320,9 @@ func (b *FixedSizeListBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *FixedSizeListBuilder) unmarshal(dec *json.Decoder) error { +func (b *FixedSizeListBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -328,7 +340,7 @@ func (b *FixedSizeListBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("fixed size list builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binary.go similarity index 90% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binary.go index 24f4036..51e0b97 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binary.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binary.go @@ -18,10 +18,11 @@ package array import ( "bytes" + "encoding/base64" "fmt" "strings" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" "github.com/goccy/go-json" ) @@ -51,6 +52,12 @@ func (a *FixedSizeBinary) Value(i int) []byte { ) return a.valueBytes[beg:end] } +func (a *FixedSizeBinary) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return base64.StdEncoding.EncodeToString(a.Value(i)) +} func (a *FixedSizeBinary) String() string { o := new(strings.Builder) @@ -79,7 +86,7 @@ func (a *FixedSizeBinary) setData(data *Data) { } -func (a *FixedSizeBinary) getOneForMarshal(i int) interface{} { +func (a *FixedSizeBinary) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binarybuilder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binarybuilder.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binarybuilder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binarybuilder.go index 7a600c1..02f355e 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/fixedsize_binarybuilder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/fixedsize_binarybuilder.go @@ -23,9 +23,9 @@ import ( "reflect" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -89,6 +89,11 @@ func (b *FixedSizeBinaryBuilder) AppendEmptyValue() { b.UnsafeAppendBoolToBitmap(true) } +func (b *FixedSizeBinaryBuilder) UnsafeAppend(v []byte) { + b.values.unsafeAppend(v) + b.UnsafeAppendBoolToBitmap(true) +} + // AppendValues will append the values in the v slice. The valid slice determines which values // in v are valid (not null). The valid slice must either be empty or be equal in length to v. If empty, // all values in v are appended and considered valid. @@ -161,7 +166,22 @@ func (b *FixedSizeBinaryBuilder) newData() (data *Data) { return } -func (b *FixedSizeBinaryBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *FixedSizeBinaryBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + + data, err := base64.StdEncoding.DecodeString(s) + if err != nil { + b.AppendNull() + return err + } + b.Append(data) + return nil +} + +func (b *FixedSizeBinaryBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -201,9 +221,9 @@ func (b *FixedSizeBinaryBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *FixedSizeBinaryBuilder) unmarshal(dec *json.Decoder) error { +func (b *FixedSizeBinaryBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -221,7 +241,7 @@ func (b *FixedSizeBinaryBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("fixed size binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16.go index 9e63a7e..252a81f 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16.go @@ -20,8 +20,8 @@ import ( "fmt" "strings" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/float16" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/float16" "github.com/goccy/go-json" ) @@ -39,6 +39,7 @@ func NewFloat16Data(data arrow.ArrayData) *Float16 { } func (a *Float16) Value(i int) float16.Num { return a.values[i] } +func (a *Float16) ValueStr(i int) string { return a.Value(i).String()} func (a *Float16) Values() []float16.Num { return a.values } @@ -71,7 +72,7 @@ func (a *Float16) setData(data *Data) { } } -func (a *Float16) getOneForMarshal(i int) interface{} { +func (a *Float16) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.values[i].Float32() } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16_builder.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16_builder.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16_builder.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16_builder.go index 4947981..77efb4d 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/float16_builder.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/float16_builder.go @@ -23,11 +23,11 @@ import ( "strconv" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/float16" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -176,7 +176,21 @@ func (b *Float16Builder) newData() (data *Data) { return } -func (b *Float16Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Float16Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseFloat(s, 32) + if err != nil { + b.AppendNull() + return err + } + b.Append(float16.New(float32(v))) + return nil +} + +func (b *Float16Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -210,9 +224,9 @@ func (b *Float16Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Float16Builder) unmarshal(dec *json.Decoder) error { +func (b *Float16Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -233,5 +247,5 @@ func (b *Float16Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("float16 builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/interval.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/interval.go similarity index 90% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/interval.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/interval.go index 4a51195..cd8eaae 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/interval.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/interval.go @@ -19,13 +19,14 @@ package array import ( "bytes" "fmt" + "strconv" "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -56,6 +57,12 @@ func NewMonthIntervalData(data arrow.ArrayData) *MonthInterval { } func (a *MonthInterval) Value(i int) arrow.MonthInterval { return a.values[i] } +func (a *MonthInterval) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return fmt.Sprintf("%v", a.Value(i)) +} func (a *MonthInterval) MonthIntervalValues() []arrow.MonthInterval { return a.values } func (a *MonthInterval) String() string { @@ -87,7 +94,7 @@ func (a *MonthInterval) setData(data *Data) { } } -func (a *MonthInterval) getOneForMarshal(i int) interface{} { +func (a *MonthInterval) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.values[i] } @@ -267,7 +274,21 @@ func (b *MonthIntervalBuilder) newData() (data *Data) { return } -func (b *MonthIntervalBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *MonthIntervalBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseInt(s, 10, 32) + if err != nil { + b.AppendNull() + return err + } + b.Append(arrow.MonthInterval(v)) + return nil +} + +func (b *MonthIntervalBuilder) UnmarshalOne(dec *json.Decoder) error { var v *arrow.MonthInterval if err := dec.Decode(&v); err != nil { return err @@ -281,9 +302,9 @@ func (b *MonthIntervalBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *MonthIntervalBuilder) unmarshal(dec *json.Decoder) error { +func (b *MonthIntervalBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -304,7 +325,7 @@ func (b *MonthIntervalBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("month interval builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } // A type which represents an immutable sequence of arrow.DayTimeInterval values. @@ -321,6 +342,12 @@ func NewDayTimeIntervalData(data arrow.ArrayData) *DayTimeInterval { } func (a *DayTimeInterval) Value(i int) arrow.DayTimeInterval { return a.values[i] } +func (a *DayTimeInterval) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return fmt.Sprintf("%q", a.Value(i)) +} func (a *DayTimeInterval) DayTimeIntervalValues() []arrow.DayTimeInterval { return a.values } func (a *DayTimeInterval) String() string { @@ -352,7 +379,7 @@ func (a *DayTimeInterval) setData(data *Data) { } } -func (a *DayTimeInterval) getOneForMarshal(i int) interface{} { +func (a *DayTimeInterval) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.values[i] } @@ -530,7 +557,21 @@ func (b *DayTimeIntervalBuilder) newData() (data *Data) { return } -func (b *DayTimeIntervalBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *DayTimeIntervalBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + var v arrow.DayTimeInterval + if err := json.Unmarshal([]byte(s), &v); err != nil { + b.AppendNull() + return err + } + b.Append(v) + return nil +} + +func (b *DayTimeIntervalBuilder) UnmarshalOne(dec *json.Decoder) error { var v *arrow.DayTimeInterval if err := dec.Decode(&v); err != nil { return err @@ -544,9 +585,9 @@ func (b *DayTimeIntervalBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *DayTimeIntervalBuilder) unmarshal(dec *json.Decoder) error { +func (b *DayTimeIntervalBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -566,7 +607,7 @@ func (b *DayTimeIntervalBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("day_time interval builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } // A type which represents an immutable sequence of arrow.DayTimeInterval values. @@ -583,6 +624,13 @@ func NewMonthDayNanoIntervalData(data arrow.ArrayData) *MonthDayNanoInterval { } func (a *MonthDayNanoInterval) Value(i int) arrow.MonthDayNanoInterval { return a.values[i] } +func (a *MonthDayNanoInterval) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return fmt.Sprintf("%q", a.Value(i)) +} + func (a *MonthDayNanoInterval) MonthDayNanoIntervalValues() []arrow.MonthDayNanoInterval { return a.values } @@ -616,7 +664,7 @@ func (a *MonthDayNanoInterval) setData(data *Data) { } } -func (a *MonthDayNanoInterval) getOneForMarshal(i int) interface{} { +func (a *MonthDayNanoInterval) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.values[i] } @@ -796,7 +844,20 @@ func (b *MonthDayNanoIntervalBuilder) newData() (data *Data) { return } -func (b *MonthDayNanoIntervalBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *MonthDayNanoIntervalBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + var v arrow.MonthDayNanoInterval + if err := json.Unmarshal([]byte(s), &v); err != nil { + return err + } + b.Append(v) + return nil +} + +func (b *MonthDayNanoIntervalBuilder) UnmarshalOne(dec *json.Decoder) error { var v *arrow.MonthDayNanoInterval if err := dec.Decode(&v); err != nil { return err @@ -810,9 +871,9 @@ func (b *MonthDayNanoIntervalBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *MonthDayNanoIntervalBuilder) unmarshal(dec *json.Decoder) error { +func (b *MonthDayNanoIntervalBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -833,7 +894,7 @@ func (b *MonthDayNanoIntervalBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("month_day_nano interval builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/json_reader.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/json_reader.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/json_reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/json_reader.go index 0056a34..100fdd9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/json_reader.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/json_reader.go @@ -22,9 +22,9 @@ import ( "io" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/list.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/list.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/list.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/list.go index 07e3894..374ed28 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/list.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/list.go @@ -22,10 +22,10 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -52,6 +52,13 @@ func NewListData(data arrow.ArrayData) *List { func (a *List) ListValues() arrow.Array { return a.values } +func (a *List) ValueStr(i int) string { + if !a.IsValid(i) { + return NullValueStr + } + return string(a.GetOneForMarshal(i).(json.RawMessage)) +} + func (a *List) String() string { o := new(strings.Builder) o.WriteString("[") @@ -87,7 +94,7 @@ func (a *List) setData(data *Data) { a.values = MakeFromData(data.childData[0]) } -func (a *List) getOneForMarshal(i int) interface{} { +func (a *List) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -110,7 +117,7 @@ func (a *List) MarshalJSON() ([]byte, error) { if i != 0 { buf.WriteByte(',') } - if err := enc.Encode(a.getOneForMarshal(i)); err != nil { + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { return nil, err } } @@ -154,7 +161,7 @@ func (a *List) Release() { func (a *List) ValueOffsets(i int) (start, end int64) { debug.Assert(i >= 0 && i < a.array.data.length, "index out of range") - start, end = int64(a.offsets[i]), int64(a.offsets[i+1]) + start, end = int64(a.offsets[i+a.data.offset]), int64(a.offsets[i+a.data.offset+1]) return } @@ -175,6 +182,12 @@ func NewLargeListData(data arrow.ArrayData) *LargeList { func (a *LargeList) ListValues() arrow.Array { return a.values } +func (a *LargeList) ValueStr(i int) string { + if !a.IsValid(i) { + return NullValueStr + } + return string(a.GetOneForMarshal(i).(json.RawMessage)) +} func (a *LargeList) String() string { o := new(strings.Builder) o.WriteString("[") @@ -210,7 +223,7 @@ func (a *LargeList) setData(data *Data) { a.values = MakeFromData(data.childData[0]) } -func (a *LargeList) getOneForMarshal(i int) interface{} { +func (a *LargeList) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -233,7 +246,7 @@ func (a *LargeList) MarshalJSON() ([]byte, error) { if i != 0 { buf.WriteByte(',') } - if err := enc.Encode(a.getOneForMarshal(i)); err != nil { + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { return nil, err } } @@ -531,7 +544,12 @@ func (b *baseListBuilder) newData() (data *Data) { return } -func (b *baseListBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *baseListBuilder) AppendValueFromString(s string) error { + dec := json.NewDecoder(strings.NewReader(s)) + return b.UnmarshalOne(dec) +} + +func (b *baseListBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -540,7 +558,7 @@ func (b *baseListBuilder) unmarshalOne(dec *json.Decoder) error { switch t { case json.Delim('['): b.Append(true) - if err := b.values.unmarshal(dec); err != nil { + if err := b.values.Unmarshal(dec); err != nil { return err } // consume ']' @@ -558,9 +576,9 @@ func (b *baseListBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *baseListBuilder) unmarshal(dec *json.Decoder) error { +func (b *baseListBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -578,7 +596,7 @@ func (b *baseListBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("list builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/map.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/map.go similarity index 82% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/map.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/map.go index 9c35fbe..c28a3f9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/map.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/map.go @@ -20,8 +20,8 @@ import ( "bytes" "fmt" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -112,7 +112,7 @@ func arrayEqualMap(left, right *Map) bool { type MapBuilder struct { listBuilder *ListBuilder - etype arrow.DataType + etype *arrow.MapType keytype, itemtype arrow.DataType keyBuilder, itemBuilder Builder keysSorted bool @@ -131,21 +131,20 @@ type MapBuilder struct { // Simple example provided of converting a []map[string]int32 to an array.Map // by using a MapBuilder: // -// /* assume maplist == []map[string]int32 */ -// bldr := array.NewMapBuilder(memory.DefaultAllocator, arrow.BinaryTypes.String, arrow.PrimitiveTypes.Int32, false) -// defer bldr.Release() -// kb := bldr.KeyBuilder().(*array.StringBuilder) -// ib := bldr.ItemBuilder().(*array.Int32Builder) -// for _, m := range maplist { -// bldr.Append(true) -// for k, v := range m { -// kb.Append(k) -// ib.Append(v) -// } -// } -// maparr := bldr.NewMapArray() -// defer maparr.Release() -// +// /* assume maplist == []map[string]int32 */ +// bldr := array.NewMapBuilder(memory.DefaultAllocator, arrow.BinaryTypes.String, arrow.PrimitiveTypes.Int32, false) +// defer bldr.Release() +// kb := bldr.KeyBuilder().(*array.StringBuilder) +// ib := bldr.ItemBuilder().(*array.Int32Builder) +// for _, m := range maplist { +// bldr.Append(true) +// for k, v := range m { +// kb.Append(k) +// ib.Append(v) +// } +// } +// maparr := bldr.NewMapArray() +// defer maparr.Release() func NewMapBuilder(mem memory.Allocator, keytype, itemtype arrow.DataType, keysSorted bool) *MapBuilder { etype := arrow.MapOf(keytype, itemtype) etype.KeysSorted = keysSorted @@ -165,6 +164,23 @@ func NewMapBuilder(mem memory.Allocator, keytype, itemtype arrow.DataType, keysS } } +func NewMapBuilderWithType(mem memory.Allocator, dt *arrow.MapType) *MapBuilder { + listBldr := NewListBuilder(mem, dt.ValueType()) + keyBldr := listBldr.ValueBuilder().(*StructBuilder).FieldBuilder(0) + keyBldr.Retain() + itemBldr := listBldr.ValueBuilder().(*StructBuilder).FieldBuilder(1) + itemBldr.Retain() + return &MapBuilder{ + listBuilder: listBldr, + keyBuilder: keyBldr, + itemBuilder: itemBldr, + etype: dt, + keytype: dt.KeyType(), + itemtype: dt.ValueType(), + keysSorted: dt.KeysSorted, + } +} + func (b *MapBuilder) Type() arrow.DataType { return b.etype } // Retain increases the reference count by 1 for the sub-builders (list, key, item). @@ -222,6 +238,10 @@ func (b *MapBuilder) AppendValues(offsets []int32, valid []bool) { b.listBuilder.AppendValues(offsets, valid) } +func (b *MapBuilder) UnsafeAppendBoolToBitmap(v bool) { + b.listBuilder.UnsafeAppendBoolToBitmap(v) +} + func (b *MapBuilder) init(capacity int) { b.listBuilder.init(capacity) } func (b *MapBuilder) resize(newBits int, init func(int)) { b.listBuilder.resize(newBits, init) } @@ -245,6 +265,10 @@ func (b *MapBuilder) NewArray() arrow.Array { // NewMapArray creates a new Map array from the memory buffers used by the builder, and // resets the builder so it can be used again to build a new Map array. func (b *MapBuilder) NewMapArray() (a *Map) { + if !b.etype.ItemField().Nullable && b.ItemBuilder().NullN() > 0 { + panic("arrow/array: item not nullable") + } + data := b.newData() defer data.Release() a = NewMapData(data) @@ -272,16 +296,20 @@ func (b *MapBuilder) ItemBuilder() Builder { return b.itemBuilder } // ValueBuilder can be used instead of separately using the Key/Item builders // to build the list as a List of Structs rather than building the keys/items // separately. -func (b *MapBuilder) ValueBuilder() *StructBuilder { - return b.listBuilder.ValueBuilder().(*StructBuilder) +func (b *MapBuilder) ValueBuilder() Builder { + return b.listBuilder.ValueBuilder() +} + +func (b *MapBuilder) AppendValueFromString(s string) error { + return arrow.ErrNotImplemented } -func (b *MapBuilder) unmarshalOne(dec *json.Decoder) error { - return b.listBuilder.unmarshalOne(dec) +func (b *MapBuilder) UnmarshalOne(dec *json.Decoder) error { + return b.listBuilder.UnmarshalOne(dec) } -func (b *MapBuilder) unmarshal(dec *json.Decoder) error { - return b.listBuilder.unmarshal(dec) +func (b *MapBuilder) Unmarshal(dec *json.Decoder) error { + return b.listBuilder.Unmarshal(dec) } func (b *MapBuilder) UnmarshalJSON(data []byte) error { @@ -295,10 +323,11 @@ func (b *MapBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("map builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( - _ arrow.Array = (*Map)(nil) - _ Builder = (*MapBuilder)(nil) + _ arrow.Array = (*Map)(nil) + _ Builder = (*MapBuilder)(nil) + _ ListLikeBuilder = (*MapBuilder)(nil) ) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/null.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/null.go similarity index 87% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/null.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/null.go index ddc5cf3..8a547a5 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/null.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/null.go @@ -23,9 +23,9 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -58,6 +58,10 @@ func NewNullData(data arrow.ArrayData) *Null { return a } +func (a *Null) ValueStr(i int) string { + return NullValueStr +} + func (a *Null) String() string { o := new(strings.Builder) o.WriteString("[") @@ -77,7 +81,7 @@ func (a *Null) setData(data *Data) { a.array.data.nulls = a.array.data.length } -func (a *Null) getOneForMarshal(i int) interface{} { +func (a *Null) GetOneForMarshal(i int) interface{} { return nil } @@ -114,6 +118,13 @@ func (b *NullBuilder) AppendNull() { b.builder.nulls++ } +func (b *NullBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + return fmt.Errorf("cannot convert %q to null", s) +} func (b *NullBuilder) AppendEmptyValue() { b.AppendNull() } func (*NullBuilder) Reserve(size int) {} @@ -150,7 +161,7 @@ func (b *NullBuilder) newData() (data *Data) { return } -func (b *NullBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *NullBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -169,9 +180,9 @@ func (b *NullBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *NullBuilder) unmarshal(dec *json.Decoder) error { +func (b *NullBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -189,7 +200,7 @@ func (b *NullBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("null builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go similarity index 88% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go index d850a11..72db2d9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go @@ -20,9 +20,10 @@ package array import ( "fmt" + "strconv" "strings" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" "github.com/goccy/go-json" ) @@ -81,7 +82,14 @@ func (a *Int64) setData(data *Data) { } } -func (a *Int64) getOneForMarshal(i int) interface{} { +func (a *Int64) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatInt(int64(a.Value(i)), 10) +} + +func (a *Int64) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -169,7 +177,14 @@ func (a *Uint64) setData(data *Data) { } } -func (a *Uint64) getOneForMarshal(i int) interface{} { +func (a *Uint64) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatUint(uint64(a.Value(i)), 10) +} + +func (a *Uint64) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -257,7 +272,14 @@ func (a *Float64) setData(data *Data) { } } -func (a *Float64) getOneForMarshal(i int) interface{} { +func (a *Float64) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatFloat(float64(a.Value(i)), 'g', -1, 64) +} + +func (a *Float64) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -345,7 +367,14 @@ func (a *Int32) setData(data *Data) { } } -func (a *Int32) getOneForMarshal(i int) interface{} { +func (a *Int32) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatInt(int64(a.Value(i)), 10) +} + +func (a *Int32) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -433,7 +462,14 @@ func (a *Uint32) setData(data *Data) { } } -func (a *Uint32) getOneForMarshal(i int) interface{} { +func (a *Uint32) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatUint(uint64(a.Value(i)), 10) +} + +func (a *Uint32) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -521,7 +557,14 @@ func (a *Float32) setData(data *Data) { } } -func (a *Float32) getOneForMarshal(i int) interface{} { +func (a *Float32) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatFloat(float64(a.Value(i)), 'g', -1, 32) +} + +func (a *Float32) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -609,7 +652,14 @@ func (a *Int16) setData(data *Data) { } } -func (a *Int16) getOneForMarshal(i int) interface{} { +func (a *Int16) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatInt(int64(a.Value(i)), 10) +} + +func (a *Int16) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -697,7 +747,14 @@ func (a *Uint16) setData(data *Data) { } } -func (a *Uint16) getOneForMarshal(i int) interface{} { +func (a *Uint16) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatUint(uint64(a.Value(i)), 10) +} + +func (a *Uint16) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -785,7 +842,14 @@ func (a *Int8) setData(data *Data) { } } -func (a *Int8) getOneForMarshal(i int) interface{} { +func (a *Int8) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatInt(int64(a.Value(i)), 10) +} + +func (a *Int8) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -873,7 +937,14 @@ func (a *Uint8) setData(data *Data) { } } -func (a *Uint8) getOneForMarshal(i int) interface{} { +func (a *Uint8) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return strconv.FormatUint(uint64(a.Value(i)), 10) +} + +func (a *Uint8) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -961,7 +1032,14 @@ func (a *Timestamp) setData(data *Data) { } } -func (a *Timestamp) getOneForMarshal(i int) interface{} { +func (a *Timestamp) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return a.values[i].ToTime(a.DataType().(*arrow.TimestampType).Unit).Format("2006-01-02 15:04:05.999999999") +} + +func (a *Timestamp) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -971,7 +1049,7 @@ func (a *Timestamp) getOneForMarshal(i int) interface{} { func (a *Timestamp) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) @@ -1044,7 +1122,14 @@ func (a *Time32) setData(data *Data) { } } -func (a *Time32) getOneForMarshal(i int) interface{} { +func (a *Time32) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return a.values[i].FormattedString(a.DataType().(*arrow.Time32Type).Unit) +} + +func (a *Time32) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -1054,7 +1139,7 @@ func (a *Time32) getOneForMarshal(i int) interface{} { func (a *Time32) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) @@ -1127,7 +1212,14 @@ func (a *Time64) setData(data *Data) { } } -func (a *Time64) getOneForMarshal(i int) interface{} { +func (a *Time64) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return a.values[i].FormattedString(a.DataType().(*arrow.Time64Type).Unit) +} + +func (a *Time64) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -1137,7 +1229,7 @@ func (a *Time64) getOneForMarshal(i int) interface{} { func (a *Time64) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) @@ -1210,7 +1302,14 @@ func (a *Date32) setData(data *Data) { } } -func (a *Date32) getOneForMarshal(i int) interface{} { +func (a *Date32) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return a.values[i].FormattedString() +} + +func (a *Date32) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -1220,7 +1319,7 @@ func (a *Date32) getOneForMarshal(i int) interface{} { func (a *Date32) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) @@ -1293,7 +1392,14 @@ func (a *Date64) setData(data *Data) { } } -func (a *Date64) getOneForMarshal(i int) interface{} { +func (a *Date64) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + return a.values[i].FormattedString() +} + +func (a *Date64) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -1303,7 +1409,7 @@ func (a *Date64) getOneForMarshal(i int) interface{} { func (a *Date64) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) @@ -1376,7 +1482,15 @@ func (a *Duration) setData(data *Data) { } } -func (a *Duration) getOneForMarshal(i int) interface{} { +func (a *Duration) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } + // return value and suffix as a string such as "12345ms" + return fmt.Sprintf("%d%s", a.values[i], a.DataType().(*arrow.DurationType).Unit) +} + +func (a *Duration) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -1387,7 +1501,7 @@ func (a *Duration) getOneForMarshal(i int) interface{} { func (a *Duration) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go.tmpl similarity index 72% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go.tmpl index b6b7c11..0141852 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numeric.gen.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numeric.gen.go.tmpl @@ -21,7 +21,7 @@ import ( "strings" "time" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" "github.com/goccy/go-json" ) @@ -82,7 +82,33 @@ func (a *{{.Name}}) setData(data *Data) { } } -func (a *{{.Name}}) getOneForMarshal(i int) interface{} { +func (a *{{.Name}}) ValueStr(i int) string { + if a.IsNull(i) { + return NullValueStr + } +{{if or (eq .Name "Date32") (eq .Name "Date64") -}} + return a.values[i].FormattedString() +{{else if or (eq .Name "Time32") (eq .Name "Time64") -}} + return a.values[i].FormattedString(a.DataType().(*{{.QualifiedType}}Type).Unit) +{{else if or (eq .Name "Timestamp") -}} + return a.values[i].ToTime(a.DataType().(*{{.QualifiedType}}Type).Unit).Format("2006-01-02 15:04:05.999999999") +{{else if (eq .Name "Duration") -}} + // return value and suffix as a string such as "12345ms" + return fmt.Sprintf("%d%s", a.values[i], a.DataType().(*{{.QualifiedType}}Type).Unit) +{{else if or (eq .Name "Int8") (eq .Name "Int16") (eq .Name "Int32") (eq .Name "Int64") -}} + return strconv.FormatInt(int64(a.Value(i)), 10) +{{else if or (eq .Name "Uint8") (eq .Name "Uint16") (eq .Name "Uint32") (eq .Name "Uint64") -}} + return strconv.FormatUint(uint64(a.Value(i)), 10) +{{else if or (eq .Name "Float32") -}} + return strconv.FormatFloat(float64(a.Value(i)), 'g', -1, 32) +{{else if or (eq .Name "Float64") -}} + return strconv.FormatFloat(float64(a.Value(i)), 'g', -1, 64) +{{else}} + return fmt.Sprintf("%v", a.values[i]) +{{end -}} +} + +func (a *{{.Name}}) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -106,7 +132,7 @@ func (a *{{.Name}}) MarshalJSON() ([]byte, error) { {{if .QualifiedType -}} vals := make([]interface{}, a.Len()) for i := range a.values { - vals[i] = a.getOneForMarshal(i) + vals[i] = a.GetOneForMarshal(i) } {{else -}} vals := make([]interface{}, a.Len()) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go index 3a46774..f893a63 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go @@ -27,10 +27,10 @@ import ( "sync/atomic" "time" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -176,7 +176,21 @@ func (b *Int64Builder) newData() (data *Data) { return } -func (b *Int64Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Int64Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseInt(s, 10, 8*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(int64(v)) + return nil +} + +func (b *Int64Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -220,9 +234,9 @@ func (b *Int64Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Int64Builder) unmarshal(dec *json.Decoder) error { +func (b *Int64Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -240,7 +254,7 @@ func (b *Int64Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Uint64Builder struct { @@ -385,7 +399,21 @@ func (b *Uint64Builder) newData() (data *Data) { return } -func (b *Uint64Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Uint64Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseUint(s, 10, 8*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(uint64(v)) + return nil +} + +func (b *Uint64Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -429,9 +457,9 @@ func (b *Uint64Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Uint64Builder) unmarshal(dec *json.Decoder) error { +func (b *Uint64Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -449,7 +477,7 @@ func (b *Uint64Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Float64Builder struct { @@ -594,7 +622,21 @@ func (b *Float64Builder) newData() (data *Data) { return } -func (b *Float64Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Float64Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseFloat(s, 8*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(float64(v)) + return nil +} + +func (b *Float64Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -638,9 +680,9 @@ func (b *Float64Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Float64Builder) unmarshal(dec *json.Decoder) error { +func (b *Float64Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -658,7 +700,7 @@ func (b *Float64Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Int32Builder struct { @@ -803,7 +845,21 @@ func (b *Int32Builder) newData() (data *Data) { return } -func (b *Int32Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Int32Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseInt(s, 10, 4*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(int32(v)) + return nil +} + +func (b *Int32Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -847,9 +903,9 @@ func (b *Int32Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Int32Builder) unmarshal(dec *json.Decoder) error { +func (b *Int32Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -867,7 +923,7 @@ func (b *Int32Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Uint32Builder struct { @@ -1012,7 +1068,21 @@ func (b *Uint32Builder) newData() (data *Data) { return } -func (b *Uint32Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Uint32Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseUint(s, 10, 4*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(uint32(v)) + return nil +} + +func (b *Uint32Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1056,9 +1126,9 @@ func (b *Uint32Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Uint32Builder) unmarshal(dec *json.Decoder) error { +func (b *Uint32Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -1076,7 +1146,7 @@ func (b *Uint32Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Float32Builder struct { @@ -1221,7 +1291,21 @@ func (b *Float32Builder) newData() (data *Data) { return } -func (b *Float32Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Float32Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseFloat(s, 4*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(float32(v)) + return nil +} + +func (b *Float32Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1265,9 +1349,9 @@ func (b *Float32Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Float32Builder) unmarshal(dec *json.Decoder) error { +func (b *Float32Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -1285,7 +1369,7 @@ func (b *Float32Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Int16Builder struct { @@ -1430,7 +1514,21 @@ func (b *Int16Builder) newData() (data *Data) { return } -func (b *Int16Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Int16Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseInt(s, 10, 2*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(int16(v)) + return nil +} + +func (b *Int16Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1474,9 +1572,9 @@ func (b *Int16Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Int16Builder) unmarshal(dec *json.Decoder) error { +func (b *Int16Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -1494,7 +1592,7 @@ func (b *Int16Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Uint16Builder struct { @@ -1639,7 +1737,21 @@ func (b *Uint16Builder) newData() (data *Data) { return } -func (b *Uint16Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Uint16Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseUint(s, 10, 2*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(uint16(v)) + return nil +} + +func (b *Uint16Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1683,9 +1795,9 @@ func (b *Uint16Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Uint16Builder) unmarshal(dec *json.Decoder) error { +func (b *Uint16Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -1703,7 +1815,7 @@ func (b *Uint16Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Int8Builder struct { @@ -1848,7 +1960,21 @@ func (b *Int8Builder) newData() (data *Data) { return } -func (b *Int8Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Int8Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseInt(s, 10, 1*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(int8(v)) + return nil +} + +func (b *Int8Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1892,9 +2018,9 @@ func (b *Int8Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Int8Builder) unmarshal(dec *json.Decoder) error { +func (b *Int8Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -1912,7 +2038,7 @@ func (b *Int8Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Uint8Builder struct { @@ -2057,7 +2183,21 @@ func (b *Uint8Builder) newData() (data *Data) { return } -func (b *Uint8Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Uint8Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := strconv.ParseUint(s, 10, 1*8) + if err != nil { + b.AppendNull() + return err + } + b.Append(uint8(v)) + return nil +} + +func (b *Uint8Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -2101,9 +2241,9 @@ func (b *Uint8Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Uint8Builder) unmarshal(dec *json.Decoder) error { +func (b *Uint8Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -2121,7 +2261,7 @@ func (b *Uint8Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type TimestampBuilder struct { @@ -2267,7 +2407,21 @@ func (b *TimestampBuilder) newData() (data *Data) { return } -func (b *TimestampBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *TimestampBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + v, err := arrow.TimestampFromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(v) + return nil +} + +func (b *TimestampBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -2313,9 +2467,9 @@ func (b *TimestampBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *TimestampBuilder) unmarshal(dec *json.Decoder) error { +func (b *TimestampBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -2333,7 +2487,7 @@ func (b *TimestampBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Time32Builder struct { @@ -2479,7 +2633,21 @@ func (b *Time32Builder) newData() (data *Data) { return } -func (b *Time32Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Time32Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + val, err := arrow.Time32FromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(val) + return nil +} + +func (b *Time32Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -2524,9 +2692,9 @@ func (b *Time32Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Time32Builder) unmarshal(dec *json.Decoder) error { +func (b *Time32Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -2544,7 +2712,7 @@ func (b *Time32Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Time64Builder struct { @@ -2690,7 +2858,21 @@ func (b *Time64Builder) newData() (data *Data) { return } -func (b *Time64Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Time64Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + val, err := arrow.Time64FromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(val) + return nil +} + +func (b *Time64Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -2735,9 +2917,9 @@ func (b *Time64Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Time64Builder) unmarshal(dec *json.Decoder) error { +func (b *Time64Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -2755,7 +2937,7 @@ func (b *Time64Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Date32Builder struct { @@ -2900,7 +3082,21 @@ func (b *Date32Builder) newData() (data *Data) { return } -func (b *Date32Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Date32Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + tm, err := time.Parse("2006-01-02", s) + if err != nil { + b.AppendNull() + return err + } + b.Append(arrow.Date32FromTime(tm)) + return nil +} + +func (b *Date32Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -2944,9 +3140,9 @@ func (b *Date32Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Date32Builder) unmarshal(dec *json.Decoder) error { +func (b *Date32Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -2964,7 +3160,7 @@ func (b *Date32Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type Date64Builder struct { @@ -3109,7 +3305,21 @@ func (b *Date64Builder) newData() (data *Data) { return } -func (b *Date64Builder) unmarshalOne(dec *json.Decoder) error { +func (b *Date64Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + tm, err := time.Parse("2006-01-02", s) + if err != nil { + b.AppendNull() + return err + } + b.Append(arrow.Date64FromTime(tm)) + return nil +} + +func (b *Date64Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -3153,9 +3363,9 @@ func (b *Date64Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *Date64Builder) unmarshal(dec *json.Decoder) error { +func (b *Date64Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -3173,7 +3383,7 @@ func (b *Date64Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type DurationBuilder struct { @@ -3319,7 +3529,16 @@ func (b *DurationBuilder) newData() (data *Data) { return } -func (b *DurationBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *DurationBuilder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + return fmt.Errorf("%w: AppendValueFromString not implemented for Duration", arrow.ErrNotImplemented) + return nil +} + +func (b *DurationBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -3386,9 +3605,9 @@ func (b *DurationBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *DurationBuilder) unmarshal(dec *json.Decoder) error { +func (b *DurationBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -3406,7 +3625,7 @@ func (b *DurationBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go.tmpl similarity index 80% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go.tmpl index baff618..3778153 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen.go.tmpl @@ -17,10 +17,10 @@ package array import ( - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -184,7 +184,76 @@ func (b *{{.Name}}Builder) newData() (data *Data) { return } -func (b *{{.Name}}Builder) unmarshalOne(dec *json.Decoder) error { +func (b *{{.Name}}Builder) AppendValueFromString(s string) error { + if s == NullValueStr { + b.AppendNull() + return nil + } + {{if or (eq .Name "Date32") -}} + tm, err := time.Parse("2006-01-02", s) + if err != nil { + b.AppendNull() + return err + } + b.Append(arrow.Date32FromTime(tm)) + {{else if or (eq .Name "Date64") -}} + tm, err := time.Parse("2006-01-02", s) + if err != nil { + b.AppendNull() + return err + } + b.Append(arrow.Date64FromTime(tm)) + {{else if or (eq .Name "Time32") -}} + val, err := arrow.Time32FromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(val) + {{else if or (eq .Name "Time64") -}} + val, err := arrow.Time64FromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(val) + {{else if or (eq .Name "Timestamp") -}} + v, err := arrow.TimestampFromString(s, b.dtype.Unit) + if err != nil { + b.AppendNull() + return err + } + b.Append(v) + {{else if (eq .Name "Duration") -}} + return fmt.Errorf("%w: AppendValueFromString not implemented for Duration", arrow.ErrNotImplemented) + {{else if or (eq .Name "Int8") (eq .Name "Int16") (eq .Name "Int32") (eq .Name "Int64") -}} + v, err := strconv.ParseInt(s, 10, {{.Size}} * 8) + if err != nil { + b.AppendNull() + return err + } + b.Append({{.name}}(v)) + {{else if or (eq .Name "Uint8") (eq .Name "Uint16") (eq .Name "Uint32") (eq .Name "Uint64") -}} + v, err := strconv.ParseUint(s, 10, {{.Size}} * 8) + if err != nil { + b.AppendNull() + return err + } + b.Append({{.name}}(v)) + {{else if or (eq .Name "Float32") (eq .Name "Float64") -}} + v, err := strconv.ParseFloat(s, {{.Size}} * 8) + if err != nil { + b.AppendNull() + return err + } + b.Append({{.name}}(v)) + {{else}} + return fmt.Errorf("%w: AppendValueFromString not implemented for {{.Name}}", ErrNotImplemented) + {{end -}} + return nil +} + +func (b *{{.Name}}Builder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -340,9 +409,9 @@ func (b *{{.Name}}Builder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *{{.Name}}Builder) unmarshal(dec *json.Decoder) error { +func (b *{{.Name}}Builder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -360,7 +429,7 @@ func (b *{{.Name}}Builder) UnmarshalJSON(data []byte) error { return fmt.Errorf("binary builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } {{end}} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen_test.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen_test.go.tmpl similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen_test.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen_test.go.tmpl index 582f964..996a8f5 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/numericbuilder.gen_test.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/numericbuilder.gen_test.go.tmpl @@ -19,9 +19,9 @@ package array_test import ( "testing" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/stretchr/testify/assert" ) @@ -51,9 +51,10 @@ func TestNew{{.Name}}Builder(t *testing.T) { ab.Append(8) ab.Append(9) ab.Append(10) + ab.AppendValueFromString(11) // check state of builder before New{{.Name}}Array - assert.Equal(t, 10, ab.Len(), "unexpected Len()") + assert.Equal(t, 11, ab.Len(), "unexpected Len()") assert.Equal(t, 2, ab.NullN(), "unexpected NullN()") a := ab.New{{.Name}}Array() @@ -65,7 +66,7 @@ func TestNew{{.Name}}Builder(t *testing.T) { // check state of array assert.Equal(t, 2, a.NullN(), "unexpected null count") - assert.Equal(t, []{{or .QualifiedType .Type}}{1, 2, 3, 0, 5, 6, 0, 8, 9, 10}, a.{{.Name}}Values(), "unexpected {{.Name}}Values") + assert.Equal(t, []{{or .QualifiedType .Type}}{1, 2, 3, 0, 5, 6, 0, 8, 9, 10, 11}, a.{{.Name}}Values(), "unexpected {{.Name}}Values") assert.Equal(t, []byte{0xb7}, a.NullBitmapBytes()[:1]) // 4 bytes due to minBuilderCapacity assert.Len(t, a.{{.Name}}Values(), 10, "unexpected length of {{.Name}}Values") diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/record.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/record.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/record.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/record.go index 1c122c2..b00a59d 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/record.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/record.go @@ -22,9 +22,9 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -37,6 +37,7 @@ type RecordReader interface { Next() bool Record() arrow.Record + Err() error } // simpleRecords is a simple iterator over a collection of records. @@ -107,6 +108,7 @@ func (rs *simpleRecords) Next() bool { rs.recs = rs.recs[1:] return true } +func (rs *simpleRecords) Err() error { return nil } // simpleRecord is a basic, non-lazy in-memory record batch. type simpleRecord struct { @@ -152,6 +154,32 @@ func NewRecord(schema *arrow.Schema, cols []arrow.Array, nrows int64) *simpleRec return rec } +func (rec *simpleRecord) SetColumn(i int, arr arrow.Array) (arrow.Record, error) { + if i < 0 || i >= len(rec.arrs) { + return nil, fmt.Errorf("arrow/array: column index out of range [0, %d): got=%d", len(rec.arrs), i) + } + + if arr.Len() != int(rec.rows) { + return nil, fmt.Errorf("arrow/array: mismatch number of rows in column %q: got=%d, want=%d", + rec.schema.Field(i).Name, + arr.Len(), rec.rows, + ) + } + + f := rec.schema.Field(i) + if !arrow.TypeEqual(f.Type, arr.DataType()) { + return nil, fmt.Errorf("arrow/array: column %q type mismatch: got=%v, want=%v", + f.Name, + arr.DataType(), f.Type, + ) + } + arrs := make([]arrow.Array, len(rec.arrs)) + copy(arrs, rec.arrs) + arrs[i] = arr + + return NewRecord(rec.schema, arrs, rec.rows), nil +} + func (rec *simpleRecord) validate() error { if rec.rows == 0 && len(rec.arrs) == 0 { return nil @@ -357,14 +385,14 @@ func (b *RecordBuilder) UnmarshalJSON(data []byte) error { indices := b.schema.FieldIndices(key) if len(indices) == 0 { - _, err = dec.Token() - if err != nil { + var extra interface{} + if err := dec.Decode(&extra); err != nil { return err } continue } - if err := b.fields[indices[0]].unmarshalOne(dec); err != nil { + if err := b.fields[indices[0]].UnmarshalOne(dec); err != nil { return err } } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/string.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/string.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/string.go index 2f5fb73..20a67f2 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/string.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/string.go @@ -23,8 +23,8 @@ import ( "strings" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -53,6 +53,13 @@ func (a *String) Value(i int) string { i = i + a.array.data.offset return a.values[a.offsets[i]:a.offsets[i+1]] } +func (a *String) ValueStr(i int) string { + if a.IsNull(i) { + return "(null)" + } else { + return a.Value(i) + } +} // ValueOffset returns the offset of the value at index i. func (a *String) ValueOffset(i int) int { @@ -132,7 +139,7 @@ func (a *String) setData(data *Data) { } } -func (a *String) getOneForMarshal(i int) interface{} { +func (a *String) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.Value(i) } @@ -188,6 +195,7 @@ func (a *LargeString) Value(i int) string { i = i + a.array.data.offset return a.values[a.offsets[i]:a.offsets[i+1]] } +func (a *LargeString) ValueStr(i int) string { return a.Value(i) } // ValueOffset returns the offset of the value at index i. func (a *LargeString) ValueOffset(i int) int64 { @@ -267,7 +275,7 @@ func (a *LargeString) setData(data *Data) { } } -func (a *LargeString) getOneForMarshal(i int) interface{} { +func (a *LargeString) GetOneForMarshal(i int) interface{} { if a.IsValid(i) { return a.Value(i) } @@ -277,11 +285,7 @@ func (a *LargeString) getOneForMarshal(i int) interface{} { func (a *LargeString) MarshalJSON() ([]byte, error) { vals := make([]interface{}, a.Len()) for i := 0; i < a.Len(); i++ { - if a.IsValid(i) { - vals[i] = a.Value(i) - } else { - vals[i] = nil - } + vals[i] = a.GetOneForMarshal(i) } return json.Marshal(vals) } @@ -330,6 +334,10 @@ func (b *StringBuilder) Value(i int) string { return string(b.BinaryBuilder.Value(i)) } +// func (b *StringBuilder) UnsafeAppend(v string) { +// b.BinaryBuilder.UnsafeAppend([]byte(v)) +// } + // NewArray creates a String array from the memory buffers used by the builder and resets the StringBuilder // so it can be used to build a new array. func (b *StringBuilder) NewArray() arrow.Array { @@ -345,7 +353,7 @@ func (b *StringBuilder) NewStringArray() (a *String) { return } -func (b *StringBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *StringBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -366,9 +374,9 @@ func (b *StringBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *StringBuilder) unmarshal(dec *json.Decoder) error { +func (b *StringBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -386,7 +394,7 @@ func (b *StringBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("string builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } // A LargeStringBuilder is used to build a LargeString array using the Append methods. @@ -423,6 +431,10 @@ func (b *LargeStringBuilder) Value(i int) string { return string(b.BinaryBuilder.Value(i)) } +// func (b *LargeStringBuilder) UnsafeAppend(v string) { +// b.BinaryBuilder.UnsafeAppend([]byte(v)) +// } + // NewArray creates a String array from the memory buffers used by the builder and resets the StringBuilder // so it can be used to build a new array. func (b *LargeStringBuilder) NewArray() arrow.Array { @@ -438,7 +450,7 @@ func (b *LargeStringBuilder) NewLargeStringArray() (a *LargeString) { return } -func (b *LargeStringBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *LargeStringBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -459,9 +471,9 @@ func (b *LargeStringBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *LargeStringBuilder) unmarshal(dec *json.Decoder) error { +func (b *LargeStringBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -479,12 +491,13 @@ func (b *LargeStringBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("string builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } type StringLikeBuilder interface { Builder Append(string) + UnsafeAppend([]byte) ReserveData(int) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/struct.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/struct.go similarity index 89% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/struct.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/struct.go index 4901d26..77fb368 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/struct.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/struct.go @@ -23,10 +23,10 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/goccy/go-json" ) @@ -81,6 +81,16 @@ func NewStructData(data arrow.ArrayData) *Struct { func (a *Struct) NumField() int { return len(a.fields) } func (a *Struct) Field(i int) arrow.Array { return a.fields[i] } +// ValueStr returns the string representation (as json) of the value at index i. +func (a *Struct) ValueStr(i int) string { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { + panic(err) + } + return buf.String() +} + func (a *Struct) String() string { o := new(strings.Builder) o.WriteString("{") @@ -144,7 +154,7 @@ func (a *Struct) setData(data *Data) { } } -func (a *Struct) getOneForMarshal(i int) interface{} { +func (a *Struct) GetOneForMarshal(i int) interface{} { if a.IsNull(i) { return nil } @@ -152,7 +162,7 @@ func (a *Struct) getOneForMarshal(i int) interface{} { tmp := make(map[string]interface{}) fieldList := a.data.dtype.(*arrow.StructType).Fields() for j, d := range a.fields { - tmp[fieldList[j].Name] = d.(arraymarshal).getOneForMarshal(i) + tmp[fieldList[j].Name] = d.GetOneForMarshal(i) } return tmp } @@ -166,7 +176,7 @@ func (a *Struct) MarshalJSON() ([]byte, error) { if i != 0 { buf.WriteByte(',') } - if err := enc.Encode(a.getOneForMarshal(i)); err != nil { + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { return nil, err } } @@ -351,7 +361,15 @@ func (b *StructBuilder) newData() (data *Data) { return } -func (b *StructBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *StructBuilder) AppendValueFromString(s string) error { + if !strings.HasPrefix(s, "{") && !strings.HasSuffix(s, "}") { + return fmt.Errorf("%w: invalid string for struct should be be of form: {*}", arrow.ErrInvalid,) + } + dec := json.NewDecoder(strings.NewReader(s)) + return b.UnmarshalOne(dec) +} + +func (b *StructBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -380,10 +398,12 @@ func (b *StructBuilder) unmarshalOne(dec *json.Decoder) error { idx, ok := b.dtype.(*arrow.StructType).FieldIdx(key) if !ok { + var extra interface{} + dec.Decode(&extra) continue } - if err := b.fields[idx].unmarshalOne(dec); err != nil { + if err := b.fields[idx].UnmarshalOne(dec); err != nil { return err } } @@ -413,9 +433,9 @@ func (b *StructBuilder) unmarshalOne(dec *json.Decoder) error { return nil } -func (b *StructBuilder) unmarshal(dec *json.Decoder) error { +func (b *StructBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } @@ -433,7 +453,7 @@ func (b *StructBuilder) UnmarshalJSON(data []byte) error { return fmt.Errorf("struct builder must unpack from json array, found %s", delim) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/table.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/table.go similarity index 86% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/table.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/table.go index 0e17fd5..88362c7 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/table.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/table.go @@ -22,8 +22,8 @@ import ( "math" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) // NewColumnSlice returns a new zero-copy slice of the column with the indicated @@ -128,6 +128,49 @@ func NewTable(schema *arrow.Schema, cols []arrow.Column, rows int64) *simpleTabl return &tbl } +// NewTableFromSlice is a convenience function to create a table from a slice +// of slices of arrow.Array. +// +// Like other NewTable functions this can panic if: +// - len(schema.Fields) != len(data) +// - the total length of each column's array slice (ie: number of rows +// in the column) aren't the same for all columns. +func NewTableFromSlice(schema *arrow.Schema, data [][]arrow.Array) *simpleTable { + if len(data) != len(schema.Fields()) { + panic("array/table: mismatch in number of columns and data for creating a table") + } + + cols := make([]arrow.Column, len(schema.Fields())) + for i, arrs := range data { + field := schema.Field(i) + chunked := arrow.NewChunked(field.Type, arrs) + cols[i] = *arrow.NewColumn(field, chunked) + chunked.Release() + } + + tbl := simpleTable{ + refCount: 1, + schema: schema, + cols: cols, + rows: int64(cols[0].Len()), + } + + defer func() { + if r := recover(); r != nil { + // if validate panics, let's release the columns + // so that we don't leak them, then propagate the panic + for _, c := range cols { + c.Release() + } + panic(r) + } + }() + // validate the table and its constituents. + tbl.validate() + + return &tbl +} + // NewTableFromRecords returns a new basic, non-lazy in-memory table. // // NewTableFromRecords panics if the records and schema are inconsistent. @@ -323,6 +366,7 @@ func (tr *TableReader) Release() { tr.offsets = nil } } +func (tr *TableReader) Err() error { return nil } func imin64(a, b int64) int64 { if a < b { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/union.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/union.go similarity index 94% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/union.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/union.go index da15f63..2635251 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/union.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/union.go @@ -25,11 +25,11 @@ import ( "strings" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/internal/bitutils" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/bitutils" "github.com/goccy/go-json" ) @@ -313,7 +313,7 @@ func (a *SparseUnion) setData(data *Data) { debug.Assert(a.data.buffers[0] == nil, "arrow/array: validity bitmap for sparse unions should be nil") } -func (a *SparseUnion) getOneForMarshal(i int) interface{} { +func (a *SparseUnion) GetOneForMarshal(i int) interface{} { typeID := a.RawTypeCodes()[i] childID := a.ChildID(i) @@ -323,7 +323,7 @@ func (a *SparseUnion) getOneForMarshal(i int) interface{} { return nil } - return []interface{}{typeID, data.(arraymarshal).getOneForMarshal(i)} + return []interface{}{typeID, data.GetOneForMarshal(i)} } func (a *SparseUnion) MarshalJSON() ([]byte, error) { @@ -335,7 +335,7 @@ func (a *SparseUnion) MarshalJSON() ([]byte, error) { if i != 0 { buf.WriteByte(',') } - if err := enc.Encode(a.getOneForMarshal(i)); err != nil { + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { return nil, err } } @@ -343,6 +343,14 @@ func (a *SparseUnion) MarshalJSON() ([]byte, error) { return buf.Bytes(), nil } +func (a *SparseUnion) ValueStr(i int) string { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { + panic(err) + } + return buf.String() +} func (a *SparseUnion) String() string { var b strings.Builder b.WriteByte('[') @@ -355,7 +363,7 @@ func (a *SparseUnion) String() string { field := fieldList[a.ChildID(i)] f := a.Field(a.ChildID(i)) - fmt.Fprintf(&b, "{%s=%v}", field.Name, f.(arraymarshal).getOneForMarshal(i)) + fmt.Fprintf(&b, "{%s=%v}", field.Name, f.GetOneForMarshal(i)) } b.WriteByte(']') return b.String() @@ -570,7 +578,7 @@ func (a *DenseUnion) setData(data *Data) { } } -func (a *DenseUnion) getOneForMarshal(i int) interface{} { +func (a *DenseUnion) GetOneForMarshal(i int) interface{} { typeID := a.RawTypeCodes()[i] childID := a.ChildID(i) @@ -581,7 +589,7 @@ func (a *DenseUnion) getOneForMarshal(i int) interface{} { return nil } - return []interface{}{typeID, data.(arraymarshal).getOneForMarshal(int(offsets[i]))} + return []interface{}{typeID, data.GetOneForMarshal(int(offsets[i]))} } func (a *DenseUnion) MarshalJSON() ([]byte, error) { @@ -593,7 +601,7 @@ func (a *DenseUnion) MarshalJSON() ([]byte, error) { if i != 0 { buf.WriteByte(',') } - if err := enc.Encode(a.getOneForMarshal(i)); err != nil { + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { return nil, err } } @@ -601,6 +609,15 @@ func (a *DenseUnion) MarshalJSON() ([]byte, error) { return buf.Bytes(), nil } +func (a *DenseUnion) ValueStr(i int) string { + var buf bytes.Buffer + enc := json.NewEncoder(&buf) + if err := enc.Encode(a.GetOneForMarshal(i)); err != nil { + panic(err) + } + return buf.String() +} + func (a *DenseUnion) String() string { var b strings.Builder b.WriteByte('[') @@ -615,7 +632,7 @@ func (a *DenseUnion) String() string { field := fieldList[a.ChildID(i)] f := a.Field(a.ChildID(i)) - fmt.Fprintf(&b, "{%s=%v}", field.Name, f.(arraymarshal).getOneForMarshal(int(offsets[i]))) + fmt.Fprintf(&b, "{%s=%v}", field.Name, f.GetOneForMarshal(int(offsets[i]))) } b.WriteByte(']') return b.String() @@ -738,6 +755,10 @@ func newUnionBuilder(mem memory.Allocator, children []Builder, typ arrow.UnionTy return b } +func (b *unionBuilder) NumChildren() int { + return len(b.children) +} + func (b *unionBuilder) Child(idx int) Builder { if idx < 0 || idx > len(b.children) { panic("arrow/array: invalid child index for union builder") @@ -745,6 +766,9 @@ func (b *unionBuilder) Child(idx int) Builder { return b.children[idx] } +// Len returns the current number of elements in the builder. +func (b *unionBuilder) Len() int { return b.typesBuilder.Len() } + func (b *unionBuilder) Mode() arrow.UnionMode { return b.mode } func (b *unionBuilder) reserve(elements int, resize func(int)) { @@ -968,19 +992,24 @@ func (b *SparseUnionBuilder) UnmarshalJSON(data []byte) (err error) { if delim, ok := t.(json.Delim); !ok || delim != '[' { return fmt.Errorf("sparse union builder must unpack from json array, found %s", t) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } -func (b *SparseUnionBuilder) unmarshal(dec *json.Decoder) error { +func (b *SparseUnionBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } return nil } -func (b *SparseUnionBuilder) unmarshalOne(dec *json.Decoder) error { +func (b *SparseUnionBuilder) AppendValueFromString(s string) error { + dec := json.NewDecoder(strings.NewReader(s)) + return b.UnmarshalOne(dec) +} + +func (b *SparseUnionBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1030,7 +1059,7 @@ func (b *SparseUnionBuilder) unmarshalOne(dec *json.Decoder) error { } b.Append(typeCode) - if err := b.children[childNum].unmarshalOne(dec); err != nil { + if err := b.children[childNum].UnmarshalOne(dec); err != nil { return err } @@ -1213,19 +1242,24 @@ func (b *DenseUnionBuilder) UnmarshalJSON(data []byte) (err error) { if delim, ok := t.(json.Delim); !ok || delim != '[' { return fmt.Errorf("dense union builder must unpack from json array, found %s", t) } - return b.unmarshal(dec) + return b.Unmarshal(dec) } -func (b *DenseUnionBuilder) unmarshal(dec *json.Decoder) error { +func (b *DenseUnionBuilder) Unmarshal(dec *json.Decoder) error { for dec.More() { - if err := b.unmarshalOne(dec); err != nil { + if err := b.UnmarshalOne(dec); err != nil { return err } } return nil } -func (b *DenseUnionBuilder) unmarshalOne(dec *json.Decoder) error { +func (d *DenseUnionBuilder) AppendValueFromString(s string) error { + dec := json.NewDecoder(strings.NewReader(s)) + return d.UnmarshalOne(dec) +} + +func (b *DenseUnionBuilder) UnmarshalOne(dec *json.Decoder) error { t, err := dec.Token() if err != nil { return err @@ -1269,7 +1303,7 @@ func (b *DenseUnionBuilder) unmarshalOne(dec *json.Decoder) error { } b.Append(typeCode) - if err := b.children[childNum].unmarshalOne(dec); err != nil { + if err := b.children[childNum].UnmarshalOne(dec); err != nil { return err } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/util.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/util.go similarity index 92% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/array/util.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/array/util.go index a40b3e0..897bae7 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/array/util.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/array/util.go @@ -22,10 +22,10 @@ import ( "io" "strings" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/internal/hashing" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/hashing" "github.com/goccy/go-json" ) @@ -161,7 +161,7 @@ func FromJSON(mem memory.Allocator, dt arrow.DataType, r io.Reader, opts ...From } } - if err = bldr.unmarshal(dec); err != nil { + if err = bldr.Unmarshal(dec); err != nil { return nil, dec.InputOffset(), err } @@ -228,7 +228,7 @@ func RecordToJSON(rec arrow.Record, w io.Writer) error { cols := make(map[string]interface{}) for i := 0; int64(i) < rec.NumRows(); i++ { for j, c := range rec.Columns() { - cols[fields[j].Name] = c.(arraymarshal).getOneForMarshal(i) + cols[fields[j].Name] = c.GetOneForMarshal(i) } if err := enc.Encode(cols); err != nil { return err @@ -250,7 +250,7 @@ func TableFromJSON(mem memory.Allocator, sc *arrow.Schema, recJSON []string, opt return NewTableFromRecords(sc, batches), nil } -func getDictArrayData(mem memory.Allocator, valueType arrow.DataType, memoTable hashing.MemoTable, startOffset int) (*Data, error) { +func GetDictArrayData(mem memory.Allocator, valueType arrow.DataType, memoTable hashing.MemoTable, startOffset int) (*Data, error) { dictLen := memoTable.Size() - startOffset buffers := []*memory.Buffer{nil, nil} @@ -272,6 +272,17 @@ func getDictArrayData(mem memory.Allocator, valueType arrow.DataType, memoTable offsets := arrow.Int32Traits.CastFromBytes(buffers[1].Bytes()) tbl.CopyOffsetsSubset(startOffset, offsets) + valuesz := offsets[len(offsets)-1] - offsets[0] + buffers[2].Resize(int(valuesz)) + tbl.CopyValuesSubset(startOffset, buffers[2].Bytes()) + case arrow.LARGE_BINARY, arrow.LARGE_STRING: + buffers = append(buffers, memory.NewResizableBuffer(mem)) + defer buffers[2].Release() + + buffers[1].Resize(arrow.Int64Traits.BytesRequired(dictLen + 1)) + offsets := arrow.Int64Traits.CastFromBytes(buffers[1].Bytes()) + tbl.CopyLargeOffsetsSubset(startOffset, offsets) + valuesz := offsets[len(offsets)-1] - offsets[0] buffers[2].Resize(int(valuesz)) tbl.CopyValuesSubset(startOffset, buffers[2].Bytes()) @@ -440,6 +451,23 @@ func (n *nullArrayFactory) create() *Data { childData[i] = n.createChild(dt, i, n.len) defer childData[i].Release() } + case *arrow.RunEndEncodedType: + bldr := NewBuilder(n.mem, dt.RunEnds()) + defer bldr.Release() + + switch b := bldr.(type) { + case *Int16Builder: + b.Append(int16(n.len)) + case *Int32Builder: + b.Append(int32(n.len)) + case *Int64Builder: + b.Append(int64(n.len)) + } + + childData[0] = bldr.newData() + defer childData[0].Release() + childData[1] = n.createChild(dt.Encoded(), 1, 1) + defer childData[1].Release() case arrow.UnionType: bufs[0].Release() bufs[0] = nil diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/arrio/arrio.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/arrio/arrio.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/arrio/arrio.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/arrio/arrio.go index 1115a77..45d1154 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/arrio/arrio.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/arrio/arrio.go @@ -22,7 +22,7 @@ import ( "errors" "io" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" ) // Reader is the interface that wraps the Read method. diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/Makefile b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/Makefile similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/Makefile rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/Makefile diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops.go similarity index 63% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops.go index 62322b0..7db750a 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops.go @@ -39,6 +39,29 @@ func alignedBitAndGo(left, right, out []byte) { } } +func alignedBitAndNotGo(left, right, out []byte) { + var ( + nbytes = len(out) + i = 0 + ) + if nbytes > uint64SizeBytes { + // case where we have enough bytes to operate on words + leftWords := bytesToUint64(left[i:]) + rightWords := bytesToUint64(right[i:]) + outWords := bytesToUint64(out[i:]) + + for w := range outWords { + outWords[w] = leftWords[w] &^ rightWords[w] + } + + i += len(outWords) * uint64SizeBytes + } + // grab any remaining bytes that were fewer than a word + for ; i < nbytes; i++ { + out[i] = left[i] &^ right[i] + } +} + func alignedBitOrGo(left, right, out []byte) { var ( nbytes = len(out) @@ -61,3 +84,26 @@ func alignedBitOrGo(left, right, out []byte) { out[i] = left[i] | right[i] } } + +func alignedBitXorGo(left, right, out []byte) { + var ( + nbytes = len(out) + i = 0 + ) + if nbytes > uint64SizeBytes { + // case where we have enough bytes to operate on words + leftWords := bytesToUint64(left[i:]) + rightWords := bytesToUint64(right[i:]) + outWords := bytesToUint64(out[i:]) + + for w := range outWords { + outWords[w] = leftWords[w] ^ rightWords[w] + } + + i += len(outWords) * uint64SizeBytes + } + // grab any remaining bytes that were fewer than a word + for ; i < nbytes; i++ { + out[i] = left[i] ^ right[i] + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_amd64.go similarity index 81% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_amd64.go index 9aa5a6d..ad0fd67 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_amd64.go @@ -25,11 +25,17 @@ func init() { if cpu.X86.HasAVX2 { bitAndOp.opAligned = bitmapAlignedAndAVX2 bitOrOp.opAligned = bitmapAlignedOrAVX2 + bitAndNotOp.opAligned = bitmapAlignedAndNotAVX2 + bitXorOp.opAligned = bitmapAlignedXorAVX2 } else if cpu.X86.HasSSE42 { bitAndOp.opAligned = bitmapAlignedAndSSE4 bitOrOp.opAligned = bitmapAlignedOrSSE4 + bitAndNotOp.opAligned = bitmapAlignedAndNotSSE4 + bitXorOp.opAligned = bitmapAlignedXorSSE4 } else { bitAndOp.opAligned = alignedBitAndGo bitOrOp.opAligned = alignedBitOrGo + bitAndNotOp.opAligned = alignedBitAndNotGo + bitXorOp.opAligned = alignedBitXorGo } } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_arm64.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_arm64.go index 86c4763..28d95d8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_arm64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_arm64.go @@ -22,4 +22,6 @@ package bitutil func init() { bitAndOp.opAligned = alignedBitAndGo bitOrOp.opAligned = alignedBitOrGo + bitAndNotOp.opAligned = alignedBitAndNotGo + bitXorOp.opAligned = alignedBitXorGo } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.go similarity index 71% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.go index 731b980..1c01bd0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.go @@ -36,3 +36,17 @@ func _bitmap_aligned_or_avx2(left, right, out unsafe.Pointer, length int64) func bitmapAlignedOrAVX2(left, right, out []byte) { _bitmap_aligned_or_avx2(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) } + +//go:noescape +func _bitmap_aligned_and_not_avx2(left, right, out unsafe.Pointer, length int64) + +func bitmapAlignedAndNotAVX2(left, right, out []byte) { + _bitmap_aligned_and_not_avx2(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) +} + +//go:noescape +func _bitmap_aligned_xor_avx2(left, right, out unsafe.Pointer, length int64) + +func bitmapAlignedXorAVX2(left, right, out []byte) { + _bitmap_aligned_xor_avx2(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.s similarity index 52% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.s index 2e2ade8..00172e8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_avx2_amd64.s +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_avx2_amd64.s @@ -190,3 +190,184 @@ LBB1_6: LBB1_12: VZEROUPPER RET + +TEXT ·_bitmap_aligned_and_not_avx2(SB), $0-32 + + MOVQ left+0(FP), DI + MOVQ right+8(FP), SI + MOVQ out+16(FP), DX + MOVQ length+24(FP), CX + + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JLE LBB2_12 + LONG $0x7ff98348 // cmp rcx, 127 + JA LBB2_7 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB2_3 + +LBB2_7: + LONG $0x0a048d4c // lea r8, [rdx + rcx] + LONG $0x0f048d48 // lea rax, [rdi + rcx] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd3970f41 // seta r11b + LONG $0x0e048d48 // lea rax, [rsi + rcx] + WORD $0x3949; BYTE $0xf8 // cmp r8, rdi + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd2970f41 // seta r10b + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + LONG $0xd1970f41 // seta r9b + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8441; BYTE $0xdb // test r11b, bl + JNE LBB2_3 + WORD $0x2045; BYTE $0xca // and r10b, r9b + JNE LBB2_3 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80e08349 // and r8, -128 + WORD $0xc031 // xor eax, eax + +LBB2_10: + LONG $0x0410fcc5; BYTE $0x06 // vmovups ymm0, yword [rsi + rax] + LONG $0x4c10fcc5; WORD $0x2006 // vmovups ymm1, yword [rsi + rax + 32] + LONG $0x5410fcc5; WORD $0x4006 // vmovups ymm2, yword [rsi + rax + 64] + LONG $0x5c10fcc5; WORD $0x6006 // vmovups ymm3, yword [rsi + rax + 96] + LONG $0x0455fcc5; BYTE $0x07 // vandnps ymm0, ymm0, yword [rdi + rax] + LONG $0x4c55f4c5; WORD $0x2007 // vandnps ymm1, ymm1, yword [rdi + rax + 32] + LONG $0x5455ecc5; WORD $0x4007 // vandnps ymm2, ymm2, yword [rdi + rax + 64] + LONG $0x5c55e4c5; WORD $0x6007 // vandnps ymm3, ymm3, yword [rdi + rax + 96] + LONG $0x0411fcc5; BYTE $0x02 // vmovups yword [rdx + rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2002 // vmovups yword [rdx + rax + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4002 // vmovups yword [rdx + rax + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6002 // vmovups yword [rdx + rax + 96], ymm3 + LONG $0x80e88348 // sub rax, -128 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB2_10 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JE LBB2_12 + +LBB2_3: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0xc1f6; BYTE $0x01 // test cl, 1 + JE LBB2_5 + LONG $0x06048a42 // mov al, byte [rsi + r8] + WORD $0xd0f6 // not al + LONG $0x07042242 // and al, byte [rdi + r8] + LONG $0x02048842 // mov byte [rdx + r8], al + LONG $0x01c88349 // or r8, 1 + +LBB2_5: + WORD $0x0149; BYTE $0xc9 // add r9, rcx + JE LBB2_12 + +LBB2_6: + LONG $0x04b60f42; BYTE $0x06 // movzx eax, byte [rsi + r8] + WORD $0xd0f6 // not al + LONG $0x07042242 // and al, byte [rdi + r8] + LONG $0x02048842 // mov byte [rdx + r8], al + LONG $0x44b60f42; WORD $0x0106 // movzx eax, byte [rsi + r8 + 1] + WORD $0xd0f6 // not al + LONG $0x07442242; BYTE $0x01 // and al, byte [rdi + r8 + 1] + LONG $0x02448842; BYTE $0x01 // mov byte [rdx + r8 + 1], al + LONG $0x02c08349 // add r8, 2 + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JNE LBB2_6 + +LBB2_12: + VZEROUPPER + RET + +TEXT ·_bitmap_aligned_xor_avx2(SB), $0-32 + + MOVQ left+0(FP), DI + MOVQ right+8(FP), SI + MOVQ out+16(FP), DX + MOVQ length+24(FP), CX + + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JLE LBB3_12 + LONG $0x7ff98348 // cmp rcx, 127 + JA LBB3_7 + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + JMP LBB3_3 + +LBB3_7: + LONG $0x0a0c8d4c // lea r9, [rdx + rcx] + LONG $0x0f048d48 // lea rax, [rdi + rcx] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd3970f41 // seta r11b + LONG $0x0e048d48 // lea rax, [rsi + rcx] + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd0970f41 // seta r8b + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + LONG $0xd1970f41 // seta r9b + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8441; BYTE $0xdb // test r11b, bl + JNE LBB3_3 + WORD $0x2045; BYTE $0xc8 // and r8b, r9b + JNE LBB3_3 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x80e28349 // and r10, -128 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB3_10: + LONG $0x107ca1c4; WORD $0x0604 // vmovups ymm0, yword [rsi + r8] + LONG $0x107ca1c4; WORD $0x064c; BYTE $0x20 // vmovups ymm1, yword [rsi + r8 + 32] + LONG $0x107ca1c4; WORD $0x0654; BYTE $0x40 // vmovups ymm2, yword [rsi + r8 + 64] + LONG $0x107ca1c4; WORD $0x065c; BYTE $0x60 // vmovups ymm3, yword [rsi + r8 + 96] + LONG $0x577ca1c4; WORD $0x0704 // vxorps ymm0, ymm0, yword [rdi + r8] + LONG $0x5774a1c4; WORD $0x074c; BYTE $0x20 // vxorps ymm1, ymm1, yword [rdi + r8 + 32] + LONG $0x576ca1c4; WORD $0x0754; BYTE $0x40 // vxorps ymm2, ymm2, yword [rdi + r8 + 64] + LONG $0x5764a1c4; WORD $0x075c; BYTE $0x60 // vxorps ymm3, ymm3, yword [rdi + r8 + 96] + LONG $0x117ca1c4; WORD $0x0204 // vmovups yword [rdx + r8], ymm0 + LONG $0x117ca1c4; WORD $0x024c; BYTE $0x20 // vmovups yword [rdx + r8 + 32], ymm1 + LONG $0x117ca1c4; WORD $0x0254; BYTE $0x40 // vmovups yword [rdx + r8 + 64], ymm2 + LONG $0x117ca1c4; WORD $0x025c; BYTE $0x60 // vmovups yword [rdx + r8 + 96], ymm3 + LONG $0x80e88349 // sub r8, -128 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JNE LBB3_10 + WORD $0x3949; BYTE $0xca // cmp r10, rcx + JE LBB3_12 + +LBB3_3: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x0149; BYTE $0xc8 // add r8, rcx + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e18349 // and r9, 3 + JE LBB3_5 + +LBB3_4: + LONG $0x04b60f42; BYTE $0x16 // movzx eax, byte [rsi + r10] + LONG $0x17043242 // xor al, byte [rdi + r10] + LONG $0x12048842 // mov byte [rdx + r10], al + LONG $0x01c28349 // add r10, 1 + LONG $0xffc18349 // add r9, -1 + JNE LBB3_4 + +LBB3_5: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_12 + +LBB3_6: + LONG $0x04b60f42; BYTE $0x16 // movzx eax, byte [rsi + r10] + LONG $0x17043242 // xor al, byte [rdi + r10] + LONG $0x12048842 // mov byte [rdx + r10], al + LONG $0x44b60f42; WORD $0x0116 // movzx eax, byte [rsi + r10 + 1] + LONG $0x17443242; BYTE $0x01 // xor al, byte [rdi + r10 + 1] + LONG $0x12448842; BYTE $0x01 // mov byte [rdx + r10 + 1], al + LONG $0x44b60f42; WORD $0x0216 // movzx eax, byte [rsi + r10 + 2] + LONG $0x17443242; BYTE $0x02 // xor al, byte [rdi + r10 + 2] + LONG $0x12448842; BYTE $0x02 // mov byte [rdx + r10 + 2], al + LONG $0x44b60f42; WORD $0x0316 // movzx eax, byte [rsi + r10 + 3] + LONG $0x17443242; BYTE $0x03 // xor al, byte [rdi + r10 + 3] + LONG $0x12448842; BYTE $0x03 // mov byte [rdx + r10 + 3], al + LONG $0x04c28349 // add r10, 4 + WORD $0x394c; BYTE $0xd1 // cmp rcx, r10 + JNE LBB3_6 + +LBB3_12: + VZEROUPPER + RET diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_noasm.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_noasm.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_noasm.go index 785531c..e253477 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_noasm.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_noasm.go @@ -22,4 +22,6 @@ package bitutil func init() { bitAndOp.opAligned = alignedBitAndGo bitOrOp.opAligned = alignedBitOrGo + bitAndNotOp.opAligned = alignedBitAndNotGo + bitXorOp.opAligned = alignedBitXorGo } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_ppc64le.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_ppc64le.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_ppc64le.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_ppc64le.go index 86c4763..28d95d8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_ppc64le.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_ppc64le.go @@ -22,4 +22,6 @@ package bitutil func init() { bitAndOp.opAligned = alignedBitAndGo bitOrOp.opAligned = alignedBitOrGo + bitAndNotOp.opAligned = alignedBitAndNotGo + bitXorOp.opAligned = alignedBitXorGo } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_s390x.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_s390x.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_s390x.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_s390x.go index 86c4763..28d95d8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_s390x.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_s390x.go @@ -22,4 +22,6 @@ package bitutil func init() { bitAndOp.opAligned = alignedBitAndGo bitOrOp.opAligned = alignedBitOrGo + bitAndNotOp.opAligned = alignedBitAndNotGo + bitXorOp.opAligned = alignedBitXorGo } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.go similarity index 71% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.go index 5d1fcf9..f16bce1 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.go @@ -36,3 +36,17 @@ func _bitmap_aligned_or_sse4(left, right, out unsafe.Pointer, length int64) func bitmapAlignedOrSSE4(left, right, out []byte) { _bitmap_aligned_or_sse4(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) } + +//go:noescape +func _bitmap_aligned_and_not_sse4(left, right, out unsafe.Pointer, length int64) + +func bitmapAlignedAndNotSSE4(left, right, out []byte) { + _bitmap_aligned_and_not_sse4(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) +} + +//go:noescape +func _bitmap_aligned_xor_sse4(left, right, out unsafe.Pointer, length int64) + +func bitmapAlignedXorSSE4(left, right, out []byte) { + _bitmap_aligned_xor_sse4(unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), int64(len(out))) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.s similarity index 51% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.s index ad81cf6..c15e186 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmap_ops_sse4_amd64.s +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmap_ops_sse4_amd64.s @@ -254,3 +254,248 @@ LBB1_10: LONG $0x01c1f641 // test r9b, 1 JNE LBB1_14 JMP LBB1_15 + +TEXT ·_bitmap_aligned_and_not_sse4(SB), $0-32 + + MOVQ left+0(FP), DI + MOVQ right+8(FP), SI + MOVQ out+16(FP), DX + MOVQ length+24(FP), CX + + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JLE LBB2_16 + LONG $0x1ff98348 // cmp rcx, 31 + JA LBB2_7 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB2_3: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0xc1f6; BYTE $0x01 // test cl, 1 + JE LBB2_5 + LONG $0x1e048a42 // mov al, byte [rsi + r11] + WORD $0xd0f6 // not al + LONG $0x1f042242 // and al, byte [rdi + r11] + LONG $0x1a048842 // mov byte [rdx + r11], al + LONG $0x01cb8349 // or r11, 1 + +LBB2_5: + WORD $0x0149; BYTE $0xc8 // add r8, rcx + JE LBB2_16 + +LBB2_6: + LONG $0x04b60f42; BYTE $0x1e // movzx eax, byte [rsi + r11] + WORD $0xd0f6 // not al + LONG $0x1f042242 // and al, byte [rdi + r11] + LONG $0x1a048842 // mov byte [rdx + r11], al + LONG $0x44b60f42; WORD $0x011e // movzx eax, byte [rsi + r11 + 1] + WORD $0xd0f6 // not al + LONG $0x1f442242; BYTE $0x01 // and al, byte [rdi + r11 + 1] + LONG $0x1a448842; BYTE $0x01 // mov byte [rdx + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394c; BYTE $0xd9 // cmp rcx, r11 + JNE LBB2_6 + JMP LBB2_16 + +LBB2_7: + LONG $0x0a0c8d4c // lea r9, [rdx + rcx] + LONG $0x0f048d48 // lea rax, [rdi + rcx] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd2970f41 // seta r10b + LONG $0x0e048d48 // lea rax, [rsi + rcx] + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd0970f41 // seta r8b + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + LONG $0xd1970f41 // seta r9b + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x8441; BYTE $0xda // test r10b, bl + JNE LBB2_3 + WORD $0x2045; BYTE $0xc8 // and r8b, r9b + JNE LBB2_3 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0xe0e38349 // and r11, -32 + LONG $0xe0438d49 // lea rax, [r11 - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB2_10 + WORD $0x894d; BYTE $0xca // mov r10, r9 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB2_12: + LONG $0x04100f42; BYTE $0x07 // movups xmm0, oword [rdi + r8] + LONG $0x4c100f42; WORD $0x1007 // movups xmm1, oword [rdi + r8 + 16] + LONG $0x14100f42; BYTE $0x06 // movups xmm2, oword [rsi + r8] + WORD $0x550f; BYTE $0xd0 // andnps xmm2, xmm0 + LONG $0x44100f42; WORD $0x1006 // movups xmm0, oword [rsi + r8 + 16] + WORD $0x550f; BYTE $0xc1 // andnps xmm0, xmm1 + LONG $0x14110f42; BYTE $0x02 // movups oword [rdx + r8], xmm2 + LONG $0x44110f42; WORD $0x1002 // movups oword [rdx + r8 + 16], xmm0 + LONG $0x44100f42; WORD $0x2007 // movups xmm0, oword [rdi + r8 + 32] + LONG $0x4c100f42; WORD $0x3007 // movups xmm1, oword [rdi + r8 + 48] + LONG $0x54100f42; WORD $0x2006 // movups xmm2, oword [rsi + r8 + 32] + WORD $0x550f; BYTE $0xd0 // andnps xmm2, xmm0 + LONG $0x44100f42; WORD $0x3006 // movups xmm0, oword [rsi + r8 + 48] + WORD $0x550f; BYTE $0xc1 // andnps xmm0, xmm1 + LONG $0x54110f42; WORD $0x2002 // movups oword [rdx + r8 + 32], xmm2 + LONG $0x44110f42; WORD $0x3002 // movups oword [rdx + r8 + 48], xmm0 + LONG $0x40c08349 // add r8, 64 + LONG $0x02c28349 // add r10, 2 + JNE LBB2_12 + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_15 + +LBB2_14: + LONG $0x04100f42; BYTE $0x07 // movups xmm0, oword [rdi + r8] + LONG $0x4c100f42; WORD $0x1007 // movups xmm1, oword [rdi + r8 + 16] + LONG $0x14100f42; BYTE $0x06 // movups xmm2, oword [rsi + r8] + WORD $0x550f; BYTE $0xd0 // andnps xmm2, xmm0 + LONG $0x44100f42; WORD $0x1006 // movups xmm0, oword [rsi + r8 + 16] + WORD $0x550f; BYTE $0xc1 // andnps xmm0, xmm1 + LONG $0x14110f42; BYTE $0x02 // movups oword [rdx + r8], xmm2 + LONG $0x44110f42; WORD $0x1002 // movups oword [rdx + r8 + 16], xmm0 + +LBB2_15: + WORD $0x3949; BYTE $0xcb // cmp r11, rcx + JNE LBB2_3 + +LBB2_16: + RET + +LBB2_10: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + LONG $0x01c1f641 // test r9b, 1 + JNE LBB2_14 + JMP LBB2_15 + +TEXT ·_bitmap_aligned_xor_sse4(SB), $0-32 + + MOVQ left+0(FP), DI + MOVQ right+8(FP), SI + MOVQ out+16(FP), DX + MOVQ length+24(FP), CX + + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JLE LBB3_16 + LONG $0x1ff98348 // cmp rcx, 31 + JA LBB3_7 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB3_3: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x0149; BYTE $0xc8 // add r8, rcx + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e18349 // and r9, 3 + JE LBB3_5 + +LBB3_4: + LONG $0x04b60f42; BYTE $0x1e // movzx eax, byte [rsi + r11] + LONG $0x1f043242 // xor al, byte [rdi + r11] + LONG $0x1a048842 // mov byte [rdx + r11], al + LONG $0x01c38349 // add r11, 1 + LONG $0xffc18349 // add r9, -1 + JNE LBB3_4 + +LBB3_5: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_16 + +LBB3_6: + LONG $0x04b60f42; BYTE $0x1e // movzx eax, byte [rsi + r11] + LONG $0x1f043242 // xor al, byte [rdi + r11] + LONG $0x1a048842 // mov byte [rdx + r11], al + LONG $0x44b60f42; WORD $0x011e // movzx eax, byte [rsi + r11 + 1] + LONG $0x1f443242; BYTE $0x01 // xor al, byte [rdi + r11 + 1] + LONG $0x1a448842; BYTE $0x01 // mov byte [rdx + r11 + 1], al + LONG $0x44b60f42; WORD $0x021e // movzx eax, byte [rsi + r11 + 2] + LONG $0x1f443242; BYTE $0x02 // xor al, byte [rdi + r11 + 2] + LONG $0x1a448842; BYTE $0x02 // mov byte [rdx + r11 + 2], al + LONG $0x44b60f42; WORD $0x031e // movzx eax, byte [rsi + r11 + 3] + LONG $0x1f443242; BYTE $0x03 // xor al, byte [rdi + r11 + 3] + LONG $0x1a448842; BYTE $0x03 // mov byte [rdx + r11 + 3], al + LONG $0x04c38349 // add r11, 4 + WORD $0x394c; BYTE $0xd9 // cmp rcx, r11 + JNE LBB3_6 + JMP LBB3_16 + +LBB3_7: + LONG $0x0a0c8d4c // lea r9, [rdx + rcx] + LONG $0x0f048d48 // lea rax, [rdi + rcx] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd2970f41 // seta r10b + LONG $0x0e048d48 // lea rax, [rsi + rcx] + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + LONG $0xd0970f41 // seta r8b + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + LONG $0xd1970f41 // seta r9b + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x8441; BYTE $0xda // test r10b, bl + JNE LBB3_3 + WORD $0x2045; BYTE $0xc8 // and r8b, r9b + JNE LBB3_3 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0xe0e38349 // and r11, -32 + LONG $0xe0438d49 // lea rax, [r11 - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_10 + WORD $0x894d; BYTE $0xca // mov r10, r9 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB3_12: + LONG $0x04100f42; BYTE $0x07 // movups xmm0, oword [rdi + r8] + LONG $0x4c100f42; WORD $0x1007 // movups xmm1, oword [rdi + r8 + 16] + LONG $0x14100f42; BYTE $0x06 // movups xmm2, oword [rsi + r8] + WORD $0x570f; BYTE $0xd0 // xorps xmm2, xmm0 + LONG $0x44100f42; WORD $0x1006 // movups xmm0, oword [rsi + r8 + 16] + WORD $0x570f; BYTE $0xc1 // xorps xmm0, xmm1 + LONG $0x14110f42; BYTE $0x02 // movups oword [rdx + r8], xmm2 + LONG $0x44110f42; WORD $0x1002 // movups oword [rdx + r8 + 16], xmm0 + LONG $0x44100f42; WORD $0x2007 // movups xmm0, oword [rdi + r8 + 32] + LONG $0x4c100f42; WORD $0x3007 // movups xmm1, oword [rdi + r8 + 48] + LONG $0x54100f42; WORD $0x2006 // movups xmm2, oword [rsi + r8 + 32] + WORD $0x570f; BYTE $0xd0 // xorps xmm2, xmm0 + LONG $0x44100f42; WORD $0x3006 // movups xmm0, oword [rsi + r8 + 48] + WORD $0x570f; BYTE $0xc1 // xorps xmm0, xmm1 + LONG $0x54110f42; WORD $0x2002 // movups oword [rdx + r8 + 32], xmm2 + LONG $0x44110f42; WORD $0x3002 // movups oword [rdx + r8 + 48], xmm0 + LONG $0x40c08349 // add r8, 64 + LONG $0x02c28349 // add r10, 2 + JNE LBB3_12 + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_15 + +LBB3_14: + LONG $0x04100f42; BYTE $0x07 // movups xmm0, oword [rdi + r8] + LONG $0x4c100f42; WORD $0x1007 // movups xmm1, oword [rdi + r8 + 16] + LONG $0x14100f42; BYTE $0x06 // movups xmm2, oword [rsi + r8] + WORD $0x570f; BYTE $0xd0 // xorps xmm2, xmm0 + LONG $0x44100f42; WORD $0x1006 // movups xmm0, oword [rsi + r8 + 16] + WORD $0x570f; BYTE $0xc1 // xorps xmm0, xmm1 + LONG $0x14110f42; BYTE $0x02 // movups oword [rdx + r8], xmm2 + LONG $0x44110f42; WORD $0x1002 // movups oword [rdx + r8 + 16], xmm0 + +LBB3_15: + WORD $0x3949; BYTE $0xcb // cmp r11, rcx + JNE LBB3_3 + +LBB3_16: + RET + +LBB3_10: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + LONG $0x01c1f641 // test r9b, 1 + JNE LBB3_14 + JMP LBB3_15 diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmaps.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmaps.go similarity index 77% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmaps.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmaps.go index abd1b18..d38ba5d 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitmaps.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitmaps.go @@ -18,12 +18,13 @@ package bitutil import ( "bytes" + "errors" "math/bits" "unsafe" - "github.com/apache/arrow/go/v10/arrow/endian" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" ) // BitmapReader is a simple bitmap reader for a byte slice. @@ -374,9 +375,14 @@ func (bm *BitmapWordWriter) PutNextTrailingByte(b byte, validBits int) { } } -// CopyBitmap copies the bitmap indicated by src, starting at bit offset srcOffset, -// and copying length bits into dst, starting at bit offset dstOffset. -func CopyBitmap(src []byte, srcOffset, length int, dst []byte, dstOffset int) { +type transferMode int8 + +const ( + transferCopy transferMode = iota + transferInvert +) + +func transferBitmap(mode transferMode, src []byte, srcOffset, length int, dst []byte, dstOffset int) { if length == 0 { // if there's nothing to write, end early. return @@ -393,12 +399,19 @@ func CopyBitmap(src []byte, srcOffset, length int, dst []byte, dstOffset int) { nwords := rdr.Words() for nwords > 0 { nwords-- - wr.PutNextWord(rdr.NextWord()) + if mode == transferInvert { + wr.PutNextWord(^rdr.NextWord()) + } else { + wr.PutNextWord(rdr.NextWord()) + } } nbytes := rdr.TrailingBytes() for nbytes > 0 { nbytes-- bt, validBits := rdr.NextTrailingByte() + if mode == transferInvert { + bt = ^bt + } wr.PutNextTrailingByte(bt, validBits) } return @@ -417,14 +430,33 @@ func CopyBitmap(src []byte, srcOffset, length int, dst []byte, dstOffset int) { // - high 5 bits: old bits from last byte of dest buffer trailingBits := nbytes*8 - length trailMask := byte(uint(1)<<(8-trailingBits)) - 1 - - copy(dst, src[:nbytes-1]) - lastData := src[nbytes-1] + var lastData byte + if mode == transferInvert { + for i, b := range src[:nbytes-1] { + dst[i] = ^b + } + lastData = ^src[nbytes-1] + } else { + copy(dst, src[:nbytes-1]) + lastData = src[nbytes-1] + } dst[nbytes-1] &= ^trailMask dst[nbytes-1] |= lastData & trailMask } +// CopyBitmap copies the bitmap indicated by src, starting at bit offset srcOffset, +// and copying length bits into dst, starting at bit offset dstOffset. +func CopyBitmap(src []byte, srcOffset, length int, dst []byte, dstOffset int) { + transferBitmap(transferCopy, src, srcOffset, length, dst, dstOffset) +} + +// InvertBitmap copies a bit range of a bitmap, inverting it as it copies +// over into the destination. +func InvertBitmap(src []byte, srcOffset, length int, dst []byte, dstOffset int) { + transferBitmap(transferInvert, src, srcOffset, length, dst, dstOffset) +} + type bitOp struct { opWord func(uint64, uint64) uint64 opByte func(byte, byte) byte @@ -440,6 +472,14 @@ var ( opWord: func(l, r uint64) uint64 { return l | r }, opByte: func(l, r byte) byte { return l | r }, } + bitAndNotOp = bitOp{ + opWord: func(l, r uint64) uint64 { return l &^ r }, + opByte: func(l, r byte) byte { return l &^ r }, + } + bitXorOp = bitOp{ + opWord: func(l, r uint64) uint64 { return l ^ r }, + opByte: func(l, r byte) byte { return l ^ r }, + } ) func alignedBitmapOp(op bitOp, left, right []byte, lOffset, rOffset int64, out []byte, outOffset int64, length int64) { @@ -532,6 +572,22 @@ func BitmapOrAlloc(mem memory.Allocator, left, right []byte, lOffset, rOffset in return BitmapOpAlloc(mem, bitOrOp, left, right, lOffset, rOffset, length, outOffset) } +func BitmapAndNot(left, right []byte, lOffset, rOffset int64, out []byte, outOffset int64, length int64) { + BitmapOp(bitAndNotOp, left, right, lOffset, rOffset, out, outOffset, length) +} + +func BitmapAndNotAlloc(mem memory.Allocator, left, right []byte, lOffset, rOffset int64, length, outOffset int64) *memory.Buffer { + return BitmapOpAlloc(mem, bitAndNotOp, left, right, lOffset, rOffset, length, outOffset) +} + +func BitmapXor(left, right []byte, lOffset, rOffset int64, out []byte, outOffset int64, length int64) { + BitmapOp(bitXorOp, left, right, lOffset, rOffset, out, outOffset, length) +} + +func BitmapXorAlloc(mem memory.Allocator, left, right []byte, lOffset, rOffset int64, length, outOffset int64) *memory.Buffer { + return BitmapOpAlloc(mem, bitXorOp, left, right, lOffset, rOffset, length, outOffset) +} + func BitmapEquals(left, right []byte, lOffset, rOffset int64, length int64) bool { if lOffset%8 == 0 && rOffset%8 == 0 { // byte aligned, fast path, can use bytes.Equal (memcmp) @@ -584,3 +640,108 @@ type OptionalBitIndexer struct { func (b *OptionalBitIndexer) GetBit(i int) bool { return b.Bitmap == nil || BitIsSet(b.Bitmap, b.Offset+i) } + +type Bitmap struct { + Data []byte + Offset, Len int64 +} + +func bitLength(bitmaps []Bitmap) (int64, error) { + for _, b := range bitmaps[1:] { + if b.Len != bitmaps[0].Len { + return -1, errors.New("bitmaps must be same length") + } + } + return bitmaps[0].Len, nil +} + +func runVisitWordsAndWriteLoop(bitLen int64, rdrs []*BitmapWordReader, wrs []*BitmapWordWriter, visitor func(in, out []uint64)) { + const bitWidth int64 = int64(uint64SizeBits) + + visited := make([]uint64, len(rdrs)) + output := make([]uint64, len(wrs)) + + // every reader will have same number of words, since they are same + // length'ed. This will be inefficient in some cases. When there's + // offsets beyond the Word boundary, every word would have to be + // created from 2 adjoining words + nwords := int64(rdrs[0].Words()) + bitLen -= nwords * bitWidth + for nwords > 0 { + nwords-- + for i := range visited { + visited[i] = rdrs[i].NextWord() + } + visitor(visited, output) + for i := range output { + wrs[i].PutNextWord(output[i]) + } + } + + // every reader will have the same number of trailing bytes, because + // we already confirmed they have the same length. Because + // offsets beyond the Word boundary can cause adjoining words, the + // tailing portion could be more than one word remaining full/partial + // words to write. + if bitLen == 0 { + return + } + + // convert the word visitor to a bytevisitor + byteVisitor := func(in, out []byte) { + for i, w := range in { + visited[i] = uint64(w) + } + visitor(visited, output) + for i, w := range output { + out[i] = byte(w) + } + } + + visitedBytes := make([]byte, len(rdrs)) + outputBytes := make([]byte, len(wrs)) + nbytes := rdrs[0].trailingBytes + for nbytes > 0 { + nbytes-- + memory.Set(visitedBytes, 0) + memory.Set(outputBytes, 0) + + var validBits int + for i := range rdrs { + visitedBytes[i], validBits = rdrs[i].NextTrailingByte() + } + byteVisitor(visitedBytes, outputBytes) + for i, w := range outputBytes { + wrs[i].PutNextTrailingByte(w, validBits) + } + } +} + +// VisitWordsAndWrite visits words of bits from each input bitmap and +// collects outputs to a slice of output Bitmaps. +// +// All bitmaps must have identical lengths. The first bit in a visited +// bitmap may be offset within the first visited word, but words will +// otherwise contain densely packed bits loaded from the bitmap. That +// offset within the first word is returned. +// +// NOTE: this function is efficient on 3+ sufficiently large bitmaps. +// It also has a large prolog/epilog overhead and should be used +// carefully in other cases. For 2 or fewer bitmaps, and/or smaller +// bitmaps, try BitmapReader and or other utilities. +func VisitWordsAndWrite(args []Bitmap, out []Bitmap, visitor func(in, out []uint64)) error { + bitLen, err := bitLength(args) + if err != nil { + return err + } + + rdrs, wrs := make([]*BitmapWordReader, len(args)), make([]*BitmapWordWriter, len(out)) + for i, in := range args { + rdrs[i] = NewBitmapWordReader(in.Data, int(in.Offset), int(in.Len)) + } + for i, o := range out { + wrs[i] = NewBitmapWordWriter(o.Data, int(o.Offset), int(o.Len)) + } + runVisitWordsAndWriteLoop(bitLen, rdrs, wrs, visitor) + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitutil.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitutil.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitutil.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitutil.go index 36bb02f..8c9e97c 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/bitutil.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/bitutil.go @@ -22,7 +22,7 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/memory" ) var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/endian_default.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/endian_default.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/endian_default.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/endian_default.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/endian_s390x.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/endian_s390x.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/bitutil/endian_s390x.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/bitutil/endian_s390x.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/compare.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compare.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/compare.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/compare.go index 511abe2..04f9b33 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/compare.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compare.go @@ -121,6 +121,10 @@ func TypeEqual(left, right DataType, opts ...TypeEqualOption) bool { case *TimestampType: r := right.(*TimestampType) return l.Unit == r.Unit && l.TimeZone == r.TimeZone + case *RunEndEncodedType: + r := right.(*RunEndEncodedType) + return TypeEqual(l.Encoded(), r.Encoded(), opts...) && + TypeEqual(l.runEnds, r.runEnds, opts...) default: return reflect.DeepEqual(left, right) } diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/arithmetic.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/arithmetic.go new file mode 100644 index 0000000..56eb38d --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/arithmetic.go @@ -0,0 +1,1227 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +type ( + RoundOptions = kernels.RoundOptions + RoundMode = kernels.RoundMode + RoundToMultipleOptions = kernels.RoundToMultipleOptions +) + +const ( + // Round to nearest integer less than or equal in magnitude (aka "floor") + RoundDown = kernels.RoundDown + // Round to nearest integer greater than or equal in magnitude (aka "ceil") + RoundUp = kernels.RoundUp + // Get integral part without fractional digits (aka "trunc") + RoundTowardsZero = kernels.TowardsZero + // Round negative values with DOWN and positive values with UP + RoundTowardsInfinity = kernels.AwayFromZero + // Round ties with DOWN (aka "round half towards negative infinity") + RoundHalfDown = kernels.HalfDown + // Round ties with UP (aka "round half towards positive infinity") + RoundHalfUp = kernels.HalfUp + // Round ties with TowardsZero (aka "round half away from infinity") + RoundHalfTowardsZero = kernels.HalfTowardsZero + // Round ties with AwayFromZero (aka "round half towards infinity") + RoundHalfTowardsInfinity = kernels.HalfAwayFromZero + // Round ties to nearest even integer + RoundHalfToEven = kernels.HalfToEven + // Round ties to nearest odd integer + RoundHalfToOdd = kernels.HalfToOdd +) + +var ( + DefaultRoundOptions = RoundOptions{NDigits: 0, Mode: RoundHalfToEven} + DefaultRoundToMultipleOptions = RoundToMultipleOptions{ + Multiple: scalar.NewFloat64Scalar(1), Mode: RoundHalfToEven} +) + +type arithmeticFunction struct { + ScalarFunction + + promote decimalPromotion +} + +func (fn *arithmeticFunction) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, fn, opts, -1, args...) +} + +func (fn *arithmeticFunction) checkDecimals(vals ...arrow.DataType) error { + if !hasDecimal(vals...) { + return nil + } + + if len(vals) != 2 { + return nil + } + + if fn.promote == decPromoteNone { + return fmt.Errorf("%w: invalid decimal function: %s", arrow.ErrInvalid, fn.name) + } + + return castBinaryDecimalArgs(fn.promote, vals...) +} + +func (fn *arithmeticFunction) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + if err := fn.checkArity(len(vals)); err != nil { + return nil, err + } + + if err := fn.checkDecimals(vals...); err != nil { + return nil, err + } + + if kn, err := fn.DispatchExact(vals...); err == nil { + return kn, nil + } + + ensureDictionaryDecoded(vals...) + + // only promote types for binary funcs + if len(vals) == 2 { + replaceNullWithOtherType(vals...) + if unit, istime := commonTemporalResolution(vals...); istime { + replaceTemporalTypes(unit, vals...) + } else { + if dt := commonNumeric(vals...); dt != nil { + replaceTypes(dt, vals...) + } + } + } + + return fn.DispatchExact(vals...) +} + +// an arithmetic function which promotes integers and decimal +// arguments to doubles. +type arithmeticFloatingPointFunc struct { + arithmeticFunction +} + +func (fn *arithmeticFloatingPointFunc) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, fn, opts, -1, args...) +} + +func (fn *arithmeticFloatingPointFunc) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + if err := fn.checkArity(len(vals)); err != nil { + return nil, err + } + + if kn, err := fn.DispatchExact(vals...); err == nil { + return kn, nil + } + + ensureDictionaryDecoded(vals...) + + if len(vals) == 2 { + replaceNullWithOtherType(vals...) + } + + for i, v := range vals { + if arrow.IsInteger(v.ID()) || arrow.IsDecimal(v.ID()) { + vals[i] = arrow.PrimitiveTypes.Float64 + } + } + + if dt := commonNumeric(vals...); dt != nil { + replaceTypes(dt, vals...) + } + + return fn.DispatchExact(vals...) +} + +// function that promotes only decimal arguments to float64 +type arithmeticDecimalToFloatingPointFunc struct { + arithmeticFunction +} + +func (fn *arithmeticDecimalToFloatingPointFunc) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, fn, opts, -1, args...) +} + +func (fn *arithmeticDecimalToFloatingPointFunc) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + if err := fn.checkArity(len(vals)); err != nil { + return nil, err + } + + if kn, err := fn.DispatchExact(vals...); err == nil { + return kn, nil + } + + ensureDictionaryDecoded(vals...) + if len(vals) == 2 { + replaceNullWithOtherType(vals...) + } + + for i, t := range vals { + if arrow.IsDecimal(t.ID()) { + vals[i] = arrow.PrimitiveTypes.Float64 + } + } + + if dt := commonNumeric(vals...); dt != nil { + replaceTypes(dt, vals...) + } + + return fn.DispatchExact(vals...) +} + +// function that promotes only integer arguments to float64 +type arithmeticIntegerToFloatingPointFunc struct { + arithmeticFunction +} + +func (fn *arithmeticIntegerToFloatingPointFunc) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, fn, opts, -1, args...) +} + +func (fn *arithmeticIntegerToFloatingPointFunc) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + if err := fn.checkArity(len(vals)); err != nil { + return nil, err + } + + if err := fn.checkDecimals(vals...); err != nil { + return nil, err + } + + if kn, err := fn.DispatchExact(vals...); err == nil { + return kn, nil + } + + ensureDictionaryDecoded(vals...) + if len(vals) == 2 { + replaceNullWithOtherType(vals...) + } + + for i, t := range vals { + if arrow.IsInteger(t.ID()) { + vals[i] = arrow.PrimitiveTypes.Float64 + } + } + + if dt := commonNumeric(vals...); dt != nil { + replaceTypes(dt, vals...) + } + + return fn.DispatchExact(vals...) +} + +var ( + absoluteValueUncheckedDoc = FunctionDoc{ + Summary: "Calculate the absolute value of the argument, element-wise", + Description: `Results will wrap around on integer overflow +Use function "abs" if you want overflows to return an error`, + ArgNames: []string{"x"}, + } + absoluteValueDoc = FunctionDoc{ + Summary: "Calculate the absolute value of the argument element-wise", + Description: `This function returns an error on overflow. For a variant that +won't fail on overflow, use function "abs_unchecked"`, + ArgNames: []string{"x"}, + } + addUncheckedDoc = FunctionDoc{ + Summary: "Add the arguments element-wise", + Description: `Results will wrap around on integer overflow +Use the function "add" if you want overflow to return an error`, + ArgNames: []string{"x", "y"}, + } + addDoc = FunctionDoc{ + Summary: "Add the arguments element-wise", + Description: `This function returns an error on overflow. +For a variant that won't fail on overflow, use function "add_unchecked"`, + ArgNames: []string{"x", "y"}, + } + subUncheckedDoc = FunctionDoc{ + Summary: "Subtract the arguments element-wise", + Description: `This Results will wrap around on integer overflow. +Use the function "sub" if you want overflow to return an error`, + ArgNames: []string{"x", "y"}, + } + subDoc = FunctionDoc{ + Summary: "Subtract the arguments element-wise", + Description: `This function returns an error on overflow. +For a variant that won't fail on overflow, use the function "sub_unchecked"`, + ArgNames: []string{"x", "y"}, + } + mulUncheckedDoc = FunctionDoc{ + Summary: "Multiply the arguments element-wise", + Description: `Results will wrap around on integer overflow. +Use function "multiply" if you want overflow to return an error`, + ArgNames: []string{"x", "y"}, + } + mulDoc = FunctionDoc{ + Summary: "Multiply the arguments element-wise", + Description: `This function returns an error on overflow. +For a variant that won't fail on overflow, use the function +"multiply_unchecked"`, + ArgNames: []string{"x", "y"}, + } + divUncheckedDoc = FunctionDoc{ + Summary: "Divide the arguments element-wise", + Description: `Integer division by zero returns an error. However integer +overflow wraps around, and floating-point division by zero returns Inf. +Use the function "divide" if you want to get an error in all the +aforementioned cases.`, + ArgNames: []string{"dividend", "divisor"}, + } + divDoc = FunctionDoc{ + Summary: "Divide the arguments element-wise", + Description: `An error is returned when trying to divide by zero, +or when integer overflow is encountered.`, + ArgNames: []string{"dividend", "divisor"}, + } + negateUncheckedDoc = FunctionDoc{ + Summary: "Negate the argument element-wise", + Description: `Results will wrap around on integer overflow +Use function "negate" if you want overflow to return an error`, + ArgNames: []string{"x"}, + } + negateDoc = FunctionDoc{ + Summary: "Negate the argument element-wise", + Description: `This function returns an error on overflow. For a variant +that doesn't fail on overflow, use the function "negate_unchecked".`, + ArgNames: []string{"x"}, + } + powUncheckedDoc = FunctionDoc{ + Summary: "Raise argument to a power element-wise", + Description: `Integers to negative integer powers return an error. +However, integer overflow wraps around. If either base or exponent is null +the result will be null.`, + ArgNames: []string{"base", "exponent"}, + } + powDoc = FunctionDoc{ + Summary: "Raise argument to a power element-wise", + Description: `An error is returned when an integer is raised to a negative +power or an integer overflow occurs.`, + ArgNames: []string{"base", "exponent"}, + } + sqrtUncheckedDoc = FunctionDoc{ + Summary: "Takes the square root of arguments element-wise", + Description: `A negative argument returns an NaN. For a variant that returns +an error, use function "sqrt"`, + ArgNames: []string{"x"}, + } + sqrtDoc = FunctionDoc{ + Summary: "Takes the square root of arguments element-wise", + Description: `A negative argument returns an error. For a variant that +instead returns NaN, use function "sqrt_unchecked"`, + ArgNames: []string{"x"}, + } + signDoc = FunctionDoc{ + Summary: "Get the signedness of the arguments element-wise", + Description: `Output is -1 if <0, 1 if >0 and 0 for 0. +NaN values return NaN. Integral values return signedness as Int8, +and floating-point values return it with the same type as the input values.`, + ArgNames: []string{"x"}, + } + bitWiseNotDoc = FunctionDoc{ + Summary: "Bit-wise negate the arguments element-wise", + Description: "Null values return null", + ArgNames: []string{"x"}, + } + bitWiseAndDoc = FunctionDoc{ + Summary: "Bit-wise AND the arguments element-wise", + Description: "Null values return null", + ArgNames: []string{"x", "y"}, + } + bitWiseOrDoc = FunctionDoc{ + Summary: "Bit-wise OR the arguments element-wise", + Description: "Null values return null", + ArgNames: []string{"x", "y"}, + } + bitWiseXorDoc = FunctionDoc{ + Summary: "Bit-wise XOR the arguments element-wise", + Description: "Null values return null", + ArgNames: []string{"x", "y"}, + } + shiftLeftUncheckedDoc = FunctionDoc{ + Summary: "Left shift `x` by `y`", + Description: `The shift operates as if on the two's complement representation +of the number. In other words, this is equivalent to multiplying "x" by 2 +to the power of "y", even if overflow occurs. +"x" is returned if "y" (the amount to shift by) is (1) negative or (2) +greater than or equal to the precision of "x". +Use function "shift_left" if you want an invalid shift amount to +return an error.`, + ArgNames: []string{"x", "y"}, + } + shiftLeftDoc = FunctionDoc{ + Summary: "Left shift `x` by `y`", + Description: `The shift operates as if on the two's complement representation +of the number. In other words, this is equivalent to multiplying "x" by 2 +to the power of "y", even if overflow occurs. +An error is raised if "y" (the amount to shift by) is (1) negative or (2) +greater than or equal to the precision of "x". +See "shift_left_unchecked" for a variant that doesn't fail for an invalid +shift amount.`, + ArgNames: []string{"x", "y"}, + } + shiftRightUncheckedDoc = FunctionDoc{ + Summary: "Right shift `x` by `y`", + Description: `This is equivalent to dividing "x" by 2 to the power "y". +"x" is returned if "y" (the amount to shift by) is: (1) negative or +(2) greater than or equal to the precision of "x". +Use function "shift_right" if you want an invalid +shift amount to return an error.`, + ArgNames: []string{"x", "y"}, + } + shiftRightDoc = FunctionDoc{ + Summary: "Right shift `x` by `y`", + Description: `This is equivalent to dividing "x" by 2 to the power "y". +An error is raised if "y" (the amount to shift by) is (1) negative or +(2) greater than or equal to the precision of "x". +See "shift_right_unchecked" for a variant that doesn't fail for +an invalid shift amount.`, + ArgNames: []string{"x", "y"}, + } + sinUncheckedDoc = FunctionDoc{ + Summary: "Compute the sine", + Description: `NaN is returned for invalid input values; to raise an error +instead, see "sin"`, + ArgNames: []string{"x"}, + } + sinDoc = FunctionDoc{ + Summary: "Compute the sine", + Description: `Invalid input values raise an error; +to return NaN instead, see "sin_unchecked".`, + ArgNames: []string{"x"}, + } + cosUncheckedDoc = FunctionDoc{ + Summary: "Compute the cosine", + Description: `NaN is returned for invalid input values; +to raise an error instead, see "cos".`, + ArgNames: []string{"x"}, + } + cosDoc = FunctionDoc{ + Summary: "Compute the cosine", + Description: `Infinite values raise an error; +to return NaN instead, see "cos_unchecked".`, + ArgNames: []string{"x"}, + } + tanUncheckedDoc = FunctionDoc{ + Summary: "Compute the tangent", + Description: `NaN is returned for invalid input values; +to raise an error instead see "tan".`, + ArgNames: []string{"x"}, + } + tanDoc = FunctionDoc{ + Summary: "Compute the tangent", + Description: `Infinite values raise an error; +to return NaN instead, see "tan_unchecked".`, + ArgNames: []string{"x"}, + } + asinUncheckedDoc = FunctionDoc{ + Summary: "Compute the inverse sine", + Description: `NaN is returned for invalid input values; +to raise an error instead, see "asin"`, + ArgNames: []string{"x"}, + } + asinDoc = FunctionDoc{ + Summary: "Compute the inverse sine", + Description: `Invalid input values raise an error; +to return NaN instead see asin_unchecked.`, + ArgNames: []string{"x"}, + } + acosUncheckedDoc = FunctionDoc{ + Summary: "Compute the inverse cosine", + Description: `NaN is returned for invalid input values; +to raise an error instead, see "acos".`, + ArgNames: []string{"x"}, + } + acosDoc = FunctionDoc{ + Summary: "Compute the inverse cosine", + Description: `Invalid input values raise an error; +to return NaN instead, see "acos_unchecked".`, + ArgNames: []string{"x"}, + } + atanDoc = FunctionDoc{ + Summary: "Compute the inverse tangent of x", + Description: `The return value is in the range [-pi/2, pi/2]; +for a full return range [-pi, pi], see "atan2"`, + ArgNames: []string{"x"}, + } + atan2Doc = FunctionDoc{ + Summary: "Compute the inverse tangent of y/x", + Description: "The return value is in the range [-pi, pi].", + ArgNames: []string{"y", "x"}, + } + lnUncheckedDoc = FunctionDoc{ + Summary: "Compute natural logarithm", + Description: `Non-positive values return -Inf or NaN. Null values return null. +Use function "ln" if you want non-positive values to raise an error.`, + ArgNames: []string{"x"}, + } + lnDoc = FunctionDoc{ + Summary: "Compute natural logarithm", + Description: `Non-positive values raise an error. Null values return null. +Use function "ln_unchecked" if you want non-positive values to return +-Inf or NaN`, + ArgNames: []string{"x"}, + } + log10UncheckedDoc = FunctionDoc{ + Summary: "Compute base 10 logarithm", + Description: `Non-positive values return -Inf or NaN. Null values return null. +Use function "log10" if you want non-positive values to raise an error.`, + ArgNames: []string{"x"}, + } + log10Doc = FunctionDoc{ + Summary: "Compute base 10 logarithm", + Description: `Non-positive values raise an error. Null values return null. +Use function "log10_unchecked" if you want non-positive values to return +-Inf or NaN.`, + ArgNames: []string{"x"}, + } + log2UncheckedDoc = FunctionDoc{ + Summary: "Compute base 2 logarithm", + Description: `Non-positive values return -Inf or NaN. Null values return null. +Use function "log2" if you want non-positive values to raise an error.`, + ArgNames: []string{"x"}, + } + log2Doc = FunctionDoc{ + Summary: "Compute base 2 logarithm", + Description: `Non-positive values raise an error. Null values return null. +Use function "log2_unchecked" if you want non-positive values to +return -Inf or NaN`, + ArgNames: []string{"x"}, + } + log1pUncheckedDoc = FunctionDoc{ + Summary: "Compute natural log of (1+x)", + Description: `Values <= -1 return -Inf or NaN. Null values return null. +This function may be more precise than log(1 + x) for x close to zero. +Use function "log1p" if you want invalid values to raise an error.`, + ArgNames: []string{"x"}, + } + log1pDoc = FunctionDoc{ + Summary: "Compute natural log of (1+x)", + Description: `Values <= -1 return -Inf or NaN. Null values return null. +This function may be more precise than (1 + x) for x close to zero. +Use function "log1p_unchecked" if you want invalid values to return +-Inf or NaN.`, + ArgNames: []string{"x"}, + } + logbUncheckedDoc = FunctionDoc{ + Summary: "Compute base `b` logarithm", + Description: `Values <= 0 return -Inf or NaN. Null values return null. +Use function "logb" if you want non-positive values to raise an error.`, + ArgNames: []string{"x", "b"}, + } + logbDoc = FunctionDoc{ + Summary: "Compute base `b` logarithm", + Description: `Values <= 0 returns an error. Null values return null. +Use function "logb_unchecked" if you want non-positive values to return +-Inf or NaN.`, + ArgNames: []string{"x", "b"}, + } + floorDoc = FunctionDoc{ + Summary: "Round down to the nearest integer", + Description: "Compute the largest integer value not greater than `x`", + ArgNames: []string{"x"}, + } + ceilDoc = FunctionDoc{ + Summary: "Round up to the nearest integer", + Description: "Compute the smallest integer value not less than `x`", + ArgNames: []string{"x"}, + } + truncDoc = FunctionDoc{ + Summary: "Compute the integral part", + Description: "Compute the nearest integer not greater than `x`", + ArgNames: []string{"x"}, + } + roundDoc = FunctionDoc{ + Summary: "Round to a given precision", + Description: `Options are used to control the number of digits and rounding mode. +Default behavior is to round to the nearest integer and +use half-to-even rule to break ties.`, + ArgNames: []string{"x"}, + OptionsType: "RoundOptions", + } + roundToMultipleDoc = FunctionDoc{ + Summary: "Round to a given multiple", + Description: `Options are used to control the rounding multiple and rounding mode. +Default behavior is to round to the nearest integer and +use half-to-even rule to break ties.`, + ArgNames: []string{"x"}, + OptionsType: "RoundToMultipleOptions", + } +) + +func RegisterScalarArithmetic(reg FunctionRegistry) { + ops := []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"add_unchecked", kernels.OpAdd, decPromoteAdd, addUncheckedDoc}, + {"add", kernels.OpAddChecked, decPromoteAdd, addDoc}, + } + + for _, o := range ops { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), o.decPromote} + kns := append(kernels.GetArithmeticBinaryKernels(o.op), kernels.GetDecimalBinaryKernels(o.op)...) + kns = append(kns, kernels.GetArithmeticFunctionTimeDuration(o.op)...) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + for _, unit := range arrow.TimeUnitValues { + inType := exec.NewMatchedInput(exec.TimestampTypeUnit(unit)) + inDuration := exec.NewExactInput(&arrow.DurationType{Unit: unit}) + ex := kernels.ArithmeticExecSameType(arrow.TIMESTAMP, o.op) + err := fn.AddNewKernel([]exec.InputType{inType, inDuration}, kernels.OutputFirstType, ex, nil) + if err != nil { + panic(err) + } + err = fn.AddNewKernel([]exec.InputType{inDuration, inType}, kernels.OutputLastType, ex, nil) + if err != nil { + panic(err) + } + + matchDur := exec.NewMatchedInput(exec.DurationTypeUnit(unit)) + ex = kernels.ArithmeticExecSameType(arrow.DURATION, o.op) + err = fn.AddNewKernel([]exec.InputType{matchDur, matchDur}, exec.NewOutputType(&arrow.DurationType{Unit: unit}), ex, nil) + if err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + } + + ops = []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"sub_unchecked", kernels.OpSub, decPromoteAdd, subUncheckedDoc}, + {"sub", kernels.OpSubChecked, decPromoteAdd, subDoc}, + } + + for _, o := range ops { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), o.decPromote} + kns := append(kernels.GetArithmeticBinaryKernels(o.op), kernels.GetDecimalBinaryKernels(o.op)...) + kns = append(kns, kernels.GetArithmeticFunctionTimeDuration(o.op)...) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + for _, unit := range arrow.TimeUnitValues { + // timestamp - timestamp => duration + inType := exec.NewMatchedInput(exec.TimestampTypeUnit(unit)) + ex := kernels.ArithmeticExecSameType(arrow.TIMESTAMP, o.op) + err := fn.AddNewKernel([]exec.InputType{inType, inType}, kernels.OutputResolveTemporal, ex, nil) + if err != nil { + panic(err) + } + + // timestamp - duration => timestamp + inDuration := exec.NewExactInput(&arrow.DurationType{Unit: unit}) + ex = kernels.ArithmeticExecSameType(arrow.TIMESTAMP, o.op) + err = fn.AddNewKernel([]exec.InputType{inType, inDuration}, kernels.OutputFirstType, ex, nil) + if err != nil { + panic(err) + } + + // duration - duration = duration + matchDur := exec.NewMatchedInput(exec.DurationTypeUnit(unit)) + ex = kernels.ArithmeticExecSameType(arrow.DURATION, o.op) + err = fn.AddNewKernel([]exec.InputType{matchDur, matchDur}, exec.NewOutputType(&arrow.DurationType{Unit: unit}), ex, nil) + if err != nil { + panic(err) + } + } + + // time32 - time32 = duration + for _, unit := range []arrow.TimeUnit{arrow.Second, arrow.Millisecond} { + inType := exec.NewMatchedInput(exec.Time32TypeUnit(unit)) + internalEx := kernels.ArithmeticExecSameType(arrow.TIME32, o.op) + ex := func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if err := internalEx(ctx, batch, out); err != nil { + return err + } + // the allocated space is for duration (an int64) but we + // wrote the time32 - time32 as if the output was time32 + // so a quick copy in reverse expands the int32s to int64. + rawData := exec.GetData[int32](out.Buffers[1].Buf) + outData := exec.GetData[int64](out.Buffers[1].Buf) + + for i := out.Len - 1; i >= 0; i-- { + outData[i] = int64(rawData[i]) + } + return nil + } + + err := fn.AddNewKernel([]exec.InputType{inType, inType}, + exec.NewOutputType(&arrow.DurationType{Unit: unit}), ex, nil) + if err != nil { + panic(err) + } + } + + // time64 - time64 = duration + for _, unit := range []arrow.TimeUnit{arrow.Microsecond, arrow.Nanosecond} { + inType := exec.NewMatchedInput(exec.Time64TypeUnit(unit)) + ex := kernels.ArithmeticExecSameType(arrow.TIME64, o.op) + err := fn.AddNewKernel([]exec.InputType{inType, inType}, exec.NewOutputType(&arrow.DurationType{Unit: unit}), ex, nil) + if err != nil { + panic(err) + } + } + + inDate32 := exec.NewExactInput(arrow.FixedWidthTypes.Date32) + ex := kernels.SubtractDate32(o.op) + err := fn.AddNewKernel([]exec.InputType{inDate32, inDate32}, exec.NewOutputType(arrow.FixedWidthTypes.Duration_s), ex, nil) + if err != nil { + panic(err) + } + + inDate64 := exec.NewExactInput(arrow.FixedWidthTypes.Date64) + ex = kernels.ArithmeticExecSameType(arrow.DATE64, o.op) + err = fn.AddNewKernel([]exec.InputType{inDate64, inDate64}, exec.NewOutputType(arrow.FixedWidthTypes.Duration_ms), ex, nil) + if err != nil { + panic(err) + } + + reg.AddFunction(fn, false) + } + + oplist := []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + commutative bool + }{ + {"multiply_unchecked", kernels.OpMul, decPromoteMultiply, mulUncheckedDoc, true}, + {"multiply", kernels.OpMulChecked, decPromoteMultiply, mulDoc, true}, + {"divide_unchecked", kernels.OpDiv, decPromoteDivide, divUncheckedDoc, false}, + {"divide", kernels.OpDivChecked, decPromoteDivide, divDoc, false}, + } + + for _, o := range oplist { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), o.decPromote} + for _, k := range append(kernels.GetArithmeticBinaryKernels(o.op), kernels.GetDecimalBinaryKernels(o.op)...) { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + for _, unit := range arrow.TimeUnitValues { + durInput := exec.NewExactInput(&arrow.DurationType{Unit: unit}) + i64Input := exec.NewExactInput(arrow.PrimitiveTypes.Int64) + durOutput := exec.NewOutputType(&arrow.DurationType{Unit: unit}) + ex := kernels.ArithmeticExecSameType(arrow.DURATION, o.op) + err := fn.AddNewKernel([]exec.InputType{durInput, i64Input}, durOutput, ex, nil) + if err != nil { + panic(err) + } + if o.commutative { + err = fn.AddNewKernel([]exec.InputType{i64Input, durInput}, durOutput, ex, nil) + if err != nil { + panic(err) + } + } + } + + reg.AddFunction(fn, false) + } + + ops = []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"abs_unchecked", kernels.OpAbsoluteValue, decPromoteNone, absoluteValueUncheckedDoc}, + {"abs", kernels.OpAbsoluteValueChecked, decPromoteNone, absoluteValueDoc}, + {"negate_unchecked", kernels.OpNegate, decPromoteNone, negateUncheckedDoc}, + } + + for _, o := range ops { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Unary(), o.doc), decPromoteNone} + kns := append(kernels.GetArithmeticUnaryKernels(o.op), kernels.GetDecimalUnaryKernels(o.op)...) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + } + + fn := &arithmeticFunction{*NewScalarFunction("negate", Unary(), negateDoc), decPromoteNone} + kns := append(kernels.GetArithmeticUnarySignedKernels(kernels.OpNegateChecked), kernels.GetDecimalUnaryKernels(kernels.OpNegateChecked)...) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + + ops = []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"sqrt_unchecked", kernels.OpSqrt, decPromoteNone, sqrtUncheckedDoc}, + {"sqrt", kernels.OpSqrtChecked, decPromoteNone, sqrtDoc}, + {"sin_unchecked", kernels.OpSin, decPromoteNone, sinUncheckedDoc}, + {"sin", kernels.OpSinChecked, decPromoteNone, sinDoc}, + {"cos_unchecked", kernels.OpCos, decPromoteNone, cosUncheckedDoc}, + {"cos", kernels.OpCosChecked, decPromoteNone, cosDoc}, + {"tan_unchecked", kernels.OpTan, decPromoteNone, tanUncheckedDoc}, + {"tan", kernels.OpTanChecked, decPromoteNone, tanDoc}, + {"asin_unchecked", kernels.OpAsin, decPromoteNone, asinUncheckedDoc}, + {"asin", kernels.OpAsinChecked, decPromoteNone, asinDoc}, + {"acos_unchecked", kernels.OpAcos, decPromoteNone, acosUncheckedDoc}, + {"acos", kernels.OpAcosChecked, decPromoteNone, acosDoc}, + {"atan", kernels.OpAtan, decPromoteNone, atanDoc}, + {"ln_unchecked", kernels.OpLn, decPromoteNone, lnUncheckedDoc}, + {"ln", kernels.OpLnChecked, decPromoteNone, lnDoc}, + {"log10_unchecked", kernels.OpLog10, decPromoteNone, log10UncheckedDoc}, + {"log10", kernels.OpLog10Checked, decPromoteNone, log10Doc}, + {"log2_unchecked", kernels.OpLog2, decPromoteNone, log2UncheckedDoc}, + {"log2", kernels.OpLog2Checked, decPromoteNone, log2Doc}, + {"log1p_unchecked", kernels.OpLog1p, decPromoteNone, log1pUncheckedDoc}, + {"log1p", kernels.OpLog1pChecked, decPromoteNone, log1pDoc}, + } + + for _, o := range ops { + fn := &arithmeticFloatingPointFunc{arithmeticFunction{*NewScalarFunction(o.funcName, Unary(), o.doc), decPromoteNone}} + kns := kernels.GetArithmeticUnaryFloatingPointKernels(o.op) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + } + + ops = []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"atan2", kernels.OpAtan2, decPromoteNone, atan2Doc}, + {"logb_unchecked", kernels.OpLogb, decPromoteNone, logbUncheckedDoc}, + {"logb", kernels.OpLogbChecked, decPromoteNone, logbDoc}, + } + + for _, o := range ops { + fn := &arithmeticFloatingPointFunc{arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), addDoc), decPromoteNone}} + kns := kernels.GetArithmeticFloatingPointKernels(o.op) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + } + + fn = &arithmeticFunction{*NewScalarFunction("sign", Unary(), signDoc), decPromoteNone} + kns = kernels.GetArithmeticUnaryFixedIntOutKernels(arrow.PrimitiveTypes.Int8, kernels.OpSign) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + + ops = []struct { + funcName string + op kernels.ArithmeticOp + decPromote decimalPromotion + doc FunctionDoc + }{ + {"power_unchecked", kernels.OpPower, decPromoteNone, powUncheckedDoc}, + {"power", kernels.OpPowerChecked, decPromoteNone, powDoc}, + } + + for _, o := range ops { + fn := &arithmeticDecimalToFloatingPointFunc{arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), o.decPromote}} + kns := kernels.GetArithmeticBinaryKernels(o.op) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(fn, false) + } + + bitWiseOps := []struct { + funcName string + op kernels.BitwiseOp + doc FunctionDoc + }{ + {"bit_wise_and", kernels.OpBitAnd, bitWiseAndDoc}, + {"bit_wise_or", kernels.OpBitOr, bitWiseOrDoc}, + {"bit_wise_xor", kernels.OpBitXor, bitWiseXorDoc}, + } + + for _, o := range bitWiseOps { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), decPromoteNone} + kns := kernels.GetBitwiseBinaryKernels(o.op) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(fn, false) + } + + fn = &arithmeticFunction{*NewScalarFunction("bit_wise_not", Unary(), bitWiseNotDoc), decPromoteNone} + for _, k := range kernels.GetBitwiseUnaryKernels() { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + + reg.AddFunction(fn, false) + + shiftOps := []struct { + funcName string + dir kernels.ShiftDir + checked bool + doc FunctionDoc + }{ + {"shift_left", kernels.ShiftLeft, true, shiftLeftDoc}, + {"shift_left_unchecked", kernels.ShiftLeft, false, shiftLeftUncheckedDoc}, + {"shift_right", kernels.ShiftRight, true, shiftRightDoc}, + {"shift_right_unchecked", kernels.ShiftRight, false, shiftRightUncheckedDoc}, + } + + for _, o := range shiftOps { + fn := &arithmeticFunction{*NewScalarFunction(o.funcName, Binary(), o.doc), decPromoteNone} + kns := kernels.GetShiftKernels(o.dir, o.checked) + for _, k := range kns { + if err := fn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(fn, false) + } + + floorFn := &arithmeticIntegerToFloatingPointFunc{arithmeticFunction{*NewScalarFunction("floor", Unary(), floorDoc), decPromoteNone}} + kns = kernels.GetSimpleRoundKernels(kernels.RoundDown) + for _, k := range kns { + if err := floorFn.AddKernel(k); err != nil { + panic(err) + } + } + floorFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal128.Num](kernels.RoundDown), nil) + floorFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal256.Num](kernels.RoundDown), nil) + reg.AddFunction(floorFn, false) + + ceilFn := &arithmeticIntegerToFloatingPointFunc{arithmeticFunction{*NewScalarFunction("ceil", Unary(), ceilDoc), decPromoteNone}} + kns = kernels.GetSimpleRoundKernels(kernels.RoundUp) + for _, k := range kns { + if err := ceilFn.AddKernel(k); err != nil { + panic(err) + } + } + ceilFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal128.Num](kernels.RoundUp), nil) + ceilFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal256.Num](kernels.RoundUp), nil) + reg.AddFunction(ceilFn, false) + + truncFn := &arithmeticIntegerToFloatingPointFunc{arithmeticFunction{*NewScalarFunction("trunc", Unary(), truncDoc), decPromoteNone}} + kns = kernels.GetSimpleRoundKernels(kernels.TowardsZero) + for _, k := range kns { + if err := truncFn.AddKernel(k); err != nil { + panic(err) + } + } + truncFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal128.Num](kernels.TowardsZero), nil) + truncFn.AddNewKernel([]exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, + kernels.OutputFirstType, kernels.FixedRoundDecimalExec[decimal256.Num](kernels.TowardsZero), nil) + reg.AddFunction(truncFn, false) + + roundFn := &arithmeticIntegerToFloatingPointFunc{arithmeticFunction{*NewScalarFunction("round", Unary(), roundDoc), decPromoteNone}} + kns = kernels.GetRoundUnaryKernels(kernels.InitRoundState, kernels.UnaryRoundExec) + for _, k := range kns { + if err := roundFn.AddKernel(k); err != nil { + panic(err) + } + } + + roundFn.defaultOpts = DefaultRoundOptions + reg.AddFunction(roundFn, false) + + roundToMultipleFn := &arithmeticIntegerToFloatingPointFunc{arithmeticFunction{*NewScalarFunction("round_to_multiple", Unary(), roundToMultipleDoc), decPromoteNone}} + kns = kernels.GetRoundUnaryKernels(kernels.InitRoundToMultipleState, kernels.UnaryRoundToMultipleExec) + for _, k := range kns { + if err := roundToMultipleFn.AddKernel(k); err != nil { + panic(err) + } + } + + roundToMultipleFn.defaultOpts = DefaultRoundToMultipleOptions + reg.AddFunction(roundToMultipleFn, false) +} + +func impl(ctx context.Context, fn string, opts ArithmeticOptions, left, right Datum) (Datum, error) { + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, left, right) +} + +// Add performs an addition between the passed in arguments (scalar or array) +// and returns the result. If one argument is a scalar and the other is an +// array, the scalar value is added to each value of the array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// performance is faster if not explicitly checking for overflows but +// will error on an overflow if NoCheckOverflow is false (default). +func Add(ctx context.Context, opts ArithmeticOptions, left, right Datum) (Datum, error) { + return impl(ctx, "add", opts, left, right) +} + +// Sub performs a subtraction between the passed in arguments (scalar or array) +// and returns the result. If one argument is a scalar and the other is an +// array, the scalar value is subtracted from each value of the array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// performance is faster if not explicitly checking for overflows but +// will error on an overflow if NoCheckOverflow is false (default). +func Subtract(ctx context.Context, opts ArithmeticOptions, left, right Datum) (Datum, error) { + return impl(ctx, "sub", opts, left, right) +} + +// Multiply performs a multiplication between the passed in arguments (scalar or array) +// and returns the result. If one argument is a scalar and the other is an +// array, the scalar value is multiplied against each value of the array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// performance is faster if not explicitly checking for overflows but +// will error on an overflow if NoCheckOverflow is false (default). +func Multiply(ctx context.Context, opts ArithmeticOptions, left, right Datum) (Datum, error) { + return impl(ctx, "multiply", opts, left, right) +} + +// Divide performs a division between the passed in arguments (scalar or array) +// and returns the result. If one argument is a scalar and the other is an +// array, the scalar value is used with each value of the array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// performance is faster if not explicitly checking for overflows but +// will error on an overflow if NoCheckOverflow is false (default). +// +// Will error on divide by zero regardless of whether or not checking for +// overflows. +func Divide(ctx context.Context, opts ArithmeticOptions, left, right Datum) (Datum, error) { + return impl(ctx, "divide", opts, left, right) +} + +// AbsoluteValue returns the AbsoluteValue for each element in the input +// argument. It accepts either a scalar or an array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// performance is faster if not explicitly checking for overflows but +// will error on an overflow if CheckOverflow is true. +func AbsoluteValue(ctx context.Context, opts ArithmeticOptions, input Datum) (Datum, error) { + fn := "abs" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, input) +} + +// Negate returns a result containing the negation of each element in the +// input argument. It accepts either a scalar or an array. +// +// ArithmeticOptions specifies whether or not to check for overflows, +// or to throw an error on unsigned types. +func Negate(ctx context.Context, opts ArithmeticOptions, input Datum) (Datum, error) { + fn := "negate" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, input) +} + +// Sign returns -1, 0, or 1 depending on the sign of each element in the +// input. For x in the input: +// +// if x > 0: 1 +// if x < 0: -1 +// if x == 0: 0 +func Sign(ctx context.Context, input Datum) (Datum, error) { + return CallFunction(ctx, "sign", nil, input) +} + +// Power returns base**exp for each element in the input arrays. Should work +// for both Arrays and Scalars +func Power(ctx context.Context, opts ArithmeticOptions, base, exp Datum) (Datum, error) { + fn := "power" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, base, exp) +} + +// ShiftLeft only accepts integral types and shifts each element of the +// first argument to the left by the value of the corresponding element +// in the second argument. +// +// The value to shift by should be >= 0 and < precision of the type. +func ShiftLeft(ctx context.Context, opts ArithmeticOptions, lhs, rhs Datum) (Datum, error) { + fn := "shift_left" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, lhs, rhs) +} + +// ShiftRight only accepts integral types and shifts each element of the +// first argument to the right by the value of the corresponding element +// in the second argument. +// +// The value to shift by should be >= 0 and < precision of the type. +func ShiftRight(ctx context.Context, opts ArithmeticOptions, lhs, rhs Datum) (Datum, error) { + fn := "shift_right" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, lhs, rhs) +} + +func Sin(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "sin" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Cos(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "cos" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Tan(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "tan" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Asin(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "asin" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Acos(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "acos" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Atan(ctx context.Context, arg Datum) (Datum, error) { + return CallFunction(ctx, "atan", nil, arg) +} + +func Atan2(ctx context.Context, x, y Datum) (Datum, error) { + return CallFunction(ctx, "atan2", nil, x, y) +} + +func Ln(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "ln" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Log10(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "log10" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Log2(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "log2" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Log1p(ctx context.Context, opts ArithmeticOptions, arg Datum) (Datum, error) { + fn := "log1p" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, arg) +} + +func Logb(ctx context.Context, opts ArithmeticOptions, x, base Datum) (Datum, error) { + fn := "logb" + if opts.NoCheckOverflow { + fn += "_unchecked" + } + return CallFunction(ctx, fn, nil, x, base) +} + +func Round(ctx context.Context, opts RoundOptions, arg Datum) (Datum, error) { + return CallFunction(ctx, "round", &opts, arg) +} + +func RoundToMultiple(ctx context.Context, opts RoundToMultipleOptions, arg Datum) (Datum, error) { + return CallFunction(ctx, "round_to_multiple", &opts, arg) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/cast.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/cast.go new file mode 100644 index 0000000..6750434 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/cast.go @@ -0,0 +1,587 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + "sync" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" +) + +var ( + castTable map[arrow.Type]*castFunction + castInit sync.Once + + castDoc = FunctionDoc{ + Summary: "cast values to another data type", + Description: "Behavior when values wouldn't fit in the target type\ncan be controlled through CastOptions.", + ArgNames: []string{"input"}, + OptionsType: "CastOptions", + OptionsRequired: true, + } + castMetaFunc = NewMetaFunction("cast", Unary(), castDoc, + func(ctx context.Context, fo FunctionOptions, d ...Datum) (Datum, error) { + castOpts := fo.(*CastOptions) + if castOpts == nil || castOpts.ToType == nil { + return nil, fmt.Errorf("%w: cast requires that options be passed with a ToType", arrow.ErrInvalid) + } + + if arrow.TypeEqual(d[0].(ArrayLikeDatum).Type(), castOpts.ToType) { + return NewDatum(d[0]), nil + } + + fn, err := getCastFunction(castOpts.ToType) + if err != nil { + return nil, fmt.Errorf("%w from %s", err, d[0].(ArrayLikeDatum).Type()) + } + + return fn.Execute(ctx, fo, d...) + }) +) + +func RegisterScalarCast(reg FunctionRegistry) { + reg.AddFunction(castMetaFunc, false) +} + +type castFunction struct { + ScalarFunction + + inIDs []arrow.Type + out arrow.Type +} + +func newCastFunction(name string, outType arrow.Type) *castFunction { + return &castFunction{ + ScalarFunction: *NewScalarFunction(name, Unary(), EmptyFuncDoc), + out: outType, + inIDs: make([]arrow.Type, 0, 1), + } +} + +func (cf *castFunction) AddTypeCast(in arrow.Type, kernel exec.ScalarKernel) error { + kernel.Init = exec.OptionsInit[kernels.CastState] + if err := cf.AddKernel(kernel); err != nil { + return err + } + cf.inIDs = append(cf.inIDs, in) + return nil +} + +func (cf *castFunction) AddNewTypeCast(inID arrow.Type, inTypes []exec.InputType, out exec.OutputType, + ex exec.ArrayKernelExec, nullHandle exec.NullHandling, memAlloc exec.MemAlloc) error { + + kn := exec.NewScalarKernel(inTypes, out, ex, nil) + kn.NullHandling = nullHandle + kn.MemAlloc = memAlloc + return cf.AddTypeCast(inID, kn) +} + +func (cf *castFunction) DispatchExact(vals ...arrow.DataType) (exec.Kernel, error) { + if err := cf.checkArity(len(vals)); err != nil { + return nil, err + } + + candidates := make([]*exec.ScalarKernel, 0, 1) + for i := range cf.kernels { + if cf.kernels[i].Signature.MatchesInputs(vals) { + candidates = append(candidates, &cf.kernels[i]) + } + } + + if len(candidates) == 0 { + return nil, fmt.Errorf("%w: unsupported cast from %s to %s using function %s", + arrow.ErrNotImplemented, vals[0], cf.out, cf.name) + } + + if len(candidates) == 1 { + // one match! + return candidates[0], nil + } + + // in this situation we may have both an EXACT type and + // a SAME_TYPE_ID match. So we will see if there is an exact + // match among the candidates and if not, we just return the + // first one + for _, k := range candidates { + arg0 := k.Signature.InputTypes[0] + if arg0.Kind == exec.InputExact { + // found one! + return k, nil + } + } + + // just return some kernel that matches since we didn't find an exact + return candidates[0], nil +} + +func unpackDictionary(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + dictArr = batch.Values[0].Array.MakeArray().(*array.Dictionary) + opts = ctx.State.(kernels.CastState) + dictType = dictArr.DataType().(*arrow.DictionaryType) + toType = opts.ToType + ) + defer dictArr.Release() + + if !arrow.TypeEqual(toType, dictType) && !CanCast(dictType, toType) { + return fmt.Errorf("%w: cast type %s incompatible with dictionary type %s", + arrow.ErrInvalid, toType, dictType) + } + + unpacked, err := TakeArray(ctx.Ctx, dictArr.Dictionary(), dictArr.Indices()) + if err != nil { + return err + } + defer unpacked.Release() + + if !arrow.TypeEqual(dictType, toType) { + unpacked, err = CastArray(ctx.Ctx, unpacked, &opts) + if err != nil { + return err + } + defer unpacked.Release() + } + + out.TakeOwnership(unpacked.Data()) + return nil +} + +func CastFromExtension(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(kernels.CastState) + + arr := batch.Values[0].Array.MakeArray().(array.ExtensionArray) + defer arr.Release() + + castOpts := CastOptions(opts) + result, err := CastArray(ctx.Ctx, arr.Storage(), &castOpts) + if err != nil { + return err + } + defer result.Release() + + out.TakeOwnership(result.Data()) + return nil +} + +func CastList[SrcOffsetT, DestOffsetT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + opts = ctx.State.(kernels.CastState) + childType = out.Type.(arrow.NestedType).Fields()[0].Type + input = &batch.Values[0].Array + offsets = exec.GetSpanOffsets[SrcOffsetT](input, 1) + isDowncast = kernels.SizeOf[SrcOffsetT]() > kernels.SizeOf[DestOffsetT]() + ) + + out.Buffers[0] = input.Buffers[0] + out.Buffers[1] = input.Buffers[1] + + if input.Offset != 0 && len(input.Buffers[0].Buf) > 0 { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(input.Len)) + bitutil.CopyBitmap(input.Buffers[0].Buf, int(input.Offset), int(input.Len), + out.Buffers[0].Buf, 0) + } + + // Handle list offsets + // Several cases possible: + // - The source offset is non-zero, in which case we slice the + // underlying values and shift the list offsets (regardless of + // their respective types) + // - the source offset is zero but the source and destination types + // have different list offset types, in which case we cast the offsets + // - otherwise we simply keep the original offsets + if isDowncast { + if offsets[input.Len] > SrcOffsetT(kernels.MaxOf[DestOffsetT]()) { + return fmt.Errorf("%w: array of type %s too large to convert to %s", + arrow.ErrInvalid, input.Type, out.Type) + } + } + + values := input.Children[0].MakeArray() + defer values.Release() + + if input.Offset != 0 { + out.Buffers[1].WrapBuffer( + ctx.Allocate(out.Type.(arrow.OffsetsDataType). + OffsetTypeTraits().BytesRequired(int(input.Len) + 1))) + + shiftedOffsets := exec.GetSpanOffsets[DestOffsetT](out, 1) + for i := 0; i < int(input.Len)+1; i++ { + shiftedOffsets[i] = DestOffsetT(offsets[i] - offsets[0]) + } + + values = array.NewSlice(values, int64(offsets[0]), int64(offsets[input.Len])) + defer values.Release() + } else if kernels.SizeOf[SrcOffsetT]() != kernels.SizeOf[DestOffsetT]() { + out.Buffers[1].WrapBuffer(ctx.Allocate(out.Type.(arrow.OffsetsDataType). + OffsetTypeTraits().BytesRequired(int(input.Len) + 1))) + + kernels.DoStaticCast(exec.GetSpanOffsets[SrcOffsetT](input, 1), + exec.GetSpanOffsets[DestOffsetT](out, 1)) + } + + // handle values + opts.ToType = childType + + castedValues, err := CastArray(ctx.Ctx, values, &opts) + if err != nil { + return err + } + defer castedValues.Release() + + out.Children = make([]exec.ArraySpan, 1) + out.Children[0].SetMembers(castedValues.Data()) + for i, b := range out.Children[0].Buffers { + if b.Owner != nil && b.Owner != values.Data().Buffers()[i] { + b.Owner.Retain() + b.SelfAlloc = true + } + } + return nil +} + +func CastStruct(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + opts = ctx.State.(kernels.CastState) + inType = batch.Values[0].Array.Type.(*arrow.StructType) + outType = out.Type.(*arrow.StructType) + inFieldCount = len(inType.Fields()) + outFieldCount = len(outType.Fields()) + ) + + fieldsToSelect := make([]int, outFieldCount) + for i := range fieldsToSelect { + fieldsToSelect[i] = -1 + } + + outFieldIndex := 0 + for inFieldIndex := 0; inFieldIndex < inFieldCount && outFieldIndex < outFieldCount; inFieldIndex++ { + inField := inType.Field(inFieldIndex) + outField := outType.Field(outFieldIndex) + if inField.Name == outField.Name { + if inField.Nullable && !outField.Nullable { + return fmt.Errorf("%w: cannot cast nullable field to non-nullable field: %s %s", + arrow.ErrType, inType, outType) + } + fieldsToSelect[outFieldIndex] = inFieldIndex + outFieldIndex++ + } + } + + if outFieldIndex < outFieldCount { + return fmt.Errorf("%w: struct fields don't match or are in the wrong order: Input: %s Output: %s", + arrow.ErrType, inType, outType) + } + + input := &batch.Values[0].Array + if len(input.Buffers[0].Buf) > 0 { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(input.Len)) + bitutil.CopyBitmap(input.Buffers[0].Buf, int(input.Offset), int(input.Len), + out.Buffers[0].Buf, 0) + } + + out.Children = make([]exec.ArraySpan, outFieldCount) + for outFieldIndex, idx := range fieldsToSelect { + values := input.Children[idx].MakeArray() + defer values.Release() + values = array.NewSlice(values, input.Offset, input.Len) + defer values.Release() + + opts.ToType = outType.Field(outFieldIndex).Type + castedValues, err := CastArray(ctx.Ctx, values, &opts) + if err != nil { + return err + } + defer castedValues.Release() + + out.Children[outFieldIndex].TakeOwnership(castedValues.Data()) + } + return nil +} + +func addListCast[SrcOffsetT, DestOffsetT int32 | int64](fn *castFunction, inType arrow.Type) error { + kernel := exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(inType)}, + kernels.OutputTargetType, CastList[SrcOffsetT, DestOffsetT], nil) + kernel.NullHandling = exec.NullComputedNoPrealloc + kernel.MemAlloc = exec.MemNoPrealloc + return fn.AddTypeCast(inType, kernel) +} + +func addStructToStructCast(fn *castFunction) error { + kernel := exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(arrow.STRUCT)}, + kernels.OutputTargetType, CastStruct, nil) + kernel.NullHandling = exec.NullComputedNoPrealloc + return fn.AddTypeCast(arrow.STRUCT, kernel) +} + +func addCastFuncs(fn []*castFunction) { + for _, f := range fn { + f.AddNewTypeCast(arrow.EXTENSION, []exec.InputType{exec.NewIDInput(arrow.EXTENSION)}, + f.kernels[0].Signature.OutType, CastFromExtension, + exec.NullComputedNoPrealloc, exec.MemNoPrealloc) + castTable[f.out] = f + } +} + +func initCastTable() { + castTable = make(map[arrow.Type]*castFunction) + addCastFuncs(getBooleanCasts()) + addCastFuncs(getNumericCasts()) + addCastFuncs(getBinaryLikeCasts()) + addCastFuncs(getTemporalCasts()) + addCastFuncs(getNestedCasts()) + + nullToExt := newCastFunction("cast_extension", arrow.EXTENSION) + nullToExt.AddNewTypeCast(arrow.NULL, []exec.InputType{exec.NewExactInput(arrow.Null)}, + kernels.OutputTargetType, kernels.CastFromNull, exec.NullComputedNoPrealloc, exec.MemNoPrealloc) + castTable[arrow.EXTENSION] = nullToExt +} + +func getCastFunction(to arrow.DataType) (*castFunction, error) { + castInit.Do(initCastTable) + + fn, ok := castTable[to.ID()] + if ok { + return fn, nil + } + + return nil, fmt.Errorf("%w: unsupported cast to %s", arrow.ErrNotImplemented, to) +} + +func getNestedCasts() []*castFunction { + out := make([]*castFunction, 0) + + addKernels := func(fn *castFunction, kernels []exec.ScalarKernel) { + for _, k := range kernels { + if err := fn.AddTypeCast(k.Signature.InputTypes[0].MatchID(), k); err != nil { + panic(err) + } + } + } + + castLists := newCastFunction("cast_list", arrow.LIST) + addKernels(castLists, kernels.GetCommonCastKernels(arrow.LIST, kernels.OutputTargetType)) + if err := addListCast[int32, int32](castLists, arrow.LIST); err != nil { + panic(err) + } + if err := addListCast[int64, int32](castLists, arrow.LARGE_LIST); err != nil { + panic(err) + } + out = append(out, castLists) + + castLargeLists := newCastFunction("cast_large_list", arrow.LARGE_LIST) + addKernels(castLargeLists, kernels.GetCommonCastKernels(arrow.LARGE_LIST, kernels.OutputTargetType)) + if err := addListCast[int32, int64](castLargeLists, arrow.LIST); err != nil { + panic(err) + } + if err := addListCast[int64, int64](castLargeLists, arrow.LARGE_LIST); err != nil { + panic(err) + } + out = append(out, castLargeLists) + + castFsl := newCastFunction("cast_fixed_size_list", arrow.FIXED_SIZE_LIST) + addKernels(castFsl, kernels.GetCommonCastKernels(arrow.FIXED_SIZE_LIST, kernels.OutputTargetType)) + out = append(out, castFsl) + + castStruct := newCastFunction("cast_struct", arrow.STRUCT) + addKernels(castStruct, kernels.GetCommonCastKernels(arrow.STRUCT, kernels.OutputTargetType)) + if err := addStructToStructCast(castStruct); err != nil { + panic(err) + } + out = append(out, castStruct) + + return out +} + +func getBooleanCasts() []*castFunction { + fn := newCastFunction("cast_boolean", arrow.BOOL) + kns := kernels.GetBooleanCastKernels() + + for _, k := range kns { + if err := fn.AddTypeCast(k.Signature.InputTypes[0].Type.ID(), k); err != nil { + panic(err) + } + } + + return []*castFunction{fn} +} + +func getTemporalCasts() []*castFunction { + output := make([]*castFunction, 0) + addFn := func(name string, id arrow.Type, kernels []exec.ScalarKernel) { + fn := newCastFunction(name, id) + for _, k := range kernels { + if err := fn.AddTypeCast(k.Signature.InputTypes[0].MatchID(), k); err != nil { + panic(err) + } + } + fn.AddNewTypeCast(arrow.DICTIONARY, []exec.InputType{exec.NewIDInput(arrow.DICTIONARY)}, + kernels[0].Signature.OutType, unpackDictionary, exec.NullComputedNoPrealloc, exec.MemNoPrealloc) + output = append(output, fn) + } + + addFn("cast_timestamp", arrow.TIMESTAMP, kernels.GetTimestampCastKernels()) + addFn("cast_date32", arrow.DATE32, kernels.GetDate32CastKernels()) + addFn("cast_date64", arrow.DATE64, kernels.GetDate64CastKernels()) + addFn("cast_time32", arrow.TIME32, kernels.GetTime32CastKernels()) + addFn("cast_time64", arrow.TIME64, kernels.GetTime64CastKernels()) + addFn("cast_duration", arrow.DURATION, kernels.GetDurationCastKernels()) + addFn("cast_month_day_nano_interval", arrow.INTERVAL_MONTH_DAY_NANO, kernels.GetIntervalCastKernels()) + return output +} + +func getNumericCasts() []*castFunction { + out := make([]*castFunction, 0) + + getFn := func(name string, ty arrow.Type, kns []exec.ScalarKernel) *castFunction { + fn := newCastFunction(name, ty) + for _, k := range kns { + if err := fn.AddTypeCast(k.Signature.InputTypes[0].MatchID(), k); err != nil { + panic(err) + } + } + + fn.AddNewTypeCast(arrow.DICTIONARY, []exec.InputType{exec.NewIDInput(arrow.DICTIONARY)}, + kns[0].Signature.OutType, unpackDictionary, exec.NullComputedNoPrealloc, exec.MemNoPrealloc) + + return fn + } + + out = append(out, getFn("cast_int8", arrow.INT8, kernels.GetCastToInteger[int8](arrow.PrimitiveTypes.Int8))) + out = append(out, getFn("cast_int16", arrow.INT16, kernels.GetCastToInteger[int8](arrow.PrimitiveTypes.Int16))) + + castInt32 := getFn("cast_int32", arrow.INT32, kernels.GetCastToInteger[int32](arrow.PrimitiveTypes.Int32)) + castInt32.AddTypeCast(arrow.DATE32, + kernels.GetZeroCastKernel(arrow.DATE32, + exec.NewExactInput(arrow.FixedWidthTypes.Date32), + exec.NewOutputType(arrow.PrimitiveTypes.Int32))) + castInt32.AddTypeCast(arrow.TIME32, + kernels.GetZeroCastKernel(arrow.TIME32, + exec.NewIDInput(arrow.TIME32), exec.NewOutputType(arrow.PrimitiveTypes.Int32))) + out = append(out, castInt32) + + castInt64 := getFn("cast_int64", arrow.INT64, kernels.GetCastToInteger[int64](arrow.PrimitiveTypes.Int64)) + castInt64.AddTypeCast(arrow.DATE64, + kernels.GetZeroCastKernel(arrow.DATE64, + exec.NewIDInput(arrow.DATE64), + exec.NewOutputType(arrow.PrimitiveTypes.Int64))) + castInt64.AddTypeCast(arrow.TIME64, + kernels.GetZeroCastKernel(arrow.TIME64, + exec.NewIDInput(arrow.TIME64), + exec.NewOutputType(arrow.PrimitiveTypes.Int64))) + castInt64.AddTypeCast(arrow.DURATION, + kernels.GetZeroCastKernel(arrow.DURATION, + exec.NewIDInput(arrow.DURATION), + exec.NewOutputType(arrow.PrimitiveTypes.Int64))) + castInt64.AddTypeCast(arrow.TIMESTAMP, + kernels.GetZeroCastKernel(arrow.TIMESTAMP, + exec.NewIDInput(arrow.TIMESTAMP), + exec.NewOutputType(arrow.PrimitiveTypes.Int64))) + out = append(out, castInt64) + + out = append(out, getFn("cast_uint8", arrow.UINT8, kernels.GetCastToInteger[uint8](arrow.PrimitiveTypes.Uint8))) + out = append(out, getFn("cast_uint16", arrow.UINT16, kernels.GetCastToInteger[uint16](arrow.PrimitiveTypes.Uint16))) + out = append(out, getFn("cast_uint32", arrow.UINT32, kernels.GetCastToInteger[uint32](arrow.PrimitiveTypes.Uint32))) + out = append(out, getFn("cast_uint64", arrow.UINT64, kernels.GetCastToInteger[uint64](arrow.PrimitiveTypes.Uint64))) + + out = append(out, getFn("cast_half_float", arrow.FLOAT16, kernels.GetCommonCastKernels(arrow.FLOAT16, exec.NewOutputType(arrow.FixedWidthTypes.Float16)))) + out = append(out, getFn("cast_float", arrow.FLOAT32, kernels.GetCastToFloating[float32](arrow.PrimitiveTypes.Float32))) + out = append(out, getFn("cast_double", arrow.FLOAT64, kernels.GetCastToFloating[float64](arrow.PrimitiveTypes.Float64))) + + // cast to decimal128 + out = append(out, getFn("cast_decimal", arrow.DECIMAL128, kernels.GetCastToDecimal128())) + // cast to decimal256 + out = append(out, getFn("cast_decimal256", arrow.DECIMAL256, kernels.GetCastToDecimal256())) + return out +} + +func getBinaryLikeCasts() []*castFunction { + out := make([]*castFunction, 0) + + addFn := func(name string, ty arrow.Type, kns []exec.ScalarKernel) { + fn := newCastFunction(name, ty) + for _, k := range kns { + if err := fn.AddTypeCast(k.Signature.InputTypes[0].MatchID(), k); err != nil { + panic(err) + } + } + + fn.AddNewTypeCast(arrow.DICTIONARY, []exec.InputType{exec.NewIDInput(arrow.DICTIONARY)}, + kns[0].Signature.OutType, unpackDictionary, exec.NullComputedNoPrealloc, exec.MemNoPrealloc) + + out = append(out, fn) + } + + addFn("cast_binary", arrow.BINARY, kernels.GetToBinaryKernels(arrow.BinaryTypes.Binary)) + addFn("cast_large_binary", arrow.LARGE_BINARY, kernels.GetToBinaryKernels(arrow.BinaryTypes.LargeBinary)) + addFn("cast_string", arrow.STRING, kernels.GetToBinaryKernels(arrow.BinaryTypes.String)) + addFn("cast_large_string", arrow.LARGE_STRING, kernels.GetToBinaryKernels(arrow.BinaryTypes.LargeString)) + addFn("cast_fixed_sized_binary", arrow.FIXED_SIZE_BINARY, kernels.GetFsbCastKernels()) + return out +} + +// CastDatum is a convenience function for casting a Datum to another type. +// It is equivalent to calling CallFunction(ctx, "cast", opts, Datum) and +// should work for Scalar, Array or ChunkedArray Datums. +func CastDatum(ctx context.Context, val Datum, opts *CastOptions) (Datum, error) { + return CallFunction(ctx, "cast", opts, val) +} + +// CastArray is a convenience function for casting an Array to another type. +// It is equivalent to constructing a Datum for the array and using +// CallFunction(ctx, "cast", ...). +func CastArray(ctx context.Context, val arrow.Array, opts *CastOptions) (arrow.Array, error) { + d := NewDatum(val) + defer d.Release() + + out, err := CastDatum(ctx, d, opts) + if err != nil { + return nil, err + } + + defer out.Release() + return out.(*ArrayDatum).MakeArray(), nil +} + +// CastToType is a convenience function equivalent to calling +// CastArray(ctx, val, compute.SafeCastOptions(toType)) +func CastToType(ctx context.Context, val arrow.Array, toType arrow.DataType) (arrow.Array, error) { + return CastArray(ctx, val, SafeCastOptions(toType)) +} + +// CanCast returns true if there is an implementation for casting an array +// or scalar value from the specified DataType to the other data type. +func CanCast(from, to arrow.DataType) bool { + fn, err := getCastFunction(to) + if err != nil { + return false + } + + for _, id := range fn.inIDs { + if from.ID() == id { + return true + } + } + return false +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datum.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datum.go new file mode 100644 index 0000000..dbb6054 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datum.go @@ -0,0 +1,305 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +//go:generate go run golang.org/x/tools/cmd/stringer -type=DatumKind -linecomment + +// DatumKind is an enum used for denoting which kind of type a datum is encapsulating +type DatumKind int + +const ( + KindNone DatumKind = iota // none + KindScalar // scalar + KindArray // array + KindChunked // chunked_array + KindRecord // record_batch + KindTable // table +) + +const UnknownLength int64 = -1 + +// DatumIsValue returns true if the datum passed is a Scalar, Array +// or ChunkedArray type (e.g. it contains a specific value not a +// group of values) +func DatumIsValue(d Datum) bool { + switch d.Kind() { + case KindScalar, KindArray, KindChunked: + return true + } + return false +} + +// Datum is a variant interface for wrapping the various Arrow data structures +// for now the various Datum types just hold a Value which is the type they +// are wrapping, but it might make sense in the future for those types +// to actually be aliases or embed their types instead. Not sure yet. +type Datum interface { + fmt.Stringer + Kind() DatumKind + Len() int64 + Equals(Datum) bool + Release() + + data() any +} + +// ArrayLikeDatum is an interface for treating a Datum similarly to an Array, +// so that it is easy to differentiate between Record/Table/Collection and Scalar, +// Array/ChunkedArray for ease of use. Chunks will return an empty slice for Scalar, +// a slice with 1 element for Array, and the slice of chunks for a chunked array. +type ArrayLikeDatum interface { + Datum + NullN() int64 + Type() arrow.DataType + Chunks() []arrow.Array +} + +// TableLikeDatum is an interface type for specifying either a RecordBatch or a +// Table as both contain a schema as opposed to just a single data type. +type TableLikeDatum interface { + Datum + Schema() *arrow.Schema +} + +// EmptyDatum is the null case, a Datum with nothing in it. +type EmptyDatum struct{} + +func (EmptyDatum) String() string { return "nullptr" } +func (EmptyDatum) Kind() DatumKind { return KindNone } +func (EmptyDatum) Len() int64 { return UnknownLength } +func (EmptyDatum) Release() {} +func (EmptyDatum) Equals(other Datum) bool { + _, ok := other.(EmptyDatum) + return ok +} +func (EmptyDatum) data() any { return nil } + +// ScalarDatum contains a scalar value +type ScalarDatum struct { + Value scalar.Scalar +} + +func (ScalarDatum) Kind() DatumKind { return KindScalar } +func (ScalarDatum) Len() int64 { return 1 } +func (ScalarDatum) Chunks() []arrow.Array { return nil } +func (d *ScalarDatum) Type() arrow.DataType { return d.Value.DataType() } +func (d *ScalarDatum) String() string { return d.Value.String() } +func (d *ScalarDatum) ToScalar() (scalar.Scalar, error) { + return d.Value, nil +} +func (d *ScalarDatum) data() any { return d.Value } +func (d *ScalarDatum) NullN() int64 { + if d.Value.IsValid() { + return 0 + } + return 1 +} + +type releasable interface { + Release() +} + +func (d *ScalarDatum) Release() { + if v, ok := d.Value.(releasable); ok { + v.Release() + } +} + +func (d *ScalarDatum) Equals(other Datum) bool { + if rhs, ok := other.(*ScalarDatum); ok { + return scalar.Equals(d.Value, rhs.Value) + } + return false +} + +// ArrayDatum references an array.Data object which can be used to create +// array instances from if needed. +type ArrayDatum struct { + Value arrow.ArrayData +} + +func (ArrayDatum) Kind() DatumKind { return KindArray } +func (d *ArrayDatum) Type() arrow.DataType { return d.Value.DataType() } +func (d *ArrayDatum) Len() int64 { return int64(d.Value.Len()) } +func (d *ArrayDatum) NullN() int64 { return int64(d.Value.NullN()) } +func (d *ArrayDatum) String() string { return fmt.Sprintf("Array:{%s}", d.Value.DataType()) } +func (d *ArrayDatum) MakeArray() arrow.Array { return array.MakeFromData(d.Value) } +func (d *ArrayDatum) Chunks() []arrow.Array { return []arrow.Array{d.MakeArray()} } +func (d *ArrayDatum) ToScalar() (scalar.Scalar, error) { + return scalar.NewListScalarData(d.Value), nil +} +func (d *ArrayDatum) Release() { + d.Value.Release() + d.Value = nil +} +func (d *ArrayDatum) data() any { return d.Value } +func (d *ArrayDatum) Equals(other Datum) bool { + rhs, ok := other.(*ArrayDatum) + if !ok { + return false + } + + left := d.MakeArray() + defer left.Release() + right := rhs.MakeArray() + defer right.Release() + + return array.Equal(left, right) +} + +// ChunkedDatum contains a chunked array for use with expressions and compute. +type ChunkedDatum struct { + Value *arrow.Chunked +} + +func (ChunkedDatum) Kind() DatumKind { return KindChunked } +func (d *ChunkedDatum) Type() arrow.DataType { return d.Value.DataType() } +func (d *ChunkedDatum) Len() int64 { return int64(d.Value.Len()) } +func (d *ChunkedDatum) NullN() int64 { return int64(d.Value.NullN()) } +func (d *ChunkedDatum) String() string { return fmt.Sprintf("Array:{%s}", d.Value.DataType()) } +func (d *ChunkedDatum) Chunks() []arrow.Array { return d.Value.Chunks() } +func (d *ChunkedDatum) data() any { return d.Value } +func (d *ChunkedDatum) Release() { + d.Value.Release() + d.Value = nil +} + +func (d *ChunkedDatum) Equals(other Datum) bool { + if rhs, ok := other.(*ChunkedDatum); ok { + return array.ChunkedEqual(d.Value, rhs.Value) + } + return false +} + +// RecordDatum contains an array.Record for passing a full record to an expression +// or to compute. +type RecordDatum struct { + Value arrow.Record +} + +func (RecordDatum) Kind() DatumKind { return KindRecord } +func (RecordDatum) String() string { return "RecordBatch" } +func (r *RecordDatum) Len() int64 { return r.Value.NumRows() } +func (r *RecordDatum) Schema() *arrow.Schema { return r.Value.Schema() } +func (r *RecordDatum) data() any { return r.Value } +func (r *RecordDatum) Release() { + r.Value.Release() + r.Value = nil +} + +func (r *RecordDatum) Equals(other Datum) bool { + if rhs, ok := other.(*RecordDatum); ok { + return array.RecordEqual(r.Value, rhs.Value) + } + return false +} + +// TableDatum contains a table so that multiple record batches can be worked with +// together as a single table for being passed to compute and expression handling. +type TableDatum struct { + Value arrow.Table +} + +func (TableDatum) Kind() DatumKind { return KindTable } +func (TableDatum) String() string { return "Table" } +func (d *TableDatum) Len() int64 { return d.Value.NumRows() } +func (d *TableDatum) Schema() *arrow.Schema { return d.Value.Schema() } +func (d *TableDatum) data() any { return d.Value } +func (d *TableDatum) Release() { + d.Value.Release() + d.Value = nil +} + +func (d *TableDatum) Equals(other Datum) bool { + if rhs, ok := other.(*TableDatum); ok { + return array.TableEqual(d.Value, rhs.Value) + } + return false +} + +// NewDatum will construct the appropriate Datum type based on what is passed in +// as the argument. +// +// An arrow.Array gets an ArrayDatum +// An array.Chunked gets a ChunkedDatum +// An array.Record gets a RecordDatum +// an array.Table gets a TableDatum +// a scalar.Scalar gets a ScalarDatum +// +// Anything else is passed to scalar.MakeScalar and recieves a scalar +// datum of that appropriate type. +func NewDatum(value interface{}) Datum { + switch v := value.(type) { + case Datum: + return NewDatum(v.data()) + case arrow.Array: + v.Data().Retain() + return &ArrayDatum{v.Data()} + case scalar.Releasable: + v.Retain() + return NewDatumWithoutOwning(v) + case scalar.Scalar: + return &ScalarDatum{v} + default: + return &ScalarDatum{scalar.MakeScalar(value)} + } +} + +// NewDatumWithoutOwning is like NewDatum only it does not call Retain on +// the passed in value (if applicable). This means that if the resulting +// Datum should not have Release called on it and the original value needs +// to outlive the Datum. +// +// Only use this if you know what you're doing. For the most part this is +// just a convenience function.+- + +func NewDatumWithoutOwning(value interface{}) Datum { + switch v := value.(type) { + case arrow.Array: + return &ArrayDatum{v.Data()} + case arrow.ArrayData: + return &ArrayDatum{v} + case *arrow.Chunked: + return &ChunkedDatum{v} + case arrow.Record: + return &RecordDatum{v} + case arrow.Table: + return &TableDatum{v} + case scalar.Scalar: + return &ScalarDatum{v} + default: + return &ScalarDatum{scalar.MakeScalar(value)} + } +} + +var ( + _ ArrayLikeDatum = (*ScalarDatum)(nil) + _ ArrayLikeDatum = (*ArrayDatum)(nil) + _ ArrayLikeDatum = (*ChunkedDatum)(nil) + _ TableLikeDatum = (*RecordDatum)(nil) + _ TableLikeDatum = (*TableDatum)(nil) +) diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datumkind_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datumkind_string.go new file mode 100644 index 0000000..3603e5e --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/datumkind_string.go @@ -0,0 +1,30 @@ +// Code generated by "stringer -type=DatumKind -linecomment"; DO NOT EDIT. + +//go:build go1.18 + +package compute + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[KindNone-0] + _ = x[KindScalar-1] + _ = x[KindArray-2] + _ = x[KindChunked-3] + _ = x[KindRecord-4] + _ = x[KindTable-5] +} + +const _DatumKind_name = "nonescalararraychunked_arrayrecord_batchtable" + +var _DatumKind_index = [...]uint8{0, 4, 10, 15, 28, 40, 45} + +func (i DatumKind) String() string { + if i < 0 || i >= DatumKind(len(_DatumKind_index)-1) { + return "DatumKind(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _DatumKind_name[_DatumKind_index[i]:_DatumKind_index[i+1]] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/doc.go new file mode 100644 index 0000000..53a164e --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/doc.go @@ -0,0 +1,34 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 compute is a native-go implementation of an Acero-like +// arrow compute engine. It requires go1.18+ +// +// While consumers of Arrow that are able to use CGO could utilize the +// C Data API (using the cdata package) and could link against the +// acero library directly, there are consumers who cannot use CGO. This +// is an attempt to provide for those users, and in general create a +// native-go arrow compute engine. +// +// The overwhemling majority of things in this package require go1.18 as +// it utilizes generics. The files in this package and its sub-packages +// are all excluded from being built by go versions lower than 1.18 so +// that the larger Arrow module itself is still compatible with go1.17. +// +// Everything in this package should be considered Experimental for now. +package compute + +//go:generate stringer -type=FuncKind -linecomment diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/exec.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/exec.go new file mode 100644 index 0000000..89fa164 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/exec.go @@ -0,0 +1,199 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" +) + +func haveChunkedArray(values []Datum) bool { + for _, v := range values { + if v.Kind() == KindChunked { + return true + } + } + return false +} + +// ExecSpanFromBatch constructs and returns a new ExecSpan from the values +// inside of the ExecBatch which could be scalar or arrays. +// +// This is mostly used for tests but is also a convenience method for other +// cases. +func ExecSpanFromBatch(batch *ExecBatch) *exec.ExecSpan { + out := &exec.ExecSpan{Len: batch.Len, Values: make([]exec.ExecValue, len(batch.Values))} + for i, v := range batch.Values { + outVal := &out.Values[i] + if v.Kind() == KindScalar { + outVal.Scalar = v.(*ScalarDatum).Value + } else { + outVal.Array.SetMembers(v.(*ArrayDatum).Value) + outVal.Scalar = nil + } + } + return out +} + +// this is the primary driver of execution +func execInternal(ctx context.Context, fn Function, opts FunctionOptions, passedLen int64, args ...Datum) (result Datum, err error) { + if opts == nil { + if err = checkOptions(fn, opts); err != nil { + return + } + opts = fn.DefaultOptions() + } + + // we only allow Array, ChunkedArray, and Scalars for now. + // RecordBatch and Table datums are disallowed. + if err = checkAllIsValue(args); err != nil { + return + } + + inTypes := make([]arrow.DataType, len(args)) + for i, a := range args { + inTypes[i] = a.(ArrayLikeDatum).Type() + } + + var ( + k exec.Kernel + executor kernelExecutor + ) + + switch fn.Kind() { + case FuncScalar: + executor = scalarExecPool.Get().(*scalarExecutor) + defer func() { + executor.clear() + scalarExecPool.Put(executor.(*scalarExecutor)) + }() + case FuncVector: + executor = vectorExecPool.Get().(*vectorExecutor) + defer func() { + executor.clear() + vectorExecPool.Put(executor.(*vectorExecutor)) + }() + default: + return nil, fmt.Errorf("%w: direct execution of %s", arrow.ErrNotImplemented, fn.Kind()) + } + + if k, err = fn.DispatchBest(inTypes...); err != nil { + return + } + + var newArgs []Datum + // cast arguments if necessary + for i, arg := range args { + if !arrow.TypeEqual(inTypes[i], arg.(ArrayLikeDatum).Type()) { + if newArgs == nil { + newArgs = make([]Datum, len(args)) + copy(newArgs, args) + } + newArgs[i], err = CastDatum(ctx, arg, SafeCastOptions(inTypes[i])) + if err != nil { + return nil, err + } + defer newArgs[i].Release() + } + } + if newArgs != nil { + args = newArgs + } + + kctx := &exec.KernelCtx{Ctx: ctx, Kernel: k} + init := k.GetInitFn() + kinitArgs := exec.KernelInitArgs{Kernel: k, Inputs: inTypes, Options: opts} + if init != nil { + kctx.State, err = init(kctx, kinitArgs) + if err != nil { + return + } + } + + if err = executor.Init(kctx, kinitArgs); err != nil { + return + } + + input := ExecBatch{Values: args, Len: 0} + if input.NumValues() == 0 { + if passedLen != -1 { + input.Len = passedLen + } + } else { + inferred, allSame := inferBatchLength(input.Values) + input.Len = inferred + switch fn.Kind() { + case FuncScalar: + if passedLen != -1 && passedLen != inferred { + return nil, fmt.Errorf("%w: passed batch length for execution did not match actual length for scalar fn execution", + arrow.ErrInvalid) + } + case FuncVector: + vkernel := k.(*exec.VectorKernel) + if !(allSame || !vkernel.CanExecuteChunkWise) { + return nil, fmt.Errorf("%w: vector kernel arguments must all be the same length", arrow.ErrInvalid) + } + } + } + + ectx := GetExecCtx(ctx) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + ch := make(chan Datum, ectx.ExecChannelSize) + go func() { + defer close(ch) + if err = executor.Execute(ctx, &input, ch); err != nil { + cancel() + } + }() + + result = executor.WrapResults(ctx, ch, haveChunkedArray(input.Values)) + if err == nil { + debug.Assert(executor.CheckResultType(result) == nil, "invalid result type") + } + + if ctx.Err() == context.Canceled && result != nil { + result.Release() + } + + return +} + +// CallFunction is a one-shot invoker for all types of functions. +// +// It will perform kernel-dispatch, argument checking, iteration of +// ChunkedArray inputs and wrapping of outputs. +// +// To affect the execution options, you must call SetExecCtx and pass +// the resulting context in here. +func CallFunction(ctx context.Context, funcName string, opts FunctionOptions, args ...Datum) (Datum, error) { + ectx := GetExecCtx(ctx) + fn, ok := ectx.Registry.GetFunction(funcName) + if !ok { + return nil, fmt.Errorf("%w: function '%s' not found", arrow.ErrKey, funcName) + } + + return fn.Execute(ctx, opts, args...) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/executor.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/executor.go new file mode 100644 index 0000000..96cbdf4 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/executor.go @@ -0,0 +1,1114 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + "math" + "runtime" + "sync" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +// ExecCtx holds simple contextual information for execution +// such as the default ChunkSize for batch iteration, whether or not +// to ensure contiguous preallocations for kernels that want preallocation, +// and a reference to the desired function registry to use. +// +// An ExecCtx should be placed into a context.Context by using +// SetExecCtx and GetExecCtx to pass it along for execution. +type ExecCtx struct { + // ChunkSize is the size used when iterating batches for execution + // ChunkSize elements will be operated on as a time unless an argument + // is a chunkedarray with a chunk that is smaller + ChunkSize int64 + // PreallocContiguous determines whether preallocating memory for + // execution of compute attempts to preallocate a full contiguous + // buffer for all of the chunks beforehand. + PreallocContiguous bool + // Registry allows specifying the Function Registry to utilize + // when searching for kernel implementations. + Registry FunctionRegistry + // ExecChannelSize is the size of the channel used for passing + // exec results to the WrapResults function. + ExecChannelSize int + // NumParallel determines the number of parallel goroutines + // allowed for parallel executions. + NumParallel int +} + +type ctxExecKey struct{} + +const DefaultMaxChunkSize = math.MaxInt64 + +var ( + // global default ExecCtx object, initialized with the + // default max chunk size, contiguous preallocations, and + // the default function registry. + defaultExecCtx ExecCtx + + // WithAllocator returns a new context with the provided allocator + // embedded into the context. + WithAllocator = exec.WithAllocator + // GetAllocator retrieves the allocator from the context, or returns + // memory.DefaultAllocator if there was no allocator in the provided + // context. + GetAllocator = exec.GetAllocator +) + +// DefaultExecCtx returns the default exec context which will be used +// if there is no ExecCtx set into the context for execution. +// +// This can be called to get a copy of the default values which can +// then be modified to set into a context. +// +// The default exec context uses the following values: +// - ChunkSize = DefaultMaxChunkSize (MaxInt64) +// - PreallocContiguous = true +// - Registry = GetFunctionRegistry() +// - ExecChannelSize = 10 +// - NumParallel = runtime.NumCPU() +func DefaultExecCtx() ExecCtx { return defaultExecCtx } + +func init() { + defaultExecCtx.ChunkSize = DefaultMaxChunkSize + defaultExecCtx.PreallocContiguous = true + defaultExecCtx.Registry = GetFunctionRegistry() + defaultExecCtx.ExecChannelSize = 10 + // default level of parallelism + // set to 1 to disable parallelization + defaultExecCtx.NumParallel = runtime.NumCPU() +} + +// SetExecCtx returns a new child context containing the passed in ExecCtx +func SetExecCtx(ctx context.Context, e ExecCtx) context.Context { + return context.WithValue(ctx, ctxExecKey{}, e) +} + +// GetExecCtx returns an embedded ExecCtx from the provided context. +// If it does not contain an ExecCtx, then the default one is returned. +func GetExecCtx(ctx context.Context) ExecCtx { + e, ok := ctx.Value(ctxExecKey{}).(ExecCtx) + if ok { + return e + } + return defaultExecCtx +} + +// ExecBatch is a unit of work for kernel execution. It contains a collection +// of Array and Scalar values. +// +// ExecBatch is semantically similar to a RecordBatch but for a SQL-style +// execution context. It represents a collection or records, but constant +// "columns" are represented by Scalar values rather than having to be +// converted into arrays with repeated values. +type ExecBatch struct { + Values []Datum + // Guarantee is a predicate Expression guaranteed to evaluate to true for + // all rows in this batch. + Guarantee Expression + // Len is the semantic length of this ExecBatch. When the values are + // all scalars, the length should be set to 1 for non-aggregate kernels. + // Otherwise the length is taken from the array values. Aggregate kernels + // can have an ExecBatch formed by projecting just the partition columns + // from a batch in which case it would have scalar rows with length > 1 + // + // If the array values are of length 0, then the length is 0 regardless of + // whether any values are Scalar. + Len int64 +} + +func (e ExecBatch) NumValues() int { return len(e.Values) } + +// simple struct for defining how to preallocate a particular buffer. +type bufferPrealloc struct { + bitWidth int + addLen int +} + +func allocateDataBuffer(ctx *exec.KernelCtx, length, bitWidth int) *memory.Buffer { + switch bitWidth { + case 1: + return ctx.AllocateBitmap(int64(length)) + default: + bufsiz := int(bitutil.BytesForBits(int64(length * bitWidth))) + return ctx.Allocate(bufsiz) + } +} + +func addComputeDataPrealloc(dt arrow.DataType, widths []bufferPrealloc) []bufferPrealloc { + if typ, ok := dt.(arrow.FixedWidthDataType); ok { + return append(widths, bufferPrealloc{bitWidth: typ.BitWidth()}) + } + + switch dt.ID() { + case arrow.BINARY, arrow.STRING, arrow.LIST, arrow.MAP: + return append(widths, bufferPrealloc{bitWidth: 32, addLen: 1}) + case arrow.LARGE_BINARY, arrow.LARGE_STRING, arrow.LARGE_LIST: + return append(widths, bufferPrealloc{bitWidth: 64, addLen: 1}) + } + return widths +} + +// enum to define a generalized assumption of the nulls in the inputs +type nullGeneralization int8 + +const ( + nullGenPerhapsNull nullGeneralization = iota + nullGenAllValid + nullGenAllNull +) + +func getNullGen(val *exec.ExecValue) nullGeneralization { + dtID := val.Type().ID() + switch { + case dtID == arrow.NULL: + return nullGenAllNull + case !internal.DefaultHasValidityBitmap(dtID): + return nullGenAllValid + case val.IsScalar(): + if val.Scalar.IsValid() { + return nullGenAllValid + } + return nullGenAllNull + default: + arr := val.Array + // do not count if they haven't been counted already + if arr.Nulls == 0 || arr.Buffers[0].Buf == nil { + return nullGenAllValid + } + + if arr.Nulls == arr.Len { + return nullGenAllNull + } + } + return nullGenPerhapsNull +} + +func getNullGenDatum(datum Datum) nullGeneralization { + var val exec.ExecValue + switch datum.Kind() { + case KindArray: + val.Array.SetMembers(datum.(*ArrayDatum).Value) + case KindScalar: + val.Scalar = datum.(*ScalarDatum).Value + case KindChunked: + return nullGenPerhapsNull + default: + debug.Assert(false, "should be array, scalar, or chunked!") + return nullGenPerhapsNull + } + return getNullGen(&val) +} + +// populate the validity bitmaps with the intersection of the nullity +// of the arguments. If a preallocated bitmap is not provided, then one +// will be allocated if needed (in some cases a bitmap can be zero-copied +// from the arguments). If any Scalar value is null, then the entire +// validity bitmap will be set to null. +func propagateNulls(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ArraySpan) (err error) { + if out.Type.ID() == arrow.NULL { + // null output type is a no-op (rare but it happens) + return + } + + // this function is ONLY able to write into output with non-zero offset + // when the bitmap is preallocated. + if out.Offset != 0 && out.Buffers[0].Buf == nil { + return fmt.Errorf("%w: can only propagate nulls into pre-allocated memory when output offset is non-zero", arrow.ErrInvalid) + } + + var ( + arrsWithNulls = make([]*exec.ArraySpan, 0, len(batch.Values)) + isAllNull bool + prealloc bool = out.Buffers[0].Buf != nil + ) + + for i := range batch.Values { + v := &batch.Values[i] + nullGen := getNullGen(v) + if nullGen == nullGenAllNull { + isAllNull = true + } + if nullGen != nullGenAllValid && v.IsArray() { + arrsWithNulls = append(arrsWithNulls, &v.Array) + } + } + + outBitmap := out.Buffers[0].Buf + if isAllNull { + // an all-null value gives us a short circuit opportunity + // output should all be null + out.Nulls = out.Len + if prealloc { + bitutil.SetBitsTo(outBitmap, out.Offset, out.Len, false) + return + } + + // walk all the values with nulls instead of breaking on the first + // in case we find a bitmap that can be reused in the non-preallocated case + for _, arr := range arrsWithNulls { + if arr.Nulls == arr.Len && arr.Buffers[0].Owner != nil { + buf := arr.GetBuffer(0) + buf.Retain() + out.Buffers[0].Buf = buf.Bytes() + out.Buffers[0].Owner = buf + return + } + } + + buf := ctx.AllocateBitmap(int64(out.Len)) + out.Buffers[0].Owner = buf + out.Buffers[0].Buf = buf.Bytes() + out.Buffers[0].SelfAlloc = true + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, false) + return + } + + out.Nulls = array.UnknownNullCount + switch len(arrsWithNulls) { + case 0: + out.Nulls = 0 + if prealloc { + bitutil.SetBitsTo(outBitmap, out.Offset, out.Len, true) + } + case 1: + arr := arrsWithNulls[0] + out.Nulls = arr.Nulls + if prealloc { + bitutil.CopyBitmap(arr.Buffers[0].Buf, int(arr.Offset), int(arr.Len), outBitmap, int(out.Offset)) + return + } + + switch { + case arr.Offset == 0: + out.Buffers[0] = arr.Buffers[0] + out.Buffers[0].Owner.Retain() + case arr.Offset%8 == 0: + buf := memory.SliceBuffer(arr.GetBuffer(0), int(arr.Offset)/8, int(bitutil.BytesForBits(arr.Len))) + out.Buffers[0].Buf = buf.Bytes() + out.Buffers[0].Owner = buf + default: + buf := ctx.AllocateBitmap(int64(out.Len)) + out.Buffers[0].Owner = buf + out.Buffers[0].Buf = buf.Bytes() + out.Buffers[0].SelfAlloc = true + bitutil.CopyBitmap(arr.Buffers[0].Buf, int(arr.Offset), int(arr.Len), out.Buffers[0].Buf, 0) + } + return + + default: + if !prealloc { + buf := ctx.AllocateBitmap(int64(out.Len)) + out.Buffers[0].Owner = buf + out.Buffers[0].Buf = buf.Bytes() + out.Buffers[0].SelfAlloc = true + outBitmap = out.Buffers[0].Buf + } + + acc := func(left, right *exec.ArraySpan) { + debug.Assert(left.Buffers[0].Buf != nil, "invalid intersection for null propagation") + debug.Assert(right.Buffers[0].Buf != nil, "invalid intersection for null propagation") + bitutil.BitmapAnd(left.Buffers[0].Buf, right.Buffers[0].Buf, left.Offset, right.Offset, outBitmap, out.Offset, out.Len) + } + + acc(arrsWithNulls[0], arrsWithNulls[1]) + for _, arr := range arrsWithNulls[2:] { + acc(out, arr) + } + } + return +} + +func inferBatchLength(values []Datum) (length int64, allSame bool) { + length, allSame = -1, true + areAllScalar := true + for _, arg := range values { + switch arg := arg.(type) { + case *ArrayDatum: + argLength := arg.Len() + if length < 0 { + length = argLength + } else { + if length != argLength { + allSame = false + return + } + } + areAllScalar = false + case *ChunkedDatum: + argLength := arg.Len() + if length < 0 { + length = argLength + } else { + if length != argLength { + allSame = false + return + } + } + areAllScalar = false + } + } + + if areAllScalar && len(values) > 0 { + length = 1 + } else if length < 0 { + length = 0 + } + allSame = true + return +} + +// kernelExecutor is the interface for all executors to initialize and +// call kernel execution functions on batches. +type kernelExecutor interface { + // Init must be called *after* the kernel's init method and any + // KernelState must be set into the KernelCtx *before* calling + // this Init method. This is to faciliate the case where + // Init may be expensive and does not need to be called + // again for each execution of the kernel. For example, + // the same lookup table can be re-used for all scanned batches + // in a dataset filter. + Init(*exec.KernelCtx, exec.KernelInitArgs) error + // Execute the kernel for the provided batch and pass the resulting + // Datum values to the provided channel. + Execute(context.Context, *ExecBatch, chan<- Datum) error + // WrapResults exists for the case where an executor wants to post process + // the batches of result datums. Such as creating a ChunkedArray from + // multiple output batches or so on. Results from individual batch + // executions should be read from the out channel, and WrapResults should + // return the final Datum result. + WrapResults(ctx context.Context, out <-chan Datum, chunkedArgs bool) Datum + // CheckResultType checks the actual result type against the resolved + // output type. If the types don't match an error is returned + CheckResultType(out Datum) error + + clear() +} + +// the base implementation for executing non-aggregate kernels. +type nonAggExecImpl struct { + ctx *exec.KernelCtx + ectx ExecCtx + kernel exec.NonAggKernel + outType arrow.DataType + numOutBuf int + dataPrealloc []bufferPrealloc + preallocValidity bool +} + +func (e *nonAggExecImpl) clear() { + e.ctx, e.kernel, e.outType = nil, nil, nil + if e.dataPrealloc != nil { + e.dataPrealloc = e.dataPrealloc[:0] + } +} + +func (e *nonAggExecImpl) Init(ctx *exec.KernelCtx, args exec.KernelInitArgs) (err error) { + e.ctx, e.kernel = ctx, args.Kernel.(exec.NonAggKernel) + e.outType, err = e.kernel.GetSig().OutType.Resolve(ctx, args.Inputs) + e.ectx = GetExecCtx(ctx.Ctx) + return +} + +func (e *nonAggExecImpl) prepareOutput(length int) *exec.ExecResult { + var nullCount int = array.UnknownNullCount + + if e.kernel.GetNullHandling() == exec.NullNoOutput { + nullCount = 0 + } + + output := &exec.ArraySpan{ + Type: e.outType, + Len: int64(length), + Nulls: int64(nullCount), + } + + if e.preallocValidity { + buf := e.ctx.AllocateBitmap(int64(length)) + output.Buffers[0].Owner = buf + output.Buffers[0].Buf = buf.Bytes() + output.Buffers[0].SelfAlloc = true + } + + for i, pre := range e.dataPrealloc { + if pre.bitWidth >= 0 { + buf := allocateDataBuffer(e.ctx, length+pre.addLen, pre.bitWidth) + output.Buffers[i+1].Owner = buf + output.Buffers[i+1].Buf = buf.Bytes() + output.Buffers[i+1].SelfAlloc = true + } + } + + return output +} + +func (e *nonAggExecImpl) CheckResultType(out Datum) error { + typ := out.(ArrayLikeDatum).Type() + if typ != nil && !arrow.TypeEqual(e.outType, typ) { + return fmt.Errorf("%w: kernel type result mismatch: declared as %s, actual is %s", + arrow.ErrType, e.outType, typ) + } + return nil +} + +type spanIterator func() (exec.ExecSpan, int64, bool) + +type scalarExecutor struct { + nonAggExecImpl + + elideValidityBitmap bool + preallocAllBufs bool + preallocContiguous bool + allScalars bool + iter spanIterator + iterLen int64 +} + +func (s *scalarExecutor) Execute(ctx context.Context, batch *ExecBatch, data chan<- Datum) (err error) { + s.allScalars, s.iter, err = iterateExecSpans(batch, s.ectx.ChunkSize, true) + if err != nil { + return + } + + s.iterLen = batch.Len + + if batch.Len == 0 { + result := array.MakeArrayOfNull(exec.GetAllocator(s.ctx.Ctx), s.outType, 0) + defer result.Release() + out := &exec.ArraySpan{} + out.SetMembers(result.Data()) + return s.emitResult(out, data) + } + + if err = s.setupPrealloc(batch.Len, batch.Values); err != nil { + return + } + + return s.executeSpans(data) +} + +func (s *scalarExecutor) WrapResults(ctx context.Context, out <-chan Datum, hasChunked bool) Datum { + var ( + output Datum + acc []arrow.Array + ) + + toChunked := func() { + acc = output.(ArrayLikeDatum).Chunks() + output.Release() + output = nil + } + + // get first output + select { + case <-ctx.Done(): + return nil + case output = <-out: + // if the inputs contained at least one chunked array + // then we want to return chunked output + if hasChunked { + toChunked() + } + } + + for { + select { + case <-ctx.Done(): + // context is done, either cancelled or a timeout. + // either way, we end early and return what we've got so far. + return output + case o, ok := <-out: + if !ok { // channel closed, wrap it up + if output != nil { + return output + } + + for _, c := range acc { + defer c.Release() + } + + chkd := arrow.NewChunked(s.outType, acc) + defer chkd.Release() + return NewDatum(chkd) + } + + // if we get multiple batches of output, then we need + // to return it as a chunked array. + if acc == nil { + toChunked() + } + + defer o.Release() + if o.Len() == 0 { // skip any empty batches + continue + } + + acc = append(acc, o.(*ArrayDatum).MakeArray()) + } + } +} + +func (s *scalarExecutor) executeSpans(data chan<- Datum) (err error) { + var ( + input exec.ExecSpan + output exec.ExecResult + next bool + ) + + if s.preallocContiguous { + // make one big output alloc + prealloc := s.prepareOutput(int(s.iterLen)) + output = *prealloc + + output.Offset = 0 + var resultOffset int64 + var nextOffset int64 + for err == nil { + if input, nextOffset, next = s.iter(); !next { + break + } + output.SetSlice(resultOffset, input.Len) + err = s.executeSingleSpan(&input, &output) + resultOffset = nextOffset + } + if err != nil { + prealloc.Release() + return + } + + return s.emitResult(prealloc, data) + } + + // fully preallocating, but not contiguously + // we (maybe) preallocate only for the output of processing + // the current chunk + for err == nil { + if input, _, next = s.iter(); !next { + break + } + + output = *s.prepareOutput(int(input.Len)) + if err = s.executeSingleSpan(&input, &output); err != nil { + output.Release() + return + } + err = s.emitResult(&output, data) + } + + return +} + +func (s *scalarExecutor) executeSingleSpan(input *exec.ExecSpan, out *exec.ExecResult) error { + switch { + case out.Type.ID() == arrow.NULL: + out.Nulls = out.Len + case s.kernel.GetNullHandling() == exec.NullIntersection: + if !s.elideValidityBitmap { + propagateNulls(s.ctx, input, out) + } + case s.kernel.GetNullHandling() == exec.NullNoOutput: + out.Nulls = 0 + } + return s.kernel.Exec(s.ctx, input, out) +} + +func (s *scalarExecutor) setupPrealloc(totalLen int64, args []Datum) error { + s.numOutBuf = len(s.outType.Layout().Buffers) + outTypeID := s.outType.ID() + // default to no validity pre-allocation for the following cases: + // - Output Array is NullArray + // - kernel.NullHandling is ComputeNoPrealloc or OutputNotNull + s.preallocValidity = false + + if outTypeID != arrow.NULL { + switch s.kernel.GetNullHandling() { + case exec.NullComputedPrealloc: + s.preallocValidity = true + case exec.NullIntersection: + s.elideValidityBitmap = true + for _, a := range args { + nullGen := getNullGenDatum(a) == nullGenAllValid + s.elideValidityBitmap = s.elideValidityBitmap && nullGen + } + s.preallocValidity = !s.elideValidityBitmap + case exec.NullNoOutput: + s.elideValidityBitmap = true + } + } + + if s.kernel.GetMemAlloc() == exec.MemPrealloc { + s.dataPrealloc = addComputeDataPrealloc(s.outType, s.dataPrealloc) + } + + // validity bitmap either preallocated or elided, and all data buffers allocated + // this is basically only true for primitive types that are not dict-encoded + s.preallocAllBufs = + ((s.preallocValidity || s.elideValidityBitmap) && len(s.dataPrealloc) == (s.numOutBuf-1) && + !arrow.IsNested(outTypeID) && outTypeID != arrow.DICTIONARY) + + // contiguous prealloc only possible on non-nested types if all + // buffers are preallocated. otherwise we have to go chunk by chunk + // + // some kernels are also unable to write into sliced outputs, so + // we respect the kernel's attributes + s.preallocContiguous = + (s.ectx.PreallocContiguous && s.kernel.CanFillSlices() && + s.preallocAllBufs) + + return nil +} + +func (s *scalarExecutor) emitResult(resultData *exec.ArraySpan, data chan<- Datum) error { + var output Datum + if len(resultData.Buffers[0].Buf) != 0 { + resultData.UpdateNullCount() + } + if s.allScalars { + // we boxed scalar inputs as ArraySpan so now we have to unbox the output + arr := resultData.MakeArray() + defer arr.Release() + sc, err := scalar.GetScalar(arr, 0) + if err != nil { + return err + } + if r, ok := sc.(scalar.Releasable); ok { + defer r.Release() + } + output = NewDatum(sc) + } else { + d := resultData.MakeData() + defer d.Release() + output = NewDatum(d) + } + data <- output + return nil +} + +func checkAllIsValue(vals []Datum) error { + for _, v := range vals { + if !DatumIsValue(v) { + return fmt.Errorf("%w: tried executing function with non-value type: %s", + arrow.ErrInvalid, v) + } + } + return nil +} + +func checkIfAllScalar(batch *ExecBatch) bool { + for _, v := range batch.Values { + if v.Kind() != KindScalar { + return false + } + } + return batch.NumValues() > 0 +} + +// iterateExecSpans sets up and returns a function which can iterate a batch +// according to the chunk sizes. If the inputs contain chunked arrays, then +// we will find the min(chunk sizes, maxChunkSize) to ensure we return +// contiguous spans to execute on. +// +// the iteration function returns the next span to execute on, the current +// position in the full batch, and a boolean indicating whether or not +// a span was actually returned (there is data to process). +func iterateExecSpans(batch *ExecBatch, maxChunkSize int64, promoteIfAllScalar bool) (haveAllScalars bool, itr spanIterator, err error) { + if batch.NumValues() > 0 { + inferred, allArgsSame := inferBatchLength(batch.Values) + if inferred != batch.Len { + return false, nil, fmt.Errorf("%w: value lengths differed from execbatch length", arrow.ErrInvalid) + } + if !allArgsSame { + return false, nil, fmt.Errorf("%w: array args must all be the same length", arrow.ErrInvalid) + } + } + + var ( + args []Datum = batch.Values + haveChunked bool + chunkIdxes = make([]int, len(args)) + valuePositions = make([]int64, len(args)) + valueOffsets = make([]int64, len(args)) + pos, length int64 = 0, batch.Len + ) + haveAllScalars = checkIfAllScalar(batch) + maxChunkSize = exec.Min(length, maxChunkSize) + + span := exec.ExecSpan{Values: make([]exec.ExecValue, len(args)), Len: 0} + for i, a := range args { + switch arg := a.(type) { + case *ScalarDatum: + span.Values[i].Scalar = arg.Value + case *ArrayDatum: + span.Values[i].Array.SetMembers(arg.Value) + valueOffsets[i] = int64(arg.Value.Offset()) + case *ChunkedDatum: + // populate from first chunk + carr := arg.Value + if len(carr.Chunks()) > 0 { + arr := carr.Chunk(0).Data() + span.Values[i].Array.SetMembers(arr) + valueOffsets[i] = int64(arr.Offset()) + } else { + // fill as zero len + exec.FillZeroLength(carr.DataType(), &span.Values[i].Array) + } + haveChunked = true + } + } + + if haveAllScalars && promoteIfAllScalar { + exec.PromoteExecSpanScalars(span) + } + + nextChunkSpan := func(iterSz int64, span exec.ExecSpan) int64 { + for i := 0; i < len(args) && iterSz > 0; i++ { + // if the argument is not chunked, it's either a scalar or an array + // in which case it doesn't influence the size of the span + chunkedArg, ok := args[i].(*ChunkedDatum) + if !ok { + continue + } + + arg := chunkedArg.Value + if len(arg.Chunks()) == 0 { + iterSz = 0 + continue + } + + var curChunk arrow.Array + for { + curChunk = arg.Chunk(chunkIdxes[i]) + if valuePositions[i] == int64(curChunk.Len()) { + // chunk is zero-length, or was exhausted in the previous + // iteration, move to next chunk + chunkIdxes[i]++ + curChunk = arg.Chunk(chunkIdxes[i]) + span.Values[i].Array.SetMembers(curChunk.Data()) + valuePositions[i] = 0 + valueOffsets[i] = int64(curChunk.Data().Offset()) + continue + } + break + } + iterSz = exec.Min(int64(curChunk.Len())-valuePositions[i], iterSz) + } + return iterSz + } + + return haveAllScalars, func() (exec.ExecSpan, int64, bool) { + if pos == length { + return exec.ExecSpan{}, pos, false + } + + iterationSize := exec.Min(length-pos, maxChunkSize) + if haveChunked { + iterationSize = nextChunkSpan(iterationSize, span) + } + + span.Len = iterationSize + for i, a := range args { + if a.Kind() != KindScalar { + span.Values[i].Array.SetSlice(valuePositions[i]+valueOffsets[i], iterationSize) + valuePositions[i] += iterationSize + } + } + + pos += iterationSize + debug.Assert(pos <= length, "bad state for iteration exec span") + return span, pos, true + }, nil +} + +var ( + // have a pool of scalar executors to avoid excessive object creation + scalarExecPool = sync.Pool{ + New: func() any { return &scalarExecutor{} }, + } + vectorExecPool = sync.Pool{ + New: func() any { return &vectorExecutor{} }, + } +) + +func checkCanExecuteChunked(k *exec.VectorKernel) error { + if k.ExecChunked == nil { + return fmt.Errorf("%w: vector kernel cannot execute chunkwise and no chunked exec function defined", arrow.ErrInvalid) + } + + if k.NullHandling == exec.NullIntersection { + return fmt.Errorf("%w: null pre-propagation is unsupported for chunkedarray execution in vector kernels", arrow.ErrInvalid) + } + return nil +} + +type vectorExecutor struct { + nonAggExecImpl + + iter spanIterator + results []*exec.ArraySpan + iterLen int64 + + allScalars bool +} + +func (v *vectorExecutor) Execute(ctx context.Context, batch *ExecBatch, data chan<- Datum) (err error) { + final := v.kernel.(*exec.VectorKernel).Finalize + if final != nil { + if v.results == nil { + v.results = make([]*exec.ArraySpan, 0, 1) + } else { + v.results = v.results[:0] + } + } + // some vector kernels have a separate code path for handling chunked + // arrays (VectorKernel.ExecChunked) so we check for any chunked + // arrays. If we do and an ExecChunked function is defined + // then we call that. + hasChunked := haveChunkedArray(batch.Values) + v.numOutBuf = len(v.outType.Layout().Buffers) + v.preallocValidity = v.kernel.GetNullHandling() != exec.NullComputedNoPrealloc && + v.kernel.GetNullHandling() != exec.NullNoOutput + if v.kernel.GetMemAlloc() == exec.MemPrealloc { + v.dataPrealloc = addComputeDataPrealloc(v.outType, v.dataPrealloc) + } + + if v.kernel.(*exec.VectorKernel).CanExecuteChunkWise { + v.allScalars, v.iter, err = iterateExecSpans(batch, v.ectx.ChunkSize, true) + v.iterLen = batch.Len + + var ( + input exec.ExecSpan + next bool + ) + if v.iterLen == 0 { + input.Values = make([]exec.ExecValue, batch.NumValues()) + for i, v := range batch.Values { + exec.FillZeroLength(v.(ArrayLikeDatum).Type(), &input.Values[i].Array) + } + err = v.exec(&input, data) + } + for err == nil { + if input, _, next = v.iter(); !next { + break + } + err = v.exec(&input, data) + } + if err != nil { + return + } + } else { + // kernel cannot execute chunkwise. if we have any chunked arrays, + // then execchunked must be defined or we raise an error + if hasChunked { + if err = v.execChunked(batch, data); err != nil { + return + } + } else { + // no chunked arrays. we pack the args into an execspan + // and call regular exec code path + span := ExecSpanFromBatch(batch) + if checkIfAllScalar(batch) { + exec.PromoteExecSpanScalars(*span) + } + if err = v.exec(span, data); err != nil { + return + } + } + } + + if final != nil { + // intermediate results require post-processing after execution is + // completed (possibly involving some accumulated state) + output, err := final(v.ctx, v.results) + if err != nil { + return err + } + + for _, r := range output { + d := r.MakeData() + defer d.Release() + data <- NewDatum(d) + } + } + + return nil +} + +func (v *vectorExecutor) WrapResults(ctx context.Context, out <-chan Datum, hasChunked bool) Datum { + // if kernel doesn't output chunked, just grab the one output and return it + if !v.kernel.(*exec.VectorKernel).OutputChunked { + var output Datum + select { + case <-ctx.Done(): + return nil + case output = <-out: + } + + // we got an output datum, but let's wait for the channel to + // close so we don't have any race conditions + select { + case <-ctx.Done(): + output.Release() + return nil + case <-out: + return output + } + } + + // if execution yielded multiple chunks then the result is a chunked array + var ( + output Datum + acc []arrow.Array + ) + + toChunked := func() { + out := output.(ArrayLikeDatum).Chunks() + acc = make([]arrow.Array, 0, len(out)) + for _, o := range out { + if o.Len() > 0 { + acc = append(acc, o) + } + } + if output.Kind() != KindChunked { + output.Release() + } + output = nil + } + + // get first output + select { + case <-ctx.Done(): + return nil + case output = <-out: + // if the inputs contained at least one chunked array + // then we want to return chunked output + if hasChunked { + toChunked() + } + } + + for { + select { + case <-ctx.Done(): + // context is done, either cancelled or a timeout. + // either way, we end early and return what we've got so far. + return output + case o, ok := <-out: + if !ok { // channel closed, wrap it up + if output != nil { + return output + } + + for _, c := range acc { + defer c.Release() + } + + chkd := arrow.NewChunked(v.outType, acc) + defer chkd.Release() + return NewDatum(chkd) + } + + // if we get multiple batches of output, then we need + // to return it as a chunked array. + if acc == nil { + toChunked() + } + + defer o.Release() + if o.Len() == 0 { // skip any empty batches + continue + } + + acc = append(acc, o.(*ArrayDatum).MakeArray()) + } + } +} + +func (v *vectorExecutor) exec(span *exec.ExecSpan, data chan<- Datum) (err error) { + out := v.prepareOutput(int(span.Len)) + if v.kernel.GetNullHandling() == exec.NullIntersection { + if err = propagateNulls(v.ctx, span, out); err != nil { + return + } + } + if err = v.kernel.Exec(v.ctx, span, out); err != nil { + return + } + return v.emitResult(out, data) +} + +func (v *vectorExecutor) emitResult(result *exec.ArraySpan, data chan<- Datum) (err error) { + if v.kernel.(*exec.VectorKernel).Finalize == nil { + d := result.MakeData() + defer d.Release() + data <- NewDatum(d) + } else { + v.results = append(v.results, result) + } + return nil +} + +func (v *vectorExecutor) execChunked(batch *ExecBatch, out chan<- Datum) error { + if err := checkCanExecuteChunked(v.kernel.(*exec.VectorKernel)); err != nil { + return err + } + + output := v.prepareOutput(int(batch.Len)) + input := make([]*arrow.Chunked, len(batch.Values)) + for i, v := range batch.Values { + switch val := v.(type) { + case *ArrayDatum: + chks := val.Chunks() + input[i] = arrow.NewChunked(val.Type(), chks) + chks[0].Release() + defer input[i].Release() + case *ChunkedDatum: + input[i] = val.Value + default: + return fmt.Errorf("%w: handling with exec chunked", arrow.ErrNotImplemented) + } + } + result, err := v.kernel.(*exec.VectorKernel).ExecChunked(v.ctx, input, output) + if err != nil { + return err + } + + if len(result) == 0 { + empty := output.MakeArray() + defer empty.Release() + out <- &ChunkedDatum{Value: arrow.NewChunked(output.Type, []arrow.Array{empty})} + return nil + } + + for _, r := range result { + if err := v.emitResult(r, out); err != nil { + return err + } + } + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/expression.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/expression.go new file mode 100644 index 0000000..c29c622 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/expression.go @@ -0,0 +1,895 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "bytes" + "encoding/hex" + "errors" + "fmt" + "hash/maphash" + "reflect" + "strconv" + "strings" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/ipc" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +var hashSeed = maphash.MakeSeed() + +// Expression is an interface for mapping one datum to another. An expression +// is one of: +// A literal Datum +// A reference to a single (potentially nested) field of an input Datum +// A call to a compute function, with arguments specified by other Expressions +type Expression interface { + fmt.Stringer + // IsBound returns true if this expression has been bound to a particular + // Datum and/or Schema. + IsBound() bool + // IsScalarExpr returns true if this expression is composed only of scalar + // literals, field references and calls to scalar functions. + IsScalarExpr() bool + // IsNullLiteral returns true if this expression is a literal and entirely + // null. + IsNullLiteral() bool + // IsSatisfiable returns true if this expression could evaluate to true + IsSatisfiable() bool + // FieldRef returns a pointer to the underlying field reference, or nil if + // this expression is not a field reference. + FieldRef() *FieldRef + // Type returns the datatype this expression will evaluate to. + Type() arrow.DataType + + Hash() uint64 + Equals(Expression) bool + + // Release releases the underlying bound C++ memory that is allocated when + // a Bind is performed. Any bound expression should get released to ensure + // no memory leaks. + Release() +} + +func printDatum(datum Datum) string { + switch datum := datum.(type) { + case *ScalarDatum: + if !datum.Value.IsValid() { + return "null" + } + + switch datum.Type().ID() { + case arrow.STRING, arrow.LARGE_STRING: + return strconv.Quote(datum.Value.(scalar.BinaryScalar).String()) + case arrow.BINARY, arrow.FIXED_SIZE_BINARY, arrow.LARGE_BINARY: + return `"` + strings.ToUpper(hex.EncodeToString(datum.Value.(scalar.BinaryScalar).Data())) + `"` + } + + return datum.Value.String() + default: + return datum.String() + } +} + +// Literal is an expression denoting a literal Datum which could be any value +// as a scalar, an array, or so on. +type Literal struct { + Literal Datum +} + +func (Literal) FieldRef() *FieldRef { return nil } +func (l *Literal) String() string { return printDatum(l.Literal) } +func (l *Literal) Type() arrow.DataType { return l.Literal.(ArrayLikeDatum).Type() } +func (l *Literal) IsBound() bool { return l.Type() != nil } +func (l *Literal) IsScalarExpr() bool { return l.Literal.Kind() == KindScalar } + +func (l *Literal) Equals(other Expression) bool { + if rhs, ok := other.(*Literal); ok { + return l.Literal.Equals(rhs.Literal) + } + return false +} + +func (l *Literal) IsNullLiteral() bool { + if ad, ok := l.Literal.(ArrayLikeDatum); ok { + return ad.NullN() == ad.Len() + } + return true +} + +func (l *Literal) IsSatisfiable() bool { + if l.IsNullLiteral() { + return false + } + + if sc, ok := l.Literal.(*ScalarDatum); ok && sc.Type().ID() == arrow.BOOL { + return sc.Value.(*scalar.Boolean).Value + } + + return true +} + +func (l *Literal) Hash() uint64 { + if l.IsScalarExpr() { + return scalar.Hash(hashSeed, l.Literal.(*ScalarDatum).Value) + } + return 0 +} + +func (l *Literal) Release() { + l.Literal.Release() +} + +// Parameter represents a field reference and needs to be bound in order to determine +// its type and shape. +type Parameter struct { + ref *FieldRef + + // post bind props + dt arrow.DataType + index int +} + +func (Parameter) IsNullLiteral() bool { return false } +func (p *Parameter) Type() arrow.DataType { return p.dt } +func (p *Parameter) IsBound() bool { return p.Type() != nil } +func (p *Parameter) IsScalarExpr() bool { return p.ref != nil } +func (p *Parameter) IsSatisfiable() bool { return p.Type() == nil || p.Type().ID() != arrow.NULL } +func (p *Parameter) FieldRef() *FieldRef { return p.ref } +func (p *Parameter) Hash() uint64 { return p.ref.Hash(hashSeed) } + +func (p *Parameter) String() string { + switch { + case p.ref.IsName(): + return p.ref.Name() + case p.ref.IsFieldPath(): + return p.ref.FieldPath().String() + default: + return p.ref.String() + } +} + +func (p *Parameter) Equals(other Expression) bool { + if rhs, ok := other.(*Parameter); ok { + return p.ref.Equals(*rhs.ref) + } + + return false +} + +func (p *Parameter) Release() {} + +type comparisonType int8 + +const ( + compNA comparisonType = 0 + compEQ comparisonType = 1 + compLT comparisonType = 2 + compGT comparisonType = 4 + compNE comparisonType = compLT | compGT + compLE comparisonType = compLT | compEQ + compGE comparisonType = compGT | compEQ +) + +//lint:ignore U1000 ignore that this is unused for now +func (c comparisonType) name() string { + switch c { + case compEQ: + return "equal" + case compLT: + return "less" + case compGT: + return "greater" + case compNE: + return "not_equal" + case compLE: + return "less_equal" + case compGE: + return "greater_equal" + } + return "na" +} + +func (c comparisonType) getOp() string { + switch c { + case compEQ: + return "==" + case compLT: + return "<" + case compGT: + return ">" + case compNE: + return "!=" + case compLE: + return "<=" + case compGE: + return ">=" + } + debug.Assert(false, "invalid getop") + return "" +} + +var compmap = map[string]comparisonType{ + "equal": compEQ, + "less": compLT, + "greater": compGT, + "not_equal": compNE, + "less_equal": compLE, + "greater_equal": compGE, +} + +func optionsToString(fn FunctionOptions) string { + if s, ok := fn.(fmt.Stringer); ok { + return s.String() + } + + var b strings.Builder + v := reflect.Indirect(reflect.ValueOf(fn)) + b.WriteByte('{') + for i := 0; i < v.Type().NumField(); i++ { + fld := v.Type().Field(i) + tag := fld.Tag.Get("compute") + if tag == "-" { + continue + } + + fldVal := v.Field(i) + fmt.Fprintf(&b, "%s=%v, ", tag, fldVal.Interface()) + } + ret := b.String() + return ret[:len(ret)-2] + "}" +} + +// Call is a function call with specific arguments which are themselves other +// expressions. A call can also have options that are specific to the function +// in question. It must be bound to determine the shape and type. +type Call struct { + funcName string + args []Expression + dt arrow.DataType + options FunctionOptions + + cachedHash uint64 +} + +func (c *Call) IsNullLiteral() bool { return false } +func (c *Call) FieldRef() *FieldRef { return nil } +func (c *Call) Type() arrow.DataType { return c.dt } +func (c *Call) IsSatisfiable() bool { return c.Type() == nil || c.Type().ID() != arrow.NULL } + +func (c *Call) String() string { + binary := func(op string) string { + return "(" + c.args[0].String() + " " + op + " " + c.args[1].String() + ")" + } + + if cmp, ok := compmap[c.funcName]; ok { + return binary(cmp.getOp()) + } + + const kleene = "_kleene" + if strings.HasSuffix(c.funcName, kleene) { + return binary(strings.TrimSuffix(c.funcName, kleene)) + } + + if c.funcName == "make_struct" && c.options != nil { + opts := c.options.(*MakeStructOptions) + out := "{" + for i, a := range c.args { + out += opts.FieldNames[i] + "=" + a.String() + ", " + } + return out[:len(out)-2] + "}" + } + + var b strings.Builder + b.WriteString(c.funcName + "(") + for _, a := range c.args { + b.WriteString(a.String() + ", ") + } + + if c.options != nil { + b.WriteString(optionsToString(c.options)) + b.WriteString(" ") + } + + ret := b.String() + return ret[:len(ret)-2] + ")" +} + +func (c *Call) Hash() uint64 { + if c.cachedHash != 0 { + return c.cachedHash + } + + var h maphash.Hash + h.SetSeed(hashSeed) + + h.WriteString(c.funcName) + c.cachedHash = h.Sum64() + for _, arg := range c.args { + c.cachedHash = exec.HashCombine(c.cachedHash, arg.Hash()) + } + return c.cachedHash +} + +func (c *Call) IsScalarExpr() bool { + for _, arg := range c.args { + if !arg.IsScalarExpr() { + return false + } + } + + return false + // return isFuncScalar(c.funcName) +} + +func (c *Call) IsBound() bool { + return c.Type() != nil +} + +func (c *Call) Equals(other Expression) bool { + rhs, ok := other.(*Call) + if !ok { + return false + } + + if c.funcName != rhs.funcName || len(c.args) != len(rhs.args) { + return false + } + + for i := range c.args { + if !c.args[i].Equals(rhs.args[i]) { + return false + } + } + + if opt, ok := c.options.(FunctionOptionsEqual); ok { + return opt.Equals(rhs.options) + } + return reflect.DeepEqual(c.options, rhs.options) +} + +func (c *Call) Release() { + for _, a := range c.args { + a.Release() + } + if r, ok := c.options.(releasable); ok { + r.Release() + } +} + +// FunctionOptions can be any type which has a TypeName function. The fields +// of the type will be used (via reflection) to determine the information to +// propagate when serializing to pass to the C++ for execution. +type FunctionOptions interface { + TypeName() string +} + +type FunctionOptionsEqual interface { + Equals(FunctionOptions) bool +} + +type FunctionOptionsCloneable interface { + Clone() FunctionOptions +} + +type MakeStructOptions struct { + FieldNames []string `compute:"field_names"` + FieldNullability []bool `compute:"field_nullability"` + FieldMetadata []*arrow.Metadata `compute:"field_metadata"` +} + +func (MakeStructOptions) TypeName() string { return "MakeStructOptions" } + +type NullOptions struct { + NanIsNull bool `compute:"nan_is_null"` +} + +func (NullOptions) TypeName() string { return "NullOptions" } + +type StrptimeOptions struct { + Format string `compute:"format"` + Unit arrow.TimeUnit `compute:"unit"` +} + +func (StrptimeOptions) TypeName() string { return "StrptimeOptions" } + +type NullSelectionBehavior = kernels.NullSelectionBehavior + +const ( + SelectionEmitNulls = kernels.EmitNulls + SelectionDropNulls = kernels.DropNulls +) + +type ArithmeticOptions struct { + NoCheckOverflow bool `compute:"check_overflow"` +} + +func (ArithmeticOptions) TypeName() string { return "ArithmeticOptions" } + +type ( + CastOptions = kernels.CastOptions + FilterOptions = kernels.FilterOptions + TakeOptions = kernels.TakeOptions +) + +func DefaultFilterOptions() *FilterOptions { return &FilterOptions{} } + +func DefaultTakeOptions() *TakeOptions { return &TakeOptions{BoundsCheck: true} } + +func DefaultCastOptions(safe bool) *CastOptions { + if safe { + return &CastOptions{} + } + return &CastOptions{ + AllowIntOverflow: true, + AllowTimeTruncate: true, + AllowTimeOverflow: true, + AllowDecimalTruncate: true, + AllowFloatTruncate: true, + AllowInvalidUtf8: true, + } +} + +func UnsafeCastOptions(dt arrow.DataType) *CastOptions { + return NewCastOptions(dt, false) +} + +func SafeCastOptions(dt arrow.DataType) *CastOptions { + return NewCastOptions(dt, true) +} + +func NewCastOptions(dt arrow.DataType, safe bool) *CastOptions { + opts := DefaultCastOptions(safe) + if dt != nil { + opts.ToType = dt + } else { + opts.ToType = arrow.Null + } + return opts +} + +func Cast(ex Expression, dt arrow.DataType) Expression { + opts := &CastOptions{} + if dt == nil { + opts.ToType = arrow.Null + } else { + opts.ToType = dt + } + + return NewCall("cast", []Expression{ex}, opts) +} + +type SetLookupOptions struct { + ValueSet Datum `compute:"value_set"` + SkipNulls bool `compute:"skip_nulls"` +} + +func (SetLookupOptions) TypeName() string { return "SetLookupOptions" } + +func (s *SetLookupOptions) Release() { s.ValueSet.Release() } + +func (s *SetLookupOptions) Equals(other FunctionOptions) bool { + rhs, ok := other.(*SetLookupOptions) + if !ok { + return false + } + + return s.SkipNulls == rhs.SkipNulls && s.ValueSet.Equals(rhs.ValueSet) +} + +func (s *SetLookupOptions) FromStructScalar(sc *scalar.Struct) error { + if v, err := sc.Field("skip_nulls"); err == nil { + s.SkipNulls = v.(*scalar.Boolean).Value + } + + value, err := sc.Field("value_set") + if err != nil { + return err + } + + if v, ok := value.(scalar.ListScalar); ok { + s.ValueSet = NewDatum(v.GetList()) + return nil + } + + return errors.New("set lookup options valueset should be a list") +} + +var ( + funcOptionsMap map[string]reflect.Type + funcOptsTypes = []FunctionOptions{ + SetLookupOptions{}, ArithmeticOptions{}, CastOptions{}, + FilterOptions{}, NullOptions{}, StrptimeOptions{}, MakeStructOptions{}, + } +) + +func init() { + funcOptionsMap = make(map[string]reflect.Type) + for _, ft := range funcOptsTypes { + funcOptionsMap[ft.TypeName()] = reflect.TypeOf(ft) + } +} + +// NewLiteral constructs a new literal expression from any value. It is passed +// to NewDatum which will construct the appropriate Datum and/or scalar +// value for the type provided. +func NewLiteral(arg interface{}) Expression { + return &Literal{Literal: NewDatum(arg)} +} + +func NullLiteral(dt arrow.DataType) Expression { + return &Literal{Literal: NewDatum(scalar.MakeNullScalar(dt))} +} + +// NewRef constructs a parameter expression which refers to a specific field +func NewRef(ref FieldRef) Expression { + return &Parameter{ref: &ref, index: -1} +} + +// NewFieldRef is shorthand for NewRef(FieldRefName(field)) +func NewFieldRef(field string) Expression { + return NewRef(FieldRefName(field)) +} + +// NewCall constructs an expression that represents a specific function call with +// the given arguments and options. +func NewCall(name string, args []Expression, opts FunctionOptions) Expression { + return &Call{funcName: name, args: args, options: opts} +} + +// Project is shorthand for `make_struct` to produce a record batch output +// from a group of expressions. +func Project(values []Expression, names []string) Expression { + nulls := make([]bool, len(names)) + for i := range nulls { + nulls[i] = true + } + meta := make([]*arrow.Metadata, len(names)) + return NewCall("make_struct", values, + &MakeStructOptions{FieldNames: names, FieldNullability: nulls, FieldMetadata: meta}) +} + +// Equal is a convenience function for the equal function +func Equal(lhs, rhs Expression) Expression { + return NewCall("equal", []Expression{lhs, rhs}, nil) +} + +// NotEqual creates a call to not_equal +func NotEqual(lhs, rhs Expression) Expression { + return NewCall("not_equal", []Expression{lhs, rhs}, nil) +} + +// Less is shorthand for NewCall("less",....) +func Less(lhs, rhs Expression) Expression { + return NewCall("less", []Expression{lhs, rhs}, nil) +} + +// LessEqual is shorthand for NewCall("less_equal",....) +func LessEqual(lhs, rhs Expression) Expression { + return NewCall("less_equal", []Expression{lhs, rhs}, nil) +} + +// Greater is shorthand for NewCall("greater",....) +func Greater(lhs, rhs Expression) Expression { + return NewCall("greater", []Expression{lhs, rhs}, nil) +} + +// GreaterEqual is shorthand for NewCall("greater_equal",....) +func GreaterEqual(lhs, rhs Expression) Expression { + return NewCall("greater_equal", []Expression{lhs, rhs}, nil) +} + +// IsNull creates an expression that returns true if the passed in expression is +// null. Optionally treating NaN as null if desired. +func IsNull(lhs Expression, nanIsNull bool) Expression { + return NewCall("less", []Expression{lhs}, &NullOptions{nanIsNull}) +} + +// IsValid is the inverse of IsNull +func IsValid(lhs Expression) Expression { + return NewCall("is_valid", []Expression{lhs}, nil) +} + +type binop func(lhs, rhs Expression) Expression + +func foldLeft(op binop, args ...Expression) Expression { + switch len(args) { + case 0: + return nil + case 1: + return args[0] + } + + folded := args[0] + for _, a := range args[1:] { + folded = op(folded, a) + } + return folded +} + +func and(lhs, rhs Expression) Expression { + return NewCall("and_kleene", []Expression{lhs, rhs}, nil) +} + +// And constructs a tree of calls to and_kleene for boolean And logic taking +// an arbitrary number of values. +func And(lhs, rhs Expression, ops ...Expression) Expression { + folded := foldLeft(and, append([]Expression{lhs, rhs}, ops...)...) + if folded != nil { + return folded + } + return NewLiteral(true) +} + +func or(lhs, rhs Expression) Expression { + return NewCall("or_kleene", []Expression{lhs, rhs}, nil) +} + +// Or constructs a tree of calls to or_kleene for boolean Or logic taking +// an arbitrary number of values. +func Or(lhs, rhs Expression, ops ...Expression) Expression { + folded := foldLeft(or, append([]Expression{lhs, rhs}, ops...)...) + if folded != nil { + return folded + } + return NewLiteral(false) +} + +// Not creates a call to "invert" for the value specified. +func Not(expr Expression) Expression { + return NewCall("invert", []Expression{expr}, nil) +} + +func SerializeOptions(opts FunctionOptions, mem memory.Allocator) (*memory.Buffer, error) { + sc, err := scalar.ToScalar(opts, mem) + if err != nil { + return nil, err + } + if sc, ok := sc.(releasable); ok { + defer sc.Release() + } + + arr, err := scalar.MakeArrayFromScalar(sc, 1, mem) + if err != nil { + return nil, err + } + defer arr.Release() + + batch := array.NewRecord(arrow.NewSchema([]arrow.Field{{Type: arr.DataType(), Nullable: true}}, nil), []arrow.Array{arr}, 1) + defer batch.Release() + + buf := &bufferWriteSeeker{mem: mem} + wr, err := ipc.NewFileWriter(buf, ipc.WithSchema(batch.Schema()), ipc.WithAllocator(mem)) + if err != nil { + return nil, err + } + + wr.Write(batch) + wr.Close() + return buf.buf, nil +} + +// SerializeExpr serializes expressions by converting them to Metadata and +// storing this in the schema of a Record. Embedded arrays and scalars are +// stored in its columns. Finally the record is written as an IPC file +func SerializeExpr(expr Expression, mem memory.Allocator) (*memory.Buffer, error) { + var ( + cols []arrow.Array + metaKey []string + metaValue []string + visit func(Expression) error + ) + + addScalar := func(s scalar.Scalar) (string, error) { + ret := len(cols) + arr, err := scalar.MakeArrayFromScalar(s, 1, mem) + if err != nil { + return "", err + } + cols = append(cols, arr) + return strconv.Itoa(ret), nil + } + + visit = func(e Expression) error { + switch e := e.(type) { + case *Literal: + if !e.IsScalarExpr() { + return errors.New("not implemented: serialization of non-scalar literals") + } + metaKey = append(metaKey, "literal") + s, err := addScalar(e.Literal.(*ScalarDatum).Value) + if err != nil { + return err + } + metaValue = append(metaValue, s) + case *Parameter: + if e.ref.Name() == "" { + return errors.New("not implemented: serialization of non-name field_ref") + } + + metaKey = append(metaKey, "field_ref") + metaValue = append(metaValue, e.ref.Name()) + case *Call: + metaKey = append(metaKey, "call") + metaValue = append(metaValue, e.funcName) + + for _, arg := range e.args { + visit(arg) + } + + if e.options != nil { + st, err := scalar.ToScalar(e.options, mem) + if err != nil { + return err + } + metaKey = append(metaKey, "options") + s, err := addScalar(st) + if err != nil { + return err + } + metaValue = append(metaValue, s) + + for _, f := range st.(*scalar.Struct).Value { + switch s := f.(type) { + case releasable: + defer s.Release() + } + } + } + + metaKey = append(metaKey, "end") + metaValue = append(metaValue, e.funcName) + } + return nil + } + + if err := visit(expr); err != nil { + return nil, err + } + + fields := make([]arrow.Field, len(cols)) + for i, c := range cols { + fields[i].Type = c.DataType() + defer c.Release() + } + + metadata := arrow.NewMetadata(metaKey, metaValue) + rec := array.NewRecord(arrow.NewSchema(fields, &metadata), cols, 1) + defer rec.Release() + + buf := &bufferWriteSeeker{mem: mem} + wr, err := ipc.NewFileWriter(buf, ipc.WithSchema(rec.Schema()), ipc.WithAllocator(mem)) + if err != nil { + return nil, err + } + + wr.Write(rec) + wr.Close() + return buf.buf, nil +} + +func DeserializeExpr(mem memory.Allocator, buf *memory.Buffer) (Expression, error) { + rdr, err := ipc.NewFileReader(bytes.NewReader(buf.Bytes()), ipc.WithAllocator(mem)) + if err != nil { + return nil, err + } + defer rdr.Close() + + batch, err := rdr.Read() + if err != nil { + return nil, err + } + + if !batch.Schema().HasMetadata() { + return nil, errors.New("serialized Expression's batch repr had no metadata") + } + + if batch.NumRows() != 1 { + return nil, fmt.Errorf("serialized Expression's batch repr was not a single row - had %d", batch.NumRows()) + } + + var ( + getone func() (Expression, error) + index int = 0 + metadata = batch.Schema().Metadata() + ) + + getscalar := func(i string) (scalar.Scalar, error) { + colIndex, err := strconv.ParseInt(i, 10, 32) + if err != nil { + return nil, err + } + if colIndex >= batch.NumCols() { + return nil, errors.New("column index out of bounds") + } + return scalar.GetScalar(batch.Column(int(colIndex)), 0) + } + + getone = func() (Expression, error) { + if index >= metadata.Len() { + return nil, errors.New("unterminated serialized Expression") + } + + key, val := metadata.Keys()[index], metadata.Values()[index] + index++ + + switch key { + case "literal": + scalar, err := getscalar(val) + if err != nil { + return nil, err + } + if r, ok := scalar.(releasable); ok { + defer r.Release() + } + return NewLiteral(scalar), err + case "field_ref": + return NewFieldRef(val), nil + case "call": + args := make([]Expression, 0) + for metadata.Keys()[index] != "end" { + if metadata.Keys()[index] == "options" { + optsScalar, err := getscalar(metadata.Values()[index]) + if err != nil { + return nil, err + } + if r, ok := optsScalar.(releasable); ok { + defer r.Release() + } + var opts FunctionOptions + if optsScalar != nil { + typname, err := optsScalar.(*scalar.Struct).Field("_type_name") + if err != nil { + return nil, err + } + if typname.DataType().ID() != arrow.BINARY { + return nil, errors.New("options scalar typename must be binary") + } + + optionsVal := reflect.New(funcOptionsMap[string(typname.(*scalar.Binary).Data())]).Interface() + if err := scalar.FromScalar(optsScalar.(*scalar.Struct), optionsVal); err != nil { + return nil, err + } + opts = optionsVal.(FunctionOptions) + } + index += 2 + return NewCall(val, args, opts), nil + } + + arg, err := getone() + if err != nil { + return nil, err + } + args = append(args, arg) + } + index++ + return NewCall(val, args, nil), nil + default: + return nil, fmt.Errorf("unrecognized serialized Expression key %s", key) + } + } + + return getone() +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/fieldref.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/fieldref.go new file mode 100644 index 0000000..be70b37 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/fieldref.go @@ -0,0 +1,603 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 compute + +import ( + "errors" + "fmt" + "hash/maphash" + "math/bits" + "reflect" + "strconv" + "strings" + "unicode" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" +) + +var ( + ErrEmpty = errors.New("cannot traverse empty field path") + ErrNoChildren = errors.New("trying to get child of type with no children") + ErrIndexRange = errors.New("index out of range") + ErrMultipleMatches = errors.New("multiple matches") + ErrNoMatch = errors.New("no match") + ErrInvalid = errors.New("field ref invalid") +) + +func getFields(typ arrow.DataType) []arrow.Field { + if nested, ok := typ.(arrow.NestedType); ok { + return nested.Fields() + } + return nil +} + +type listvals interface { + ListValues() arrow.Array +} + +func getChildren(arr arrow.Array) (ret []arrow.Array) { + switch arr := arr.(type) { + case *array.Struct: + ret = make([]arrow.Array, arr.NumField()) + for i := 0; i < arr.NumField(); i++ { + ret[i] = arr.Field(i) + } + case listvals: + ret = []arrow.Array{arr.ListValues()} + } + return +} + +// FieldPath represents a path to a nested field using indices of child fields. +// For example, given the indices {5, 9, 3} the field could be retrieved with: +// schema.Field(5).Type().(*arrow.StructType).Field(9).Type().(*arrow.StructType).Field(3) +// +// Attempting to retrieve a child field using a FieldPath which is not valid for a given +// schema will get an error such as an out of range index, or an empty path. +// +// FieldPaths provide for drilling down to potentially nested children for convenience +// of accepting a slice of fields, a schema or a datatype (which should contain child fields). +// +// A fieldpath can also be used to retrieve a child arrow.Array or column from a record batch. +type FieldPath []int + +func (f FieldPath) String() string { + if len(f) == 0 { + return "FieldPath(empty)" + } + + var b strings.Builder + b.WriteString("FieldPath(") + for _, i := range f { + fmt.Fprint(&b, i) + b.WriteByte(' ') + } + ret := b.String() + return ret[:len(ret)-1] + ")" +} + +// Get retrieves the corresponding nested child field by drilling through the schema's +// fields as per the field path. +func (f FieldPath) Get(s *arrow.Schema) (*arrow.Field, error) { + return f.GetFieldFromSlice(s.Fields()) +} + +// GetFieldFromSlice treats the slice as the top layer of fields, so the first value +// in the field path will index into the slice, and then drill down from there. +func (f FieldPath) GetFieldFromSlice(fields []arrow.Field) (*arrow.Field, error) { + if len(f) == 0 { + return nil, ErrEmpty + } + + var ( + depth = 0 + out *arrow.Field + ) + for _, idx := range f { + if len(fields) == 0 { + return nil, fmt.Errorf("%w: %s", ErrNoChildren, out.Type) + } + + if idx < 0 || idx >= len(fields) { + return nil, fmt.Errorf("%w: indices=%s", ErrIndexRange, f[:depth+1]) + } + + out = &fields[idx] + fields = getFields(out.Type) + depth++ + } + + return out, nil +} + +func (f FieldPath) getArray(arrs []arrow.Array) (arrow.Array, error) { + if len(f) == 0 { + return nil, ErrEmpty + } + + var ( + depth = 0 + out arrow.Array + ) + for _, idx := range f { + if len(arrs) == 0 { + return nil, fmt.Errorf("%w: %s", ErrNoChildren, out.DataType()) + } + + if idx < 0 || idx >= len(arrs) { + return nil, fmt.Errorf("%w. indices=%s", ErrIndexRange, f[:depth+1]) + } + + out = arrs[idx] + arrs = getChildren(out) + depth++ + } + return out, nil +} + +// GetFieldFromType returns the nested field from a datatype by drilling into it's +// child fields. +func (f FieldPath) GetFieldFromType(typ arrow.DataType) (*arrow.Field, error) { + return f.GetFieldFromSlice(getFields(typ)) +} + +// GetField is equivalent to GetFieldFromType(field.Type) +func (f FieldPath) GetField(field arrow.Field) (*arrow.Field, error) { + return f.GetFieldFromType(field.Type) +} + +// GetColumn will return the correct child array by traversing the fieldpath +// going to the nested arrays of the columns in the record batch. +func (f FieldPath) GetColumn(batch arrow.Record) (arrow.Array, error) { + return f.getArray(batch.Columns()) +} + +func (f FieldPath) hash(h *maphash.Hash) { + raw := (*reflect.SliceHeader)(unsafe.Pointer(&f)).Data + + var b []byte + s := (*reflect.SliceHeader)(unsafe.Pointer(&b)) + s.Data = raw + if bits.UintSize == 32 { + s.Len = arrow.Int32Traits.BytesRequired(len(f)) + } else { + s.Len = arrow.Int64Traits.BytesRequired(len(f)) + } + s.Cap = s.Len + h.Write(b) +} + +func (f FieldPath) findAll(fields []arrow.Field) []FieldPath { + _, err := f.GetFieldFromSlice(fields) + if err == nil { + return []FieldPath{f} + } + return nil +} + +// a nameref represents a FieldRef by name of the field +type nameRef string + +func (n nameRef) String() string { + return "Name(" + string(n) + ")" +} + +func (ref nameRef) findAll(fields []arrow.Field) []FieldPath { + out := []FieldPath{} + for i, f := range fields { + if f.Name == string(ref) { + out = append(out, FieldPath{i}) + } + } + return out +} + +func (ref nameRef) hash(h *maphash.Hash) { h.WriteString(string(ref)) } + +type matches struct { + prefixes []FieldPath + refs []*arrow.Field +} + +func (m *matches) add(prefix, suffix FieldPath, fields []arrow.Field) { + f, err := suffix.GetFieldFromSlice(fields) + if err != nil { + panic(err) + } + + m.refs = append(m.refs, f) + m.prefixes = append(m.prefixes, append(prefix, suffix...)) +} + +// refList represents a list of references to use to determine which nested +// field is being referenced. allowing combinations of field indices and names +type refList []FieldRef + +func (r refList) String() string { + var b strings.Builder + b.WriteString("Nested(") + for _, f := range r { + fmt.Fprint(&b, f) + b.WriteByte(' ') + } + ret := b.String() + return ret[:len(ret)-1] + ")" +} + +func (ref refList) hash(h *maphash.Hash) { + for _, r := range ref { + r.hash(h) + } +} + +func (ref refList) findAll(fields []arrow.Field) []FieldPath { + if len(ref) == 0 { + return nil + } + + m := matches{} + for _, list := range ref[0].FindAll(fields) { + m.add(FieldPath{}, list, fields) + } + + for _, r := range ref[1:] { + next := matches{} + for i, f := range m.refs { + for _, match := range r.FindAllField(*f) { + next.add(m.prefixes[i], match, getFields(f.Type)) + } + } + m = next + } + return m.prefixes +} + +type refImpl interface { + fmt.Stringer + findAll(fields []arrow.Field) []FieldPath + hash(h *maphash.Hash) +} + +// FieldRef is a descriptor of a (potentially nested) field within a schema. +// +// Unlike FieldPath (which is exclusively indices of child fields), FieldRef +// may reference a field by name. It can be constructed from either +// a field index, field name, or field path. +// +// Nested fields can be referenced as well, given the schema: +// +// arrow.NewSchema([]arrow.Field{ +// {Name: "a", Type: arrow.StructOf(arrow.Field{Name: "n", Type: arrow.Null})}, +// {Name: "b", Type: arrow.PrimitiveTypes.Int32}, +// }) +// +// the following all indicate the nested field named "n": +// +// FieldRefPath(FieldPath{0, 0}) +// FieldRefList("a", 0) +// FieldRefList("a", "n") +// FieldRefList(0, "n") +// NewFieldRefFromDotPath(".a[0]") +// +// FieldPaths matching a FieldRef are retrieved with the FindAll* functions +// Multiple matches are possible because field names may be duplicated within +// a schema. For example: +// +// aIsAmbiguous := arrow.NewSchema([]arrow.Field{ +// {Name: "a", Type: arrow.PrimitiveTypes.Int32}, +// {Name: "a", Type: arrow.PrimitiveTypes.Float32}, +// }) +// matches := FieldRefName("a").FindAll(aIsAmbiguous) +// assert.Len(matches, 2) +// assert.True(matches[0].Get(aIsAmbiguous).Equals(aIsAmbiguous.Field(0)) +// assert.True(matches[1].Get(aIsAmbiguous).Equals(aIsAmbiguous.Field(1)) +type FieldRef struct { + impl refImpl +} + +// FieldRefPath constructs a FieldRef from a given FieldPath +func FieldRefPath(p FieldPath) FieldRef { + return FieldRef{impl: p} +} + +// FieldRefIndex is a convenience function to construct a FieldPath reference +// of a single index +func FieldRefIndex(i int) FieldRef { + return FieldRef{impl: FieldPath{i}} +} + +// FieldRefName constructs a FieldRef by name +func FieldRefName(n string) FieldRef { + return FieldRef{impl: nameRef(n)} +} + +// FieldRefList takes an arbitrary number of arguments which can be either +// strings or ints. This will panic if anything other than a string or int +// is passed in. +func FieldRefList(elems ...interface{}) FieldRef { + list := make(refList, len(elems)) + for i, e := range elems { + switch e := e.(type) { + case string: + list[i] = FieldRefName(e) + case int: + list[i] = FieldRefIndex(e) + } + } + return FieldRef{impl: list} +} + +// NewFieldRefFromDotPath parses a dot path into a field ref. +// +// dot_path = '.' name +// | '[' digit+ ']' +// | dot_path+ +// +// Examples +// +// ".alpha" => FieldRefName("alpha") +// "[2]" => FieldRefIndex(2) +// ".beta[3]" => FieldRefList("beta", 3) +// "[5].gamma.delta[7]" => FieldRefList(5, "gamma", "delta", 7) +// ".hello world" => FieldRefName("hello world") +// `.\[y\]\\tho\.\` => FieldRef(`[y]\tho.\`) +// +// Note: when parsing a name, a '\' preceding any other character will be +// dropped from the resulting name. therefore if a name must contain the characters +// '.', '\', '[' or ']' then they must be escaped with a preceding '\'. +func NewFieldRefFromDotPath(dotpath string) (out FieldRef, err error) { + if len(dotpath) == 0 { + return out, fmt.Errorf("%w dotpath was empty", ErrInvalid) + } + + parseName := func() string { + var name string + for { + idx := strings.IndexAny(dotpath, `\[.`) + if idx == -1 { + name += dotpath + dotpath = "" + break + } + + if dotpath[idx] != '\\' { + // subscript for a new field ref + name += dotpath[:idx] + dotpath = dotpath[idx:] + break + } + + if len(dotpath) == idx+1 { + // dotpath ends with a backslash; consume it all + name += dotpath + dotpath = "" + break + } + + // append all characters before backslash, then the character which follows it + name += dotpath[:idx] + string(dotpath[idx+1]) + dotpath = dotpath[idx+2:] + } + return name + } + + children := make([]FieldRef, 0) + + for len(dotpath) > 0 { + subscript := dotpath[0] + dotpath = dotpath[1:] + switch subscript { + case '.': + // next element is a name + children = append(children, FieldRef{nameRef(parseName())}) + case '[': + subend := strings.IndexFunc(dotpath, func(r rune) bool { return !unicode.IsDigit(r) }) + if subend == -1 || dotpath[subend] != ']' { + return out, fmt.Errorf("%w: dot path '%s' contained an unterminated index", ErrInvalid, dotpath) + } + idx, _ := strconv.Atoi(dotpath[:subend]) + children = append(children, FieldRef{FieldPath{idx}}) + dotpath = dotpath[subend+1:] + default: + return out, fmt.Errorf("%w: dot path must begin with '[' or '.' got '%s'", ErrInvalid, dotpath) + } + } + + out.flatten(children) + return +} + +func (f FieldRef) hash(h *maphash.Hash) { f.impl.hash(h) } + +// Hash produces a hash of this field reference and takes in a seed so that +// it can maintain consistency across multiple places / processes /etc. +func (f FieldRef) Hash(seed maphash.Seed) uint64 { + h := maphash.Hash{} + h.SetSeed(seed) + f.hash(&h) + return h.Sum64() +} + +// IsName returns true if this fieldref is a name reference +func (f *FieldRef) IsName() bool { + _, ok := f.impl.(nameRef) + return ok +} + +// IsFieldPath returns true if this FieldRef uses a fieldpath +func (f *FieldRef) IsFieldPath() bool { + _, ok := f.impl.(FieldPath) + return ok +} + +// IsNested returns true if this FieldRef expects to represent +// a nested field. +func (f *FieldRef) IsNested() bool { + switch impl := f.impl.(type) { + case nameRef: + return false + case FieldPath: + return len(impl) > 1 + default: + return true + } +} + +// Name returns the name of the field this references if it is +// a Name reference, otherwise the empty string +func (f *FieldRef) Name() string { + n, _ := f.impl.(nameRef) + return string(n) +} + +// FieldPath returns the fieldpath that this FieldRef uses, otherwise +// an empty FieldPath if it's not a FieldPath reference +func (f *FieldRef) FieldPath() FieldPath { + p, _ := f.impl.(FieldPath) + return p +} + +func (f *FieldRef) Equals(other FieldRef) bool { + return reflect.DeepEqual(f.impl, other.impl) +} + +func (f *FieldRef) flatten(children []FieldRef) { + out := make([]FieldRef, 0, len(children)) + + var populate func(refImpl) + populate = func(refs refImpl) { + switch r := refs.(type) { + case nameRef: + out = append(out, FieldRef{r}) + case FieldPath: + out = append(out, FieldRef{r}) + case refList: + for _, c := range r { + populate(c.impl) + } + } + } + + populate(refList(children)) + + if len(out) == 1 { + f.impl = out[0].impl + } else { + f.impl = refList(out) + } +} + +// FindAll returns all the fieldpaths which this FieldRef matches in the given +// slice of fields. +func (f FieldRef) FindAll(fields []arrow.Field) []FieldPath { + return f.impl.findAll(fields) +} + +// FindAllField returns all the fieldpaths that this FieldRef matches against +// the type of the given field. +func (f FieldRef) FindAllField(field arrow.Field) []FieldPath { + return f.impl.findAll(getFields(field.Type)) +} + +// FindOneOrNone is a convenience helper that will either return 1 fieldpath, +// or an empty fieldpath, and will return an error if there are multiple matches. +func (f FieldRef) FindOneOrNone(schema *arrow.Schema) (FieldPath, error) { + matches := f.FindAll(schema.Fields()) + if len(matches) > 1 { + return nil, fmt.Errorf("%w for %s in %s", ErrMultipleMatches, f, schema) + } + if len(matches) == 0 { + return nil, nil + } + return matches[0], nil +} + +// FindOneOrNoneRecord is like FindOneOrNone but for the schema of a record, +// returning an error only if there are multiple matches. +func (f FieldRef) FindOneOrNoneRecord(root arrow.Record) (FieldPath, error) { + return f.FindOneOrNone(root.Schema()) +} + +// FindOne returns an error if the field isn't matched or if there are multiple matches +// otherwise it returns the path to the single valid match. +func (f FieldRef) FindOne(schema *arrow.Schema) (FieldPath, error) { + matches := f.FindAll(schema.Fields()) + if len(matches) == 0 { + return nil, fmt.Errorf("%w for %s in %s", ErrNoMatch, f, schema) + } + if len(matches) > 1 { + return nil, fmt.Errorf("%w for %s in %s", ErrMultipleMatches, f, schema) + } + return matches[0], nil +} + +// GetAllColumns gets all the matching column arrays from the given record that +// this FieldRef references. +func (f FieldRef) GetAllColumns(root arrow.Record) ([]arrow.Array, error) { + out := make([]arrow.Array, 0) + for _, m := range f.FindAll(root.Schema().Fields()) { + n, err := m.GetColumn(root) + if err != nil { + return nil, err + } + out = append(out, n) + } + return out, nil +} + +// GetOneField will return a pointer to a field or an error if it is not found +// or if there are multiple matches. +func (f FieldRef) GetOneField(schema *arrow.Schema) (*arrow.Field, error) { + match, err := f.FindOne(schema) + if err != nil { + return nil, err + } + + return match.GetFieldFromSlice(schema.Fields()) +} + +// GetOneOrNone will return a field or a nil if the field is found or not, and +// only errors if there are multiple matches. +func (f FieldRef) GetOneOrNone(schema *arrow.Schema) (*arrow.Field, error) { + match, err := f.FindOneOrNone(schema) + if err != nil { + return nil, err + } + if len(match) == 0 { + return nil, nil + } + return match.GetFieldFromSlice(schema.Fields()) +} + +// GetOneColumnOrNone returns either a nil or the referenced array if it can be +// found, erroring only if there is an ambiguous multiple matches. +func (f FieldRef) GetOneColumnOrNone(root arrow.Record) (arrow.Array, error) { + match, err := f.FindOneOrNoneRecord(root) + if err != nil { + return nil, err + } + if len(match) == 0 { + return nil, nil + } + return match.GetColumn(root) +} + +func (f FieldRef) String() string { + return "FieldRef." + f.impl.String() +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/funckind_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/funckind_string.go new file mode 100644 index 0000000..204e844 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/funckind_string.go @@ -0,0 +1,29 @@ +// Code generated by "stringer -type=FuncKind -linecomment"; DO NOT EDIT. + +//go:build go1.18 + +package compute + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[FuncScalar-0] + _ = x[FuncVector-1] + _ = x[FuncScalarAgg-2] + _ = x[FuncHashAgg-3] + _ = x[FuncMeta-4] +} + +const _FuncKind_name = "ScalarVectorScalarAggregateHashAggregateMeta" + +var _FuncKind_index = [...]uint8{0, 6, 12, 27, 40, 44} + +func (i FuncKind) String() string { + if i < 0 || i >= FuncKind(len(_FuncKind_index)-1) { + return "FuncKind(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _FuncKind_name[_FuncKind_index[i]:_FuncKind_index[i+1]] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/functions.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/functions.go new file mode 100644 index 0000000..d13bdaa --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/functions.go @@ -0,0 +1,430 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + "strings" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" +) + +type Function interface { + Name() string + Kind() FuncKind + Arity() Arity + Doc() FunctionDoc + NumKernels() int + Execute(context.Context, FunctionOptions, ...Datum) (Datum, error) + DispatchExact(...arrow.DataType) (exec.Kernel, error) + DispatchBest(...arrow.DataType) (exec.Kernel, error) + DefaultOptions() FunctionOptions + Validate() error +} + +// Arity defines the number of required arguments for a function. +// +// Naming conventions are taken from https://en.wikipedia.org/wiki/Arity +type Arity struct { + NArgs int + IsVarArgs bool +} + +// Convenience functions to generating Arities + +func Nullary() Arity { return Arity{0, false} } +func Unary() Arity { return Arity{1, false} } +func Binary() Arity { return Arity{2, false} } +func Ternary() Arity { return Arity{3, false} } +func VarArgs(minArgs int) Arity { return Arity{minArgs, true} } + +type FunctionDoc struct { + // A one-line summary of the function, using a verb. + // + // For example, "Add two numeric arrays or scalars" + Summary string + // A detailed description of the function, meant to follow the summary. + Description string + // Symbolic names (identifiers) for the function arguments. + // + // Can be used to generate nicer function signatures. + ArgNames []string + // Name of the options struct type, if any + OptionsType string + // Whether or not options are required for function execution. + // + // If false, then either there are no options for this function, + // or there is a usable default options value. + OptionsRequired bool +} + +// EmptyFuncDoc is a reusable empty function doc definition for convenience. +var EmptyFuncDoc FunctionDoc + +// FuncKind is an enum representing the type of a function +type FuncKind int8 + +const ( + // A function that performs scalar data operations on whole arrays + // of data. Can generally process Array or Scalar values. The size + // of the output will be the same as the size (or broadcasted size, + // in the case of mixing Array and Scalar inputs) of the input. + FuncScalar FuncKind = iota // Scalar + // A function with array input and output whose behavior depends on + // the values of the entire arrays passed, rather than the value of + // each scalar value. + FuncVector // Vector + // A function that computes a scalar summary statistic from array input. + FuncScalarAgg // ScalarAggregate + // A function that computes grouped summary statistics from array + // input and an array of group identifiers. + FuncHashAgg // HashAggregate + // A function that dispatches to other functions and does not contain + // its own kernels. + FuncMeta // Meta +) + +func validateFunctionSummary(summary string) error { + if strings.Contains(summary, "\n") { + return fmt.Errorf("%w: summary contains a newline", arrow.ErrInvalid) + } + if summary[len(summary)-1] == '.' { + return fmt.Errorf("%w: summary ends with a point", arrow.ErrInvalid) + } + return nil +} + +func validateFunctionDescription(desc string) error { + if len(desc) != 0 && desc[len(desc)-1] == '\n' { + return fmt.Errorf("%w: description ends with a newline", arrow.ErrInvalid) + } + + const maxLineSize = 78 + for _, ln := range strings.Split(desc, "\n") { + if len(ln) > maxLineSize { + return fmt.Errorf("%w: description line length exceeds %d characters", arrow.ErrInvalid, maxLineSize) + } + } + return nil +} + +// baseFunction is the base class for compute functions. Function +// implementations should embed this baseFunction and will contain +// a collection of "kernels" which are implementations of the function +// for specific argument types. Selecting a viable kernel for +// executing the function is referred to as "dispatching". +type baseFunction struct { + name string + kind FuncKind + arity Arity + doc FunctionDoc + defaultOpts FunctionOptions +} + +func (b *baseFunction) Name() string { return b.name } +func (b *baseFunction) Kind() FuncKind { return b.kind } +func (b *baseFunction) Arity() Arity { return b.arity } +func (b *baseFunction) Doc() FunctionDoc { return b.doc } +func (b *baseFunction) DefaultOptions() FunctionOptions { return b.defaultOpts } +func (b *baseFunction) Validate() error { + if b.doc.Summary == "" { + return nil + } + + argCount := len(b.doc.ArgNames) + if argCount != b.arity.NArgs && !(b.arity.IsVarArgs && argCount == b.arity.NArgs+1) { + return fmt.Errorf("in function '%s': number of argument names for function doc != function arity", b.name) + } + + if err := validateFunctionSummary(b.doc.Summary); err != nil { + return err + } + return validateFunctionDescription(b.doc.Description) +} + +func checkOptions(fn Function, opts FunctionOptions) error { + if opts == nil && fn.Doc().OptionsRequired { + return fmt.Errorf("%w: function '%s' cannot be called without options", arrow.ErrInvalid, fn.Name()) + } + return nil +} + +func (b *baseFunction) checkArity(nargs int) error { + switch { + case b.arity.IsVarArgs && nargs < b.arity.NArgs: + return fmt.Errorf("%w: varargs function '%s' needs at least %d arguments, but only %d passed", + arrow.ErrInvalid, b.name, b.arity.NArgs, nargs) + case !b.arity.IsVarArgs && nargs != b.arity.NArgs: + return fmt.Errorf("%w: function '%s' accepts %d arguments but %d passed", + arrow.ErrInvalid, b.name, b.arity.NArgs, nargs) + } + return nil +} + +// kernelType is a type contstraint interface that is used for funcImpl +// generic definitions. It will be extended as other kernel types +// are defined. +// +// Currently only ScalarKernels are allowed to be used. +type kernelType interface { + exec.ScalarKernel | exec.VectorKernel + + // specifying the Kernel interface here allows us to utilize + // the methods of the Kernel interface on the generic + // constrained type + exec.Kernel +} + +// funcImpl is the basic implementation for any functions that use kernels +// i.e. all except for Meta functions. +type funcImpl[KT kernelType] struct { + baseFunction + + kernels []KT +} + +func (fi *funcImpl[KT]) DispatchExact(vals ...arrow.DataType) (*KT, error) { + if err := fi.checkArity(len(vals)); err != nil { + return nil, err + } + + for i := range fi.kernels { + if fi.kernels[i].GetSig().MatchesInputs(vals) { + return &fi.kernels[i], nil + } + } + + return nil, fmt.Errorf("%w: function '%s' has no kernel matching input types %s", + arrow.ErrNotImplemented, fi.name, arrow.TypesToString(vals)) +} + +func (fi *funcImpl[KT]) NumKernels() int { return len(fi.kernels) } +func (fi *funcImpl[KT]) Kernels() []*KT { + res := make([]*KT, len(fi.kernels)) + for i := range fi.kernels { + res[i] = &fi.kernels[i] + } + return res +} + +// A ScalarFunction is a function that executes element-wise operations +// on arrays or scalars, and therefore whose results generally do not +// depent on the order of the values in the arguments. Accepts and returns +// arrays that are all of the same size. These functions roughly correspond +// to the functions used in most SQL expressions. +type ScalarFunction struct { + funcImpl[exec.ScalarKernel] +} + +// NewScalarFunction constructs a new ScalarFunction object with the passed in +// name, arity and function doc. +func NewScalarFunction(name string, arity Arity, doc FunctionDoc) *ScalarFunction { + return &ScalarFunction{ + funcImpl: funcImpl[exec.ScalarKernel]{ + baseFunction: baseFunction{ + name: name, + arity: arity, + doc: doc, + kind: FuncScalar, + }, + }, + } +} + +func (s *ScalarFunction) SetDefaultOptions(opts FunctionOptions) { + s.defaultOpts = opts +} + +func (s *ScalarFunction) DispatchExact(vals ...arrow.DataType) (exec.Kernel, error) { + return s.funcImpl.DispatchExact(vals...) +} + +func (s *ScalarFunction) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + return s.DispatchExact(vals...) +} + +// AddNewKernel constructs a new kernel with the provided signature +// and execution/init functions and then adds it to the function's list of +// kernels. This assumes default null handling (intersection of validity bitmaps) +func (s *ScalarFunction) AddNewKernel(inTypes []exec.InputType, outType exec.OutputType, execFn exec.ArrayKernelExec, init exec.KernelInitFn) error { + if err := s.checkArity(len(inTypes)); err != nil { + return err + } + + if s.arity.IsVarArgs && len(inTypes) != 1 { + return fmt.Errorf("%w: varargs signatures must have exactly one input type", arrow.ErrInvalid) + } + + sig := &exec.KernelSignature{ + InputTypes: inTypes, + OutType: outType, + IsVarArgs: s.arity.IsVarArgs, + } + + s.kernels = append(s.kernels, exec.NewScalarKernelWithSig(sig, execFn, init)) + return nil +} + +// AddKernel adds the provided kernel to the list of kernels +// this function has. A copy of the kernel is added to the slice of kernels, +// which means that a given kernel object can be created, added and then +// reused to add other kernels. +func (s *ScalarFunction) AddKernel(k exec.ScalarKernel) error { + if err := s.checkArity(len(k.Signature.InputTypes)); err != nil { + return err + } + + if s.arity.IsVarArgs && !k.Signature.IsVarArgs { + return fmt.Errorf("%w: function accepts varargs but kernel signature does not", arrow.ErrInvalid) + } + + s.kernels = append(s.kernels, k) + return nil +} + +// Execute uses the passed in context, function options and arguments to eagerly +// execute the function using kernel dispatch, batch iteration and memory +// allocation details as defined by the kernel. +// +// If opts is nil, then the DefaultOptions() will be used. +func (s *ScalarFunction) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, s, opts, -1, args...) +} + +type VectorFunction struct { + funcImpl[exec.VectorKernel] +} + +func NewVectorFunction(name string, arity Arity, doc FunctionDoc) *VectorFunction { + return &VectorFunction{ + funcImpl: funcImpl[exec.VectorKernel]{ + baseFunction: baseFunction{ + name: name, + arity: arity, + doc: doc, + kind: FuncVector, + }, + }, + } +} + +func (f *VectorFunction) SetDefaultOptions(opts FunctionOptions) { + f.defaultOpts = opts +} + +func (f *VectorFunction) DispatchExact(vals ...arrow.DataType) (exec.Kernel, error) { + return f.funcImpl.DispatchExact(vals...) +} + +func (f *VectorFunction) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + return f.DispatchExact(vals...) +} + +func (f *VectorFunction) AddNewKernel(inTypes []exec.InputType, outType exec.OutputType, execFn exec.ArrayKernelExec, init exec.KernelInitFn) error { + if err := f.checkArity(len(inTypes)); err != nil { + return err + } + + if f.arity.IsVarArgs && len(inTypes) != 1 { + return fmt.Errorf("%w: varags signatures must have exactly one input type", arrow.ErrInvalid) + } + + sig := &exec.KernelSignature{ + InputTypes: inTypes, + OutType: outType, + IsVarArgs: f.arity.IsVarArgs, + } + f.kernels = append(f.kernels, exec.NewVectorKernelWithSig(sig, execFn, init)) + return nil +} + +func (f *VectorFunction) AddKernel(kernel exec.VectorKernel) error { + if err := f.checkArity(len(kernel.Signature.InputTypes)); err != nil { + return err + } + + if f.arity.IsVarArgs && !kernel.Signature.IsVarArgs { + return fmt.Errorf("%w: function accepts varargs but kernel signature does not", arrow.ErrInvalid) + } + f.kernels = append(f.kernels, kernel) + return nil +} + +func (f *VectorFunction) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, f, opts, -1, args...) +} + +// MetaFunctionImpl is the signature needed for implementing a MetaFunction +// which is a function that dispatches to another function instead. +type MetaFunctionImpl func(context.Context, FunctionOptions, ...Datum) (Datum, error) + +// MetaFunction is a function which dispatches to other functions, the impl +// must not be nil. +// +// For Array, ChunkedArray and Scalar datums, this may rely on the execution +// of concrete function types, but this must handle other Datum kinds on its +// own. +type MetaFunction struct { + baseFunction + impl MetaFunctionImpl +} + +// NewMetaFunction constructs a new MetaFunction which will call the provided +// impl for dispatching with the expected arity. +// +// Will panic if impl is nil. +func NewMetaFunction(name string, arity Arity, doc FunctionDoc, impl MetaFunctionImpl) *MetaFunction { + if impl == nil { + panic("arrow/compute: cannot construct MetaFunction with nil impl") + } + return &MetaFunction{ + baseFunction: baseFunction{ + name: name, + arity: arity, + doc: doc, + }, + impl: impl, + } +} + +func (MetaFunction) NumKernels() int { return 0 } +func (m *MetaFunction) DispatchExact(...arrow.DataType) (exec.Kernel, error) { + return nil, fmt.Errorf("%w: dispatch for metafunction", arrow.ErrNotImplemented) +} + +func (m *MetaFunction) DispatchBest(...arrow.DataType) (exec.Kernel, error) { + return nil, fmt.Errorf("%w: dispatch for metafunction", arrow.ErrNotImplemented) +} + +func (m *MetaFunction) Execute(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + if err := m.checkArity(len(args)); err != nil { + return nil, err + } + if err := checkOptions(m, opts); err != nil { + return nil, err + } + + if opts == nil { + opts = m.defaultOpts + } + + return m.impl(ctx, opts, args...) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/hash_util.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/hash_util.go new file mode 100644 index 0000000..0c8f7df --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/hash_util.go @@ -0,0 +1,24 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 exec + +// ADAPTED FROM HASH UTILITIES FOR BOOST + +func HashCombine(seed, value uint64) uint64 { + seed ^= value + 0x9e3779b9 + (seed << 6) + (seed >> 2) + return seed +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/kernel.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/kernel.go new file mode 100644 index 0000000..92d4091 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/kernel.go @@ -0,0 +1,695 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package exec + +import ( + "context" + "fmt" + "hash/maphash" + "strings" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "golang.org/x/exp/slices" +) + +var hashSeed = maphash.MakeSeed() + +type ctxAllocKey struct{} + +// WithAllocator returns a new context with the provided allocator +// embedded into the context. +func WithAllocator(ctx context.Context, mem memory.Allocator) context.Context { + return context.WithValue(ctx, ctxAllocKey{}, mem) +} + +// GetAllocator retrieves the allocator from the context, or returns +// memory.DefaultAllocator if there was no allocator in the provided +// context. +func GetAllocator(ctx context.Context) memory.Allocator { + mem, ok := ctx.Value(ctxAllocKey{}).(memory.Allocator) + if !ok { + return memory.DefaultAllocator + } + return mem +} + +// Kernel defines the minimum interface required for the basic execution +// kernel. It will grow as the implementation requires. +type Kernel interface { + GetInitFn() KernelInitFn + GetSig() *KernelSignature +} + +// NonAggKernel builds on the base Kernel interface for +// non aggregate execution kernels. Specifically this will +// represent Scalar and Vector kernels. +type NonAggKernel interface { + Kernel + Exec(*KernelCtx, *ExecSpan, *ExecResult) error + GetNullHandling() NullHandling + GetMemAlloc() MemAlloc + CanFillSlices() bool +} + +// KernelCtx is a small struct holding the context for a kernel execution +// consisting of a pointer to the kernel, initialized state (if needed) +// and the context for this execution. +type KernelCtx struct { + Ctx context.Context + Kernel Kernel + State KernelState +} + +func (k *KernelCtx) Allocate(bufsize int) *memory.Buffer { + buf := memory.NewResizableBuffer(GetAllocator(k.Ctx)) + buf.Resize(bufsize) + return buf +} + +func (k *KernelCtx) AllocateBitmap(nbits int64) *memory.Buffer { + nbytes := bitutil.BytesForBits(nbits) + return k.Allocate(int(nbytes)) +} + +// TypeMatcher define an interface for matching Input or Output types +// for execution kernels. There are multiple implementations of this +// interface provided by this package. +type TypeMatcher interface { + fmt.Stringer + Matches(typ arrow.DataType) bool + Equals(other TypeMatcher) bool +} + +type sameTypeIDMatcher struct { + accepted arrow.Type +} + +func (s sameTypeIDMatcher) Matches(typ arrow.DataType) bool { return s.accepted == typ.ID() } +func (s sameTypeIDMatcher) Equals(other TypeMatcher) bool { + if s == other { + return true + } + + o, ok := other.(*sameTypeIDMatcher) + if !ok { + return false + } + + return s.accepted == o.accepted +} + +func (s sameTypeIDMatcher) String() string { + return "Type::" + s.accepted.String() +} + +// SameTypeID returns a type matcher which will match +// any DataType that uses the same arrow.Type ID as the one +// passed in here. +func SameTypeID(id arrow.Type) TypeMatcher { return &sameTypeIDMatcher{id} } + +type timeUnitMatcher struct { + id arrow.Type + unit arrow.TimeUnit +} + +func (s timeUnitMatcher) Matches(typ arrow.DataType) bool { + if typ.ID() != s.id { + return false + } + return s.unit == typ.(arrow.TemporalWithUnit).TimeUnit() +} + +func (s timeUnitMatcher) String() string { + return strings.ToLower(s.id.String()) + "(" + s.unit.String() + ")" +} + +func (s *timeUnitMatcher) Equals(other TypeMatcher) bool { + if s == other { + return true + } + + o, ok := other.(*timeUnitMatcher) + if !ok { + return false + } + return o.id == s.id && o.unit == s.unit +} + +// TimestampTypeUnit returns a TypeMatcher that will match only +// a Timestamp datatype with the specified TimeUnit. +func TimestampTypeUnit(unit arrow.TimeUnit) TypeMatcher { + return &timeUnitMatcher{arrow.TIMESTAMP, unit} +} + +// Time32TypeUnit returns a TypeMatcher that will match only +// a Time32 datatype with the specified TimeUnit. +func Time32TypeUnit(unit arrow.TimeUnit) TypeMatcher { + return &timeUnitMatcher{arrow.TIME32, unit} +} + +// Time64TypeUnit returns a TypeMatcher that will match only +// a Time64 datatype with the specified TimeUnit. +func Time64TypeUnit(unit arrow.TimeUnit) TypeMatcher { + return &timeUnitMatcher{arrow.TIME64, unit} +} + +// DurationTypeUnit returns a TypeMatcher that will match only +// a Duration datatype with the specified TimeUnit. +func DurationTypeUnit(unit arrow.TimeUnit) TypeMatcher { + return &timeUnitMatcher{arrow.DURATION, unit} +} + +type integerMatcher struct{} + +func (integerMatcher) String() string { return "integer" } +func (integerMatcher) Matches(typ arrow.DataType) bool { return arrow.IsInteger(typ.ID()) } +func (integerMatcher) Equals(other TypeMatcher) bool { + _, ok := other.(integerMatcher) + return ok +} + +type binaryLikeMatcher struct{} + +func (binaryLikeMatcher) String() string { return "binary-like" } +func (binaryLikeMatcher) Matches(typ arrow.DataType) bool { return arrow.IsBinaryLike(typ.ID()) } +func (binaryLikeMatcher) Equals(other TypeMatcher) bool { + _, ok := other.(binaryLikeMatcher) + return ok +} + +type largeBinaryLikeMatcher struct{} + +func (largeBinaryLikeMatcher) String() string { return "large-binary-like" } +func (largeBinaryLikeMatcher) Matches(typ arrow.DataType) bool { + return arrow.IsLargeBinaryLike(typ.ID()) +} +func (largeBinaryLikeMatcher) Equals(other TypeMatcher) bool { + _, ok := other.(largeBinaryLikeMatcher) + return ok +} + +type fsbLikeMatcher struct{} + +func (fsbLikeMatcher) String() string { return "fixed-size-binary-like" } +func (fsbLikeMatcher) Matches(typ arrow.DataType) bool { return arrow.IsFixedSizeBinary(typ.ID()) } +func (fsbLikeMatcher) Equals(other TypeMatcher) bool { + _, ok := other.(fsbLikeMatcher) + return ok +} + +// Integer returns a TypeMatcher which will match any integral type like int8 or uint16 +func Integer() TypeMatcher { return integerMatcher{} } + +// BinaryLike returns a TypeMatcher that will match Binary or String +func BinaryLike() TypeMatcher { return binaryLikeMatcher{} } + +// LargeBinaryLike returns a TypeMatcher which will match LargeBinary or LargeString +func LargeBinaryLike() TypeMatcher { return largeBinaryLikeMatcher{} } + +// FixedSizeBinaryLike returns a TypeMatcher that will match FixedSizeBinary +// or Decimal128/256 +func FixedSizeBinaryLike() TypeMatcher { return fsbLikeMatcher{} } + +type primitiveMatcher struct{} + +func (primitiveMatcher) String() string { return "primitive" } +func (primitiveMatcher) Matches(typ arrow.DataType) bool { return arrow.IsPrimitive(typ.ID()) } +func (primitiveMatcher) Equals(other TypeMatcher) bool { + _, ok := other.(primitiveMatcher) + return ok +} + +// Primitive returns a TypeMatcher that will match any type that arrow.IsPrimitive +// returns true for. +func Primitive() TypeMatcher { return primitiveMatcher{} } + +type reeMatcher struct { + runEndsMatcher TypeMatcher + encodedMatcher TypeMatcher +} + +func (r reeMatcher) Matches(typ arrow.DataType) bool { + if typ.ID() != arrow.RUN_END_ENCODED { + return false + } + + dt := typ.(*arrow.RunEndEncodedType) + return r.runEndsMatcher.Matches(dt.RunEnds()) && r.encodedMatcher.Matches(dt.Encoded()) +} + +func (r reeMatcher) Equals(other TypeMatcher) bool { + o, ok := other.(reeMatcher) + if !ok { + return false + } + return r.runEndsMatcher.Equals(o.runEndsMatcher) && r.encodedMatcher.Equals(o.encodedMatcher) +} + +func (r reeMatcher) String() string { + return "run_end_encoded(run_ends=" + r.runEndsMatcher.String() + ", values=" + r.encodedMatcher.String() + ")" +} + +// RunEndEncoded returns a matcher which matches a RunEndEncoded +// type whose encoded type is matched by the passed in matcher. +func RunEndEncoded(runEndsMatcher, encodedMatcher TypeMatcher) TypeMatcher { + return reeMatcher{ + runEndsMatcher: runEndsMatcher, + encodedMatcher: encodedMatcher} +} + +// InputKind is an enum representing the type of Input matching +// that will be done. Either accepting any type, an exact specific type +// or using a TypeMatcher. +type InputKind int8 + +const ( + InputAny InputKind = iota + InputExact + InputUseMatcher +) + +// InputType is used for type checking arguments passed to a kernel +// and stored within a KernelSignature. The type-checking rule can +// be supplied either with an exact DataType instance or a custom +// TypeMatcher. +type InputType struct { + Kind InputKind + Type arrow.DataType + Matcher TypeMatcher +} + +func NewExactInput(dt arrow.DataType) InputType { return InputType{Kind: InputExact, Type: dt} } +func NewMatchedInput(match TypeMatcher) InputType { + return InputType{Kind: InputUseMatcher, Matcher: match} +} +func NewIDInput(id arrow.Type) InputType { return NewMatchedInput(SameTypeID(id)) } + +func (it InputType) MatchID() arrow.Type { + switch it.Kind { + case InputExact: + return it.Type.ID() + case InputUseMatcher: + if idMatch, ok := it.Matcher.(*sameTypeIDMatcher); ok { + return idMatch.accepted + } + } + debug.Assert(false, "MatchID called on non-id matching InputType") + return -1 +} + +func (it InputType) String() string { + switch it.Kind { + case InputAny: + return "any" + case InputUseMatcher: + return it.Matcher.String() + case InputExact: + return it.Type.String() + } + return "" +} + +func (it *InputType) Equals(other *InputType) bool { + if it == other { + return true + } + + if it.Kind != other.Kind { + return false + } + + switch it.Kind { + case InputAny: + return true + case InputExact: + return arrow.TypeEqual(it.Type, other.Type) + case InputUseMatcher: + return it.Matcher.Equals(other.Matcher) + default: + return false + } +} + +func (it InputType) Hash() uint64 { + var h maphash.Hash + + h.SetSeed(hashSeed) + result := HashCombine(h.Sum64(), uint64(it.Kind)) + switch it.Kind { + case InputExact: + result = HashCombine(result, arrow.HashType(hashSeed, it.Type)) + } + return result +} + +func (it InputType) Matches(dt arrow.DataType) bool { + switch it.Kind { + case InputExact: + return arrow.TypeEqual(it.Type, dt) + case InputUseMatcher: + return it.Matcher.Matches(dt) + case InputAny: + return true + default: + debug.Assert(false, "invalid InputKind") + return true + } +} + +// ResolveKind defines the way that a particular OutputType resolves +// its type. Either it has a fixed type to resolve to or it contains +// a Resolver which will compute the resolved type based on +// the input types. +type ResolveKind int8 + +const ( + ResolveFixed ResolveKind = iota + ResolveComputed +) + +// TypeResolver is simply a function that takes a KernelCtx and a list of input types +// and returns the resolved type or an error. +type TypeResolver = func(*KernelCtx, []arrow.DataType) (arrow.DataType, error) + +type OutputType struct { + Kind ResolveKind + Type arrow.DataType + Resolver TypeResolver +} + +func NewOutputType(dt arrow.DataType) OutputType { + return OutputType{Kind: ResolveFixed, Type: dt} +} + +func NewComputedOutputType(resolver TypeResolver) OutputType { + return OutputType{Kind: ResolveComputed, Resolver: resolver} +} + +func (o OutputType) String() string { + if o.Kind == ResolveFixed { + return o.Type.String() + } + return "computed" +} + +func (o OutputType) Resolve(ctx *KernelCtx, types []arrow.DataType) (arrow.DataType, error) { + switch o.Kind { + case ResolveFixed: + return o.Type, nil + } + + return o.Resolver(ctx, types) +} + +// NullHandling is an enum representing how a particular Kernel +// wants the executor to handle nulls. +type NullHandling int8 + +const ( + // Compute the output validity bitmap by intersection the validity + // bitmaps of the arguments using bitwise-and operations. This means + // that values in the output are valid/non-null only if the corresponding + // values in all input arguments were valid/non-null. Kernels generally + // do not have to touch the bitmap afterwards, but a kernel's exec function + // is permitted to alter the bitmap after the null intersection is computed + // if necessary. + NullIntersection NullHandling = iota + // Kernel expects a pre-allocated buffer to write the result bitmap + // into. + NullComputedPrealloc + // Kernel will allocate and set the validity bitmap of the output + NullComputedNoPrealloc + // kernel output is never null and a validity bitmap doesn't need to + // be allocated + NullNoOutput +) + +// MemAlloc is the preference for preallocating memory of fixed-width +// type outputs during kernel execution. +type MemAlloc int8 + +const ( + // For data types that support pre-allocation (fixed-width), the + // kernel expects to be provided a pre-allocated buffer to write into. + // Non-fixed-width types must always allocate their own buffers. + // The allocation is made for the same length as the execution batch, + // so vector kernels yielding differently sized outputs should not + // use this. + // + // It is valid for the data to not be preallocated but the validity + // bitmap is (or is computed using intersection). + // + // For variable-size output types like Binary or String, or for nested + // types, this option has no effect. + MemPrealloc MemAlloc = iota + // The kernel is responsible for allocating its own data buffer + // for fixed-width output types. + MemNoPrealloc +) + +type KernelState any + +// KernelInitArgs are the arguments required to initialize an Kernel's +// state using the input types and any options. +type KernelInitArgs struct { + Kernel Kernel + Inputs []arrow.DataType + // Options are opaque and specific to the Kernel being initialized, + // may be nil if the kernel doesn't require options. + Options any +} + +// KernelInitFn is any function that receives a KernelCtx and initialization +// arguments and returns the initialized state or an error. +type KernelInitFn = func(*KernelCtx, KernelInitArgs) (KernelState, error) + +// KernelSignature holds the input and output types for a kernel. +// +// Variable argument functions with a minimum of N arguments should pass +// up to N input types to be used to validate for invocation. The first +// N-1 types will be matched against the first N-1 arguments and the last +// type will be matched against the remaining arguments. +type KernelSignature struct { + InputTypes []InputType + OutType OutputType + IsVarArgs bool + + // store the hashcode after it is computed so we don't + // need to recompute it + hashCode uint64 +} + +func (k KernelSignature) String() string { + var b strings.Builder + if k.IsVarArgs { + b.WriteString("varargs[") + } else { + b.WriteByte('(') + } + + for i, t := range k.InputTypes { + if i != 0 { + b.WriteString(", ") + } + b.WriteString(t.String()) + } + if k.IsVarArgs { + b.WriteString("*]") + } else { + b.WriteByte(')') + } + + b.WriteString(" -> ") + b.WriteString(k.OutType.String()) + return b.String() +} + +func (k KernelSignature) Equals(other KernelSignature) bool { + if k.IsVarArgs != other.IsVarArgs { + return false + } + + return slices.EqualFunc(k.InputTypes, other.InputTypes, func(e1, e2 InputType) bool { + return e1.Equals(&e2) + }) +} + +func (k *KernelSignature) Hash() uint64 { + if k.hashCode != 0 { + return k.hashCode + } + + var h maphash.Hash + h.SetSeed(hashSeed) + result := h.Sum64() + for _, typ := range k.InputTypes { + result = HashCombine(result, typ.Hash()) + } + k.hashCode = result + return result +} + +func (k KernelSignature) MatchesInputs(types []arrow.DataType) bool { + switch k.IsVarArgs { + case true: + // check that it has enough to match at least the non-vararg types + if len(types) < (len(k.InputTypes) - 1) { + return false + } + + for i, t := range types { + if !k.InputTypes[Min(i, len(k.InputTypes)-1)].Matches(t) { + return false + } + } + case false: + if len(types) != len(k.InputTypes) { + return false + } + for i, t := range types { + if !k.InputTypes[i].Matches(t) { + return false + } + } + } + return true +} + +// ArrayKernelExec is an alias definition for a kernel's execution function. +// +// This is used for both stateless and stateful kernels. If a kernel +// depends on some execution state, it can be accessed from the KernelCtx +// object, which also contains the context.Context object which can be +// used for shortcircuiting by checking context.Done / context.Err. +// This allows kernels to control handling timeouts or cancellation of +// computation. +type ArrayKernelExec = func(*KernelCtx, *ExecSpan, *ExecResult) error + +type kernel struct { + Init KernelInitFn + Signature *KernelSignature + Data KernelState + Parallelizable bool +} + +func (k kernel) GetInitFn() KernelInitFn { return k.Init } +func (k kernel) GetSig() *KernelSignature { return k.Signature } + +// A ScalarKernel is the kernel implementation for a Scalar Function. +// In addition to the members found in the base Kernel, it contains +// the null handling and memory pre-allocation preferences. +type ScalarKernel struct { + kernel + + ExecFn ArrayKernelExec + CanWriteIntoSlices bool + NullHandling NullHandling + MemAlloc MemAlloc +} + +// NewScalarKernel constructs a new kernel for scalar execution, constructing +// a KernelSignature with the provided input types and output type, and using +// the passed in execution implementation and initialization function. +func NewScalarKernel(in []InputType, out OutputType, exec ArrayKernelExec, init KernelInitFn) ScalarKernel { + return NewScalarKernelWithSig(&KernelSignature{ + InputTypes: in, + OutType: out, + }, exec, init) +} + +// NewScalarKernelWithSig is a convenience when you already have a signature +// to use for constructing a kernel. It's equivalent to passing the components +// of the signature (input and output types) to NewScalarKernel. +func NewScalarKernelWithSig(sig *KernelSignature, exec ArrayKernelExec, init KernelInitFn) ScalarKernel { + return ScalarKernel{ + kernel: kernel{Signature: sig, Init: init, Parallelizable: true}, + ExecFn: exec, + CanWriteIntoSlices: true, + NullHandling: NullIntersection, + MemAlloc: MemPrealloc, + } +} + +func (s *ScalarKernel) Exec(ctx *KernelCtx, sp *ExecSpan, out *ExecResult) error { + return s.ExecFn(ctx, sp, out) +} + +func (s ScalarKernel) GetNullHandling() NullHandling { return s.NullHandling } +func (s ScalarKernel) GetMemAlloc() MemAlloc { return s.MemAlloc } +func (s ScalarKernel) CanFillSlices() bool { return s.CanWriteIntoSlices } + +// ChunkedExec is the signature for executing a stateful vector kernel +// against a ChunkedArray input. It is optional +type ChunkedExec func(*KernelCtx, []*arrow.Chunked, *ExecResult) ([]*ExecResult, error) + +// FinalizeFunc is an optional finalizer function for any postprocessing +// that may need to be done on data before returning it +type FinalizeFunc func(*KernelCtx, []*ArraySpan) ([]*ArraySpan, error) + +// VectorKernel is a structure for implementations of vector functions. +// It can optionally contain a finalizer function, the null handling +// and memory pre-allocation preferences (different defaults from +// scalar kernels when using NewVectorKernel), and other execution related +// options. +type VectorKernel struct { + kernel + + ExecFn ArrayKernelExec + ExecChunked ChunkedExec + Finalize FinalizeFunc + NullHandling NullHandling + MemAlloc MemAlloc + CanWriteIntoSlices bool + CanExecuteChunkWise bool + OutputChunked bool +} + +// NewVectorKernel constructs a new kernel for execution of vector functions, +// which take into account more than just the individual scalar values +// of its input. Output of a vector kernel may be a different length +// than its inputs. +func NewVectorKernel(inTypes []InputType, outType OutputType, exec ArrayKernelExec, init KernelInitFn) VectorKernel { + return NewVectorKernelWithSig(&KernelSignature{ + InputTypes: inTypes, OutType: outType}, exec, init) +} + +// NewVectorKernelWithSig is a convenience function for creating a kernel +// when you already have a signature constructed. +func NewVectorKernelWithSig(sig *KernelSignature, exec ArrayKernelExec, init KernelInitFn) VectorKernel { + return VectorKernel{ + kernel: kernel{Signature: sig, Init: init, Parallelizable: true}, + ExecFn: exec, + CanWriteIntoSlices: true, + CanExecuteChunkWise: true, + OutputChunked: true, + NullHandling: NullComputedNoPrealloc, + MemAlloc: MemNoPrealloc, + } +} + +func (s *VectorKernel) Exec(ctx *KernelCtx, sp *ExecSpan, out *ExecResult) error { + return s.ExecFn(ctx, sp, out) +} + +func (s VectorKernel) GetNullHandling() NullHandling { return s.NullHandling } +func (s VectorKernel) GetMemAlloc() MemAlloc { return s.MemAlloc } +func (s VectorKernel) CanFillSlices() bool { return s.CanWriteIntoSlices } diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/span.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/span.go new file mode 100644 index 0000000..4221d6c --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/span.go @@ -0,0 +1,651 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package exec + +import ( + "reflect" + "sync/atomic" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +// BufferSpan is a lightweight Buffer holder for ArraySpans that does not +// take ownership of the underlying memory.Buffer at all or could be +// used to reference raw byte slices instead. +type BufferSpan struct { + // Buf should be the byte slice representing this buffer, if this is + // nil then this bufferspan should be considered empty. + Buf []byte + // Owner should point to an underlying parent memory.Buffer if this + // memory is owned by a different, existing, buffer. Retain is not + // called on this buffer, so it must not be released as long as + // this BufferSpan refers to it. + Owner *memory.Buffer + // SelfAlloc tracks whether or not this bufferspan is the only owner + // of the Owning memory.Buffer. This happens when preallocating + // memory or if a kernel allocates it's own buffer for a result. + // In these cases, we have to know so we can properly maintain the + // refcount if this is later turned into an ArrayData object. + SelfAlloc bool +} + +// SetBuffer sets the given buffer into this BufferSpan and marks +// SelfAlloc as false. This should be called when setting a buffer +// that is externally owned/created. +func (b *BufferSpan) SetBuffer(buf *memory.Buffer) { + b.Buf = buf.Bytes() + b.Owner = buf + b.SelfAlloc = false +} + +// WrapBuffer wraps this bufferspan around a buffer and marks +// SelfAlloc as true. This should be called when setting a buffer +// that was allocated as part of an execution rather than just +// re-using an existing buffer from an input array. +func (b *BufferSpan) WrapBuffer(buf *memory.Buffer) { + b.Buf = buf.Bytes() + b.Owner = buf + b.SelfAlloc = true +} + +// ArraySpan is a light-weight, non-owning version of arrow.ArrayData +// for more efficient handling with computation and engines. We use +// explicit go Arrays to define the buffers and some scratch space +// for easily populating and shifting around pointers to memory without +// having to worry about and deal with retain/release during calculations. +type ArraySpan struct { + Type arrow.DataType + Len int64 + Nulls int64 + Offset int64 + Buffers [3]BufferSpan + + // Scratch is a holding spot for things such as + // offsets or union type codes when converting from scalars + Scratch [2]uint64 + + Children []ArraySpan +} + +// if an error is encountered, call Release on a preallocated span +// to ensure it releases any self-allocated buffers, it will +// not call release on buffers it doesn't own (SelfAlloc != true) +func (a *ArraySpan) Release() { + for _, c := range a.Children { + c.Release() + } + + for _, b := range a.Buffers { + if b.SelfAlloc { + b.Owner.Release() + } + } +} + +func (a *ArraySpan) MayHaveNulls() bool { + return atomic.LoadInt64(&a.Nulls) != 0 && a.Buffers[0].Buf != nil +} + +// UpdateNullCount will count the bits in the null bitmap and update the +// number of nulls if the current null count is unknown, otherwise it just +// returns the value of a.Nulls +func (a *ArraySpan) UpdateNullCount() int64 { + curNulls := atomic.LoadInt64(&a.Nulls) + if curNulls != array.UnknownNullCount { + return curNulls + } + + newNulls := a.Len - int64(bitutil.CountSetBits(a.Buffers[0].Buf, int(a.Offset), int(a.Len))) + atomic.StoreInt64(&a.Nulls, newNulls) + return newNulls +} + +// Dictionary returns a pointer to the array span for the dictionary which +// we will always place as the first (and only) child if it exists. +func (a *ArraySpan) Dictionary() *ArraySpan { return &a.Children[0] } + +// NumBuffers returns the number of expected buffers for this type +func (a *ArraySpan) NumBuffers() int { return getNumBuffers(a.Type) } + +// MakeData generates an arrow.ArrayData object for this ArraySpan, +// properly updating the buffer ref count if necessary. +func (a *ArraySpan) MakeData() arrow.ArrayData { + var bufs [3]*memory.Buffer + for i := range bufs { + b := a.GetBuffer(i) + bufs[i] = b + if b != nil && a.Buffers[i].SelfAlloc { + // if this buffer is just a pointer to another existing buffer + // then we never bumped the refcount for that buffer. + // As a result, we won't call release here so that the call + // to array.NewData properly updates the ref counts of the buffers. + // If instead this buffer was allocated during calculation + // (such as during prealloc or by a kernel itself) + // then we need to release after we create the ArrayData so that it + // maintains the correct refcount of 1, giving the resulting + // ArrayData object ownership of this buffer. + defer b.Release() + } + } + + var ( + nulls = int(atomic.LoadInt64(&a.Nulls)) + length = int(a.Len) + off = int(a.Offset) + dt = a.Type + children []arrow.ArrayData + ) + + if a.Type.ID() == arrow.NULL { + nulls = length + } else if len(a.Buffers[0].Buf) == 0 { + nulls = 0 + } + + // we use a.Type for the NewData call at the end, so we can + // handle extension types by using dt to point to the storage type + // and let the proper extension type get set into the ArrayData + // object we return. + if dt.ID() == arrow.EXTENSION { + dt = dt.(arrow.ExtensionType).StorageType() + } + + if dt.ID() == arrow.DICTIONARY { + result := array.NewData(a.Type, length, bufs[:a.NumBuffers()], nil, nulls, off) + dict := a.Dictionary().MakeData() + defer dict.Release() + result.SetDictionary(dict) + return result + } else if dt.ID() == arrow.DENSE_UNION || dt.ID() == arrow.SPARSE_UNION { + bufs[0] = nil + nulls = 0 + } + + if len(a.Children) > 0 { + children = make([]arrow.ArrayData, len(a.Children)) + for i, c := range a.Children { + d := c.MakeData() + defer d.Release() + children[i] = d + } + } + return array.NewData(a.Type, length, bufs[:a.NumBuffers()], children, nulls, off) +} + +// MakeArray is a convenience function for calling array.MakeFromData(a.MakeData()) +func (a *ArraySpan) MakeArray() arrow.Array { + d := a.MakeData() + defer d.Release() + return array.MakeFromData(d) +} + +// SetSlice updates the offset and length of this ArraySpan to refer to +// a specific slice of the underlying buffers. +func (a *ArraySpan) SetSlice(off, length int64) { + if off == a.Offset && length == a.Len { + // don't modify the nulls if the slice is the entire span + return + } + + if a.Type.ID() != arrow.NULL { + if a.Nulls != 0 { + if a.Nulls == a.Len { + a.Nulls = length + } else { + a.Nulls = array.UnknownNullCount + } + } + } else { + a.Nulls = length + } + + a.Offset, a.Len = off, length +} + +// GetBuffer returns the buffer for the requested index. If this buffer +// is owned by another array/arrayspan the Owning buffer is returned, +// otherwise if this slice has no owning buffer, we call NewBufferBytes +// to wrap it as a memory.Buffer. Can also return nil if there is no +// buffer in this index. +func (a *ArraySpan) GetBuffer(idx int) *memory.Buffer { + buf := a.Buffers[idx] + switch { + case buf.Owner != nil: + return buf.Owner + case buf.Buf != nil: + return memory.NewBufferBytes(buf.Buf) + } + return nil +} + +// convenience function to resize the children slice if necessary, +// or just shrink the slice without re-allocating if there's enough +// capacity already. +func (a *ArraySpan) resizeChildren(i int) { + if cap(a.Children) >= i { + a.Children = a.Children[:i] + } else { + a.Children = make([]ArraySpan, i) + } +} + +// convenience function for populating the offsets buffer from a scalar +// value's size. +func setOffsetsForScalar[T int32 | int64](span *ArraySpan, buf []T, valueSize int64, bufidx int) { + buf[0] = 0 + buf[1] = T(valueSize) + + b := (*reflect.SliceHeader)(unsafe.Pointer(&buf)) + s := (*reflect.SliceHeader)(unsafe.Pointer(&span.Buffers[bufidx].Buf)) + s.Data = b.Data + s.Len = 2 * int(unsafe.Sizeof(T(0))) + s.Cap = s.Len + + span.Buffers[bufidx].Owner = nil + span.Buffers[bufidx].SelfAlloc = false +} + +// FillFromScalar populates this ArraySpan as if it were a 1 length array +// with the single value equal to the passed in Scalar. +func (a *ArraySpan) FillFromScalar(val scalar.Scalar) { + var ( + trueBit byte = 0x01 + falseBit byte = 0x00 + ) + + a.Type = val.DataType() + a.Len = 1 + typeID := a.Type.ID() + if val.IsValid() { + a.Nulls = 0 + } else { + a.Nulls = 1 + } + + if !arrow.IsUnion(typeID) && typeID != arrow.NULL { + if val.IsValid() { + a.Buffers[0].Buf = []byte{trueBit} + } else { + a.Buffers[0].Buf = []byte{falseBit} + } + a.Buffers[0].Owner = nil + a.Buffers[0].SelfAlloc = false + } + + switch { + case typeID == arrow.BOOL: + if val.(*scalar.Boolean).Value { + a.Buffers[1].Buf = []byte{trueBit} + } else { + a.Buffers[1].Buf = []byte{falseBit} + } + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + case arrow.IsPrimitive(typeID) || arrow.IsDecimal(typeID): + sc := val.(scalar.PrimitiveScalar) + a.Buffers[1].Buf = sc.Data() + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + case typeID == arrow.DICTIONARY: + sc := val.(scalar.PrimitiveScalar) + a.Buffers[1].Buf = sc.Data() + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + a.resizeChildren(1) + a.Children[0].SetMembers(val.(*scalar.Dictionary).Value.Dict.Data()) + case arrow.IsBaseBinary(typeID): + sc := val.(scalar.BinaryScalar) + a.Buffers[1].Buf = arrow.Uint64Traits.CastToBytes(a.Scratch[:]) + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + + var dataBuffer []byte + if sc.IsValid() { + dataBuffer = sc.Data() + a.Buffers[2].Owner = sc.Buffer() + a.Buffers[2].SelfAlloc = false + } + if arrow.IsBinaryLike(typeID) { + setOffsetsForScalar(a, + unsafe.Slice((*int32)(unsafe.Pointer(&a.Scratch[0])), 2), + int64(len(dataBuffer)), 1) + } else { + // large_binary_like + setOffsetsForScalar(a, + unsafe.Slice((*int64)(unsafe.Pointer(&a.Scratch[0])), 2), + int64(len(dataBuffer)), 1) + } + a.Buffers[2].Buf = dataBuffer + case typeID == arrow.FIXED_SIZE_BINARY: + sc := val.(scalar.BinaryScalar) + if !sc.IsValid() { + a.Buffers[1].Buf = make([]byte, sc.DataType().(*arrow.FixedSizeBinaryType).ByteWidth) + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + break + } + a.Buffers[1].Buf = sc.Data() + a.Buffers[1].Owner = sc.Buffer() + a.Buffers[1].SelfAlloc = false + case arrow.IsListLike(typeID): + sc := val.(scalar.ListScalar) + valueLen := 0 + a.resizeChildren(1) + + if sc.GetList() != nil { + a.Children[0].SetMembers(sc.GetList().Data()) + valueLen = sc.GetList().Len() + } else { + // even when the value is null, we must populate + // child data to yield a valid array. ugh + FillZeroLength(sc.DataType().(arrow.NestedType).Fields()[0].Type, &a.Children[0]) + } + + switch typeID { + case arrow.LIST, arrow.MAP: + setOffsetsForScalar(a, + unsafe.Slice((*int32)(unsafe.Pointer(&a.Scratch[0])), 2), + int64(valueLen), 1) + case arrow.LARGE_LIST: + setOffsetsForScalar(a, + unsafe.Slice((*int64)(unsafe.Pointer(&a.Scratch[0])), 2), + int64(valueLen), 1) + default: + // fixed size list has no second buffer + a.Buffers[1].Buf, a.Buffers[1].Owner = nil, nil + a.Buffers[1].SelfAlloc = false + } + case typeID == arrow.STRUCT: + sc := val.(*scalar.Struct) + a.Buffers[1].Buf = nil + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + a.resizeChildren(len(sc.Value)) + for i, v := range sc.Value { + a.Children[i].FillFromScalar(v) + } + case arrow.IsUnion(typeID): + // first buffer is kept null since unions have no validity vector + a.Buffers[0].Buf, a.Buffers[0].Owner = nil, nil + a.Buffers[0].SelfAlloc = false + + a.Buffers[1].Buf = arrow.Uint64Traits.CastToBytes(a.Scratch[:])[:1] + a.Buffers[1].Owner = nil + a.Buffers[1].SelfAlloc = false + codes := unsafe.Slice((*arrow.UnionTypeCode)(unsafe.Pointer(&a.Buffers[1].Buf[0])), 1) + + a.resizeChildren(len(a.Type.(arrow.UnionType).Fields())) + switch sc := val.(type) { + case *scalar.DenseUnion: + codes[0] = sc.TypeCode + // has offset, start 4 bytes in so it's aligned to the 32-bit boundaries + off := unsafe.Slice((*int32)(unsafe.Add(unsafe.Pointer(&a.Scratch[0]), arrow.Int32SizeBytes)), 2) + setOffsetsForScalar(a, off, 1, 2) + // we can't "see" the other arrays in the union, but we put the "active" + // union array in the right place and fill zero-length arrays for + // the others. + childIDS := a.Type.(arrow.UnionType).ChildIDs() + for i, f := range a.Type.(arrow.UnionType).Fields() { + if i == childIDS[sc.TypeCode] { + a.Children[i].FillFromScalar(sc.Value) + } else { + FillZeroLength(f.Type, &a.Children[i]) + } + } + case *scalar.SparseUnion: + codes[0] = sc.TypeCode + // sparse union scalars have a full complement of child values + // even though only one of them is relevant, so we just fill them + // in here + for i, v := range sc.Value { + a.Children[i].FillFromScalar(v) + } + } + case typeID == arrow.EXTENSION: + // pass through storage + sc := val.(*scalar.Extension) + a.FillFromScalar(sc.Value) + // restore the extension type + a.Type = val.DataType() + case typeID == arrow.NULL: + for i := range a.Buffers { + a.Buffers[i].Buf = nil + a.Buffers[i].Owner = nil + a.Buffers[i].SelfAlloc = false + } + } +} + +func (a *ArraySpan) SetDictionary(span *ArraySpan) { + a.resizeChildren(1) + a.Children[0].Release() + a.Children[0] = *span +} + +// TakeOwnership is like SetMembers only this takes ownership of +// the buffers by calling Retain on them so that the passed in +// ArrayData can be released without negatively affecting this +// ArraySpan +func (a *ArraySpan) TakeOwnership(data arrow.ArrayData) { + a.Type = data.DataType() + a.Len = int64(data.Len()) + if a.Type.ID() == arrow.NULL { + a.Nulls = a.Len + } else { + a.Nulls = int64(data.NullN()) + } + a.Offset = int64(data.Offset()) + + for i, b := range data.Buffers() { + if b != nil { + a.Buffers[i].WrapBuffer(b) + b.Retain() + } else { + a.Buffers[i].Buf = nil + a.Buffers[i].Owner = nil + a.Buffers[i].SelfAlloc = false + } + } + + typeID := a.Type.ID() + if a.Buffers[0].Buf == nil { + switch typeID { + case arrow.NULL, arrow.SPARSE_UNION, arrow.DENSE_UNION: + default: + // should already be zero, but we make sure + a.Nulls = 0 + } + } + + for i := len(data.Buffers()); i < 3; i++ { + a.Buffers[i].Buf = nil + a.Buffers[i].Owner = nil + a.Buffers[i].SelfAlloc = false + } + + if typeID == arrow.DICTIONARY { + a.resizeChildren(1) + dict := data.Dictionary() + if dict != (*array.Data)(nil) { + a.Children[0].TakeOwnership(dict) + } + } else { + a.resizeChildren(len(data.Children())) + for i, c := range data.Children() { + a.Children[i].TakeOwnership(c) + } + } +} + +// SetMembers populates this ArraySpan from the given ArrayData object. +// As this is a non-owning reference, the ArrayData object must not +// be fully released while this ArraySpan is in use, otherwise any buffers +// referenced will be released too +func (a *ArraySpan) SetMembers(data arrow.ArrayData) { + a.Type = data.DataType() + a.Len = int64(data.Len()) + if a.Type.ID() == arrow.NULL { + a.Nulls = a.Len + } else { + a.Nulls = int64(data.NullN()) + } + a.Offset = int64(data.Offset()) + + for i, b := range data.Buffers() { + if b != nil { + a.Buffers[i].SetBuffer(b) + } else { + a.Buffers[i].Buf = nil + a.Buffers[i].Owner = nil + a.Buffers[i].SelfAlloc = false + } + } + + typeID := a.Type.ID() + if a.Buffers[0].Buf == nil { + switch typeID { + case arrow.NULL, arrow.SPARSE_UNION, arrow.DENSE_UNION: + default: + // should already be zero, but we make sure + a.Nulls = 0 + } + } + + for i := len(data.Buffers()); i < 3; i++ { + a.Buffers[i].Buf = nil + a.Buffers[i].Owner = nil + a.Buffers[i].SelfAlloc = false + } + + if typeID == arrow.DICTIONARY { + a.resizeChildren(1) + dict := data.Dictionary() + if dict != (*array.Data)(nil) { + a.Children[0].SetMembers(dict) + } + } else { + if cap(a.Children) >= len(data.Children()) { + a.Children = a.Children[:len(data.Children())] + } else { + a.Children = make([]ArraySpan, len(data.Children())) + } + for i, c := range data.Children() { + a.Children[i].SetMembers(c) + } + } +} + +// ExecValue represents a single input to an execution which could +// be either an Array (ArraySpan) or a Scalar value +type ExecValue struct { + Array ArraySpan + Scalar scalar.Scalar +} + +func (e *ExecValue) IsArray() bool { return e.Scalar == nil } +func (e *ExecValue) IsScalar() bool { return !e.IsArray() } + +func (e *ExecValue) Type() arrow.DataType { + if e.IsArray() { + return e.Array.Type + } + return e.Scalar.DataType() +} + +// ExecResult is the result of a kernel execution and should be populated +// by the execution functions and/or a kernel. For now we're just going to +// alias an ArraySpan. +type ExecResult = ArraySpan + +// ExecSpan represents a slice of inputs and is used to provide slices +// of input values to iterate over. +// +// Len is the length of the span (all elements in Values should either +// be scalar or an array with a length + offset of at least Len). +type ExecSpan struct { + Len int64 + Values []ExecValue +} + +func getNumBuffers(dt arrow.DataType) int { + switch dt.ID() { + case arrow.RUN_END_ENCODED: + return 0 + case arrow.NULL, arrow.STRUCT, arrow.FIXED_SIZE_LIST: + return 1 + case arrow.BINARY, arrow.LARGE_BINARY, arrow.STRING, arrow.LARGE_STRING, arrow.DENSE_UNION: + return 3 + case arrow.EXTENSION: + return getNumBuffers(dt.(arrow.ExtensionType).StorageType()) + default: + return 2 + } +} + +// FillZeroLength fills an ArraySpan with the appropriate information for +// a Zero Length Array of the provided type. +func FillZeroLength(dt arrow.DataType, span *ArraySpan) { + span.Scratch[0], span.Scratch[1] = 0, 0 + span.Type = dt + span.Len = 0 + numBufs := getNumBuffers(dt) + for i := 0; i < numBufs; i++ { + span.Buffers[i].Buf = arrow.Uint64Traits.CastToBytes(span.Scratch[:])[:0] + span.Buffers[i].Owner = nil + } + + for i := numBufs; i < 3; i++ { + span.Buffers[i].Buf, span.Buffers[i].Owner = nil, nil + } + + if dt.ID() == arrow.DICTIONARY { + span.resizeChildren(1) + FillZeroLength(dt.(*arrow.DictionaryType).ValueType, &span.Children[0]) + return + } + + nt, ok := dt.(arrow.NestedType) + if !ok { + if len(span.Children) > 0 { + span.Children = span.Children[:0] + } + return + } + + span.resizeChildren(len(nt.Fields())) + for i, f := range nt.Fields() { + FillZeroLength(f.Type, &span.Children[i]) + } +} + +// PromoteExecSpanScalars promotes the values of the passed in ExecSpan +// from scalars to Arrays of length 1 for each value. +func PromoteExecSpanScalars(span ExecSpan) { + for i := range span.Values { + if span.Values[i].Scalar != nil { + span.Values[i].Array.FillFromScalar(span.Values[i].Scalar) + span.Values[i].Scalar = nil + } + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/utils.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/utils.go new file mode 100644 index 0000000..2dcd8ff --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/exec/utils.go @@ -0,0 +1,398 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package exec + +import ( + "fmt" + "math" + "reflect" + "sync/atomic" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/memory" + "golang.org/x/exp/constraints" + "golang.org/x/exp/slices" +) + +// IntTypes is a type constraint for raw values represented as signed +// integer types by Arrow. We aren't just using constraints.Signed +// because we don't want to include the raw `int` type here whose size +// changes based on the architecture (int32 on 32-bit architectures and +// int64 on 64-bit architectures). +// +// This will also cover types like MonthInterval or the time types +// as their underlying types are int32 and int64 which will get covered +// by using the ~ +type IntTypes interface { + ~int8 | ~int16 | ~int32 | ~int64 +} + +// UintTypes is a type constraint for raw values represented as unsigned +// integer types by Arrow. We aren't just using constraints.Unsigned +// because we don't want to include the raw `uint` type here whose size +// changes based on the architecture (uint32 on 32-bit architectures and +// uint64 on 64-bit architectures). We also don't want to include uintptr +type UintTypes interface { + ~uint8 | ~uint16 | ~uint32 | ~uint64 +} + +// FloatTypes is a type constraint for raw values for representing +// floating point values in Arrow. This consists of constraints.Float and +// float16.Num +type FloatTypes interface { + float16.Num | constraints.Float +} + +// NumericTypes is a type constraint for just signed/unsigned integers +// and float32/float64. +type NumericTypes interface { + IntTypes | UintTypes | constraints.Float +} + +// DecimalTypes is a type constraint for raw values representing larger +// decimal type values in Arrow, specifically decimal128 and decimal256. +type DecimalTypes interface { + decimal128.Num | decimal256.Num +} + +// FixedWidthTypes is a type constraint for raw values in Arrow that +// can be represented as FixedWidth byte slices. Specifically this is for +// using Go generics to easily re-type a byte slice to a properly-typed +// slice. Booleans are excluded here since they are represented by Arrow +// as a bitmap and thus the buffer can't be just reinterpreted as a []bool +type FixedWidthTypes interface { + IntTypes | UintTypes | + FloatTypes | DecimalTypes | + arrow.DayTimeInterval | arrow.MonthDayNanoInterval +} + +type TemporalTypes interface { + arrow.Date32 | arrow.Date64 | arrow.Time32 | arrow.Time64 | + arrow.Timestamp | arrow.Duration | arrow.DayTimeInterval | + arrow.MonthInterval | arrow.MonthDayNanoInterval +} + +func GetValues[T FixedWidthTypes](data arrow.ArrayData, i int) []T { + if data.Buffers()[i] == nil || data.Buffers()[i].Len() == 0 { + return nil + } + ret := unsafe.Slice((*T)(unsafe.Pointer(&data.Buffers()[i].Bytes()[0])), data.Offset()+data.Len()) + return ret[data.Offset():] +} + +func GetOffsets[T int32 | int64](data arrow.ArrayData, i int) []T { + ret := unsafe.Slice((*T)(unsafe.Pointer(&data.Buffers()[i].Bytes()[0])), data.Offset()+data.Len()+1) + return ret[data.Offset():] +} + +// GetSpanValues returns a properly typed slice by reinterpreting +// the buffer at index i using unsafe.Slice. This will take into account +// the offset of the given ArraySpan. +func GetSpanValues[T FixedWidthTypes](span *ArraySpan, i int) []T { + if len(span.Buffers[i].Buf) == 0 { + return nil + } + ret := unsafe.Slice((*T)(unsafe.Pointer(&span.Buffers[i].Buf[0])), span.Offset+span.Len) + return ret[span.Offset:] +} + +// GetSpanOffsets is like GetSpanValues, except it is only for int32 +// or int64 and adds the additional 1 expected value for an offset +// buffer (ie. len(output) == span.Len+1) +func GetSpanOffsets[T int32 | int64](span *ArraySpan, i int) []T { + ret := unsafe.Slice((*T)(unsafe.Pointer(&span.Buffers[i].Buf[0])), span.Offset+span.Len+1) + return ret[span.Offset:] +} + +func GetBytes[T FixedWidthTypes](in []T) []byte { + var z T + return unsafe.Slice((*byte)(unsafe.Pointer(&in[0])), len(in)*int(unsafe.Sizeof(z))) +} + +func GetData[T FixedWidthTypes](in []byte) []T { + var z T + return unsafe.Slice((*T)(unsafe.Pointer(&in[0])), len(in)/int(unsafe.Sizeof(z))) +} + +func Min[T constraints.Ordered](a, b T) T { + if a < b { + return a + } + return b +} + +func Max[T constraints.Ordered](a, b T) T { + if a > b { + return a + } + return b +} + +// OptionsInit should be used in the case where a KernelState is simply +// represented with a specific type by value (instead of pointer). +// This will initialize the KernelState as a value-copied instance of +// the passed in function options argument to ensure separation +// and allow the kernel to manipulate the options if necessary without +// any negative consequences since it will have its own copy of the options. +func OptionsInit[T any](_ *KernelCtx, args KernelInitArgs) (KernelState, error) { + if opts, ok := args.Options.(*T); ok { + return *opts, nil + } + + return nil, fmt.Errorf("%w: attempted to initialize kernel state from invalid function options", + arrow.ErrInvalid) +} + +var typMap = map[reflect.Type]arrow.DataType{ + reflect.TypeOf(false): arrow.FixedWidthTypes.Boolean, + reflect.TypeOf(int8(0)): arrow.PrimitiveTypes.Int8, + reflect.TypeOf(int16(0)): arrow.PrimitiveTypes.Int16, + reflect.TypeOf(int32(0)): arrow.PrimitiveTypes.Int32, + reflect.TypeOf(int64(0)): arrow.PrimitiveTypes.Int64, + reflect.TypeOf(uint8(0)): arrow.PrimitiveTypes.Uint8, + reflect.TypeOf(uint16(0)): arrow.PrimitiveTypes.Uint16, + reflect.TypeOf(uint32(0)): arrow.PrimitiveTypes.Uint32, + reflect.TypeOf(uint64(0)): arrow.PrimitiveTypes.Uint64, + reflect.TypeOf(float32(0)): arrow.PrimitiveTypes.Float32, + reflect.TypeOf(float64(0)): arrow.PrimitiveTypes.Float64, + reflect.TypeOf(string("")): arrow.BinaryTypes.String, + reflect.TypeOf(arrow.Date32(0)): arrow.FixedWidthTypes.Date32, + reflect.TypeOf(arrow.Date64(0)): arrow.FixedWidthTypes.Date64, + reflect.TypeOf(true): arrow.FixedWidthTypes.Boolean, + reflect.TypeOf(float16.Num{}): arrow.FixedWidthTypes.Float16, + reflect.TypeOf([]byte{}): arrow.BinaryTypes.Binary, +} + +// GetDataType returns the appropriate arrow.DataType for the given type T +// only for non-parametric types. This uses a map and reflection internally +// so don't call this in a tight loop, instead call this once and then use +// a closure with the result. +func GetDataType[T NumericTypes | bool | string | []byte | float16.Num]() arrow.DataType { + var z T + return typMap[reflect.TypeOf(z)] +} + +// GetType returns the appropriate arrow.Type type T, only for non-parameteric +// types. This uses a map and reflection internally so don't call this in +// a tight loop, instead call it once and then use a closure with the result. +func GetType[T NumericTypes | bool | string]() arrow.Type { + var z T + return typMap[reflect.TypeOf(z)].ID() +} + +type arrayBuilder[T NumericTypes | bool] interface { + array.Builder + Append(T) + AppendValues([]T, []bool) +} + +func ArrayFromSlice[T NumericTypes | bool](mem memory.Allocator, data []T) arrow.Array { + bldr := array.NewBuilder(mem, typMap[reflect.TypeOf(data).Elem()]).(arrayBuilder[T]) + defer bldr.Release() + + bldr.AppendValues(data, nil) + return bldr.NewArray() +} + +func ArrayFromSliceWithValid[T NumericTypes | bool](mem memory.Allocator, data []T, valid []bool) arrow.Array { + bldr := array.NewBuilder(mem, typMap[reflect.TypeOf(data).Elem()]).(arrayBuilder[T]) + defer bldr.Release() + + bldr.AppendValues(data, valid) + return bldr.NewArray() +} + +func RechunkArraysConsistently(groups [][]arrow.Array) [][]arrow.Array { + if len(groups) <= 1 { + return groups + } + + var totalLen int + for _, a := range groups[0] { + totalLen += a.Len() + } + + if totalLen == 0 { + return groups + } + + rechunked := make([][]arrow.Array, len(groups)) + offsets := make([]int64, len(groups)) + // scan all array vectors at once, rechunking along the way + var start int64 + for start < int64(totalLen) { + // first compute max possible length for next chunk + var chunkLength int64 = math.MaxInt64 + for i, g := range groups { + offset := offsets[i] + // skip any done arrays including 0-length + for offset == int64(g[0].Len()) { + g = g[1:] + offset = 0 + } + arr := g[0] + chunkLength = Min(chunkLength, int64(arr.Len())-offset) + + offsets[i] = offset + groups[i] = g + } + + // now slice all the arrays along this chunk size + for i, g := range groups { + offset := offsets[i] + arr := g[0] + if offset == 0 && int64(arr.Len()) == chunkLength { + // slice spans entire array + arr.Retain() + rechunked[i] = append(rechunked[i], arr) + } else { + rechunked[i] = append(rechunked[i], array.NewSlice(arr, int64(offset), int64(offset+chunkLength))) + } + offsets[i] += chunkLength + } + + start += int64(chunkLength) + } + return rechunked +} + +type ChunkResolver struct { + offsets []int64 + cached int64 +} + +func NewChunkResolver(chunks []arrow.Array) *ChunkResolver { + offsets := make([]int64, len(chunks)+1) + var offset int64 + for i, c := range chunks { + curOffset := offset + offset += int64(c.Len()) + offsets[i] = curOffset + } + offsets[len(chunks)] = offset + return &ChunkResolver{offsets: offsets} +} + +func (c *ChunkResolver) Resolve(idx int64) (chunk, index int64) { + // some algorithms consecutively access indexes that are a + // relatively small distance from each other, falling into + // the same chunk. + // This is trivial when merging (assuming each side of the + // merge uses its own resolver), but also in the inner + // recursive invocations of partitioning. + if len(c.offsets) <= 1 { + return 0, idx + } + + cached := atomic.LoadInt64(&c.cached) + cacheHit := idx >= c.offsets[cached] && idx < c.offsets[cached+1] + if cacheHit { + return cached, idx - c.offsets[cached] + } + + chkIdx, found := slices.BinarySearch(c.offsets, idx) + if !found { + chkIdx-- + } + + chunk, index = int64(chkIdx), idx-c.offsets[chkIdx] + atomic.StoreInt64(&c.cached, chunk) + return +} + +type arrayTypes interface { + FixedWidthTypes | TemporalTypes | bool | string | []byte +} + +type ArrayIter[T arrayTypes] interface { + Next() T +} + +type BoolIter struct { + Rdr *bitutil.BitmapReader +} + +func NewBoolIter(arr *ArraySpan) ArrayIter[bool] { + return &BoolIter{ + Rdr: bitutil.NewBitmapReader(arr.Buffers[1].Buf, int(arr.Offset), int(arr.Len))} +} + +func (b *BoolIter) Next() (out bool) { + out = b.Rdr.Set() + b.Rdr.Next() + return +} + +type PrimitiveIter[T FixedWidthTypes] struct { + Values []T +} + +func NewPrimitiveIter[T FixedWidthTypes](arr *ArraySpan) ArrayIter[T] { + return &PrimitiveIter[T]{Values: GetSpanValues[T](arr, 1)} +} + +func (p *PrimitiveIter[T]) Next() (v T) { + v = p.Values[0] + p.Values = p.Values[1:] + return +} + +type VarBinaryIter[OffsetT int32 | int64] struct { + Offsets []OffsetT + Data []byte + Pos int64 +} + +func NewVarBinaryIter[OffsetT int32 | int64](arr *ArraySpan) ArrayIter[[]byte] { + return &VarBinaryIter[OffsetT]{ + Offsets: GetSpanOffsets[OffsetT](arr, 1), + Data: arr.Buffers[2].Buf, + } +} + +func (v *VarBinaryIter[OffsetT]) Next() []byte { + cur := v.Pos + v.Pos++ + return v.Data[v.Offsets[cur]:v.Offsets[v.Pos]] +} + +type FSBIter struct { + Data []byte + Width int + Pos int64 +} + +func NewFSBIter(arr *ArraySpan) ArrayIter[[]byte] { + return &FSBIter{ + Data: arr.Buffers[1].Buf, + Width: arr.Type.(arrow.FixedWidthDataType).Bytes(), + } +} + +func (f *FSBIter) Next() []byte { + start := f.Width * int(f.Pos) + f.Pos++ + return f.Data[start : start+f.Width] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/Makefile b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/Makefile new file mode 100644 index 0000000..ac00bd8 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/Makefile @@ -0,0 +1,110 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +# this converts rotate instructions from "ro[lr] " -> "ro[lr] , 1" for yasm compatibility +PERL_FIXUP_ROTATE=perl -i -pe 's/(ro[rl]\s+\w{2,3})$$/\1, 1/' + +C2GOASM=c2goasm +CC=clang-11 +CXX=clang++-11 +C_FLAGS=-target x86_64-unknown-none -masm=intel -mno-red-zone -mstackrealign -mllvm -inline-threshold=5000 \ + -fno-asynchronous-unwind-tables -fno-exceptions -fno-rtti -O3 -fno-builtin -ffast-math -fno-jump-tables -I_lib -I../../../../internal/utils/_lib +ASM_FLAGS_AVX2=-mavx2 -mfma +ASM_FLAGS_SSE4=-msse4 +ASM_FLAGS_BMI2=-mbmi2 +ASM_FLAGS_POPCNT=-mpopcnt + +C_FLAGS_NEON=-O3 -fvectorize -mllvm -force-vector-width=16 -fno-asynchronous-unwind-tables -mno-red-zone -mstackrealign -fno-exceptions \ + -fno-rtti -fno-builtin -ffast-math -fno-jump-tables -I_lib -I../../../../internal/utils/_lib + +GO_SOURCES := $(shell find . -path ./_lib -prune -o -name '*.go' -not -name '*_test.go') +ALL_SOURCES := $(shell find . -path ./_lib -prune -o -name '*.go' -name '*.s' -not -name '*_test.go') + +.PHONEY: assembly + +INTEL_SOURCES := \ + cast_numeric_avx2_amd64.s cast_numeric_sse4_amd64.s constant_factor_avx2_amd64.s \ + constant_factor_sse4_amd64.s base_arithmetic_avx2_amd64.s base_arithmetic_sse4_amd64.s \ + scalar_comparison_avx2_amd64.s scalar_comparison_sse4_amd64.s + +# +# ARROW-15336: DO NOT add the assembly target for Arm64 (ARM_SOURCES) until c2goasm added the Arm64 support. +# min_max_neon_arm64.s was generated by asm2plan9s. +# And manually formatted it as the Arm64 Plan9. +# + +assembly: $(INTEL_SOURCES) + +_lib/cast_numeric_avx2_amd64.s: _lib/cast_numeric.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_AVX2) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/cast_numeric_sse4_amd64.s: _lib/cast_numeric.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_SSE4) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/cast_numeric_neon.s: _lib/cast_numeric.cc + $(CXX) -std=c++17 -S $(C_FLAGS_NEON) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/base_arithmetic_avx2_amd64.s: _lib/base_arithmetic.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_AVX2) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/base_arithmetic_sse4_amd64.s: _lib/base_arithmetic.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_SSE4) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/scalar_comparison_avx2_amd64.s: _lib/scalar_comparison.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_AVX2) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/scalar_comparison_sse4_amd64.s: _lib/scalar_comparison.cc + $(CXX) -std=c++17 -S $(C_FLAGS) $(ASM_FLAGS_SSE4) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/base_arithmetic_neon.s: _lib/base_arithmetic.cc + $(CXX) -std=c++17 -S $(C_FLAGS_NEON) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/constant_factor_avx2_amd64.s: _lib/constant_factor.c + $(CC) -S $(C_FLAGS) $(ASM_FLAGS_AVX2) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/constant_factor_sse4_amd64.s: _lib/constant_factor.c + $(CC) -S $(C_FLAGS) $(ASM_FLAGS_SSE4) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +_lib/constant_factor_neon.s: _lib/constant_factor.c + $(CC) -S $(C_FLAGS_NEON) $^ -o $@ ; $(PERL_FIXUP_ROTATE) $@ + +cast_numeric_avx2_amd64.s: _lib/cast_numeric_avx2_amd64.s + $(C2GOASM) -a -f $^ $@ + +cast_numeric_sse4_amd64.s: _lib/cast_numeric_sse4_amd64.s + $(C2GOASM) -a -f $^ $@ + +constant_factor_avx2_amd64.s: _lib/constant_factor_avx2_amd64.s + $(C2GOASM) -a -f $^ $@ + +constant_factor_sse4_amd64.s: _lib/constant_factor_sse4_amd64.s + $(C2GOASM) -a -f $^ $@ + +base_arithmetic_avx2_amd64.s: _lib/base_arithmetic_avx2_amd64.s + $(C2GOASM) -a -f $^ $@ + +base_arithmetic_sse4_amd64.s: _lib/base_arithmetic_sse4_amd64.s + $(C2GOASM) -a -f $^ $@ + +scalar_comparison_avx2_amd64.s: _lib/scalar_comparison_avx2_amd64.s + $(C2GOASM) -a -f $^ $@ + +scalar_comparison_sse4_amd64.s: _lib/scalar_comparison_sse4_amd64.s + $(C2GOASM) -a -f $^ $@ + +clean: + rm -f $(INTEL_SOURCES) + rm -f $(addprefix _lib/,$(INTEL_SOURCES)) diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic.go new file mode 100644 index 0000000..cdaadb4 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic.go @@ -0,0 +1,897 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "math" + "math/bits" + + "github.com/JohnCGriffin/overflow" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "golang.org/x/exp/constraints" +) + +type ArithmeticOp int8 + +const ( + OpAdd ArithmeticOp = iota + OpSub + OpMul + OpDiv + OpAbsoluteValue + OpNegate + // NO SIMD for the following yet + OpSqrt + OpPower + OpSin + OpCos + OpTan + OpAsin + OpAcos + OpAtan + OpAtan2 + OpLn + OpLog10 + OpLog2 + OpLog1p + OpLogb + // End NO SIMD + OpSign + + // Checked versions will not use SIMD except for float32/float64 impls + OpAddChecked + OpSubChecked + OpMulChecked + OpDivChecked + OpAbsoluteValueChecked + OpNegateChecked + // No SIMD impls for the rest of these yet + OpSqrtChecked + OpPowerChecked + OpSinChecked + OpCosChecked + OpTanChecked + OpAsinChecked + OpAcosChecked + OpLnChecked + OpLog10Checked + OpLog2Checked + OpLog1pChecked + OpLogbChecked +) + +func mulWithOverflow[T exec.IntTypes | exec.UintTypes](a, b T) (T, error) { + min, max := MinOf[T](), MaxOf[T]() + switch { + case a > 0: + if b > 0 { + if a > (max / b) { + return 0, errOverflow + } + } else { + if b < (min / a) { + return 0, errOverflow + } + } + case b > 0: + if a < (min / b) { + return 0, errOverflow + } + default: + if (a != 0) && (b < (max / a)) { + return 0, errOverflow + } + } + + return a * b, nil +} + +func getGoArithmeticBinary[OutT, Arg0T, Arg1T exec.NumericTypes](op func(a Arg0T, b Arg1T, e *error) OutT) binaryOps[OutT, Arg0T, Arg1T] { + return binaryOps[OutT, Arg0T, Arg1T]{ + arrArr: func(_ *exec.KernelCtx, left []Arg0T, right []Arg1T, out []OutT) error { + var err error + for i := range out { + out[i] = op(left[i], right[i], &err) + } + return err + }, + arrScalar: func(_ *exec.KernelCtx, left []Arg0T, right Arg1T, out []OutT) error { + var err error + for i := range out { + out[i] = op(left[i], right, &err) + } + return err + }, + scalarArr: func(_ *exec.KernelCtx, left Arg0T, right []Arg1T, out []OutT) error { + var err error + for i := range out { + out[i] = op(left, right[i], &err) + } + return err + }, + } +} + +var ( + errOverflow = fmt.Errorf("%w: overflow", arrow.ErrInvalid) + errDivByZero = fmt.Errorf("%w: divide by zero", arrow.ErrInvalid) + errNegativeSqrt = fmt.Errorf("%w: square root of negative number", arrow.ErrInvalid) + errNegativePower = fmt.Errorf("%w: integers to negative integer powers are not allowed", arrow.ErrInvalid) + errDomainErr = fmt.Errorf("%w: domain error", arrow.ErrInvalid) + errLogZero = fmt.Errorf("%w: logarithm of zero", arrow.ErrInvalid) + errLogNeg = fmt.Errorf("%w: logarithm of negative number", arrow.ErrInvalid) +) + +func getGoArithmeticOpIntegral[InT, OutT exec.UintTypes | exec.IntTypes](op ArithmeticOp) exec.ArrayKernelExec { + switch op { + case OpAdd: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a + b) })) + case OpSub: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a - b) })) + case OpMul: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a * b) })) + case OpDiv: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) OutT { + if b == 0 { + *e = errDivByZero + return 0 + } + return OutT(a / b) + }) + case OpAbsoluteValue: + if ones := ^InT(0); ones < 0 { + shiftBy := (SizeOf[InT]() * 8) - 1 + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + // get abs without branching + for i, v := range arg { + // right shift (sign check) + mask := v >> shiftBy + // add the mask '+' and '-' balance + v = v + mask + // invert and return + out[i] = OutT(v ^ mask) + } + return nil + }) + } + + if SizeOf[InT]() == SizeOf[OutT]() { + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + in, output := exec.GetBytes(arg), exec.GetBytes(out) + copy(output, in) + return nil + }) + } else { + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + DoStaticCast(arg, out) + return nil + }) + } + case OpNegate: + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + out[i] = OutT(-v) + } + return nil + }) + case OpSign: + if ^InT(0) < 0 { + var neg int8 = -1 + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + neg := OutT(neg) + for i, v := range arg { + switch { + case v > 0: + out[i] = 1 + case v < 0: + out[i] = neg + default: + out[i] = 0 + } + } + return nil + }) + } + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + if v > 0 { + out[i] = 1 + } else { + out[i] = 0 + } + } + return nil + }) + case OpPower: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, err *error) OutT { + if b < 0 { + *err = errNegativePower + return 0 + } + // integer power + var ( + base = uint64(a) + exp = uint64(b) + pow uint64 = 1 + ) + + // right to left 0(logn) power + for exp != 0 { + if exp&1 != 0 { + pow *= base + } + base *= base + exp >>= 1 + } + return OutT(pow) + })) + case OpAddChecked: + shiftBy := (SizeOf[InT]() * 8) - 1 + // ie: uint32 does a >> 31 at the end, int32 does >> 30 + if ^InT(0) < 0 { + shiftBy-- + } + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) (out OutT) { + out = OutT(a + b) + // see math/bits/bits.go Add64 for explanation of logic + carry := (OutT(a&b) | (OutT(a|b) &^ out)) >> shiftBy + if carry > 0 { + *e = errOverflow + } + return + }) + case OpSubChecked: + shiftBy := (SizeOf[InT]() * 8) - 1 + // ie: uint32 does a >> 31 at the end, int32 does >> 30 + if ^InT(0) < 0 { + shiftBy-- + } + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) (out OutT) { + out = OutT(a - b) + // see math/bits/bits.go Sub64 for explanation of bit logic + carry := (OutT(^a&b) | (^OutT(a^b) & out)) >> shiftBy + if carry > 0 { + *e = errOverflow + } + return + }) + case OpMulChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, e *error) (out OutT) { + o, err := mulWithOverflow(a, b) + if err != nil { + *e = err + } + return OutT(o) + })) + case OpDivChecked: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) (out OutT) { + if b == 0 { + *e = errDivByZero + return + } + return OutT(a / b) + }) + case OpAbsoluteValueChecked: + if ones := ^InT(0); ones < 0 { + shiftBy := (SizeOf[InT]() * 8) - 1 + min := MinOf[InT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + if v == min { + return errOverflow + } + + // right shift (sign check) + mask := v >> shiftBy + // add the mask '+' and '-' balance + v = v + mask + // invert and return + out[i] = OutT(v ^ mask) + } + return nil + }) + } + if SizeOf[InT]() == SizeOf[OutT]() { + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + in, output := exec.GetBytes(arg), exec.GetBytes(out) + copy(output, in) + return nil + }) + } else { + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + DoStaticCast(arg, out) + return nil + }) + } + case OpNegateChecked: + if ones := ^InT(0); ones < 0 { + min := MinOf[InT]() + // signed + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + if v != min { + out[i] = OutT(-v) + } else { + return errOverflow + } + } + return nil + }) + } + case OpPowerChecked: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, base, exp InT, e *error) OutT { + if exp < 0 { + *e = errNegativePower + return 0 + } else if exp == 0 { + return 1 + } + + // left to right 0(logn) power with overflow checks + var ( + overflow bool + bitmask = uint64(1) << (63 - bits.LeadingZeros64(uint64(exp))) + pow InT = 1 + err error + ) + + for bitmask != 0 { + pow, err = mulWithOverflow(pow, pow) + overflow = overflow || (err != nil) + if uint64(exp)&bitmask != 0 { + pow, err = mulWithOverflow(pow, base) + overflow = overflow || (err != nil) + } + bitmask >>= 1 + } + if overflow { + *e = errOverflow + } + return OutT(pow) + }) + } + debug.Assert(false, "invalid arithmetic op") + return nil +} + +func getGoArithmeticOpFloating[InT, OutT constraints.Float](op ArithmeticOp) exec.ArrayKernelExec { + switch op { + case OpAdd, OpAddChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a + b) })) + case OpSub, OpSubChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a - b) })) + case OpMul, OpMulChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { return OutT(a * b) })) + case OpDiv: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) (out OutT) { + return OutT(a / b) + }) + case OpDivChecked: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, a, b InT, e *error) (out OutT) { + if b == 0 { + *e = errDivByZero + return + } + return OutT(a / b) + }) + case OpAbsoluteValue, OpAbsoluteValueChecked: + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + out[i] = OutT(math.Abs(float64(v))) + } + return nil + }) + case OpNegate, OpNegateChecked: + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + out[i] = OutT(-v) + } + return nil + }) + case OpSqrt: + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + out[i] = OutT(math.Sqrt(float64(v))) + } + return nil + }) + case OpSqrtChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if arg < 0 { + *e = errNegativeSqrt + return OutT(math.NaN()) + } + return OutT(math.Sqrt(float64(arg))) + }) + case OpSign: + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + for i, v := range arg { + switch { + case math.IsNaN(float64(v)): + out[i] = OutT(v) + case v == 0: + out[i] = 0 + case math.Signbit(float64(v)): + out[i] = -1 + default: + out[i] = 1 + } + } + return nil + }) + case OpPower, OpPowerChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { + return OutT(math.Pow(float64(a), float64(b))) + })) + case OpSin: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Sin(float64(v))) + } + return nil + }) + case OpSinChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if math.IsInf(float64(arg), 0) { + *e = errDomainErr + return OutT(arg) + } + return OutT(math.Sin(float64(arg))) + }) + case OpCos: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Cos(float64(v))) + } + return nil + }) + case OpCosChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if math.IsInf(float64(arg), 0) { + *e = errDomainErr + return OutT(arg) + } + return OutT(math.Cos(float64(arg))) + }) + case OpTan: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Tan(float64(v))) + } + return nil + }) + case OpTanChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if math.IsInf(float64(arg), 0) { + *e = errDomainErr + return OutT(arg) + } + return OutT(math.Tan(float64(arg))) + }) + case OpAsin: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Asin(float64(v))) + } + return nil + }) + case OpAsinChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if arg < -1 || arg > 1 { + *e = errDomainErr + return OutT(arg) + } + return OutT(math.Asin(float64(arg))) + }) + case OpAcos: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Acos(float64(v))) + } + return nil + }) + case OpAcosChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + if arg < -1 || arg > 1 { + *e = errDomainErr + return OutT(arg) + } + return OutT(math.Acos(float64(arg))) + }) + case OpAtan: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Atan(float64(v))) + } + return nil + }) + case OpAtan2: + return ScalarBinary(getGoArithmeticBinary(func(a, b InT, _ *error) OutT { + return OutT(math.Atan2(float64(a), float64(b))) + })) + case OpLn: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Log(float64(v))) + } + return nil + }) + case OpLnChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + switch { + case arg == 0: + *e = errLogZero + return OutT(arg) + case arg < 0: + *e = errLogNeg + return OutT(arg) + } + + return OutT(math.Log(float64(arg))) + }) + case OpLog10: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Log10(float64(v))) + } + return nil + }) + case OpLog10Checked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + switch { + case arg == 0: + *e = errLogZero + return OutT(arg) + case arg < 0: + *e = errLogNeg + return OutT(arg) + } + + return OutT(math.Log10(float64(arg))) + }) + case OpLog2: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Log2(float64(v))) + } + return nil + }) + case OpLog2Checked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + switch { + case arg == 0: + *e = errLogZero + return OutT(arg) + case arg < 0: + *e = errLogNeg + return OutT(arg) + } + + return OutT(math.Log2(float64(arg))) + }) + case OpLog1p: + return ScalarUnary(func(_ *exec.KernelCtx, vals []InT, out []OutT) error { + for i, v := range vals { + out[i] = OutT(math.Log1p(float64(v))) + } + return nil + }) + case OpLog1pChecked: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg InT, e *error) OutT { + switch { + case arg == -1: + *e = errLogZero + return OutT(arg) + case arg < -1: + *e = errLogNeg + return OutT(arg) + } + + return OutT(math.Log1p(float64(arg))) + }) + case OpLogb: + return ScalarBinary(getGoArithmeticBinary(func(x, base InT, _ *error) OutT { + if x == 0 { + if base == 0 || base < 0 { + return OutT(math.NaN()) + } else { + return OutT(math.Inf(-1)) + } + } else if x < 0 { + return OutT(math.NaN()) + } + return OutT(math.Log(float64(x)) / math.Log(float64(base))) + })) + case OpLogbChecked: + return ScalarBinaryNotNull((func(_ *exec.KernelCtx, x, base InT, e *error) OutT { + if x == 0 || base == 0 { + *e = errLogZero + return OutT(x) + } else if x < 0 || base < 0 { + *e = errLogNeg + return OutT(x) + } + return OutT(math.Log(float64(x)) / math.Log(float64(base))) + })) + } + debug.Assert(false, "invalid arithmetic op") + return nil +} + +func timeDurationOp[OutT, Arg0T, Arg1T ~int32 | ~int64](multiple int64, op ArithmeticOp) exec.ArrayKernelExec { + switch op { + case OpAdd: + return ScalarBinary(getGoArithmeticBinary(func(a Arg0T, b Arg1T, e *error) OutT { + result := OutT(a) + OutT(b) + if result < 0 || multiple <= int64(result) { + *e = fmt.Errorf("%w: %d is not within acceptable range of [0, %d) s", arrow.ErrInvalid, result, multiple) + } + return result + })) + case OpSub: + return ScalarBinary(getGoArithmeticBinary(func(a Arg0T, b Arg1T, e *error) OutT { + result := OutT(a) - OutT(b) + if result < 0 || multiple <= int64(result) { + *e = fmt.Errorf("%w: %d is not within acceptable range of [0, %d) s", arrow.ErrInvalid, result, multiple) + } + return result + })) + case OpAddChecked: + shiftBy := (SizeOf[OutT]() * 8) - 1 + // ie: uint32 does a >> 31 at the end, int32 does >> 30 + if ^OutT(0) < 0 { + shiftBy-- + } + return ScalarBinary(getGoArithmeticBinary(func(a Arg0T, b Arg1T, e *error) (result OutT) { + left, right := OutT(a), OutT(b) + result = left + right + carry := ((left & right) | ((left | right) &^ result)) >> shiftBy + if carry > 0 { + *e = errOverflow + return + } + if result < 0 || multiple <= int64(result) { + *e = fmt.Errorf("%w: %d is not within acceptable range of [0, %d) s", arrow.ErrInvalid, result, multiple) + } + return + })) + case OpSubChecked: + shiftBy := (SizeOf[OutT]() * 8) - 1 + // ie: uint32 does a >> 31 at the end, int32 does >> 30 + if ^OutT(0) < 0 { + shiftBy-- + } + return ScalarBinary(getGoArithmeticBinary(func(a Arg0T, b Arg1T, e *error) (result OutT) { + left, right := OutT(a), OutT(b) + result = left - right + carry := ((^left & right) | (^(left ^ right) & result)) >> shiftBy + if carry > 0 { + *e = errOverflow + return + } + if result < 0 || multiple <= int64(result) { + *e = fmt.Errorf("%w: %d is not within acceptable range of [0, %d) s", arrow.ErrInvalid, result, multiple) + } + return + })) + } + return nil +} + +func SubtractDate32(op ArithmeticOp) exec.ArrayKernelExec { + const secondsPerDay = 86400 + switch op { + case OpSub: + return ScalarBinary(getGoArithmeticBinary(func(a, b arrow.Time32, e *error) (result arrow.Duration) { + return arrow.Duration((a - b) * secondsPerDay) + })) + case OpSubChecked: + return ScalarBinary(getGoArithmeticBinary(func(a, b arrow.Time32, e *error) (result arrow.Duration) { + result = arrow.Duration(a) - arrow.Duration(b) + val, ok := overflow.Mul64(int64(result), secondsPerDay) + if !ok { + *e = errOverflow + } + return arrow.Duration(val) + })) + } + panic("invalid op for subtractDate32") +} + +type decOps[T decimal128.Num | decimal256.Num] struct { + Add func(T, T) T + Sub func(T, T) T + Div func(T, T) T + Mul func(T, T) T + Abs func(T) T + Neg func(T) T + Sign func(T) int +} + +var dec128Ops = decOps[decimal128.Num]{ + Add: func(a, b decimal128.Num) decimal128.Num { return a.Add(b) }, + Sub: func(a, b decimal128.Num) decimal128.Num { return a.Sub(b) }, + Mul: func(a, b decimal128.Num) decimal128.Num { return a.Mul(b) }, + Div: func(a, b decimal128.Num) decimal128.Num { + a, _ = a.Div(b) + return a + }, + Abs: func(a decimal128.Num) decimal128.Num { return a.Abs() }, + Neg: func(a decimal128.Num) decimal128.Num { return a.Negate() }, + Sign: func(a decimal128.Num) int { return a.Sign() }, +} + +var dec256Ops = decOps[decimal256.Num]{ + Add: func(a, b decimal256.Num) decimal256.Num { return a.Add(b) }, + Sub: func(a, b decimal256.Num) decimal256.Num { return a.Sub(b) }, + Mul: func(a, b decimal256.Num) decimal256.Num { return a.Mul(b) }, + Div: func(a, b decimal256.Num) decimal256.Num { + a, _ = a.Div(b) + return a + }, + Abs: func(a decimal256.Num) decimal256.Num { return a.Abs() }, + Neg: func(a decimal256.Num) decimal256.Num { return a.Negate() }, + Sign: func(a decimal256.Num) int { return a.Sign() }, +} + +func getArithmeticOpDecimalImpl[T decimal128.Num | decimal256.Num](op ArithmeticOp, fns decOps[T]) exec.ArrayKernelExec { + if op >= OpAddChecked { + op -= OpAddChecked // decimal128/256 checked is the same as unchecked + } + + switch op { + case OpAdd: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, arg0, arg1 T, _ *error) T { + return fns.Add(arg0, arg1) + }) + case OpSub: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, arg0, arg1 T, _ *error) T { + return fns.Sub(arg0, arg1) + }) + case OpMul: + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, arg0, arg1 T, _ *error) T { + return fns.Mul(arg0, arg1) + }) + case OpDiv: + var z T + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, arg0, arg1 T, e *error) (out T) { + if arg1 == z { + *e = errDivByZero + return + } + return fns.Div(arg0, arg1) + }) + case OpAbsoluteValue: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg T, _ *error) T { + return fns.Abs(arg) + }) + case OpNegate: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg T, _ *error) T { + return fns.Neg(arg) + }) + case OpSign: + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg T, _ *error) int64 { + return int64(fns.Sign(arg)) + }) + } + debug.Assert(false, "unimplemented arithemtic op") + return nil +} + +func getArithmeticDecimal[T decimal128.Num | decimal256.Num](op ArithmeticOp) exec.ArrayKernelExec { + var def T + switch any(def).(type) { + case decimal128.Num: + return getArithmeticOpDecimalImpl(op, dec128Ops) + case decimal256.Num: + return getArithmeticOpDecimalImpl(op, dec256Ops) + } + panic("should never get here") +} + +func ArithmeticExecSameType(ty arrow.Type, op ArithmeticOp) exec.ArrayKernelExec { + switch ty { + case arrow.INT8: + return getArithmeticOpIntegral[int8, int8](op) + case arrow.UINT8: + return getArithmeticOpIntegral[uint8, uint8](op) + case arrow.INT16: + return getArithmeticOpIntegral[int16, int16](op) + case arrow.UINT16: + return getArithmeticOpIntegral[uint16, uint16](op) + case arrow.INT32, arrow.TIME32: + return getArithmeticOpIntegral[int32, int32](op) + case arrow.UINT32: + return getArithmeticOpIntegral[uint32, uint32](op) + case arrow.INT64, arrow.TIME64, arrow.DATE64, arrow.TIMESTAMP, arrow.DURATION: + return getArithmeticOpIntegral[int64, int64](op) + case arrow.UINT64: + return getArithmeticOpIntegral[uint64, uint64](op) + case arrow.FLOAT32: + return getArithmeticOpFloating[float32, float32](op) + case arrow.FLOAT64: + return getArithmeticOpFloating[float64, float64](op) + } + debug.Assert(false, "invalid arithmetic type") + return nil +} + +func arithmeticExec[InT exec.IntTypes | exec.UintTypes](oty arrow.Type, op ArithmeticOp) exec.ArrayKernelExec { + switch oty { + case arrow.INT8: + return getArithmeticOpIntegral[InT, int8](op) + case arrow.UINT8: + return getArithmeticOpIntegral[InT, uint8](op) + case arrow.INT16: + return getArithmeticOpIntegral[InT, int16](op) + case arrow.UINT16: + return getArithmeticOpIntegral[InT, uint16](op) + case arrow.INT32, arrow.TIME32: + return getArithmeticOpIntegral[InT, int32](op) + case arrow.UINT32: + return getArithmeticOpIntegral[InT, uint32](op) + case arrow.INT64, arrow.TIME64, arrow.DATE64, arrow.TIMESTAMP, arrow.DURATION: + return getArithmeticOpIntegral[InT, int64](op) + case arrow.UINT64: + return getArithmeticOpIntegral[InT, uint64](op) + } + debug.Assert(false, "arithmetic integral to floating not implemented") + return nil +} + +func ArithmeticExec(ity, oty arrow.Type, op ArithmeticOp) exec.ArrayKernelExec { + if ity == oty { + return ArithmeticExecSameType(ity, op) + } + + switch ity { + case arrow.INT8: + return arithmeticExec[int8](oty, op) + case arrow.UINT8: + return arithmeticExec[uint8](oty, op) + case arrow.INT16: + return arithmeticExec[int16](oty, op) + case arrow.UINT16: + return arithmeticExec[uint16](oty, op) + case arrow.INT32, arrow.TIME32: + return arithmeticExec[int32](oty, op) + case arrow.UINT32: + return arithmeticExec[uint32](oty, op) + case arrow.INT64, arrow.TIME64, arrow.DATE64, arrow.TIMESTAMP, arrow.DURATION: + return arithmeticExec[int64](oty, op) + case arrow.UINT64: + return arithmeticExec[uint64](oty, op) + case arrow.FLOAT32: + if oty == arrow.FLOAT32 { + return getArithmeticOpFloating[float32, float32](op) + } + return getArithmeticOpFloating[float32, float64](op) + case arrow.FLOAT64: + if oty == arrow.FLOAT32 { + return getArithmeticOpFloating[float64, float32](op) + } + return getArithmeticOpFloating[float64, float64](op) + } + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_amd64.go new file mode 100644 index 0000000..22a5ded --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_amd64.go @@ -0,0 +1,151 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "golang.org/x/exp/constraints" + "golang.org/x/sys/cpu" +) + +func getAvx2ArithmeticBinaryNumeric[T exec.NumericTypes](op ArithmeticOp) binaryOps[T, T, T] { + typ := exec.GetType[T]() + return binaryOps[T, T, T]{ + arrArr: func(_ *exec.KernelCtx, Arg0, Arg1, Out []T) error { + arithmeticAvx2(typ, op, exec.GetBytes(Arg0), exec.GetBytes(Arg1), exec.GetBytes(Out), len(Arg0)) + return nil + }, + arrScalar: func(_ *exec.KernelCtx, Arg0 []T, Arg1 T, Out []T) error { + arithmeticArrScalarAvx2(typ, op, exec.GetBytes(Arg0), unsafe.Pointer(&Arg1), exec.GetBytes(Out), len(Arg0)) + return nil + }, + scalarArr: func(_ *exec.KernelCtx, Arg0 T, Arg1, Out []T) error { + arithmeticScalarArrAvx2(typ, op, unsafe.Pointer(&Arg0), exec.GetBytes(Arg1), exec.GetBytes(Out), len(Arg1)) + return nil + }, + } +} + +func getSSE4ArithmeticBinaryNumeric[T exec.NumericTypes](op ArithmeticOp) binaryOps[T, T, T] { + typ := exec.GetType[T]() + return binaryOps[T, T, T]{ + arrArr: func(_ *exec.KernelCtx, Arg0, Arg1, Out []T) error { + arithmeticSSE4(typ, op, exec.GetBytes(Arg0), exec.GetBytes(Arg1), exec.GetBytes(Out), len(Arg0)) + return nil + }, + arrScalar: func(_ *exec.KernelCtx, Arg0 []T, Arg1 T, Out []T) error { + arithmeticArrScalarSSE4(typ, op, exec.GetBytes(Arg0), unsafe.Pointer(&Arg1), exec.GetBytes(Out), len(Arg0)) + return nil + }, + scalarArr: func(_ *exec.KernelCtx, Arg0 T, Arg1, Out []T) error { + arithmeticScalarArrSSE4(typ, op, unsafe.Pointer(&Arg0), exec.GetBytes(Arg1), exec.GetBytes(Out), len(Arg1)) + return nil + }, + } +} + +func getArithmeticOpIntegral[InT, OutT exec.UintTypes | exec.IntTypes](op ArithmeticOp) exec.ArrayKernelExec { + if cpu.X86.HasAVX2 { + switch op { + case OpAdd, OpSub, OpMul: + return ScalarBinary(getAvx2ArithmeticBinaryNumeric[InT](op)) + case OpAbsoluteValue, OpNegate: + typ := exec.GetType[InT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg, out []InT) error { + arithmeticUnaryAvx2(typ, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + case OpSign: + inType, outType := exec.GetType[InT](), exec.GetType[OutT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + arithmeticUnaryDiffTypesAvx2(inType, outType, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + } + } else if cpu.X86.HasSSE42 { + switch op { + case OpAdd, OpSub, OpMul: + return ScalarBinary(getSSE4ArithmeticBinaryNumeric[InT](op)) + case OpAbsoluteValue, OpNegate: + typ := exec.GetType[InT]() + return ScalarUnary(func(ctx *exec.KernelCtx, arg, out []InT) error { + arithmeticUnarySSE4(typ, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + case OpSign: + inType, outType := exec.GetType[InT](), exec.GetType[OutT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg []InT, out []OutT) error { + arithmeticUnaryDiffTypesSSE4(inType, outType, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + } + } + + // no SIMD for POWER or SQRT functions + // integral checked funcs need to use NotNull versions + return getGoArithmeticOpIntegral[InT, OutT](op) +} + +func getArithmeticOpFloating[InT, OutT constraints.Float](op ArithmeticOp) exec.ArrayKernelExec { + if cpu.X86.HasAVX2 { + switch op { + case OpAdd, OpSub, OpAddChecked, OpSubChecked, OpMul, OpMulChecked: + if exec.GetType[InT]() != exec.GetType[OutT]() { + debug.Assert(false, "not implemented") + return nil + } + return ScalarBinary(getAvx2ArithmeticBinaryNumeric[InT](op)) + case OpAbsoluteValue, OpAbsoluteValueChecked, OpNegate, OpNegateChecked, OpSign: + if exec.GetType[InT]() != exec.GetType[OutT]() { + debug.Assert(false, "not implemented") + return nil + } + typ := exec.GetType[InT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg, out []InT) error { + arithmeticUnaryAvx2(typ, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + } + } else if cpu.X86.HasSSE42 { + switch op { + case OpAdd, OpSub, OpAddChecked, OpSubChecked, OpMul, OpMulChecked: + if exec.GetType[InT]() != exec.GetType[OutT]() { + debug.Assert(false, "not implemented") + return nil + } + return ScalarBinary(getSSE4ArithmeticBinaryNumeric[InT](op)) + case OpAbsoluteValue, OpAbsoluteValueChecked, OpNegate, OpNegateChecked, OpSign: + if exec.GetType[InT]() != exec.GetType[OutT]() { + debug.Assert(false, "not implemented") + return nil + } + typ := exec.GetType[InT]() + return ScalarUnary(func(_ *exec.KernelCtx, arg, out []InT) error { + arithmeticUnarySSE4(typ, op, exec.GetBytes(arg), exec.GetBytes(out), len(arg)) + return nil + }) + } + } + + // no SIMD for POWER or SQRT functions + return getGoArithmeticOpFloating[InT, OutT](op) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.go new file mode 100644 index 0000000..79bddf0 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.go @@ -0,0 +1,60 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _arithmetic_unary_same_types_avx2(typ int, op int8, input, output unsafe.Pointer, len int) + +func arithmeticUnaryAvx2(typ arrow.Type, op ArithmeticOp, input, out []byte, len int) { + _arithmetic_unary_same_types_avx2(int(typ), int8(op), unsafe.Pointer(&input[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_binary_avx2(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticAvx2(typ arrow.Type, op ArithmeticOp, left, right, out []byte, len int) { + _arithmetic_binary_avx2(int(typ), int8(op), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_arr_scalar_avx2(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticArrScalarAvx2(typ arrow.Type, op ArithmeticOp, left []byte, right unsafe.Pointer, out []byte, len int) { + _arithmetic_arr_scalar_avx2(int(typ), int8(op), unsafe.Pointer(&left[0]), right, unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_scalar_arr_avx2(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticScalarArrAvx2(typ arrow.Type, op ArithmeticOp, left unsafe.Pointer, right, out []byte, len int) { + _arithmetic_scalar_arr_avx2(int(typ), int8(op), left, unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_unary_diff_type_avx2(itype, otype int, op int8, input, output unsafe.Pointer, len int) + +func arithmeticUnaryDiffTypesAvx2(ityp, otyp arrow.Type, op ArithmeticOp, input, output []byte, len int) { + _arithmetic_unary_diff_type_avx2(int(ityp), int(otyp), int8(op), unsafe.Pointer(&input[0]), unsafe.Pointer(&output[0]), len) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.s new file mode 100644 index 0000000..420b64d --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_avx2_amd64.s @@ -0,0 +1,35529 @@ +//+build !noasm !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +DATA LCDATA1<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x008(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x010(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x018(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA1<>(SB), 8, $32 + +TEXT ·_arithmetic_binary_avx2(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA1<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB0_11 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB0_21 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB0_287 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB0_825 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_559 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_6 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_602 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_614 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_626 + WORD $0xf631 // xor esi, esi + +LBB0_631: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_633 + +LBB0_632: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + LONG $0xb23caf0f // imul edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_632 + +LBB0_633: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_634: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_634 + JMP LBB0_825 + +LBB0_11: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB0_154 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB0_420 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB0_825 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_695 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_16 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_738 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_750 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_762 + WORD $0xf631 // xor esi, esi + +LBB0_767: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_769 + +LBB0_768: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + LONG $0xb23caf0f // imul edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_768 + +LBB0_769: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_770: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_770 + JMP LBB0_825 + +LBB0_21: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_34 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_23 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_67 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_91 + WORD $0xf631 // xor esi, esi + JMP LBB0_96 + +LBB0_287: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_300 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_289 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_333 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_345 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_357 + WORD $0xf631 // xor esi, esi + +LBB0_362: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_364 + +LBB0_363: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0x3c2b; BYTE $0xb1 // sub edi, dword [rcx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_363 + +LBB0_364: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_365: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_365 + JMP LBB0_825 + +LBB0_154: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_167 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_156 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_200 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_212 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_224 + WORD $0xf631 // xor esi, esi + JMP LBB0_229 + +LBB0_420: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_433 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_422 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_466 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_478 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_490 + WORD $0xf631 // xor esi, esi + +LBB0_495: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_497 + +LBB0_496: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0x3c2b; BYTE $0xb1 // sub edi, dword [rcx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_496 + +LBB0_497: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_498: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_498 + JMP LBB0_825 + +LBB0_559: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_560 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_656 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_668 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_680 + WORD $0xf631 // xor esi, esi + +LBB0_685: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_687 + +LBB0_686: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0459fbc5; BYTE $0xf2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_686 + +LBB0_687: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_688: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0459fbc5; BYTE $0xf2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f1 // vmovsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x4459fbc5; WORD $0x08f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f1 // vmovsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x4459fbc5; WORD $0x10f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f1 // vmovsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x4459fbc5; WORD $0x18f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_688 + JMP LBB0_825 + +LBB0_695: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_696 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_792 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_804 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_816 + WORD $0xf631 // xor esi, esi + +LBB0_821: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_823 + +LBB0_822: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0459fbc5; BYTE $0xf2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_822 + +LBB0_823: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_824: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0459fbc5; BYTE $0xf2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f1 // vmovsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x4459fbc5; WORD $0x08f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f1 // vmovsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x4459fbc5; WORD $0x10f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f1 // vmovsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x4459fbc5; WORD $0x18f2 // vmulsd xmm0, xmm0, qword [rdx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_824 + JMP LBB0_825 + +LBB0_34: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_35 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_121 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_133 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_145 + WORD $0xf631 // xor esi, esi + JMP LBB0_150 + +LBB0_300: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_301 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_387 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_399 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_411 + WORD $0xf631 // xor esi, esi + +LBB0_416: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_418 + +LBB0_417: + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0x045cfbc5; BYTE $0xf1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_417 + +LBB0_418: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_419: + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0x045cfbc5; BYTE $0xf1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f2 // vmovsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x445cfbc5; WORD $0x08f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f2 // vmovsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x445cfbc5; WORD $0x10f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f2 // vmovsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x445cfbc5; WORD $0x18f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_419 + JMP LBB0_825 + +LBB0_167: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_168 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_254 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_266 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_278 + WORD $0xf631 // xor esi, esi + JMP LBB0_283 + +LBB0_433: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_434 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_520 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_532 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_544 + WORD $0xf631 // xor esi, esi + +LBB0_549: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_551 + +LBB0_550: + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0x045cfbc5; BYTE $0xf1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_550 + +LBB0_551: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_552: + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0x045cfbc5; BYTE $0xf1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f2 // vmovsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x445cfbc5; WORD $0x08f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f2 // vmovsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x445cfbc5; WORD $0x10f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f2 // vmovsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x445cfbc5; WORD $0x18f1 // vsubsd xmm0, xmm0, qword [rcx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_552 + JMP LBB0_825 + +LBB0_6: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_571 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_588 + WORD $0xff31 // xor edi, edi + JMP LBB0_598 + +LBB0_16: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_707 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_724 + WORD $0xff31 // xor edi, edi + JMP LBB0_734 + +LBB0_23: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_46 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_58 + WORD $0xf631 // xor esi, esi + JMP LBB0_63 + +LBB0_289: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_312 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_324 + WORD $0xf631 // xor esi, esi + JMP LBB0_329 + +LBB0_156: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_179 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_191 + WORD $0xf631 // xor esi, esi + JMP LBB0_196 + +LBB0_422: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_445 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_457 + WORD $0xf631 // xor esi, esi + JMP LBB0_462 + +LBB0_560: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_635 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_647 + WORD $0xf631 // xor esi, esi + JMP LBB0_652 + +LBB0_696: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_771 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_783 + WORD $0xf631 // xor esi, esi + JMP LBB0_788 + +LBB0_35: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_100 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_112 + WORD $0xf631 // xor esi, esi + JMP LBB0_117 + +LBB0_301: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_366 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_378 + WORD $0xf631 // xor esi, esi + JMP LBB0_383 + +LBB0_168: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_233 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_245 + WORD $0xf631 // xor esi, esi + JMP LBB0_250 + +LBB0_434: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_499 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_825 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_511 + WORD $0xf631 // xor esi, esi + JMP LBB0_516 + +LBB0_602: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_605 + WORD $0xf631 // xor esi, esi + +LBB0_610: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_612 + +LBB0_611: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x3caf0f66; BYTE $0x72 // imul di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_611 + +LBB0_612: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_613: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_613 + JMP LBB0_825 + +LBB0_614: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_617 + WORD $0xf631 // xor esi, esi + +LBB0_622: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_624 + +LBB0_623: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x3caf0f66; BYTE $0x72 // imul di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_623 + +LBB0_624: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_625: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_625 + JMP LBB0_825 + +LBB0_738: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_741 + WORD $0xf631 // xor esi, esi + +LBB0_746: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_748 + +LBB0_747: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x3caf0f66; BYTE $0x72 // imul di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_747 + +LBB0_748: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_749: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_749 + JMP LBB0_825 + +LBB0_750: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_753 + WORD $0xf631 // xor esi, esi + +LBB0_758: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_760 + +LBB0_759: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x3caf0f66; BYTE $0x72 // imul di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_759 + +LBB0_760: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_761: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_761 + JMP LBB0_825 + +LBB0_67: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_70 + WORD $0xf631 // xor esi, esi + JMP LBB0_75 + +LBB0_79: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_82 + WORD $0xf631 // xor esi, esi + JMP LBB0_87 + +LBB0_333: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_336 + WORD $0xf631 // xor esi, esi + +LBB0_341: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_343 + +LBB0_342: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_342 + +LBB0_343: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_344: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_344 + JMP LBB0_825 + +LBB0_345: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_348 + WORD $0xf631 // xor esi, esi + +LBB0_353: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_355 + +LBB0_354: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_354 + +LBB0_355: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_356: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_356 + JMP LBB0_825 + +LBB0_200: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_203 + WORD $0xf631 // xor esi, esi + JMP LBB0_208 + +LBB0_212: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_215 + WORD $0xf631 // xor esi, esi + JMP LBB0_220 + +LBB0_466: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_469 + WORD $0xf631 // xor esi, esi + +LBB0_474: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_476 + +LBB0_475: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_475 + +LBB0_476: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_477: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_477 + JMP LBB0_825 + +LBB0_478: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JAE LBB0_481 + WORD $0xf631 // xor esi, esi + +LBB0_486: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_488 + +LBB0_487: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_487 + +LBB0_488: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_489: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_489 + JMP LBB0_825 + +LBB0_656: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_659 + WORD $0xf631 // xor esi, esi + +LBB0_664: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_666 + +LBB0_665: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0x3caf0f48; BYTE $0xf2 // imul rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_665 + +LBB0_666: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_667: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0x04af0f48; BYTE $0xf2 // imul rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0x44af0f48; WORD $0x08f2 // imul rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0x44af0f48; WORD $0x10f2 // imul rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0x44af0f48; WORD $0x18f2 // imul rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_667 + JMP LBB0_825 + +LBB0_668: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_671 + WORD $0xf631 // xor esi, esi + +LBB0_676: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_678 + +LBB0_677: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0459fac5; BYTE $0xb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_677 + +LBB0_678: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_679: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0459fac5; BYTE $0xb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b1 // vmovss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x4459fac5; WORD $0x04b2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b1 // vmovss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x4459fac5; WORD $0x08b2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb1 // vmovss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x4459fac5; WORD $0x0cb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_679 + JMP LBB0_825 + +LBB0_792: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_795 + WORD $0xf631 // xor esi, esi + +LBB0_800: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_802 + +LBB0_801: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0x3caf0f48; BYTE $0xf2 // imul rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_801 + +LBB0_802: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_803: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0x04af0f48; BYTE $0xf2 // imul rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0x44af0f48; WORD $0x08f2 // imul rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0x44af0f48; WORD $0x10f2 // imul rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0x44af0f48; WORD $0x18f2 // imul rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_803 + JMP LBB0_825 + +LBB0_804: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_807 + WORD $0xf631 // xor esi, esi + +LBB0_812: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_814 + +LBB0_813: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0459fac5; BYTE $0xb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_813 + +LBB0_814: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_815: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0459fac5; BYTE $0xb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b1 // vmovss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x4459fac5; WORD $0x04b2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b1 // vmovss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x4459fac5; WORD $0x08b2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb1 // vmovss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x4459fac5; WORD $0x0cb2 // vmulss xmm0, xmm0, dword [rdx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_815 + JMP LBB0_825 + +LBB0_121: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_124 + WORD $0xf631 // xor esi, esi + JMP LBB0_129 + +LBB0_133: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_136 + WORD $0xf631 // xor esi, esi + JMP LBB0_141 + +LBB0_387: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_390 + WORD $0xf631 // xor esi, esi + +LBB0_395: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_397 + +LBB0_396: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + LONG $0xf13c2b48 // sub rdi, qword [rcx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_396 + +LBB0_397: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_398: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_398 + JMP LBB0_825 + +LBB0_399: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_402 + WORD $0xf631 // xor esi, esi + +LBB0_407: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_409 + +LBB0_408: + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0x045cfac5; BYTE $0xb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_408 + +LBB0_409: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_410: + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0x045cfac5; BYTE $0xb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b2 // vmovss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x445cfac5; WORD $0x04b1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b2 // vmovss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x445cfac5; WORD $0x08b1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb2 // vmovss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x445cfac5; WORD $0x0cb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_410 + JMP LBB0_825 + +LBB0_254: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_257 + WORD $0xf631 // xor esi, esi + JMP LBB0_262 + +LBB0_266: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_269 + WORD $0xf631 // xor esi, esi + JMP LBB0_274 + +LBB0_520: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_523 + WORD $0xf631 // xor esi, esi + +LBB0_528: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_530 + +LBB0_529: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + LONG $0xf13c2b48 // sub rdi, qword [rcx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_529 + +LBB0_530: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_531: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_531 + JMP LBB0_825 + +LBB0_532: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_535 + WORD $0xf631 // xor esi, esi + +LBB0_540: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_542 + +LBB0_541: + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0x045cfac5; BYTE $0xb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_541 + +LBB0_542: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_543: + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0x045cfac5; BYTE $0xb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b2 // vmovss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x445cfac5; WORD $0x04b1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b2 // vmovss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x445cfac5; WORD $0x08b1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb2 // vmovss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x445cfac5; WORD $0x0cb1 // vsubss xmm0, xmm0, dword [rcx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_543 + JMP LBB0_825 + +LBB0_571: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_574 + WORD $0xff31 // xor edi, edi + JMP LBB0_584 + +LBB0_707: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_710 + WORD $0xff31 // xor edi, edi + JMP LBB0_720 + +LBB0_46: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_49 + WORD $0xf631 // xor esi, esi + JMP LBB0_54 + +LBB0_312: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_315 + WORD $0xf631 // xor esi, esi + JMP LBB0_320 + +LBB0_179: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_182 + WORD $0xf631 // xor esi, esi + JMP LBB0_187 + +LBB0_445: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JAE LBB0_448 + WORD $0xf631 // xor esi, esi + JMP LBB0_453 + +LBB0_635: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_638 + WORD $0xf631 // xor esi, esi + JMP LBB0_643 + +LBB0_771: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_774 + WORD $0xf631 // xor esi, esi + JMP LBB0_779 + +LBB0_100: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_103 + WORD $0xf631 // xor esi, esi + JMP LBB0_108 + +LBB0_366: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_369 + WORD $0xf631 // xor esi, esi + JMP LBB0_374 + +LBB0_233: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_236 + WORD $0xf631 // xor esi, esi + JMP LBB0_241 + +LBB0_499: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_825 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_502 + WORD $0xf631 // xor esi, esi + JMP LBB0_507 + +LBB0_91: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_96 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_96 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_94: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x04fefdc5; BYTE $0xba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4cfef5c5; WORD $0x20ba // vpaddd ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x54feedc5; WORD $0x40ba // vpaddd ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5cfee5c5; WORD $0x60ba // vpaddd ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_94 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_96: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_98 + +LBB0_97: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0x3c03; BYTE $0xb2 // add edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_97 + +LBB0_98: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_99: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_99 + JMP LBB0_825 + +LBB0_224: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_229 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_229 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_227: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x04fefdc5; BYTE $0xba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4cfef5c5; WORD $0x20ba // vpaddd ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x54feedc5; WORD $0x40ba // vpaddd ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5cfee5c5; WORD $0x60ba // vpaddd ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_227 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_229: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_231 + +LBB0_230: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0x3c03; BYTE $0xb2 // add edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_230 + +LBB0_231: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_232: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_232 + JMP LBB0_825 + +LBB0_145: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_150 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_150 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_148: + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20f9 // vmovupd ymm1, yword [rcx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40f9 // vmovupd ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60f9 // vmovupd ymm3, yword [rcx + 8*rdi + 96] + LONG $0x0458fdc5; BYTE $0xfa // vaddpd ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4c58f5c5; WORD $0x20fa // vaddpd ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5458edc5; WORD $0x40fa // vaddpd ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c58e5c5; WORD $0x60fa // vaddpd ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_148 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_150: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_152 + +LBB0_151: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0458fbc5; BYTE $0xf2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_151 + +LBB0_152: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_153: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0458fbc5; BYTE $0xf2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f1 // vmovsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x4458fbc5; WORD $0x08f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f1 // vmovsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x4458fbc5; WORD $0x10f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f1 // vmovsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x4458fbc5; WORD $0x18f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_153 + JMP LBB0_825 + +LBB0_278: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_283 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_283 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_281: + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20f9 // vmovupd ymm1, yword [rcx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40f9 // vmovupd ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60f9 // vmovupd ymm3, yword [rcx + 8*rdi + 96] + LONG $0x0458fdc5; BYTE $0xfa // vaddpd ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4c58f5c5; WORD $0x20fa // vaddpd ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5458edc5; WORD $0x40fa // vaddpd ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c58e5c5; WORD $0x60fa // vaddpd ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_281 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_283: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_285 + +LBB0_284: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0458fbc5; BYTE $0xf2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_284 + +LBB0_285: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_286: + LONG $0x0410fbc5; BYTE $0xf1 // vmovsd xmm0, qword [rcx + 8*rsi] + LONG $0x0458fbc5; BYTE $0xf2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi] + LONG $0x117bc1c4; WORD $0xf004 // vmovsd qword [r8 + 8*rsi], xmm0 + LONG $0x4410fbc5; WORD $0x08f1 // vmovsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x4458fbc5; WORD $0x08f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 8] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x08 // vmovsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x4410fbc5; WORD $0x10f1 // vmovsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x4458fbc5; WORD $0x10f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 16] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x10 // vmovsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x4410fbc5; WORD $0x18f1 // vmovsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x4458fbc5; WORD $0x18f2 // vaddsd xmm0, xmm0, qword [rdx + 8*rsi + 24] + LONG $0x117bc1c4; WORD $0xf044; BYTE $0x18 // vmovsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_286 + JMP LBB0_825 + +LBB0_588: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_598 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_598 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB0_592 + WORD $0xf631 // xor esi, esi + JMP LBB0_594 + +LBB0_724: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_734 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_734 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB0_728 + WORD $0xf631 // xor esi, esi + JMP LBB0_730 + +LBB0_58: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_63 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_63 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_61: + LONG $0x046ffec5; BYTE $0x39 // vmovdqu ymm0, yword [rcx + rdi] + LONG $0x4c6ffec5; WORD $0x2039 // vmovdqu ymm1, yword [rcx + rdi + 32] + LONG $0x546ffec5; WORD $0x4039 // vmovdqu ymm2, yword [rcx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x6039 // vmovdqu ymm3, yword [rcx + rdi + 96] + LONG $0x04fcfdc5; BYTE $0x3a // vpaddb ymm0, ymm0, yword [rdx + rdi] + LONG $0x4cfcf5c5; WORD $0x203a // vpaddb ymm1, ymm1, yword [rdx + rdi + 32] + LONG $0x54fcedc5; WORD $0x403a // vpaddb ymm2, ymm2, yword [rdx + rdi + 64] + LONG $0x5cfce5c5; WORD $0x603a // vpaddb ymm3, ymm3, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_61 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_63: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_65 + +LBB0_64: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_64 + +LBB0_65: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_66: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_66 + JMP LBB0_825 + +LBB0_324: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_329 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_329 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_327: + LONG $0x046ffec5; BYTE $0x3a // vmovdqu ymm0, yword [rdx + rdi] + LONG $0x4c6ffec5; WORD $0x203a // vmovdqu ymm1, yword [rdx + rdi + 32] + LONG $0x546ffec5; WORD $0x403a // vmovdqu ymm2, yword [rdx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x603a // vmovdqu ymm3, yword [rdx + rdi + 96] + LONG $0x04f8fdc5; BYTE $0x39 // vpsubb ymm0, ymm0, yword [rcx + rdi] + LONG $0x4cf8f5c5; WORD $0x2039 // vpsubb ymm1, ymm1, yword [rcx + rdi + 32] + LONG $0x54f8edc5; WORD $0x4039 // vpsubb ymm2, ymm2, yword [rcx + rdi + 64] + LONG $0x5cf8e5c5; WORD $0x6039 // vpsubb ymm3, ymm3, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_327 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_329: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_331 + +LBB0_330: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_330 + +LBB0_331: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_332: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_332 + JMP LBB0_825 + +LBB0_191: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_196 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_196 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_194: + LONG $0x046ffec5; BYTE $0x39 // vmovdqu ymm0, yword [rcx + rdi] + LONG $0x4c6ffec5; WORD $0x2039 // vmovdqu ymm1, yword [rcx + rdi + 32] + LONG $0x546ffec5; WORD $0x4039 // vmovdqu ymm2, yword [rcx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x6039 // vmovdqu ymm3, yword [rcx + rdi + 96] + LONG $0x04fcfdc5; BYTE $0x3a // vpaddb ymm0, ymm0, yword [rdx + rdi] + LONG $0x4cfcf5c5; WORD $0x203a // vpaddb ymm1, ymm1, yword [rdx + rdi + 32] + LONG $0x54fcedc5; WORD $0x403a // vpaddb ymm2, ymm2, yword [rdx + rdi + 64] + LONG $0x5cfce5c5; WORD $0x603a // vpaddb ymm3, ymm3, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_194 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_196: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_198 + +LBB0_197: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_197 + +LBB0_198: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_199: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_199 + JMP LBB0_825 + +LBB0_457: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_462 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_462 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_460: + LONG $0x046ffec5; BYTE $0x3a // vmovdqu ymm0, yword [rdx + rdi] + LONG $0x4c6ffec5; WORD $0x203a // vmovdqu ymm1, yword [rdx + rdi + 32] + LONG $0x546ffec5; WORD $0x403a // vmovdqu ymm2, yword [rdx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x603a // vmovdqu ymm3, yword [rdx + rdi + 96] + LONG $0x04f8fdc5; BYTE $0x39 // vpsubb ymm0, ymm0, yword [rcx + rdi] + LONG $0x4cf8f5c5; WORD $0x2039 // vpsubb ymm1, ymm1, yword [rcx + rdi + 32] + LONG $0x54f8edc5; WORD $0x4039 // vpsubb ymm2, ymm2, yword [rcx + rdi + 64] + LONG $0x5cf8e5c5; WORD $0x6039 // vpsubb ymm3, ymm3, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_460 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_462: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_464 + +LBB0_463: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_463 + +LBB0_464: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_465: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_465 + JMP LBB0_825 + +LBB0_647: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_652 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_652 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_650: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x446ffec5; WORD $0x60fa // vmovdqu ymm0, yword [rdx + 8*rdi + 96] + LONG $0x246ffec5; BYTE $0xf9 // vmovdqu ymm4, yword [rcx + 8*rdi] + LONG $0x6c6ffec5; WORD $0x20f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 32] + LONG $0x746ffec5; WORD $0x40f9 // vmovdqu ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c6ffec5; WORD $0x60f9 // vmovdqu ymm7, yword [rcx + 8*rdi + 96] + LONG $0xd473bdc5; BYTE $0x20 // vpsrlq ymm8, ymm4, 32 + LONG $0xc1f43dc5 // vpmuludq ymm8, ymm8, ymm1 + LONG $0xd173b5c5; BYTE $0x20 // vpsrlq ymm9, ymm1, 32 + LONG $0xccf435c5 // vpmuludq ymm9, ymm9, ymm4 + LONG $0xd43541c4; BYTE $0xc0 // vpaddq ymm8, ymm9, ymm8 + LONG $0x733dc1c4; WORD $0x20f0 // vpsllq ymm8, ymm8, 32 + LONG $0xc9f4ddc5 // vpmuludq ymm1, ymm4, ymm1 + LONG $0xc9d4bdc5 // vpaddq ymm1, ymm8, ymm1 + LONG $0xd573ddc5; BYTE $0x20 // vpsrlq ymm4, ymm5, 32 + LONG $0xe2f4ddc5 // vpmuludq ymm4, ymm4, ymm2 + LONG $0xd273bdc5; BYTE $0x20 // vpsrlq ymm8, ymm2, 32 + LONG $0xc5f43dc5 // vpmuludq ymm8, ymm8, ymm5 + LONG $0xe4d4bdc5 // vpaddq ymm4, ymm8, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xd2f4d5c5 // vpmuludq ymm2, ymm5, ymm2 + LONG $0xd4d4edc5 // vpaddq ymm2, ymm2, ymm4 + LONG $0xd673ddc5; BYTE $0x20 // vpsrlq ymm4, ymm6, 32 + LONG $0xe3f4ddc5 // vpmuludq ymm4, ymm4, ymm3 + LONG $0xd373d5c5; BYTE $0x20 // vpsrlq ymm5, ymm3, 32 + LONG $0xedf4cdc5 // vpmuludq ymm5, ymm6, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xdbf4cdc5 // vpmuludq ymm3, ymm6, ymm3 + LONG $0xdcd4e5c5 // vpaddq ymm3, ymm3, ymm4 + LONG $0xd773ddc5; BYTE $0x20 // vpsrlq ymm4, ymm7, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xd073d5c5; BYTE $0x20 // vpsrlq ymm5, ymm0, 32 + LONG $0xedf4c5c5 // vpmuludq ymm5, ymm7, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xc0f4c5c5 // vpmuludq ymm0, ymm7, ymm0 + LONG $0xc4d4fdc5 // vpaddq ymm0, ymm0, ymm4 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_650 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_652: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_654 + +LBB0_653: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0x3caf0f48; BYTE $0xf2 // imul rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_653 + +LBB0_654: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_655: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0x04af0f48; BYTE $0xf2 // imul rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0x44af0f48; WORD $0x08f2 // imul rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0x44af0f48; WORD $0x10f2 // imul rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0x44af0f48; WORD $0x18f2 // imul rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_655 + JMP LBB0_825 + +LBB0_783: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_788 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_788 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_786: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x446ffec5; WORD $0x60fa // vmovdqu ymm0, yword [rdx + 8*rdi + 96] + LONG $0x246ffec5; BYTE $0xf9 // vmovdqu ymm4, yword [rcx + 8*rdi] + LONG $0x6c6ffec5; WORD $0x20f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 32] + LONG $0x746ffec5; WORD $0x40f9 // vmovdqu ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c6ffec5; WORD $0x60f9 // vmovdqu ymm7, yword [rcx + 8*rdi + 96] + LONG $0xd473bdc5; BYTE $0x20 // vpsrlq ymm8, ymm4, 32 + LONG $0xc1f43dc5 // vpmuludq ymm8, ymm8, ymm1 + LONG $0xd173b5c5; BYTE $0x20 // vpsrlq ymm9, ymm1, 32 + LONG $0xccf435c5 // vpmuludq ymm9, ymm9, ymm4 + LONG $0xd43541c4; BYTE $0xc0 // vpaddq ymm8, ymm9, ymm8 + LONG $0x733dc1c4; WORD $0x20f0 // vpsllq ymm8, ymm8, 32 + LONG $0xc9f4ddc5 // vpmuludq ymm1, ymm4, ymm1 + LONG $0xc9d4bdc5 // vpaddq ymm1, ymm8, ymm1 + LONG $0xd573ddc5; BYTE $0x20 // vpsrlq ymm4, ymm5, 32 + LONG $0xe2f4ddc5 // vpmuludq ymm4, ymm4, ymm2 + LONG $0xd273bdc5; BYTE $0x20 // vpsrlq ymm8, ymm2, 32 + LONG $0xc5f43dc5 // vpmuludq ymm8, ymm8, ymm5 + LONG $0xe4d4bdc5 // vpaddq ymm4, ymm8, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xd2f4d5c5 // vpmuludq ymm2, ymm5, ymm2 + LONG $0xd4d4edc5 // vpaddq ymm2, ymm2, ymm4 + LONG $0xd673ddc5; BYTE $0x20 // vpsrlq ymm4, ymm6, 32 + LONG $0xe3f4ddc5 // vpmuludq ymm4, ymm4, ymm3 + LONG $0xd373d5c5; BYTE $0x20 // vpsrlq ymm5, ymm3, 32 + LONG $0xedf4cdc5 // vpmuludq ymm5, ymm6, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xdbf4cdc5 // vpmuludq ymm3, ymm6, ymm3 + LONG $0xdcd4e5c5 // vpaddq ymm3, ymm3, ymm4 + LONG $0xd773ddc5; BYTE $0x20 // vpsrlq ymm4, ymm7, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xd073d5c5; BYTE $0x20 // vpsrlq ymm5, ymm0, 32 + LONG $0xedf4c5c5 // vpmuludq ymm5, ymm7, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xc0f4c5c5 // vpmuludq ymm0, ymm7, ymm0 + LONG $0xc4d4fdc5 // vpaddq ymm0, ymm0, ymm4 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_786 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_788: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_790 + +LBB0_789: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0x3caf0f48; BYTE $0xf2 // imul rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_789 + +LBB0_790: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_791: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0x04af0f48; BYTE $0xf2 // imul rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0x44af0f48; WORD $0x08f2 // imul rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0x44af0f48; WORD $0x10f2 // imul rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0x44af0f48; WORD $0x18f2 // imul rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_791 + JMP LBB0_825 + +LBB0_112: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_117 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_117 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_115: + LONG $0x046ffec5; BYTE $0xf9 // vmovdqu ymm0, yword [rcx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20f9 // vmovdqu ymm1, yword [rcx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40f9 // vmovdqu ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 96] + LONG $0x04d4fdc5; BYTE $0xfa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4cd4f5c5; WORD $0x20fa // vpaddq ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x54d4edc5; WORD $0x40fa // vpaddq ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5cd4e5c5; WORD $0x60fa // vpaddq ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_115 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_117: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_119 + +LBB0_118: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0xf23c0348 // add rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_118 + +LBB0_119: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_120: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_120 + JMP LBB0_825 + +LBB0_378: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_383 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_383 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_381: + LONG $0x046ffec5; BYTE $0xfa // vmovdqu ymm0, yword [rdx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20fa // vmovdqu ymm1, yword [rdx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40fa // vmovdqu ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60fa // vmovdqu ymm3, yword [rdx + 8*rdi + 96] + LONG $0x04fbfdc5; BYTE $0xf9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4cfbf5c5; WORD $0x20f9 // vpsubq ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x54fbedc5; WORD $0x40f9 // vpsubq ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5cfbe5c5; WORD $0x60f9 // vpsubq ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_381 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_383: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_385 + +LBB0_384: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + LONG $0xf13c2b48 // sub rdi, qword [rcx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_384 + +LBB0_385: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_386: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_386 + JMP LBB0_825 + +LBB0_245: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_250 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_250 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_248: + LONG $0x046ffec5; BYTE $0xf9 // vmovdqu ymm0, yword [rcx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20f9 // vmovdqu ymm1, yword [rcx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40f9 // vmovdqu ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 96] + LONG $0x04d4fdc5; BYTE $0xfa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4cd4f5c5; WORD $0x20fa // vpaddq ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x54d4edc5; WORD $0x40fa // vpaddq ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5cd4e5c5; WORD $0x60fa // vpaddq ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_248 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_250: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_252 + +LBB0_251: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0xf23c0348 // add rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_251 + +LBB0_252: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_253: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_253 + JMP LBB0_825 + +LBB0_511: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_516 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_516 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_514: + LONG $0x046ffec5; BYTE $0xfa // vmovdqu ymm0, yword [rdx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20fa // vmovdqu ymm1, yword [rdx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40fa // vmovdqu ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60fa // vmovdqu ymm3, yword [rdx + 8*rdi + 96] + LONG $0x04fbfdc5; BYTE $0xf9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4cfbf5c5; WORD $0x20f9 // vpsubq ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x54fbedc5; WORD $0x40f9 // vpsubq ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5cfbe5c5; WORD $0x60f9 // vpsubq ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_514 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_516: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_518 + +LBB0_517: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + LONG $0xf13c2b48 // sub rdi, qword [rcx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_517 + +LBB0_518: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_519: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_519 + JMP LBB0_825 + +LBB0_70: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_75 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_75 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_73: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04fdfdc5; BYTE $0x7a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cfdf5c5; WORD $0x207a // vpaddw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54fdedc5; WORD $0x407a // vpaddw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cfde5c5; WORD $0x607a // vpaddw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_73 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_75: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_77 + +LBB0_76: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x723c0366 // add di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_76 + +LBB0_77: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_78: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_78 + JMP LBB0_825 + +LBB0_82: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_87 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_87 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_85: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04fdfdc5; BYTE $0x7a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cfdf5c5; WORD $0x207a // vpaddw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54fdedc5; WORD $0x407a // vpaddw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cfde5c5; WORD $0x607a // vpaddw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_85 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_87: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_89 + +LBB0_88: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x723c0366 // add di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_88 + +LBB0_89: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_90: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_90 + JMP LBB0_825 + +LBB0_203: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_208 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_208 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_206: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04fdfdc5; BYTE $0x7a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cfdf5c5; WORD $0x207a // vpaddw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54fdedc5; WORD $0x407a // vpaddw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cfde5c5; WORD $0x607a // vpaddw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_206 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_208: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_210 + +LBB0_209: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x723c0366 // add di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_209 + +LBB0_210: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_211: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_211 + JMP LBB0_825 + +LBB0_215: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_220 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_220 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_218: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04fdfdc5; BYTE $0x7a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cfdf5c5; WORD $0x207a // vpaddw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54fdedc5; WORD $0x407a // vpaddw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cfde5c5; WORD $0x607a // vpaddw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_218 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_220: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_222 + +LBB0_221: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0x723c0366 // add di, word [rdx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_221 + +LBB0_222: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_223: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_223 + JMP LBB0_825 + +LBB0_124: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_129 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_129 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_127: + LONG $0x046ffec5; BYTE $0xf9 // vmovdqu ymm0, yword [rcx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20f9 // vmovdqu ymm1, yword [rcx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40f9 // vmovdqu ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 96] + LONG $0x04d4fdc5; BYTE $0xfa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4cd4f5c5; WORD $0x20fa // vpaddq ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x54d4edc5; WORD $0x40fa // vpaddq ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5cd4e5c5; WORD $0x60fa // vpaddq ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_127 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_129: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_131 + +LBB0_130: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0xf23c0348 // add rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_130 + +LBB0_131: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_132: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_132 + JMP LBB0_825 + +LBB0_136: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_141 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_141 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_139: + LONG $0x0410fcc5; BYTE $0xb9 // vmovups ymm0, yword [rcx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20b9 // vmovups ymm1, yword [rcx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40b9 // vmovups ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60b9 // vmovups ymm3, yword [rcx + 4*rdi + 96] + LONG $0x0458fcc5; BYTE $0xba // vaddps ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4c58f4c5; WORD $0x20ba // vaddps ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5458ecc5; WORD $0x40ba // vaddps ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c58e4c5; WORD $0x60ba // vaddps ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_139 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_141: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_143 + +LBB0_142: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0458fac5; BYTE $0xb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_142 + +LBB0_143: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_144: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0458fac5; BYTE $0xb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b1 // vmovss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x4458fac5; WORD $0x04b2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b1 // vmovss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x4458fac5; WORD $0x08b2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb1 // vmovss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x4458fac5; WORD $0x0cb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_144 + JMP LBB0_825 + +LBB0_257: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_262 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_262 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_260: + LONG $0x046ffec5; BYTE $0xf9 // vmovdqu ymm0, yword [rcx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20f9 // vmovdqu ymm1, yword [rcx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40f9 // vmovdqu ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 96] + LONG $0x04d4fdc5; BYTE $0xfa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4cd4f5c5; WORD $0x20fa // vpaddq ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x54d4edc5; WORD $0x40fa // vpaddq ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5cd4e5c5; WORD $0x60fa // vpaddq ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_260 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_262: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_264 + +LBB0_263: + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + LONG $0xf23c0348 // add rdi, qword [rdx + 8*rsi] + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_263 + +LBB0_264: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_265: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_265 + JMP LBB0_825 + +LBB0_269: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_274 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_274 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_272: + LONG $0x0410fcc5; BYTE $0xb9 // vmovups ymm0, yword [rcx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20b9 // vmovups ymm1, yword [rcx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40b9 // vmovups ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60b9 // vmovups ymm3, yword [rcx + 4*rdi + 96] + LONG $0x0458fcc5; BYTE $0xba // vaddps ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4c58f4c5; WORD $0x20ba // vaddps ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5458ecc5; WORD $0x40ba // vaddps ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c58e4c5; WORD $0x60ba // vaddps ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_272 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_274: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xd7 // add rdi, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_276 + +LBB0_275: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0458fac5; BYTE $0xb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_275 + +LBB0_276: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB0_825 + +LBB0_277: + LONG $0x0410fac5; BYTE $0xb1 // vmovss xmm0, dword [rcx + 4*rsi] + LONG $0x0458fac5; BYTE $0xb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi] + LONG $0x117ac1c4; WORD $0xb004 // vmovss dword [r8 + 4*rsi], xmm0 + LONG $0x4410fac5; WORD $0x04b1 // vmovss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x4458fac5; WORD $0x04b2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 4] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x04 // vmovss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x4410fac5; WORD $0x08b1 // vmovss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x4458fac5; WORD $0x08b2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 8] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x08 // vmovss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x4410fac5; WORD $0x0cb1 // vmovss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x4458fac5; WORD $0x0cb2 // vaddss xmm0, xmm0, dword [rdx + 4*rsi + 12] + LONG $0x117ac1c4; WORD $0xb044; BYTE $0x0c // vmovss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_277 + JMP LBB0_825 + +LBB0_574: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_584 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_584 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB0_578 + WORD $0xf631 // xor esi, esi + JMP LBB0_580 + +LBB0_710: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_720 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_720 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB0_714 + WORD $0xf631 // xor esi, esi + JMP LBB0_716 + +LBB0_49: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_54 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_54 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_52: + LONG $0x046ffec5; BYTE $0x39 // vmovdqu ymm0, yword [rcx + rdi] + LONG $0x4c6ffec5; WORD $0x2039 // vmovdqu ymm1, yword [rcx + rdi + 32] + LONG $0x546ffec5; WORD $0x4039 // vmovdqu ymm2, yword [rcx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x6039 // vmovdqu ymm3, yword [rcx + rdi + 96] + LONG $0x04fcfdc5; BYTE $0x3a // vpaddb ymm0, ymm0, yword [rdx + rdi] + LONG $0x4cfcf5c5; WORD $0x203a // vpaddb ymm1, ymm1, yword [rdx + rdi + 32] + LONG $0x54fcedc5; WORD $0x403a // vpaddb ymm2, ymm2, yword [rdx + rdi + 64] + LONG $0x5cfce5c5; WORD $0x603a // vpaddb ymm3, ymm3, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_52 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_54: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_56 + +LBB0_55: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_55 + +LBB0_56: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_57: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_57 + JMP LBB0_825 + +LBB0_315: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_320 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_320 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_318: + LONG $0x046ffec5; BYTE $0x3a // vmovdqu ymm0, yword [rdx + rdi] + LONG $0x4c6ffec5; WORD $0x203a // vmovdqu ymm1, yword [rdx + rdi + 32] + LONG $0x546ffec5; WORD $0x403a // vmovdqu ymm2, yword [rdx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x603a // vmovdqu ymm3, yword [rdx + rdi + 96] + LONG $0x04f8fdc5; BYTE $0x39 // vpsubb ymm0, ymm0, yword [rcx + rdi] + LONG $0x4cf8f5c5; WORD $0x2039 // vpsubb ymm1, ymm1, yword [rcx + rdi + 32] + LONG $0x54f8edc5; WORD $0x4039 // vpsubb ymm2, ymm2, yword [rcx + rdi + 64] + LONG $0x5cf8e5c5; WORD $0x6039 // vpsubb ymm3, ymm3, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_318 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_320: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_322 + +LBB0_321: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_321 + +LBB0_322: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_323: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_323 + JMP LBB0_825 + +LBB0_182: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_187 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_187 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_185: + LONG $0x046ffec5; BYTE $0x39 // vmovdqu ymm0, yword [rcx + rdi] + LONG $0x4c6ffec5; WORD $0x2039 // vmovdqu ymm1, yword [rcx + rdi + 32] + LONG $0x546ffec5; WORD $0x4039 // vmovdqu ymm2, yword [rcx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x6039 // vmovdqu ymm3, yword [rcx + rdi + 96] + LONG $0x04fcfdc5; BYTE $0x3a // vpaddb ymm0, ymm0, yword [rdx + rdi] + LONG $0x4cfcf5c5; WORD $0x203a // vpaddb ymm1, ymm1, yword [rdx + rdi + 32] + LONG $0x54fcedc5; WORD $0x403a // vpaddb ymm2, ymm2, yword [rdx + rdi + 64] + LONG $0x5cfce5c5; WORD $0x603a // vpaddb ymm3, ymm3, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_185 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_187: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_189 + +LBB0_188: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_188 + +LBB0_189: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_190: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_190 + JMP LBB0_825 + +LBB0_448: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_453 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_453 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + +LBB0_451: + LONG $0x046ffec5; BYTE $0x3a // vmovdqu ymm0, yword [rdx + rdi] + LONG $0x4c6ffec5; WORD $0x203a // vmovdqu ymm1, yword [rdx + rdi + 32] + LONG $0x546ffec5; WORD $0x403a // vmovdqu ymm2, yword [rdx + rdi + 64] + LONG $0x5c6ffec5; WORD $0x603a // vmovdqu ymm3, yword [rdx + rdi + 96] + LONG $0x04f8fdc5; BYTE $0x39 // vpsubb ymm0, ymm0, yword [rcx + rdi] + LONG $0x4cf8f5c5; WORD $0x2039 // vpsubb ymm1, ymm1, yword [rcx + rdi + 32] + LONG $0x54f8edc5; WORD $0x4039 // vpsubb ymm2, ymm2, yword [rcx + rdi + 64] + LONG $0x5cf8e5c5; WORD $0x6039 // vpsubb ymm3, ymm3, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x3804 // vmovdqu yword [r8 + rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x384c; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_451 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_453: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_455 + +LBB0_454: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_454 + +LBB0_455: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_456: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_456 + JMP LBB0_825 + +LBB0_638: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_643 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_643 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_641: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x407de2c4; WORD $0xba04 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4075e2c4; WORD $0xba4c; BYTE $0x20 // vpmulld ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x406de2c4; WORD $0xba54; BYTE $0x40 // vpmulld ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x4065e2c4; WORD $0xba5c; BYTE $0x60 // vpmulld ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_641 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_643: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_645 + +LBB0_644: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + LONG $0xb23caf0f // imul edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_644 + +LBB0_645: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_646: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_646 + JMP LBB0_825 + +LBB0_774: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_779 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_779 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_777: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x407de2c4; WORD $0xba04 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4075e2c4; WORD $0xba4c; BYTE $0x20 // vpmulld ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x406de2c4; WORD $0xba54; BYTE $0x40 // vpmulld ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x4065e2c4; WORD $0xba5c; BYTE $0x60 // vpmulld ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_777 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_779: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_781 + +LBB0_780: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + LONG $0xb23caf0f // imul edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_780 + +LBB0_781: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_782: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_782 + JMP LBB0_825 + +LBB0_103: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_108 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_108 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_106: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x04fefdc5; BYTE $0xba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4cfef5c5; WORD $0x20ba // vpaddd ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x54feedc5; WORD $0x40ba // vpaddd ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5cfee5c5; WORD $0x60ba // vpaddd ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_106 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_108: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_110 + +LBB0_109: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0x3c03; BYTE $0xb2 // add edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_109 + +LBB0_110: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_111: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_111 + JMP LBB0_825 + +LBB0_369: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_374 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_374 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_372: + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + LONG $0x04fafdc5; BYTE $0xb9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4cfaf5c5; WORD $0x20b9 // vpsubd ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x54faedc5; WORD $0x40b9 // vpsubd ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5cfae5c5; WORD $0x60b9 // vpsubd ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_372 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_374: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_376 + +LBB0_375: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0x3c2b; BYTE $0xb1 // sub edi, dword [rcx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_375 + +LBB0_376: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_377: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_377 + JMP LBB0_825 + +LBB0_236: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_241 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_241 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_239: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x04fefdc5; BYTE $0xba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4cfef5c5; WORD $0x20ba // vpaddd ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x54feedc5; WORD $0x40ba // vpaddd ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5cfee5c5; WORD $0x60ba // vpaddd ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_239 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_241: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_243 + +LBB0_242: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0x3c03; BYTE $0xb2 // add edi, dword [rdx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_242 + +LBB0_243: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_244: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_244 + JMP LBB0_825 + +LBB0_502: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_507 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_507 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_505: + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + LONG $0x04fafdc5; BYTE $0xb9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4cfaf5c5; WORD $0x20b9 // vpsubd ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x54faedc5; WORD $0x40b9 // vpsubd ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5cfae5c5; WORD $0x60b9 // vpsubd ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_505 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_825 + +LBB0_507: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x03e08348 // and rax, 3 + JE LBB0_509 + +LBB0_508: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0x3c2b; BYTE $0xb1 // sub edi, dword [rcx + 4*rsi] + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_508 + +LBB0_509: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_510: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_510 + JMP LBB0_825 + +LBB0_626: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_631 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_631 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_629: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x407de2c4; WORD $0xba04 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4075e2c4; WORD $0xba4c; BYTE $0x20 // vpmulld ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x406de2c4; WORD $0xba54; BYTE $0x40 // vpmulld ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x4065e2c4; WORD $0xba5c; BYTE $0x60 // vpmulld ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_629 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_631 + JMP LBB0_825 + +LBB0_762: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_767 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_767 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_765: + LONG $0x046ffec5; BYTE $0xb9 // vmovdqu ymm0, yword [rcx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20b9 // vmovdqu ymm1, yword [rcx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40b9 // vmovdqu ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60b9 // vmovdqu ymm3, yword [rcx + 4*rdi + 96] + LONG $0x407de2c4; WORD $0xba04 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4075e2c4; WORD $0xba4c; BYTE $0x20 // vpmulld ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x406de2c4; WORD $0xba54; BYTE $0x40 // vpmulld ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x4065e2c4; WORD $0xba5c; BYTE $0x60 // vpmulld ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_765 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_767 + JMP LBB0_825 + +LBB0_357: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_362 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_362 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_360: + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + LONG $0x04fafdc5; BYTE $0xb9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4cfaf5c5; WORD $0x20b9 // vpsubd ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x54faedc5; WORD $0x40b9 // vpsubd ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5cfae5c5; WORD $0x60b9 // vpsubd ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_360 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_362 + JMP LBB0_825 + +LBB0_490: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_495 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_495 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_493: + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + LONG $0x04fafdc5; BYTE $0xb9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4cfaf5c5; WORD $0x20b9 // vpsubd ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x54faedc5; WORD $0x40b9 // vpsubd ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5cfae5c5; WORD $0x60b9 // vpsubd ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb804 // vmovdqu yword [r8 + 4*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xb84c; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_493 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_495 + JMP LBB0_825 + +LBB0_680: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_685 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_685 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_683: + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20f9 // vmovupd ymm1, yword [rcx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40f9 // vmovupd ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60f9 // vmovupd ymm3, yword [rcx + 8*rdi + 96] + LONG $0x0459fdc5; BYTE $0xfa // vmulpd ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4c59f5c5; WORD $0x20fa // vmulpd ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5459edc5; WORD $0x40fa // vmulpd ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c59e5c5; WORD $0x60fa // vmulpd ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_683 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_685 + JMP LBB0_825 + +LBB0_816: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_821 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_821 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_819: + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20f9 // vmovupd ymm1, yword [rcx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40f9 // vmovupd ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60f9 // vmovupd ymm3, yword [rcx + 8*rdi + 96] + LONG $0x0459fdc5; BYTE $0xfa // vmulpd ymm0, ymm0, yword [rdx + 8*rdi] + LONG $0x4c59f5c5; WORD $0x20fa // vmulpd ymm1, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5459edc5; WORD $0x40fa // vmulpd ymm2, ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c59e5c5; WORD $0x60fa // vmulpd ymm3, ymm3, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_819 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_821 + JMP LBB0_825 + +LBB0_411: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_416 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_416 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_414: + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x045cfdc5; BYTE $0xf9 // vsubpd ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4c5cf5c5; WORD $0x20f9 // vsubpd ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x545cedc5; WORD $0x40f9 // vsubpd ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c5ce5c5; WORD $0x60f9 // vsubpd ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_414 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_416 + JMP LBB0_825 + +LBB0_544: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_549 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_549 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_547: + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x045cfdc5; BYTE $0xf9 // vsubpd ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4c5cf5c5; WORD $0x20f9 // vsubpd ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x545cedc5; WORD $0x40f9 // vsubpd ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5c5ce5c5; WORD $0x60f9 // vsubpd ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x117dc1c4; WORD $0xf854; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_547 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_549 + JMP LBB0_825 + +LBB0_605: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_610 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_610 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_608: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04d5fdc5; BYTE $0x7a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cd5f5c5; WORD $0x207a // vpmullw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54d5edc5; WORD $0x407a // vpmullw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cd5e5c5; WORD $0x607a // vpmullw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_608 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_610 + JMP LBB0_825 + +LBB0_617: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_622 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_622 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_620: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04d5fdc5; BYTE $0x7a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cd5f5c5; WORD $0x207a // vpmullw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54d5edc5; WORD $0x407a // vpmullw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cd5e5c5; WORD $0x607a // vpmullw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_620 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_622 + JMP LBB0_825 + +LBB0_741: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_746 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_746 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_744: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04d5fdc5; BYTE $0x7a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cd5f5c5; WORD $0x207a // vpmullw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54d5edc5; WORD $0x407a // vpmullw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cd5e5c5; WORD $0x607a // vpmullw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_744 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_746 + JMP LBB0_825 + +LBB0_753: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_758 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_758 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_756: + LONG $0x046ffec5; BYTE $0x79 // vmovdqu ymm0, yword [rcx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x2079 // vmovdqu ymm1, yword [rcx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x4079 // vmovdqu ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x6079 // vmovdqu ymm3, yword [rcx + 2*rdi + 96] + LONG $0x04d5fdc5; BYTE $0x7a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi] + LONG $0x4cd5f5c5; WORD $0x207a // vpmullw ymm1, ymm1, yword [rdx + 2*rdi + 32] + LONG $0x54d5edc5; WORD $0x407a // vpmullw ymm2, ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5cd5e5c5; WORD $0x607a // vpmullw ymm3, ymm3, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_756 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_758 + JMP LBB0_825 + +LBB0_336: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_341 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_341 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_339: + LONG $0x046ffec5; BYTE $0x7a // vmovdqu ymm0, yword [rdx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x207a // vmovdqu ymm1, yword [rdx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x407a // vmovdqu ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x607a // vmovdqu ymm3, yword [rdx + 2*rdi + 96] + LONG $0x04f9fdc5; BYTE $0x79 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi] + LONG $0x4cf9f5c5; WORD $0x2079 // vpsubw ymm1, ymm1, yword [rcx + 2*rdi + 32] + LONG $0x54f9edc5; WORD $0x4079 // vpsubw ymm2, ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5cf9e5c5; WORD $0x6079 // vpsubw ymm3, ymm3, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_339 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_341 + JMP LBB0_825 + +LBB0_348: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_353 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_353 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_351: + LONG $0x046ffec5; BYTE $0x7a // vmovdqu ymm0, yword [rdx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x207a // vmovdqu ymm1, yword [rdx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x407a // vmovdqu ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x607a // vmovdqu ymm3, yword [rdx + 2*rdi + 96] + LONG $0x04f9fdc5; BYTE $0x79 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi] + LONG $0x4cf9f5c5; WORD $0x2079 // vpsubw ymm1, ymm1, yword [rcx + 2*rdi + 32] + LONG $0x54f9edc5; WORD $0x4079 // vpsubw ymm2, ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5cf9e5c5; WORD $0x6079 // vpsubw ymm3, ymm3, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_351 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_353 + JMP LBB0_825 + +LBB0_469: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_474 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_474 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_472: + LONG $0x046ffec5; BYTE $0x7a // vmovdqu ymm0, yword [rdx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x207a // vmovdqu ymm1, yword [rdx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x407a // vmovdqu ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x607a // vmovdqu ymm3, yword [rdx + 2*rdi + 96] + LONG $0x04f9fdc5; BYTE $0x79 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi] + LONG $0x4cf9f5c5; WORD $0x2079 // vpsubw ymm1, ymm1, yword [rcx + 2*rdi + 32] + LONG $0x54f9edc5; WORD $0x4079 // vpsubw ymm2, ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5cf9e5c5; WORD $0x6079 // vpsubw ymm3, ymm3, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_472 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_474 + JMP LBB0_825 + +LBB0_481: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_486 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_486 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + WORD $0xff31 // xor edi, edi + +LBB0_484: + LONG $0x046ffec5; BYTE $0x7a // vmovdqu ymm0, yword [rdx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x207a // vmovdqu ymm1, yword [rdx + 2*rdi + 32] + LONG $0x546ffec5; WORD $0x407a // vmovdqu ymm2, yword [rdx + 2*rdi + 64] + LONG $0x5c6ffec5; WORD $0x607a // vmovdqu ymm3, yword [rdx + 2*rdi + 96] + LONG $0x04f9fdc5; BYTE $0x79 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi] + LONG $0x4cf9f5c5; WORD $0x2079 // vpsubw ymm1, ymm1, yword [rcx + 2*rdi + 32] + LONG $0x54f9edc5; WORD $0x4079 // vpsubw ymm2, ymm2, yword [rcx + 2*rdi + 64] + LONG $0x5cf9e5c5; WORD $0x6079 // vpsubw ymm3, ymm3, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x7804 // vmovdqu yword [r8 + 2*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_484 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_486 + JMP LBB0_825 + +LBB0_659: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_664 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_664 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_662: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x446ffec5; WORD $0x60fa // vmovdqu ymm0, yword [rdx + 8*rdi + 96] + LONG $0x246ffec5; BYTE $0xf9 // vmovdqu ymm4, yword [rcx + 8*rdi] + LONG $0x6c6ffec5; WORD $0x20f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 32] + LONG $0x746ffec5; WORD $0x40f9 // vmovdqu ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c6ffec5; WORD $0x60f9 // vmovdqu ymm7, yword [rcx + 8*rdi + 96] + LONG $0xd473bdc5; BYTE $0x20 // vpsrlq ymm8, ymm4, 32 + LONG $0xc1f43dc5 // vpmuludq ymm8, ymm8, ymm1 + LONG $0xd173b5c5; BYTE $0x20 // vpsrlq ymm9, ymm1, 32 + LONG $0xccf435c5 // vpmuludq ymm9, ymm9, ymm4 + LONG $0xd43541c4; BYTE $0xc0 // vpaddq ymm8, ymm9, ymm8 + LONG $0x733dc1c4; WORD $0x20f0 // vpsllq ymm8, ymm8, 32 + LONG $0xc9f4ddc5 // vpmuludq ymm1, ymm4, ymm1 + LONG $0xc9d4bdc5 // vpaddq ymm1, ymm8, ymm1 + LONG $0xd573ddc5; BYTE $0x20 // vpsrlq ymm4, ymm5, 32 + LONG $0xe2f4ddc5 // vpmuludq ymm4, ymm4, ymm2 + LONG $0xd273bdc5; BYTE $0x20 // vpsrlq ymm8, ymm2, 32 + LONG $0xc5f43dc5 // vpmuludq ymm8, ymm8, ymm5 + LONG $0xe4d4bdc5 // vpaddq ymm4, ymm8, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xd2f4d5c5 // vpmuludq ymm2, ymm5, ymm2 + LONG $0xd4d4edc5 // vpaddq ymm2, ymm2, ymm4 + LONG $0xd673ddc5; BYTE $0x20 // vpsrlq ymm4, ymm6, 32 + LONG $0xe3f4ddc5 // vpmuludq ymm4, ymm4, ymm3 + LONG $0xd373d5c5; BYTE $0x20 // vpsrlq ymm5, ymm3, 32 + LONG $0xedf4cdc5 // vpmuludq ymm5, ymm6, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xdbf4cdc5 // vpmuludq ymm3, ymm6, ymm3 + LONG $0xdcd4e5c5 // vpaddq ymm3, ymm3, ymm4 + LONG $0xd773ddc5; BYTE $0x20 // vpsrlq ymm4, ymm7, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xd073d5c5; BYTE $0x20 // vpsrlq ymm5, ymm0, 32 + LONG $0xedf4c5c5 // vpmuludq ymm5, ymm7, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xc0f4c5c5 // vpmuludq ymm0, ymm7, ymm0 + LONG $0xc4d4fdc5 // vpaddq ymm0, ymm0, ymm4 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_662 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_664 + JMP LBB0_825 + +LBB0_671: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_676 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_676 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_674: + LONG $0x0410fcc5; BYTE $0xb9 // vmovups ymm0, yword [rcx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20b9 // vmovups ymm1, yword [rcx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40b9 // vmovups ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60b9 // vmovups ymm3, yword [rcx + 4*rdi + 96] + LONG $0x0459fcc5; BYTE $0xba // vmulps ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4c59f4c5; WORD $0x20ba // vmulps ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5459ecc5; WORD $0x40ba // vmulps ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c59e4c5; WORD $0x60ba // vmulps ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_674 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_676 + JMP LBB0_825 + +LBB0_795: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_800 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_800 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_798: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x446ffec5; WORD $0x60fa // vmovdqu ymm0, yword [rdx + 8*rdi + 96] + LONG $0x246ffec5; BYTE $0xf9 // vmovdqu ymm4, yword [rcx + 8*rdi] + LONG $0x6c6ffec5; WORD $0x20f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 32] + LONG $0x746ffec5; WORD $0x40f9 // vmovdqu ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c6ffec5; WORD $0x60f9 // vmovdqu ymm7, yword [rcx + 8*rdi + 96] + LONG $0xd473bdc5; BYTE $0x20 // vpsrlq ymm8, ymm4, 32 + LONG $0xc1f43dc5 // vpmuludq ymm8, ymm8, ymm1 + LONG $0xd173b5c5; BYTE $0x20 // vpsrlq ymm9, ymm1, 32 + LONG $0xccf435c5 // vpmuludq ymm9, ymm9, ymm4 + LONG $0xd43541c4; BYTE $0xc0 // vpaddq ymm8, ymm9, ymm8 + LONG $0x733dc1c4; WORD $0x20f0 // vpsllq ymm8, ymm8, 32 + LONG $0xc9f4ddc5 // vpmuludq ymm1, ymm4, ymm1 + LONG $0xc9d4bdc5 // vpaddq ymm1, ymm8, ymm1 + LONG $0xd573ddc5; BYTE $0x20 // vpsrlq ymm4, ymm5, 32 + LONG $0xe2f4ddc5 // vpmuludq ymm4, ymm4, ymm2 + LONG $0xd273bdc5; BYTE $0x20 // vpsrlq ymm8, ymm2, 32 + LONG $0xc5f43dc5 // vpmuludq ymm8, ymm8, ymm5 + LONG $0xe4d4bdc5 // vpaddq ymm4, ymm8, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xd2f4d5c5 // vpmuludq ymm2, ymm5, ymm2 + LONG $0xd4d4edc5 // vpaddq ymm2, ymm2, ymm4 + LONG $0xd673ddc5; BYTE $0x20 // vpsrlq ymm4, ymm6, 32 + LONG $0xe3f4ddc5 // vpmuludq ymm4, ymm4, ymm3 + LONG $0xd373d5c5; BYTE $0x20 // vpsrlq ymm5, ymm3, 32 + LONG $0xedf4cdc5 // vpmuludq ymm5, ymm6, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xdbf4cdc5 // vpmuludq ymm3, ymm6, ymm3 + LONG $0xdcd4e5c5 // vpaddq ymm3, ymm3, ymm4 + LONG $0xd773ddc5; BYTE $0x20 // vpsrlq ymm4, ymm7, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xd073d5c5; BYTE $0x20 // vpsrlq ymm5, ymm0, 32 + LONG $0xedf4c5c5 // vpmuludq ymm5, ymm7, ymm5 + LONG $0xe4d4d5c5 // vpaddq ymm4, ymm5, ymm4 + LONG $0xf473ddc5; BYTE $0x20 // vpsllq ymm4, ymm4, 32 + LONG $0xc0f4c5c5 // vpmuludq ymm0, ymm7, ymm0 + LONG $0xc4d4fdc5 // vpaddq ymm0, ymm0, ymm4 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_798 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_800 + JMP LBB0_825 + +LBB0_807: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_812 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_812 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_810: + LONG $0x0410fcc5; BYTE $0xb9 // vmovups ymm0, yword [rcx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20b9 // vmovups ymm1, yword [rcx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40b9 // vmovups ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60b9 // vmovups ymm3, yword [rcx + 4*rdi + 96] + LONG $0x0459fcc5; BYTE $0xba // vmulps ymm0, ymm0, yword [rdx + 4*rdi] + LONG $0x4c59f4c5; WORD $0x20ba // vmulps ymm1, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5459ecc5; WORD $0x40ba // vmulps ymm2, ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c59e4c5; WORD $0x60ba // vmulps ymm3, ymm3, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_810 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_812 + JMP LBB0_825 + +LBB0_390: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_395 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_395 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_393: + LONG $0x046ffec5; BYTE $0xfa // vmovdqu ymm0, yword [rdx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20fa // vmovdqu ymm1, yword [rdx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40fa // vmovdqu ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60fa // vmovdqu ymm3, yword [rdx + 8*rdi + 96] + LONG $0x04fbfdc5; BYTE $0xf9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4cfbf5c5; WORD $0x20f9 // vpsubq ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x54fbedc5; WORD $0x40f9 // vpsubq ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5cfbe5c5; WORD $0x60f9 // vpsubq ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_393 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_395 + JMP LBB0_825 + +LBB0_402: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_407 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_407 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_405: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x045cfcc5; BYTE $0xb9 // vsubps ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4c5cf4c5; WORD $0x20b9 // vsubps ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x545cecc5; WORD $0x40b9 // vsubps ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c5ce4c5; WORD $0x60b9 // vsubps ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_405 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_407 + JMP LBB0_825 + +LBB0_523: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_528 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_528 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + +LBB0_526: + LONG $0x046ffec5; BYTE $0xfa // vmovdqu ymm0, yword [rdx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20fa // vmovdqu ymm1, yword [rdx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40fa // vmovdqu ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60fa // vmovdqu ymm3, yword [rdx + 8*rdi + 96] + LONG $0x04fbfdc5; BYTE $0xf9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi] + LONG $0x4cfbf5c5; WORD $0x20f9 // vpsubq ymm1, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x54fbedc5; WORD $0x40f9 // vpsubq ymm2, ymm2, yword [rcx + 8*rdi + 64] + LONG $0x5cfbe5c5; WORD $0x60f9 // vpsubq ymm3, ymm3, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf804 // vmovdqu yword [r8 + 8*rdi], ymm0 + LONG $0x7f7ec1c4; WORD $0xf84c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm3 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_526 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_528 + JMP LBB0_825 + +LBB0_535: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_540 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_540 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB0_538: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x045cfcc5; BYTE $0xb9 // vsubps ymm0, ymm0, yword [rcx + 4*rdi] + LONG $0x4c5cf4c5; WORD $0x20b9 // vsubps ymm1, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x545cecc5; WORD $0x40b9 // vsubps ymm2, ymm2, yword [rcx + 4*rdi + 64] + LONG $0x5c5ce4c5; WORD $0x60b9 // vsubps ymm3, ymm3, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb804 // vmovups yword [r8 + 4*rdi], ymm0 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm1 + LONG $0x117cc1c4; WORD $0xb854; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_538 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_540 + JMP LBB0_825 + +LBB0_592: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_593: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x4c6ffec5; WORD $0x2032 // vmovdqu ymm1, yword [rdx + rsi + 32] + LONG $0x546ffec5; WORD $0x2031 // vmovdqu ymm2, yword [rcx + rsi + 32] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm1 + LONG $0x4c6ffec5; WORD $0x4032 // vmovdqu ymm1, yword [rdx + rsi + 64] + LONG $0x546ffec5; WORD $0x4031 // vmovdqu ymm2, yword [rcx + rsi + 64] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm1 + LONG $0x4c6ffec5; WORD $0x6032 // vmovdqu ymm1, yword [rdx + rsi + 96] + LONG $0x546ffec5; WORD $0x6031 // vmovdqu ymm2, yword [rcx + rsi + 96] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm1 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB0_593 + +LBB0_594: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_597 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_596: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB0_596 + +LBB0_597: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB0_825 + +LBB0_598: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_600 + +LBB0_599: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_599 + +LBB0_600: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_601: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_601 + JMP LBB0_825 + +LBB0_728: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_729: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x4c6ffec5; WORD $0x2032 // vmovdqu ymm1, yword [rdx + rsi + 32] + LONG $0x546ffec5; WORD $0x2031 // vmovdqu ymm2, yword [rcx + rsi + 32] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm1 + LONG $0x4c6ffec5; WORD $0x4032 // vmovdqu ymm1, yword [rdx + rsi + 64] + LONG $0x546ffec5; WORD $0x4031 // vmovdqu ymm2, yword [rcx + rsi + 64] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm1 + LONG $0x4c6ffec5; WORD $0x6032 // vmovdqu ymm1, yword [rdx + rsi + 96] + LONG $0x546ffec5; WORD $0x6031 // vmovdqu ymm2, yword [rcx + rsi + 96] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm1 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB0_729 + +LBB0_730: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_733 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_732: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB0_732 + +LBB0_733: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB0_825 + +LBB0_734: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_736 + +LBB0_735: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_735 + +LBB0_736: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_737: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_737 + JMP LBB0_825 + +LBB0_578: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_579: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x4c6ffec5; WORD $0x2032 // vmovdqu ymm1, yword [rdx + rsi + 32] + LONG $0x546ffec5; WORD $0x2031 // vmovdqu ymm2, yword [rcx + rsi + 32] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm1 + LONG $0x4c6ffec5; WORD $0x4032 // vmovdqu ymm1, yword [rdx + rsi + 64] + LONG $0x546ffec5; WORD $0x4031 // vmovdqu ymm2, yword [rcx + rsi + 64] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm1 + LONG $0x4c6ffec5; WORD $0x6032 // vmovdqu ymm1, yword [rdx + rsi + 96] + LONG $0x546ffec5; WORD $0x6031 // vmovdqu ymm2, yword [rcx + rsi + 96] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm1 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB0_579 + +LBB0_580: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_583 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_582: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB0_582 + +LBB0_583: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB0_825 + +LBB0_584: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_586 + +LBB0_585: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_585 + +LBB0_586: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_587: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_587 + JMP LBB0_825 + +LBB0_714: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_715: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x4c6ffec5; WORD $0x2032 // vmovdqu ymm1, yword [rdx + rsi + 32] + LONG $0x546ffec5; WORD $0x2031 // vmovdqu ymm2, yword [rcx + rsi + 32] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm1 + LONG $0x4c6ffec5; WORD $0x4032 // vmovdqu ymm1, yword [rdx + rsi + 64] + LONG $0x546ffec5; WORD $0x4031 // vmovdqu ymm2, yword [rcx + rsi + 64] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm1 + LONG $0x4c6ffec5; WORD $0x6032 // vmovdqu ymm1, yword [rdx + rsi + 96] + LONG $0x546ffec5; WORD $0x6031 // vmovdqu ymm2, yword [rcx + rsi + 96] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x304c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm1 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB0_715 + +LBB0_716: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_719 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0x456ffdc5; BYTE $0x00 // vmovdqa ymm0, yword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_718: + LONG $0x0c6ffec5; BYTE $0x32 // vmovdqu ymm1, yword [rdx + rsi] + LONG $0x146ffec5; BYTE $0x31 // vmovdqu ymm2, yword [rcx + rsi] + LONG $0xd968f5c5 // vpunpckhbw ymm3, ymm1, ymm1 + LONG $0xe268edc5 // vpunpckhbw ymm4, ymm2, ymm2 + LONG $0xdbd5ddc5 // vpmullw ymm3, ymm4, ymm3 + LONG $0xd8dbe5c5 // vpand ymm3, ymm3, ymm0 + LONG $0xc960f5c5 // vpunpcklbw ymm1, ymm1, ymm1 + LONG $0xd260edc5 // vpunpcklbw ymm2, ymm2, ymm2 + LONG $0xc9d5edc5 // vpmullw ymm1, ymm2, ymm1 + LONG $0xc8dbf5c5 // vpand ymm1, ymm1, ymm0 + LONG $0xcb67f5c5 // vpackuswb ymm1, ymm1, ymm3 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB0_718 + +LBB0_719: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB0_825 + +LBB0_720: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_722 + +LBB0_721: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_721 + +LBB0_722: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_825 + +LBB0_723: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_723 + +LBB0_825: + VZEROUPPER + RET + +DATA LCDATA2<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA2<>+0x008(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA2<>+0x010(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA2<>+0x018(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA2<>(SB), 8, $32 + +TEXT ·_arithmetic_arr_scalar_avx2(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA2<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB1_12 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB1_23 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB1_31 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB1_1109 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_55 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_97 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_157 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_160 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_11 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_445 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_445 + +LBB1_11: + WORD $0xf631 // xor esi, esi + +LBB1_665: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_667 + +LBB1_666: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_666 + +LBB1_667: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_668: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_668 + JMP LBB1_1109 + +LBB1_12: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB1_39 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB1_47 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB1_1109 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_62 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_102 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_163 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_166 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_22 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_448 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_448 + +LBB1_22: + WORD $0xf631 // xor esi, esi + +LBB1_673: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_675 + +LBB1_674: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_674 + +LBB1_675: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_676: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_676 + JMP LBB1_1109 + +LBB1_23: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_69 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_107 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_169 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_172 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_30 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_451 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_451 + +LBB1_30: + WORD $0xf631 // xor esi, esi + +LBB1_681: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_683 + +LBB1_682: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_682 + +LBB1_683: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_684: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_684 + JMP LBB1_1109 + +LBB1_31: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_76 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_112 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_175 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_178 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_38 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_454 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_454 + +LBB1_38: + WORD $0xf631 // xor esi, esi + +LBB1_689: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_691 + +LBB1_690: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_690 + +LBB1_691: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_692: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_692 + JMP LBB1_1109 + +LBB1_39: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_83 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_117 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_181 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_184 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_46 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_457 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_457 + +LBB1_46: + WORD $0xf631 // xor esi, esi + +LBB1_697: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_699 + +LBB1_698: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_698 + +LBB1_699: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_700: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_700 + JMP LBB1_1109 + +LBB1_47: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_90 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_122 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_187 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_190 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_54 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_460 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_460 + +LBB1_54: + WORD $0xf631 // xor esi, esi + +LBB1_705: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_707 + +LBB1_706: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_706 + +LBB1_707: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_708: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_708 + JMP LBB1_1109 + +LBB1_55: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_127 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_193 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_196 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_61 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_463 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_463 + +LBB1_61: + WORD $0xc931 // xor ecx, ecx + +LBB1_713: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_715 + +LBB1_714: + LONG $0x0c59fbc5; BYTE $0xca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_714 + +LBB1_715: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_716: + LONG $0x0c59fbc5; BYTE $0xca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c59fbc5; WORD $0x08ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 8] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c59fbc5; WORD $0x10ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 16] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c59fbc5; WORD $0x18ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 24] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_716 + JMP LBB1_1109 + +LBB1_62: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_132 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_199 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_202 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_68 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_466 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_466 + +LBB1_68: + WORD $0xc931 // xor ecx, ecx + +LBB1_721: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_723 + +LBB1_722: + LONG $0x0c59fbc5; BYTE $0xca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_722 + +LBB1_723: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_724: + LONG $0x0c59fbc5; BYTE $0xca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c59fbc5; WORD $0x08ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 8] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c59fbc5; WORD $0x10ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 16] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c59fbc5; WORD $0x18ca // vmulsd xmm1, xmm0, qword [rdx + 8*rcx + 24] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_724 + JMP LBB1_1109 + +LBB1_69: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_137 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_205 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_208 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_75 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_469 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_469 + +LBB1_75: + WORD $0xc931 // xor ecx, ecx + +LBB1_729: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_731 + +LBB1_730: + LONG $0x0c58fbc5; BYTE $0xca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_730 + +LBB1_731: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_732: + LONG $0x0c58fbc5; BYTE $0xca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c58fbc5; WORD $0x08ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 8] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c58fbc5; WORD $0x10ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 16] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c58fbc5; WORD $0x18ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 24] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_732 + JMP LBB1_1109 + +LBB1_76: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_142 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_211 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_214 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_82 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_472 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_472 + +LBB1_82: + WORD $0xc931 // xor ecx, ecx + +LBB1_737: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_739 + +LBB1_738: + LONG $0x0c10fbc5; BYTE $0xca // vmovsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_738 + +LBB1_739: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_740: + LONG $0x0c10fbc5; BYTE $0xca // vmovsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c10fbc5; WORD $0x08ca // vmovsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c10fbc5; WORD $0x10ca // vmovsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c10fbc5; WORD $0x18ca // vmovsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_740 + JMP LBB1_1109 + +LBB1_83: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_147 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_217 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_220 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_89 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_475 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_475 + +LBB1_89: + WORD $0xc931 // xor ecx, ecx + +LBB1_745: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_747 + +LBB1_746: + LONG $0x0c58fbc5; BYTE $0xca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_746 + +LBB1_747: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_748: + LONG $0x0c58fbc5; BYTE $0xca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx] + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c58fbc5; WORD $0x08ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 8] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c58fbc5; WORD $0x10ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 16] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c58fbc5; WORD $0x18ca // vaddsd xmm1, xmm0, qword [rdx + 8*rcx + 24] + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_748 + JMP LBB1_1109 + +LBB1_90: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_152 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_223 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_226 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fbc5 // vmovsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_96 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_478 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_478 + +LBB1_96: + WORD $0xc931 // xor ecx, ecx + +LBB1_753: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_755 + +LBB1_754: + LONG $0x0c10fbc5; BYTE $0xca // vmovsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_754 + +LBB1_755: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_756: + LONG $0x0c10fbc5; BYTE $0xca // vmovsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc80c // vmovsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c10fbc5; WORD $0x08ca // vmovsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x08 // vmovsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c10fbc5; WORD $0x10ca // vmovsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x10 // vmovsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c10fbc5; WORD $0x18ca // vmovsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc85cf3c5 // vsubsd xmm1, xmm1, xmm0 + LONG $0x117bc1c4; WORD $0xc84c; BYTE $0x18 // vmovsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_756 + JMP LBB1_1109 + +LBB1_97: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_229 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_101 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_481 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_481 + +LBB1_101: + WORD $0xff31 // xor edi, edi + +LBB1_627: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_629 + +LBB1_628: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_628 + +LBB1_629: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_630: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_630 + JMP LBB1_1109 + +LBB1_102: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_232 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_106 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_483 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_483 + +LBB1_106: + WORD $0xff31 // xor edi, edi + +LBB1_637: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_639 + +LBB1_638: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_638 + +LBB1_639: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_640: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_640 + JMP LBB1_1109 + +LBB1_107: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_235 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_111 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_485 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_485 + +LBB1_111: + WORD $0xf631 // xor esi, esi + +LBB1_761: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_763 + +LBB1_762: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_762 + +LBB1_763: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_764: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_764 + JMP LBB1_1109 + +LBB1_112: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_238 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_116 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_488 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_488 + +LBB1_116: + WORD $0xf631 // xor esi, esi + +LBB1_769: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_771 + +LBB1_770: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_770 + +LBB1_771: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_772: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_772 + JMP LBB1_1109 + +LBB1_117: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_241 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_121 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_491 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_491 + +LBB1_121: + WORD $0xf631 // xor esi, esi + +LBB1_777: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_779 + +LBB1_778: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_778 + +LBB1_779: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_780: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_780 + JMP LBB1_1109 + +LBB1_122: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_244 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_126 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_494 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_494 + +LBB1_126: + WORD $0xf631 // xor esi, esi + +LBB1_785: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_787 + +LBB1_786: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_786 + +LBB1_787: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_788: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_788 + JMP LBB1_1109 + +LBB1_127: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_247 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_131 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_497 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_497 + +LBB1_131: + WORD $0xf631 // xor esi, esi + +LBB1_793: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_795 + +LBB1_794: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_794 + +LBB1_795: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_796: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_796 + JMP LBB1_1109 + +LBB1_132: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_250 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_136 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_500 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_500 + +LBB1_136: + WORD $0xf631 // xor esi, esi + +LBB1_801: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_803 + +LBB1_802: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_802 + +LBB1_803: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_804: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_804 + JMP LBB1_1109 + +LBB1_137: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_253 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_141 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_503 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_503 + +LBB1_141: + WORD $0xf631 // xor esi, esi + +LBB1_809: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_811 + +LBB1_810: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_810 + +LBB1_811: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_812: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_812 + JMP LBB1_1109 + +LBB1_142: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_256 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_146 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_506 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_506 + +LBB1_146: + WORD $0xf631 // xor esi, esi + +LBB1_817: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_819 + +LBB1_818: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_818 + +LBB1_819: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_820: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_820 + JMP LBB1_1109 + +LBB1_147: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_259 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_151 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_509 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_509 + +LBB1_151: + WORD $0xf631 // xor esi, esi + +LBB1_825: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_827 + +LBB1_826: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_826 + +LBB1_827: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_828: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_828 + JMP LBB1_1109 + +LBB1_152: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_262 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_156 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_512 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_512 + +LBB1_156: + WORD $0xf631 // xor esi, esi + +LBB1_833: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_835 + +LBB1_834: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_834 + +LBB1_835: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_836: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_836 + JMP LBB1_1109 + +LBB1_157: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_159 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_515 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_515 + +LBB1_159: + WORD $0xf631 // xor esi, esi + +LBB1_841: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_843 + +LBB1_842: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_842 + +LBB1_843: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_844: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_844 + JMP LBB1_1109 + +LBB1_160: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_162 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_518 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_518 + +LBB1_162: + WORD $0xf631 // xor esi, esi + +LBB1_849: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_851 + +LBB1_850: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_850 + +LBB1_851: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_852: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_852 + JMP LBB1_1109 + +LBB1_163: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_165 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_521 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_521 + +LBB1_165: + WORD $0xf631 // xor esi, esi + +LBB1_857: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_859 + +LBB1_858: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_858 + +LBB1_859: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_860: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_860 + JMP LBB1_1109 + +LBB1_166: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_168 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_524 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_524 + +LBB1_168: + WORD $0xf631 // xor esi, esi + +LBB1_865: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_867 + +LBB1_866: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_866 + +LBB1_867: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_868: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_868 + JMP LBB1_1109 + +LBB1_169: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_171 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_527 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_527 + +LBB1_171: + WORD $0xf631 // xor esi, esi + +LBB1_873: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_875 + +LBB1_874: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_874 + +LBB1_875: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_876: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_876 + JMP LBB1_1109 + +LBB1_172: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_174 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_530 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_530 + +LBB1_174: + WORD $0xf631 // xor esi, esi + +LBB1_881: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_883 + +LBB1_882: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_882 + +LBB1_883: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_884: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_884 + JMP LBB1_1109 + +LBB1_175: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_177 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_533 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_533 + +LBB1_177: + WORD $0xf631 // xor esi, esi + +LBB1_889: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_891 + +LBB1_890: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc729 // sub edi, eax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_890 + +LBB1_891: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_892: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_892 + JMP LBB1_1109 + +LBB1_178: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_180 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_536 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_536 + +LBB1_180: + WORD $0xf631 // xor esi, esi + +LBB1_897: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_899 + +LBB1_898: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc729 // sub edi, eax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_898 + +LBB1_899: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_900: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_900 + JMP LBB1_1109 + +LBB1_181: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_183 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_539 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_539 + +LBB1_183: + WORD $0xf631 // xor esi, esi + +LBB1_905: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_907 + +LBB1_906: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_906 + +LBB1_907: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_908: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_908 + JMP LBB1_1109 + +LBB1_184: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_186 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_542 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_542 + +LBB1_186: + WORD $0xf631 // xor esi, esi + +LBB1_913: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_915 + +LBB1_914: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_914 + +LBB1_915: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_916: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_916 + JMP LBB1_1109 + +LBB1_187: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_189 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_545 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_545 + +LBB1_189: + WORD $0xf631 // xor esi, esi + +LBB1_921: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_923 + +LBB1_922: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc729 // sub edi, eax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_922 + +LBB1_923: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_924: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_924 + JMP LBB1_1109 + +LBB1_190: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_192 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_548 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_548 + +LBB1_192: + WORD $0xf631 // xor esi, esi + +LBB1_929: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + LONG $0x03e18348 // and rcx, 3 + JE LBB1_931 + +LBB1_930: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc729 // sub edi, eax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc18348 // add rcx, -1 + JNE LBB1_930 + +LBB1_931: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_932: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_932 + JMP LBB1_1109 + +LBB1_193: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_195 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_551 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_551 + +LBB1_195: + WORD $0xf631 // xor esi, esi + +LBB1_937: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_939 + +LBB1_938: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_938 + +LBB1_939: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_940: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_940 + JMP LBB1_1109 + +LBB1_196: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_198 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_554 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_554 + +LBB1_198: + WORD $0xc931 // xor ecx, ecx + +LBB1_945: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_947 + +LBB1_946: + LONG $0x0c59fac5; BYTE $0x8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_946 + +LBB1_947: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_948: + LONG $0x0c59fac5; BYTE $0x8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c59fac5; WORD $0x048a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 4] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c59fac5; WORD $0x088a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 8] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c59fac5; WORD $0x0c8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 12] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_948 + JMP LBB1_1109 + +LBB1_199: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_201 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_557 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_557 + +LBB1_201: + WORD $0xf631 // xor esi, esi + +LBB1_953: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_955 + +LBB1_954: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_954 + +LBB1_955: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_956: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_956 + JMP LBB1_1109 + +LBB1_202: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_204 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_560 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_560 + +LBB1_204: + WORD $0xc931 // xor ecx, ecx + +LBB1_961: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_963 + +LBB1_962: + LONG $0x0c59fac5; BYTE $0x8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_962 + +LBB1_963: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_964: + LONG $0x0c59fac5; BYTE $0x8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c59fac5; WORD $0x048a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 4] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c59fac5; WORD $0x088a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 8] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c59fac5; WORD $0x0c8a // vmulss xmm1, xmm0, dword [rdx + 4*rcx + 12] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_964 + JMP LBB1_1109 + +LBB1_205: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_207 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_563 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_563 + +LBB1_207: + WORD $0xf631 // xor esi, esi + +LBB1_969: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_971 + +LBB1_970: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_970 + +LBB1_971: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_972: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_972 + JMP LBB1_1109 + +LBB1_208: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_210 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_566 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_566 + +LBB1_210: + WORD $0xc931 // xor ecx, ecx + +LBB1_977: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_979 + +LBB1_978: + LONG $0x0c58fac5; BYTE $0x8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_978 + +LBB1_979: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_980: + LONG $0x0c58fac5; BYTE $0x8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c58fac5; WORD $0x048a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 4] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c58fac5; WORD $0x088a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 8] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c58fac5; WORD $0x0c8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 12] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_980 + JMP LBB1_1109 + +LBB1_211: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_213 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_569 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_569 + +LBB1_213: + WORD $0xf631 // xor esi, esi + +LBB1_985: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_987 + +LBB1_986: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_986 + +LBB1_987: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_988: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_988 + JMP LBB1_1109 + +LBB1_214: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_216 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_572 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_572 + +LBB1_216: + WORD $0xc931 // xor ecx, ecx + +LBB1_993: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_995 + +LBB1_994: + LONG $0x0c10fac5; BYTE $0x8a // vmovss xmm1, dword [rdx + 4*rcx] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_994 + +LBB1_995: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_996: + LONG $0x0c10fac5; BYTE $0x8a // vmovss xmm1, dword [rdx + 4*rcx] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c10fac5; WORD $0x048a // vmovss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c10fac5; WORD $0x088a // vmovss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c10fac5; WORD $0x0c8a // vmovss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_996 + JMP LBB1_1109 + +LBB1_217: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_219 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_575 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_575 + +LBB1_219: + WORD $0xf631 // xor esi, esi + +LBB1_1001: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1003 + +LBB1_1002: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1002 + +LBB1_1003: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1004: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1004 + JMP LBB1_1109 + +LBB1_220: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_222 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_578 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_578 + +LBB1_222: + WORD $0xc931 // xor ecx, ecx + +LBB1_1009: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1011 + +LBB1_1010: + LONG $0x0c58fac5; BYTE $0x8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1010 + +LBB1_1011: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_1012: + LONG $0x0c58fac5; BYTE $0x8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx] + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c58fac5; WORD $0x048a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 4] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c58fac5; WORD $0x088a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 8] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c58fac5; WORD $0x0c8a // vaddss xmm1, xmm0, dword [rdx + 4*rcx + 12] + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_1012 + JMP LBB1_1109 + +LBB1_223: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_225 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_581 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_581 + +LBB1_225: + WORD $0xf631 // xor esi, esi + +LBB1_1017: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1019 + +LBB1_1018: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1018 + +LBB1_1019: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1020: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1020 + JMP LBB1_1109 + +LBB1_226: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + LONG $0x0110fac5 // vmovss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_228 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_584 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_584 + +LBB1_228: + WORD $0xc931 // xor ecx, ecx + +LBB1_1025: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1027 + +LBB1_1026: + LONG $0x0c10fac5; BYTE $0x8a // vmovss xmm1, dword [rdx + 4*rcx] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1026 + +LBB1_1027: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1109 + +LBB1_1028: + LONG $0x0c10fac5; BYTE $0x8a // vmovss xmm1, dword [rdx + 4*rcx] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x880c // vmovss dword [r8 + 4*rcx], xmm1 + LONG $0x4c10fac5; WORD $0x048a // vmovss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x04 // vmovss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c10fac5; WORD $0x088a // vmovss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x08 // vmovss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c10fac5; WORD $0x0c8a // vmovss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc85cf2c5 // vsubss xmm1, xmm1, xmm0 + LONG $0x117ac1c4; WORD $0x884c; BYTE $0x0c // vmovss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_1028 + JMP LBB1_1109 + +LBB1_229: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_231 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_587 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_587 + +LBB1_231: + WORD $0xff31 // xor edi, edi + +LBB1_647: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_649 + +LBB1_648: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_648 + +LBB1_649: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_650: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_650 + JMP LBB1_1109 + +LBB1_232: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_234 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_589 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_589 + +LBB1_234: + WORD $0xff31 // xor edi, edi + +LBB1_657: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_659 + +LBB1_658: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_658 + +LBB1_659: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_660: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_660 + JMP LBB1_1109 + +LBB1_235: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_237 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_591 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_591 + +LBB1_237: + WORD $0xf631 // xor esi, esi + +LBB1_1033: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1035 + +LBB1_1034: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1034 + +LBB1_1035: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1036: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1036 + JMP LBB1_1109 + +LBB1_238: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_240 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_594 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_594 + +LBB1_240: + WORD $0xf631 // xor esi, esi + +LBB1_1041: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1043 + +LBB1_1042: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1042 + +LBB1_1043: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1044: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1044 + JMP LBB1_1109 + +LBB1_241: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_243 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_597 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_597 + +LBB1_243: + WORD $0xf631 // xor esi, esi + +LBB1_1049: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1051 + +LBB1_1050: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1050 + +LBB1_1051: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1052: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1052 + JMP LBB1_1109 + +LBB1_244: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB1_246 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_600 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_600 + +LBB1_246: + WORD $0xf631 // xor esi, esi + +LBB1_1057: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1059 + +LBB1_1058: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1058 + +LBB1_1059: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1060: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1060 + JMP LBB1_1109 + +LBB1_247: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_249 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_603 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_603 + +LBB1_249: + WORD $0xf631 // xor esi, esi + +LBB1_1065: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1067 + +LBB1_1066: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1066 + +LBB1_1067: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1068: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1068 + JMP LBB1_1109 + +LBB1_250: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_252 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_606 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_606 + +LBB1_252: + WORD $0xf631 // xor esi, esi + +LBB1_1073: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1075 + +LBB1_1074: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1074 + +LBB1_1075: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1076: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1076 + JMP LBB1_1109 + +LBB1_253: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_255 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_609 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_609 + +LBB1_255: + WORD $0xf631 // xor esi, esi + +LBB1_1081: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1083 + +LBB1_1082: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1082 + +LBB1_1083: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1084: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1084 + JMP LBB1_1109 + +LBB1_256: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_258 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_612 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_612 + +LBB1_258: + WORD $0xf631 // xor esi, esi + +LBB1_1089: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1091 + +LBB1_1090: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1090 + +LBB1_1091: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1092: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1092 + JMP LBB1_1109 + +LBB1_259: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_261 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_615 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_615 + +LBB1_261: + WORD $0xf631 // xor esi, esi + +LBB1_1097: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1099 + +LBB1_1098: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1098 + +LBB1_1099: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1100: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1100 + JMP LBB1_1109 + +LBB1_262: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1109 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_264 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_618 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_618 + +LBB1_264: + WORD $0xf631 // xor esi, esi + +LBB1_1105: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1107 + +LBB1_1106: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1106 + +LBB1_1107: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1109 + +LBB1_1108: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1108 + JMP LBB1_1109 + +LBB1_445: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_661 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_447: + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba64; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080ba8c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x00a0ba94407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x00c0ba9c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x00e0baa4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_447 + JMP LBB1_662 + +LBB1_448: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_669 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_450: + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba64; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080ba8c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x00a0ba94407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x00c0ba9c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x00e0baa4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_450 + JMP LBB1_670 + +LBB1_451: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_677 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_453: + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60ba // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_453 + JMP LBB1_678 + +LBB1_454: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_685 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_456: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_456 + JMP LBB1_686 + +LBB1_457: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_693 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_459: + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60ba // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_459 + JMP LBB1_694 + +LBB1_460: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_701 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_462: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_462 + JMP LBB1_702 + +LBB1_463: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_709 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_465: + LONG $0x1459f5c5; BYTE $0xfa // vmulpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20fa // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40fa // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x6c59f5c5; WORD $0x60fa // vmulpd ymm5, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa9459f5c5; BYTE $0x00 // vmulpd ymm2, ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c59f5c5; BYTE $0x00 // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa459f5c5; BYTE $0x00 // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac59f5c5; BYTE $0x00 // vmulpd ymm5, ymm1, yword [rdx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_465 + JMP LBB1_710 + +LBB1_466: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_717 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_468: + LONG $0x1459f5c5; BYTE $0xfa // vmulpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20fa // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40fa // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x6c59f5c5; WORD $0x60fa // vmulpd ymm5, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa9459f5c5; BYTE $0x00 // vmulpd ymm2, ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c59f5c5; BYTE $0x00 // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa459f5c5; BYTE $0x00 // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac59f5c5; BYTE $0x00 // vmulpd ymm5, ymm1, yword [rdx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_468 + JMP LBB1_718 + +LBB1_469: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_725 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_471: + LONG $0x1458f5c5; BYTE $0xfa // vaddpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20fa // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40fa // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x6c58f5c5; WORD $0x60fa // vaddpd ymm5, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa9458f5c5; BYTE $0x00 // vaddpd ymm2, ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c58f5c5; BYTE $0x00 // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa458f5c5; BYTE $0x00 // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac58f5c5; BYTE $0x00 // vaddpd ymm5, ymm1, yword [rdx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_471 + JMP LBB1_726 + +LBB1_472: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_733 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + +LBB1_474: + LONG $0x1410fdc5; BYTE $0xf2 // vmovupd ymm2, yword [rdx + 8*rsi] + LONG $0x5c10fdc5; WORD $0x20f2 // vmovupd ymm3, yword [rdx + 8*rsi + 32] + LONG $0x6410fdc5; WORD $0x40f2 // vmovupd ymm4, yword [rdx + 8*rsi + 64] + LONG $0x6c10fdc5; WORD $0x60f2 // vmovupd ymm5, yword [rdx + 8*rsi + 96] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xe95cd5c5 // vsubpd ymm5, ymm5, ymm1 + LONG $0x117dc1c4; WORD $0xf014 // vmovupd yword [r8 + 8*rsi], ymm2 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm5 + QUAD $0x000080f29410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rsi + 128] + QUAD $0x0000a0f29c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rsi + 160] + QUAD $0x0000c0f2a410fdc5; BYTE $0x00 // vmovupd ymm4, yword [rdx + 8*rsi + 192] + QUAD $0x0000e0f2ac10fdc5; BYTE $0x00 // vmovupd ymm5, yword [rdx + 8*rsi + 224] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xe95cd5c5 // vsubpd ymm5, ymm5, ymm1 + QUAD $0x0080f094117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 128], ymm2 + QUAD $0x00a0f09c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 160], ymm3 + QUAD $0x00c0f0a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 192], ymm4 + QUAD $0x00e0f0ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 224], ymm5 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB1_474 + JMP LBB1_734 + +LBB1_475: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_741 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_477: + LONG $0x1458f5c5; BYTE $0xfa // vaddpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20fa // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40fa // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x6c58f5c5; WORD $0x60fa // vaddpd ymm5, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa9458f5c5; BYTE $0x00 // vaddpd ymm2, ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c58f5c5; BYTE $0x00 // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa458f5c5; BYTE $0x00 // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac58f5c5; BYTE $0x00 // vaddpd ymm5, ymm1, yword [rdx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_477 + JMP LBB1_742 + +LBB1_478: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf0 // and ecx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0718d48 // lea rsi, [rcx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_749 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + +LBB1_480: + LONG $0x1410fdc5; BYTE $0xf2 // vmovupd ymm2, yword [rdx + 8*rsi] + LONG $0x5c10fdc5; WORD $0x20f2 // vmovupd ymm3, yword [rdx + 8*rsi + 32] + LONG $0x6410fdc5; WORD $0x40f2 // vmovupd ymm4, yword [rdx + 8*rsi + 64] + LONG $0x6c10fdc5; WORD $0x60f2 // vmovupd ymm5, yword [rdx + 8*rsi + 96] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xe95cd5c5 // vsubpd ymm5, ymm5, ymm1 + LONG $0x117dc1c4; WORD $0xf014 // vmovupd yword [r8 + 8*rsi], ymm2 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm5 + QUAD $0x000080f29410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rsi + 128] + QUAD $0x0000a0f29c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rsi + 160] + QUAD $0x0000c0f2a410fdc5; BYTE $0x00 // vmovupd ymm4, yword [rdx + 8*rsi + 192] + QUAD $0x0000e0f2ac10fdc5; BYTE $0x00 // vmovupd ymm5, yword [rdx + 8*rsi + 224] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xe95cd5c5 // vsubpd ymm5, ymm5, ymm1 + QUAD $0x0080f094117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 128], ymm2 + QUAD $0x00a0f09c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 160], ymm3 + QUAD $0x00c0f0a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 192], ymm4 + QUAD $0x00e0f0ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rsi + 224], ymm5 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB1_480 + JMP LBB1_750 + +LBB1_481: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc16ef9c5 // vmovd xmm0, ecx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB1_621 + WORD $0xf631 // xor esi, esi + JMP LBB1_623 + +LBB1_483: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc16ef9c5 // vmovd xmm0, ecx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB1_631 + WORD $0xf631 // xor esi, esi + JMP LBB1_633 + +LBB1_485: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_757 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_487: + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x603a // vpaddb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_487 + JMP LBB1_758 + +LBB1_488: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_765 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_490: + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + rdi + 128] + QUAD $0x0000a03a946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + rdi + 160] + QUAD $0x0000c03a9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + rdi + 192] + QUAD $0x0000e03aa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + rdi + 224] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_490 + JMP LBB1_766 + +LBB1_491: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_773 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_493: + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x603a // vpaddb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_493 + JMP LBB1_774 + +LBB1_494: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_781 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_496: + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + rdi + 128] + QUAD $0x0000a03a946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + rdi + 160] + QUAD $0x0000c03a9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + rdi + 192] + QUAD $0x0000e03aa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + rdi + 224] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_496 + JMP LBB1_782 + +LBB1_497: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_789 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_499: + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_499 + JMP LBB1_790 + +LBB1_500: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_797 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_502: + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_502 + JMP LBB1_798 + +LBB1_503: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_805 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_505: + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60fa // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_505 + JMP LBB1_806 + +LBB1_506: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_813 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_508: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 224] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_508 + JMP LBB1_814 + +LBB1_509: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_821 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_511: + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60fa // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_511 + JMP LBB1_822 + +LBB1_512: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_829 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_514: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 224] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_514 + JMP LBB1_830 + +LBB1_515: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_837 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_517: + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x207a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x407a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x607a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_517 + JMP LBB1_838 + +LBB1_518: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_845 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_520: + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x207a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x407a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x607a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_520 + JMP LBB1_846 + +LBB1_521: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_853 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_523: + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x207a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x407a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x607a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_523 + JMP LBB1_854 + +LBB1_524: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_861 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_526: + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x207a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x407a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x607a // vpmullw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_526 + JMP LBB1_862 + +LBB1_527: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_869 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_529: + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x207a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x407a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x607a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_529 + JMP LBB1_870 + +LBB1_530: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_877 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_532: + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x207a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x407a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x607a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_532 + JMP LBB1_878 + +LBB1_533: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_885 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_535: + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4c6ffec5; WORD $0x407a // vmovdqu ymm1, yword [rdx + 2*rdi + 64] + LONG $0x546ffec5; WORD $0x607a // vmovdqu ymm2, yword [rdx + 2*rdi + 96] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_535 + JMP LBB1_886 + +LBB1_536: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_893 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_538: + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4c6ffec5; WORD $0x407a // vmovdqu ymm1, yword [rdx + 2*rdi + 64] + LONG $0x546ffec5; WORD $0x607a // vmovdqu ymm2, yword [rdx + 2*rdi + 96] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_538 + JMP LBB1_894 + +LBB1_539: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_901 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_541: + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x207a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x407a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x607a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_541 + JMP LBB1_902 + +LBB1_542: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_909 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_544: + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x207a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x407a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x607a // vpaddw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_544 + JMP LBB1_910 + +LBB1_545: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_917 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_547: + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4c6ffec5; WORD $0x407a // vmovdqu ymm1, yword [rdx + 2*rdi + 64] + LONG $0x546ffec5; WORD $0x607a // vmovdqu ymm2, yword [rdx + 2*rdi + 96] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_547 + JMP LBB1_918 + +LBB1_548: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_925 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_550: + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4c6ffec5; WORD $0x407a // vmovdqu ymm1, yword [rdx + 2*rdi + 64] + LONG $0x546ffec5; WORD $0x607a // vmovdqu ymm2, yword [rdx + 2*rdi + 96] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xd0f9edc5 // vpsubw ymm2, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_550 + JMP LBB1_926 + +LBB1_551: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_933 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_553: + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_553 + JMP LBB1_934 + +LBB1_554: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_941 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_556: + LONG $0x1459f4c5; BYTE $0xba // vmulps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20ba // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40ba // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x6c59f4c5; WORD $0x60ba // vmulps ymm5, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080ba9459f4c5; BYTE $0x00 // vmulps ymm2, ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9c59f4c5; BYTE $0x00 // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0baa459f4c5; BYTE $0x00 // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baac59f4c5; BYTE $0x00 // vmulps ymm5, ymm1, yword [rdx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_556 + JMP LBB1_942 + +LBB1_557: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_949 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_559: + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_559 + JMP LBB1_950 + +LBB1_560: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_957 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_562: + LONG $0x1459f4c5; BYTE $0xba // vmulps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20ba // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40ba // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x6c59f4c5; WORD $0x60ba // vmulps ymm5, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080ba9459f4c5; BYTE $0x00 // vmulps ymm2, ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9c59f4c5; BYTE $0x00 // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0baa459f4c5; BYTE $0x00 // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baac59f4c5; BYTE $0x00 // vmulps ymm5, ymm1, yword [rdx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_562 + JMP LBB1_958 + +LBB1_563: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_965 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_565: + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60fa // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_565 + JMP LBB1_966 + +LBB1_566: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_973 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_568: + LONG $0x1458f4c5; BYTE $0xba // vaddps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20ba // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40ba // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x6c58f4c5; WORD $0x60ba // vaddps ymm5, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080ba9458f4c5; BYTE $0x00 // vaddps ymm2, ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9c58f4c5; BYTE $0x00 // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0baa458f4c5; BYTE $0x00 // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baac58f4c5; BYTE $0x00 // vaddps ymm5, ymm1, yword [rdx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_568 + JMP LBB1_974 + +LBB1_569: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_981 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_571: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 224] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_571 + JMP LBB1_982 + +LBB1_572: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_989 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + +LBB1_574: + LONG $0x1410fcc5; BYTE $0xb2 // vmovups ymm2, yword [rdx + 4*rsi] + LONG $0x5c10fcc5; WORD $0x20b2 // vmovups ymm3, yword [rdx + 4*rsi + 32] + LONG $0x6410fcc5; WORD $0x40b2 // vmovups ymm4, yword [rdx + 4*rsi + 64] + LONG $0x6c10fcc5; WORD $0x60b2 // vmovups ymm5, yword [rdx + 4*rsi + 96] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xe95cd4c5 // vsubps ymm5, ymm5, ymm1 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm5 + QUAD $0x000080b29410fcc5; BYTE $0x00 // vmovups ymm2, yword [rdx + 4*rsi + 128] + QUAD $0x0000a0b29c10fcc5; BYTE $0x00 // vmovups ymm3, yword [rdx + 4*rsi + 160] + QUAD $0x0000c0b2a410fcc5; BYTE $0x00 // vmovups ymm4, yword [rdx + 4*rsi + 192] + QUAD $0x0000e0b2ac10fcc5; BYTE $0x00 // vmovups ymm5, yword [rdx + 4*rsi + 224] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xe95cd4c5 // vsubps ymm5, ymm5, ymm1 + QUAD $0x0080b094117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 128], ymm2 + QUAD $0x00a0b09c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 160], ymm3 + QUAD $0x00c0b0a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 192], ymm4 + QUAD $0x00e0b0ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 224], ymm5 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB1_574 + JMP LBB1_990 + +LBB1_575: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_997 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_577: + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60fa // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_577 + JMP LBB1_998 + +LBB1_578: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_1005 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_580: + LONG $0x1458f4c5; BYTE $0xba // vaddps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20ba // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40ba // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x6c58f4c5; WORD $0x60ba // vaddps ymm5, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080ba9458f4c5; BYTE $0x00 // vaddps ymm2, ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9c58f4c5; BYTE $0x00 // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0baa458f4c5; BYTE $0x00 // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baac58f4c5; BYTE $0x00 // vaddps ymm5, ymm1, yword [rdx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_580 + JMP LBB1_1006 + +LBB1_581: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1013 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_583: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 224] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xe0fbddc5 // vpsubq ymm4, ymm4, ymm0 + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_583 + JMP LBB1_1014 + +LBB1_584: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xe0 // and ecx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0718d48 // lea rsi, [rcx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_1021 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + +LBB1_586: + LONG $0x1410fcc5; BYTE $0xb2 // vmovups ymm2, yword [rdx + 4*rsi] + LONG $0x5c10fcc5; WORD $0x20b2 // vmovups ymm3, yword [rdx + 4*rsi + 32] + LONG $0x6410fcc5; WORD $0x40b2 // vmovups ymm4, yword [rdx + 4*rsi + 64] + LONG $0x6c10fcc5; WORD $0x60b2 // vmovups ymm5, yword [rdx + 4*rsi + 96] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xe95cd4c5 // vsubps ymm5, ymm5, ymm1 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm5 + QUAD $0x000080b29410fcc5; BYTE $0x00 // vmovups ymm2, yword [rdx + 4*rsi + 128] + QUAD $0x0000a0b29c10fcc5; BYTE $0x00 // vmovups ymm3, yword [rdx + 4*rsi + 160] + QUAD $0x0000c0b2a410fcc5; BYTE $0x00 // vmovups ymm4, yword [rdx + 4*rsi + 192] + QUAD $0x0000e0b2ac10fcc5; BYTE $0x00 // vmovups ymm5, yword [rdx + 4*rsi + 224] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xe95cd4c5 // vsubps ymm5, ymm5, ymm1 + QUAD $0x0080b094117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 128], ymm2 + QUAD $0x00a0b09c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 160], ymm3 + QUAD $0x00c0b0a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 192], ymm4 + QUAD $0x00e0b0ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rsi + 224], ymm5 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB1_586 + JMP LBB1_1022 + +LBB1_587: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc16ef9c5 // vmovd xmm0, ecx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB1_641 + WORD $0xf631 // xor esi, esi + JMP LBB1_643 + +LBB1_589: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc16ef9c5 // vmovd xmm0, ecx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB1_651 + WORD $0xf631 // xor esi, esi + JMP LBB1_653 + +LBB1_591: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1029 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_593: + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x603a // vpaddb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_593 + JMP LBB1_1030 + +LBB1_594: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1037 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_596: + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + rdi + 128] + QUAD $0x0000a03a946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + rdi + 160] + QUAD $0x0000c03a9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + rdi + 192] + QUAD $0x0000e03aa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + rdi + 224] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_596 + JMP LBB1_1038 + +LBB1_597: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1045 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_599: + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x603a // vpaddb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_599 + JMP LBB1_1046 + +LBB1_600: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x804e8d48 // lea rcx, [rsi - 128] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1053 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_602: + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x0000803a8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + rdi + 128] + QUAD $0x0000a03a946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + rdi + 160] + QUAD $0x0000c03a9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + rdi + 192] + QUAD $0x0000e03aa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + rdi + 224] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xe0f8ddc5 // vpsubb ymm4, ymm4, ymm0 + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_602 + JMP LBB1_1054 + +LBB1_603: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1061 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_605: + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba64; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080ba8c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x00a0ba94407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x00c0ba9c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x00e0baa4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_605 + JMP LBB1_1062 + +LBB1_606: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1069 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_608: + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba64; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080ba8c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x00a0ba94407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x00c0ba9c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x00e0baa4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_608 + JMP LBB1_1070 + +LBB1_609: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1077 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_611: + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60ba // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_611 + JMP LBB1_1078 + +LBB1_612: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1085 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_614: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_614 + JMP LBB1_1086 + +LBB1_615: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1093 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_617: + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60ba // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_617 + JMP LBB1_1094 + +LBB1_618: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1101 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_620: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xe0faddc5 // vpsubd ymm4, ymm4, ymm0 + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_620 + JMP LBB1_1102 + +LBB1_621: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB1_622: + LONG $0x246ffec5; BYTE $0x32 // vmovdqu ymm4, yword [rdx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2032 // vmovdqu ymm4, yword [rdx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4032 // vmovdqu ymm4, yword [rdx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6032 // vmovdqu ymm4, yword [rdx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB1_622 + +LBB1_623: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_626 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB1_625: + LONG $0x1c6ffec5; BYTE $0x32 // vmovdqu ymm3, yword [rdx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB1_625 + +LBB1_626: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1109 + JMP LBB1_627 + +LBB1_631: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB1_632: + LONG $0x246ffec5; BYTE $0x32 // vmovdqu ymm4, yword [rdx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2032 // vmovdqu ymm4, yword [rdx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4032 // vmovdqu ymm4, yword [rdx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6032 // vmovdqu ymm4, yword [rdx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB1_632 + +LBB1_633: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_636 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB1_635: + LONG $0x1c6ffec5; BYTE $0x32 // vmovdqu ymm3, yword [rdx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB1_635 + +LBB1_636: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1109 + JMP LBB1_637 + +LBB1_641: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB1_642: + LONG $0x246ffec5; BYTE $0x32 // vmovdqu ymm4, yword [rdx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2032 // vmovdqu ymm4, yword [rdx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4032 // vmovdqu ymm4, yword [rdx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6032 // vmovdqu ymm4, yword [rdx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB1_642 + +LBB1_643: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_646 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB1_645: + LONG $0x1c6ffec5; BYTE $0x32 // vmovdqu ymm3, yword [rdx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB1_645 + +LBB1_646: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1109 + JMP LBB1_647 + +LBB1_651: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB1_652: + LONG $0x246ffec5; BYTE $0x32 // vmovdqu ymm4, yword [rdx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2032 // vmovdqu ymm4, yword [rdx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4032 // vmovdqu ymm4, yword [rdx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6032 // vmovdqu ymm4, yword [rdx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB1_652 + +LBB1_653: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_656 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB1_655: + LONG $0x1c6ffec5; BYTE $0x32 // vmovdqu ymm3, yword [rdx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB1_655 + +LBB1_656: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1109 + JMP LBB1_657 + +LBB1_661: + WORD $0xff31 // xor edi, edi + +LBB1_662: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_664 + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba44; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_664: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_665 + +LBB1_669: + WORD $0xff31 // xor edi, edi + +LBB1_670: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_672 + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba44; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_672: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_673 + +LBB1_677: + WORD $0xff31 // xor edi, edi + +LBB1_678: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_680 + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60ba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_680: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_681 + +LBB1_685: + WORD $0xff31 // xor edi, edi + +LBB1_686: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_688 + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xc0faddc5 // vpsubd ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_688: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_689 + +LBB1_693: + WORD $0xff31 // xor edi, edi + +LBB1_694: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_696 + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60ba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_696: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_697 + +LBB1_701: + WORD $0xff31 // xor edi, edi + +LBB1_702: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_704 + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xc0faddc5 // vpsubd ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_704: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_705 + +LBB1_709: + WORD $0xff31 // xor edi, edi + +LBB1_710: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_712 + LONG $0x1459f5c5; BYTE $0xfa // vmulpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20fa // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40fa // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x4c59f5c5; WORD $0x60fa // vmulpd ymm1, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB1_712: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_713 + +LBB1_717: + WORD $0xff31 // xor edi, edi + +LBB1_718: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_720 + LONG $0x1459f5c5; BYTE $0xfa // vmulpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20fa // vmulpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40fa // vmulpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x4c59f5c5; WORD $0x60fa // vmulpd ymm1, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB1_720: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_721 + +LBB1_725: + WORD $0xff31 // xor edi, edi + +LBB1_726: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_728 + LONG $0x1458f5c5; BYTE $0xfa // vaddpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20fa // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40fa // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x4c58f5c5; WORD $0x60fa // vaddpd ymm1, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB1_728: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_729 + +LBB1_733: + WORD $0xf631 // xor esi, esi + +LBB1_734: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_736 + LONG $0x1410fdc5; BYTE $0xf2 // vmovupd ymm2, yword [rdx + 8*rsi] + LONG $0x5c10fdc5; WORD $0x20f2 // vmovupd ymm3, yword [rdx + 8*rsi + 32] + LONG $0x6410fdc5; WORD $0x40f2 // vmovupd ymm4, yword [rdx + 8*rsi + 64] + LONG $0x6c10fdc5; WORD $0x60f2 // vmovupd ymm5, yword [rdx + 8*rsi + 96] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xc95cd5c5 // vsubpd ymm1, ymm5, ymm1 + LONG $0x117dc1c4; WORD $0xf014 // vmovupd yword [r8 + 8*rsi], ymm2 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + +LBB1_736: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_737 + +LBB1_741: + WORD $0xff31 // xor edi, edi + +LBB1_742: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_744 + LONG $0x1458f5c5; BYTE $0xfa // vaddpd ymm2, ymm1, yword [rdx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20fa // vaddpd ymm3, ymm1, yword [rdx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40fa // vaddpd ymm4, ymm1, yword [rdx + 8*rdi + 64] + LONG $0x4c58f5c5; WORD $0x60fa // vaddpd ymm1, ymm1, yword [rdx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB1_744: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_745 + +LBB1_749: + WORD $0xf631 // xor esi, esi + +LBB1_750: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_752 + LONG $0x1410fdc5; BYTE $0xf2 // vmovupd ymm2, yword [rdx + 8*rsi] + LONG $0x5c10fdc5; WORD $0x20f2 // vmovupd ymm3, yword [rdx + 8*rsi + 32] + LONG $0x6410fdc5; WORD $0x40f2 // vmovupd ymm4, yword [rdx + 8*rsi + 64] + LONG $0x6c10fdc5; WORD $0x60f2 // vmovupd ymm5, yword [rdx + 8*rsi + 96] + LONG $0xd15cedc5 // vsubpd ymm2, ymm2, ymm1 + LONG $0xd95ce5c5 // vsubpd ymm3, ymm3, ymm1 + LONG $0xe15cddc5 // vsubpd ymm4, ymm4, ymm1 + LONG $0xc95cd5c5 // vsubpd ymm1, ymm5, ymm1 + LONG $0x117dc1c4; WORD $0xf014 // vmovupd yword [r8 + 8*rsi], ymm2 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + +LBB1_752: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_753 + +LBB1_757: + WORD $0xff31 // xor edi, edi + +LBB1_758: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_760 + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x603a // vpaddb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_760: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_761 + +LBB1_765: + WORD $0xff31 // xor edi, edi + +LBB1_766: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_768 + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xc0f8ddc5 // vpsubb ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_768: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_769 + +LBB1_773: + WORD $0xff31 // xor edi, edi + +LBB1_774: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_776 + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x603a // vpaddb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_776: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_777 + +LBB1_781: + WORD $0xff31 // xor edi, edi + +LBB1_782: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_784 + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xc0f8ddc5 // vpsubb ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_784: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_785 + +LBB1_789: + WORD $0xff31 // xor edi, edi + +LBB1_790: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_792 + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_792: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_793 + +LBB1_797: + WORD $0xff31 // xor edi, edi + +LBB1_798: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_800 + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_800: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_801 + +LBB1_805: + WORD $0xff31 // xor edi, edi + +LBB1_806: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_808 + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60fa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_808: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_809 + +LBB1_813: + WORD $0xff31 // xor edi, edi + +LBB1_814: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_816 + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xc0fbddc5 // vpsubq ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_816: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_817 + +LBB1_821: + WORD $0xff31 // xor edi, edi + +LBB1_822: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_824 + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60fa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_824: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_825 + +LBB1_829: + WORD $0xff31 // xor edi, edi + +LBB1_830: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_832 + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xc0fbddc5 // vpsubq ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_832: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_833 + +LBB1_837: + WORD $0xff31 // xor edi, edi + +LBB1_838: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_840 + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x207a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_840: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_841 + +LBB1_845: + WORD $0xff31 // xor edi, edi + +LBB1_846: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_848 + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x207a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_848: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_849 + +LBB1_853: + WORD $0xff31 // xor edi, edi + +LBB1_854: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_856 + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x207a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_856: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_857 + +LBB1_861: + WORD $0xff31 // xor edi, edi + +LBB1_862: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_864 + LONG $0x0cd5fdc5; BYTE $0x7a // vpmullw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x207a // vpmullw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_864: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_865 + +LBB1_869: + WORD $0xff31 // xor edi, edi + +LBB1_870: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_872 + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x207a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_872: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_873 + +LBB1_877: + WORD $0xff31 // xor edi, edi + +LBB1_878: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_880 + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x207a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_880: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_881 + +LBB1_885: + WORD $0xff31 // xor edi, edi + +LBB1_886: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_888 + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xc0f9edc5 // vpsubw ymm0, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_888: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_889 + +LBB1_893: + WORD $0xff31 // xor edi, edi + +LBB1_894: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_896 + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xc0f9edc5 // vpsubw ymm0, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_896: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_897 + +LBB1_901: + WORD $0xff31 // xor edi, edi + +LBB1_902: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_904 + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x207a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_904: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_905 + +LBB1_909: + WORD $0xff31 // xor edi, edi + +LBB1_910: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_912 + LONG $0x0cfdfdc5; BYTE $0x7a // vpaddw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x207a // vpaddw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_912: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_913 + +LBB1_917: + WORD $0xff31 // xor edi, edi + +LBB1_918: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_920 + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xc0f9edc5 // vpsubw ymm0, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_920: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_921 + +LBB1_925: + WORD $0xff31 // xor edi, edi + +LBB1_926: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_928 + LONG $0x0c6ffec5; BYTE $0x7a // vmovdqu ymm1, yword [rdx + 2*rdi] + LONG $0x546ffec5; WORD $0x207a // vmovdqu ymm2, yword [rdx + 2*rdi + 32] + LONG $0xc8f9f5c5 // vpsubw ymm1, ymm1, ymm0 + LONG $0xc0f9edc5 // vpsubw ymm0, ymm2, ymm0 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB1_928: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_929 + +LBB1_933: + WORD $0xff31 // xor edi, edi + +LBB1_934: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_936 + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_936: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_937 + +LBB1_941: + WORD $0xff31 // xor edi, edi + +LBB1_942: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_944 + LONG $0x1459f4c5; BYTE $0xba // vmulps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20ba // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40ba // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x4c59f4c5; WORD $0x60ba // vmulps ymm1, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB1_944: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_945 + +LBB1_949: + WORD $0xff31 // xor edi, edi + +LBB1_950: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_952 + LONG $0x146ffec5; BYTE $0xfa // vmovdqu ymm2, yword [rdx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20fa // vmovdqu ymm3, yword [rdx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40fa // vmovdqu ymm4, yword [rdx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60fa // vmovdqu ymm5, yword [rdx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_952: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_953 + +LBB1_957: + WORD $0xff31 // xor edi, edi + +LBB1_958: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_960 + LONG $0x1459f4c5; BYTE $0xba // vmulps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20ba // vmulps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40ba // vmulps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x4c59f4c5; WORD $0x60ba // vmulps ymm1, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB1_960: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_961 + +LBB1_965: + WORD $0xff31 // xor edi, edi + +LBB1_966: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_968 + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60fa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_968: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_969 + +LBB1_973: + WORD $0xff31 // xor edi, edi + +LBB1_974: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_976 + LONG $0x1458f4c5; BYTE $0xba // vaddps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20ba // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40ba // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x4c58f4c5; WORD $0x60ba // vaddps ymm1, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB1_976: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_977 + +LBB1_981: + WORD $0xff31 // xor edi, edi + +LBB1_982: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_984 + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xc0fbddc5 // vpsubq ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_984: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_985 + +LBB1_989: + WORD $0xf631 // xor esi, esi + +LBB1_990: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_992 + LONG $0x1410fcc5; BYTE $0xb2 // vmovups ymm2, yword [rdx + 4*rsi] + LONG $0x5c10fcc5; WORD $0x20b2 // vmovups ymm3, yword [rdx + 4*rsi + 32] + LONG $0x6410fcc5; WORD $0x40b2 // vmovups ymm4, yword [rdx + 4*rsi + 64] + LONG $0x6c10fcc5; WORD $0x60b2 // vmovups ymm5, yword [rdx + 4*rsi + 96] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xc95cd4c5 // vsubps ymm1, ymm5, ymm1 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + +LBB1_992: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_993 + +LBB1_997: + WORD $0xff31 // xor edi, edi + +LBB1_998: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1000 + LONG $0x0cd4fdc5; BYTE $0xfa // vpaddq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20fa // vpaddq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40fa // vpaddq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60fa // vpaddq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_1000: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1001 + +LBB1_1005: + WORD $0xff31 // xor edi, edi + +LBB1_1006: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1008 + LONG $0x1458f4c5; BYTE $0xba // vaddps ymm2, ymm1, yword [rdx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20ba // vaddps ymm3, ymm1, yword [rdx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40ba // vaddps ymm4, ymm1, yword [rdx + 4*rdi + 64] + LONG $0x4c58f4c5; WORD $0x60ba // vaddps ymm1, ymm1, yword [rdx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB1_1008: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_1009 + +LBB1_1013: + WORD $0xff31 // xor edi, edi + +LBB1_1014: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1016 + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xc8fbf5c5 // vpsubq ymm1, ymm1, ymm0 + LONG $0xd0fbedc5 // vpsubq ymm2, ymm2, ymm0 + LONG $0xd8fbe5c5 // vpsubq ymm3, ymm3, ymm0 + LONG $0xc0fbddc5 // vpsubq ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB1_1016: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1017 + +LBB1_1021: + WORD $0xf631 // xor esi, esi + +LBB1_1022: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1024 + LONG $0x1410fcc5; BYTE $0xb2 // vmovups ymm2, yword [rdx + 4*rsi] + LONG $0x5c10fcc5; WORD $0x20b2 // vmovups ymm3, yword [rdx + 4*rsi + 32] + LONG $0x6410fcc5; WORD $0x40b2 // vmovups ymm4, yword [rdx + 4*rsi + 64] + LONG $0x6c10fcc5; WORD $0x60b2 // vmovups ymm5, yword [rdx + 4*rsi + 96] + LONG $0xd15cecc5 // vsubps ymm2, ymm2, ymm1 + LONG $0xd95ce4c5 // vsubps ymm3, ymm3, ymm1 + LONG $0xe15cdcc5 // vsubps ymm4, ymm4, ymm1 + LONG $0xc95cd4c5 // vsubps ymm1, ymm5, ymm1 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + +LBB1_1024: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1109 + JMP LBB1_1025 + +LBB1_1029: + WORD $0xff31 // xor edi, edi + +LBB1_1030: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1032 + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x603a // vpaddb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_1032: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1033 + +LBB1_1037: + WORD $0xff31 // xor edi, edi + +LBB1_1038: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1040 + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xc0f8ddc5 // vpsubb ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_1040: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1041 + +LBB1_1045: + WORD $0xff31 // xor edi, edi + +LBB1_1046: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1048 + LONG $0x0cfcfdc5; BYTE $0x3a // vpaddb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54fcfdc5; WORD $0x203a // vpaddb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x403a // vpaddb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x603a // vpaddb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_1048: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1049 + +LBB1_1053: + WORD $0xff31 // xor edi, edi + +LBB1_1054: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1056 + LONG $0x0c6ffec5; BYTE $0x3a // vmovdqu ymm1, yword [rdx + rdi] + LONG $0x546ffec5; WORD $0x203a // vmovdqu ymm2, yword [rdx + rdi + 32] + LONG $0x5c6ffec5; WORD $0x403a // vmovdqu ymm3, yword [rdx + rdi + 64] + LONG $0x646ffec5; WORD $0x603a // vmovdqu ymm4, yword [rdx + rdi + 96] + LONG $0xc8f8f5c5 // vpsubb ymm1, ymm1, ymm0 + LONG $0xd0f8edc5 // vpsubb ymm2, ymm2, ymm0 + LONG $0xd8f8e5c5 // vpsubb ymm3, ymm3, ymm0 + LONG $0xc0f8ddc5 // vpsubb ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB1_1056: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1057 + +LBB1_1061: + WORD $0xff31 // xor edi, edi + +LBB1_1062: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1064 + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba44; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1064: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1065 + +LBB1_1069: + WORD $0xff31 // xor edi, edi + +LBB1_1070: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1072 + LONG $0x407de2c4; WORD $0xba0c // vpmulld ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x407de2c4; WORD $0xba54; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xba5c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xba44; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1072: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1073 + +LBB1_1077: + WORD $0xff31 // xor edi, edi + +LBB1_1078: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1080 + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60ba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1080: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1081 + +LBB1_1085: + WORD $0xff31 // xor edi, edi + +LBB1_1086: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1088 + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xc0faddc5 // vpsubd ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1088: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1089 + +LBB1_1093: + WORD $0xff31 // xor edi, edi + +LBB1_1094: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1096 + LONG $0x0cfefdc5; BYTE $0xba // vpaddd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20ba // vpaddd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40ba // vpaddd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60ba // vpaddd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1096: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1109 + JMP LBB1_1097 + +LBB1_1101: + WORD $0xff31 // xor edi, edi + +LBB1_1102: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1104 + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0xc8faf5c5 // vpsubd ymm1, ymm1, ymm0 + LONG $0xd0faedc5 // vpsubd ymm2, ymm2, ymm0 + LONG $0xd8fae5c5 // vpsubd ymm3, ymm3, ymm0 + LONG $0xc0faddc5 // vpsubd ymm0, ymm4, ymm0 + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB1_1104: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB1_1105 + +LBB1_1109: + VZEROUPPER + RET + +DATA LCDATA3<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA3<>+0x008(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA3<>+0x010(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA3<>+0x018(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA3<>(SB), 8, $32 + +TEXT ·_arithmetic_scalar_arr_avx2(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA3<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB2_12 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB2_23 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB2_31 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB2_1109 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_55 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_97 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_157 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_160 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_11 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_445 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_445 + +LBB2_11: + WORD $0xf631 // xor esi, esi + +LBB2_665: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_667 + +LBB2_666: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_666 + +LBB2_667: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_668: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_668 + JMP LBB2_1109 + +LBB2_12: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB2_39 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB2_47 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB2_1109 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_62 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_102 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_163 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_166 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_22 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_448 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_448 + +LBB2_22: + WORD $0xf631 // xor esi, esi + +LBB2_673: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_675 + +LBB2_674: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_674 + +LBB2_675: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_676: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_676 + JMP LBB2_1109 + +LBB2_23: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_69 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_107 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_169 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_172 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_30 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_451 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_451 + +LBB2_30: + WORD $0xf631 // xor esi, esi + +LBB2_681: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_683 + +LBB2_682: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_682 + +LBB2_683: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_684: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_684 + JMP LBB2_1109 + +LBB2_31: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_76 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_112 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_175 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_178 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_38 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_454 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_454 + +LBB2_38: + WORD $0xf631 // xor esi, esi + +LBB2_689: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_691 + +LBB2_690: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_690 + +LBB2_691: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_692: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_692 + JMP LBB2_1109 + +LBB2_39: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_83 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_117 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_181 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_184 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_46 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_457 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_457 + +LBB2_46: + WORD $0xf631 // xor esi, esi + +LBB2_697: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_699 + +LBB2_698: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_698 + +LBB2_699: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_700: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_700 + JMP LBB2_1109 + +LBB2_47: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_90 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_122 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_187 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_190 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_54 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_460 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_460 + +LBB2_54: + WORD $0xf631 // xor esi, esi + +LBB2_705: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_707 + +LBB2_706: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_706 + +LBB2_707: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_708: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_708 + JMP LBB2_1109 + +LBB2_55: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_127 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_193 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_196 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_61 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_463 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_463 + +LBB2_61: + WORD $0xd231 // xor edx, edx + +LBB2_713: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_715 + +LBB2_714: + LONG $0x0c59fbc5; BYTE $0xd1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_714 + +LBB2_715: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_716: + LONG $0x0c59fbc5; BYTE $0xd1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c59fbc5; WORD $0x08d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c59fbc5; WORD $0x10d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c59fbc5; WORD $0x18d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_716 + JMP LBB2_1109 + +LBB2_62: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_132 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_199 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_202 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_68 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_466 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_466 + +LBB2_68: + WORD $0xd231 // xor edx, edx + +LBB2_721: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_723 + +LBB2_722: + LONG $0x0c59fbc5; BYTE $0xd1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_722 + +LBB2_723: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_724: + LONG $0x0c59fbc5; BYTE $0xd1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c59fbc5; WORD $0x08d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c59fbc5; WORD $0x10d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c59fbc5; WORD $0x18d1 // vmulsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_724 + JMP LBB2_1109 + +LBB2_69: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_137 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_205 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_208 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_75 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_469 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_469 + +LBB2_75: + WORD $0xd231 // xor edx, edx + +LBB2_729: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_731 + +LBB2_730: + LONG $0x0c58fbc5; BYTE $0xd1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_730 + +LBB2_731: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_732: + LONG $0x0c58fbc5; BYTE $0xd1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c58fbc5; WORD $0x08d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c58fbc5; WORD $0x10d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c58fbc5; WORD $0x18d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_732 + JMP LBB2_1109 + +LBB2_76: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_142 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_211 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_214 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_82 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_472 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_472 + +LBB2_82: + WORD $0xd231 // xor edx, edx + +LBB2_737: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_739 + +LBB2_738: + LONG $0x0c5cfbc5; BYTE $0xd1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_738 + +LBB2_739: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_740: + LONG $0x0c5cfbc5; BYTE $0xd1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c5cfbc5; WORD $0x08d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c5cfbc5; WORD $0x10d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c5cfbc5; WORD $0x18d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_740 + JMP LBB2_1109 + +LBB2_83: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_147 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_217 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_220 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_89 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_475 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_475 + +LBB2_89: + WORD $0xd231 // xor edx, edx + +LBB2_745: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_747 + +LBB2_746: + LONG $0x0c58fbc5; BYTE $0xd1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_746 + +LBB2_747: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_748: + LONG $0x0c58fbc5; BYTE $0xd1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c58fbc5; WORD $0x08d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c58fbc5; WORD $0x10d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c58fbc5; WORD $0x18d1 // vaddsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_748 + JMP LBB2_1109 + +LBB2_90: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_152 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_223 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_226 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_96 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_478 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_478 + +LBB2_96: + WORD $0xd231 // xor edx, edx + +LBB2_753: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_755 + +LBB2_754: + LONG $0x0c5cfbc5; BYTE $0xd1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_754 + +LBB2_755: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_756: + LONG $0x0c5cfbc5; BYTE $0xd1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx] + LONG $0x117bc1c4; WORD $0xd00c // vmovsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c5cfbc5; WORD $0x08d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 8] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c5cfbc5; WORD $0x10d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 16] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x10 // vmovsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c5cfbc5; WORD $0x18d1 // vsubsd xmm1, xmm0, qword [rcx + 8*rdx + 24] + LONG $0x117bc1c4; WORD $0xd04c; BYTE $0x18 // vmovsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_756 + JMP LBB2_1109 + +LBB2_97: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_229 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_101 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_481 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_481 + +LBB2_101: + WORD $0xff31 // xor edi, edi + +LBB2_627: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_629 + +LBB2_628: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_628 + +LBB2_629: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_630: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_630 + JMP LBB2_1109 + +LBB2_102: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_232 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_106 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_483 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_483 + +LBB2_106: + WORD $0xff31 // xor edi, edi + +LBB2_637: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_639 + +LBB2_638: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_638 + +LBB2_639: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_640: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_640 + JMP LBB2_1109 + +LBB2_107: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_235 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_111 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_485 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_485 + +LBB2_111: + WORD $0xf631 // xor esi, esi + +LBB2_761: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_763 + +LBB2_762: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_762 + +LBB2_763: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_764: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_764 + JMP LBB2_1109 + +LBB2_112: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_238 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_116 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_488 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_488 + +LBB2_116: + WORD $0xf631 // xor esi, esi + +LBB2_769: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_771 + +LBB2_770: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_770 + +LBB2_771: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_772: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + WORD $0xc289 // mov edx, eax + LONG $0x0131542a // sub dl, byte [rcx + rsi + 1] + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + WORD $0xc289 // mov edx, eax + LONG $0x0231542a // sub dl, byte [rcx + rsi + 2] + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + WORD $0xc289 // mov edx, eax + LONG $0x0331542a // sub dl, byte [rcx + rsi + 3] + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_772 + JMP LBB2_1109 + +LBB2_117: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_241 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_121 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_491 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_491 + +LBB2_121: + WORD $0xf631 // xor esi, esi + +LBB2_777: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_779 + +LBB2_778: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_778 + +LBB2_779: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_780: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_780 + JMP LBB2_1109 + +LBB2_122: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_244 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_126 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_494 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_494 + +LBB2_126: + WORD $0xf631 // xor esi, esi + +LBB2_785: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_787 + +LBB2_786: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_786 + +LBB2_787: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_788: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + WORD $0xc289 // mov edx, eax + LONG $0x0131542a // sub dl, byte [rcx + rsi + 1] + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + WORD $0xc289 // mov edx, eax + LONG $0x0231542a // sub dl, byte [rcx + rsi + 2] + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + WORD $0xc289 // mov edx, eax + LONG $0x0331542a // sub dl, byte [rcx + rsi + 3] + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_788 + JMP LBB2_1109 + +LBB2_127: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_247 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_131 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_497 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_497 + +LBB2_131: + WORD $0xf631 // xor esi, esi + +LBB2_793: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_795 + +LBB2_794: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_794 + +LBB2_795: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_796: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_796 + JMP LBB2_1109 + +LBB2_132: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_250 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_136 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_500 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_500 + +LBB2_136: + WORD $0xf631 // xor esi, esi + +LBB2_801: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_803 + +LBB2_802: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_802 + +LBB2_803: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_804: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_804 + JMP LBB2_1109 + +LBB2_137: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_253 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_141 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_503 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_503 + +LBB2_141: + WORD $0xf631 // xor esi, esi + +LBB2_809: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_811 + +LBB2_810: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_810 + +LBB2_811: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_812: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_812 + JMP LBB2_1109 + +LBB2_142: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_256 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_146 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_506 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_506 + +LBB2_146: + WORD $0xf631 // xor esi, esi + +LBB2_817: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_819 + +LBB2_818: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_818 + +LBB2_819: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_820: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_820 + JMP LBB2_1109 + +LBB2_147: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_259 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_151 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_509 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_509 + +LBB2_151: + WORD $0xf631 // xor esi, esi + +LBB2_825: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_827 + +LBB2_826: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_826 + +LBB2_827: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_828: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_828 + JMP LBB2_1109 + +LBB2_152: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_262 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1109 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_156 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_512 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_512 + +LBB2_156: + WORD $0xf631 // xor esi, esi + +LBB2_833: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_835 + +LBB2_834: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_834 + +LBB2_835: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_836: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_836 + JMP LBB2_1109 + +LBB2_157: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_159 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_515 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_515 + +LBB2_159: + WORD $0xf631 // xor esi, esi + +LBB2_841: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_843 + +LBB2_842: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_842 + +LBB2_843: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_844: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_844 + JMP LBB2_1109 + +LBB2_160: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_162 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_518 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_518 + +LBB2_162: + WORD $0xf631 // xor esi, esi + +LBB2_849: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_851 + +LBB2_850: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_850 + +LBB2_851: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_852: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_852 + JMP LBB2_1109 + +LBB2_163: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_165 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_521 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_521 + +LBB2_165: + WORD $0xf631 // xor esi, esi + +LBB2_857: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_859 + +LBB2_858: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_858 + +LBB2_859: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_860: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_860 + JMP LBB2_1109 + +LBB2_166: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_168 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_524 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_524 + +LBB2_168: + WORD $0xf631 // xor esi, esi + +LBB2_865: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_867 + +LBB2_866: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + LONG $0xf8af0f66 // imul di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_866 + +LBB2_867: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_868: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_868 + JMP LBB2_1109 + +LBB2_169: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_171 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_527 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_527 + +LBB2_171: + WORD $0xf631 // xor esi, esi + +LBB2_873: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_875 + +LBB2_874: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_874 + +LBB2_875: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_876: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_876 + JMP LBB2_1109 + +LBB2_172: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_174 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_530 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_530 + +LBB2_174: + WORD $0xf631 // xor esi, esi + +LBB2_881: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_883 + +LBB2_882: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_882 + +LBB2_883: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_884: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_884 + JMP LBB2_1109 + +LBB2_175: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_177 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_533 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_533 + +LBB2_177: + WORD $0xf631 // xor esi, esi + +LBB2_889: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_891 + +LBB2_890: + WORD $0xc789 // mov edi, eax + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_890 + +LBB2_891: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_892: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_892 + JMP LBB2_1109 + +LBB2_178: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_180 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_536 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_536 + +LBB2_180: + WORD $0xf631 // xor esi, esi + +LBB2_897: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_899 + +LBB2_898: + WORD $0xc789 // mov edi, eax + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_898 + +LBB2_899: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_900: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_900 + JMP LBB2_1109 + +LBB2_181: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_183 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_539 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_539 + +LBB2_183: + WORD $0xf631 // xor esi, esi + +LBB2_905: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_907 + +LBB2_906: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_906 + +LBB2_907: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_908: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_908 + JMP LBB2_1109 + +LBB2_184: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_186 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_542 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_542 + +LBB2_186: + WORD $0xf631 // xor esi, esi + +LBB2_913: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_915 + +LBB2_914: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc7 // add di, ax + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_914 + +LBB2_915: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_916: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_916 + JMP LBB2_1109 + +LBB2_187: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_189 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_545 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_545 + +LBB2_189: + WORD $0xf631 // xor esi, esi + +LBB2_921: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_923 + +LBB2_922: + WORD $0xc789 // mov edi, eax + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_922 + +LBB2_923: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_924: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_924 + JMP LBB2_1109 + +LBB2_190: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_192 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_548 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_548 + +LBB2_192: + WORD $0xf631 // xor esi, esi + +LBB2_929: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + LONG $0x03e28348 // and rdx, 3 + JE LBB2_931 + +LBB2_930: + WORD $0xc789 // mov edi, eax + LONG $0x713c2b66 // sub di, word [rcx + 2*rsi] + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc28348 // add rdx, -1 + JNE LBB2_930 + +LBB2_931: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_932: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_932 + JMP LBB2_1109 + +LBB2_193: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_195 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_551 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_551 + +LBB2_195: + WORD $0xf631 // xor esi, esi + +LBB2_937: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_939 + +LBB2_938: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_938 + +LBB2_939: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_940: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_940 + JMP LBB2_1109 + +LBB2_196: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_198 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_554 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_554 + +LBB2_198: + WORD $0xd231 // xor edx, edx + +LBB2_945: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_947 + +LBB2_946: + LONG $0x0c59fac5; BYTE $0x91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_946 + +LBB2_947: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_948: + LONG $0x0c59fac5; BYTE $0x91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c59fac5; WORD $0x0491 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c59fac5; WORD $0x0891 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c59fac5; WORD $0x0c91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_948 + JMP LBB2_1109 + +LBB2_199: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_201 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_557 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_557 + +LBB2_201: + WORD $0xf631 // xor esi, esi + +LBB2_953: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_955 + +LBB2_954: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_954 + +LBB2_955: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_956: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_956 + JMP LBB2_1109 + +LBB2_202: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_204 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_560 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_560 + +LBB2_204: + WORD $0xd231 // xor edx, edx + +LBB2_961: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_963 + +LBB2_962: + LONG $0x0c59fac5; BYTE $0x91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_962 + +LBB2_963: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_964: + LONG $0x0c59fac5; BYTE $0x91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c59fac5; WORD $0x0491 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c59fac5; WORD $0x0891 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c59fac5; WORD $0x0c91 // vmulss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_964 + JMP LBB2_1109 + +LBB2_205: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_207 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_563 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_563 + +LBB2_207: + WORD $0xf631 // xor esi, esi + +LBB2_969: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_971 + +LBB2_970: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_970 + +LBB2_971: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_972: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_972 + JMP LBB2_1109 + +LBB2_208: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_210 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_566 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_566 + +LBB2_210: + WORD $0xd231 // xor edx, edx + +LBB2_977: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_979 + +LBB2_978: + LONG $0x0c58fac5; BYTE $0x91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_978 + +LBB2_979: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_980: + LONG $0x0c58fac5; BYTE $0x91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c58fac5; WORD $0x0491 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c58fac5; WORD $0x0891 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c58fac5; WORD $0x0c91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_980 + JMP LBB2_1109 + +LBB2_211: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_213 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_569 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_569 + +LBB2_213: + WORD $0xf631 // xor esi, esi + +LBB2_985: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_987 + +LBB2_986: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_986 + +LBB2_987: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_988: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_988 + JMP LBB2_1109 + +LBB2_214: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_216 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_572 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_572 + +LBB2_216: + WORD $0xd231 // xor edx, edx + +LBB2_993: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_995 + +LBB2_994: + LONG $0x0c5cfac5; BYTE $0x91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_994 + +LBB2_995: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_996: + LONG $0x0c5cfac5; BYTE $0x91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c5cfac5; WORD $0x0491 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c5cfac5; WORD $0x0891 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c5cfac5; WORD $0x0c91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_996 + JMP LBB2_1109 + +LBB2_217: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_219 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_575 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_575 + +LBB2_219: + WORD $0xf631 // xor esi, esi + +LBB2_1001: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1003 + +LBB2_1002: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1002 + +LBB2_1003: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1004: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1004 + JMP LBB2_1109 + +LBB2_220: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_222 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_578 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_578 + +LBB2_222: + WORD $0xd231 // xor edx, edx + +LBB2_1009: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1011 + +LBB2_1010: + LONG $0x0c58fac5; BYTE $0x91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1010 + +LBB2_1011: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_1012: + LONG $0x0c58fac5; BYTE $0x91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c58fac5; WORD $0x0491 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c58fac5; WORD $0x0891 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c58fac5; WORD $0x0c91 // vaddss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_1012 + JMP LBB2_1109 + +LBB2_223: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_225 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_581 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_581 + +LBB2_225: + WORD $0xf631 // xor esi, esi + +LBB2_1017: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1019 + +LBB2_1018: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1018 + +LBB2_1019: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_1020: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1020 + JMP LBB2_1109 + +LBB2_226: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_228 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_584 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_584 + +LBB2_228: + WORD $0xd231 // xor edx, edx + +LBB2_1025: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1027 + +LBB2_1026: + LONG $0x0c5cfac5; BYTE $0x91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1026 + +LBB2_1027: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1109 + +LBB2_1028: + LONG $0x0c5cfac5; BYTE $0x91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx] + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c5cfac5; WORD $0x0491 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 4] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c5cfac5; WORD $0x0891 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 8] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x08 // vmovss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c5cfac5; WORD $0x0c91 // vsubss xmm1, xmm0, dword [rcx + 4*rdx + 12] + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x0c // vmovss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_1028 + JMP LBB2_1109 + +LBB2_229: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_231 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_587 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_587 + +LBB2_231: + WORD $0xff31 // xor edi, edi + +LBB2_647: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_649 + +LBB2_648: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_648 + +LBB2_649: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_650: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_650 + JMP LBB2_1109 + +LBB2_232: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_234 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_589 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_589 + +LBB2_234: + WORD $0xff31 // xor edi, edi + +LBB2_657: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_659 + +LBB2_658: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_658 + +LBB2_659: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_660: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_660 + JMP LBB2_1109 + +LBB2_235: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_237 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_591 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_591 + +LBB2_237: + WORD $0xf631 // xor esi, esi + +LBB2_1033: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1035 + +LBB2_1034: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1034 + +LBB2_1035: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1036: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1036 + JMP LBB2_1109 + +LBB2_238: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_240 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_594 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_594 + +LBB2_240: + WORD $0xf631 // xor esi, esi + +LBB2_1041: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1043 + +LBB2_1042: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1042 + +LBB2_1043: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1044: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + WORD $0xc289 // mov edx, eax + LONG $0x0131542a // sub dl, byte [rcx + rsi + 1] + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + WORD $0xc289 // mov edx, eax + LONG $0x0231542a // sub dl, byte [rcx + rsi + 2] + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + WORD $0xc289 // mov edx, eax + LONG $0x0331542a // sub dl, byte [rcx + rsi + 3] + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1044 + JMP LBB2_1109 + +LBB2_241: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_243 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_597 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_597 + +LBB2_243: + WORD $0xf631 // xor esi, esi + +LBB2_1049: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1051 + +LBB2_1050: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1050 + +LBB2_1051: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1052: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1052 + JMP LBB2_1109 + +LBB2_244: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB2_246 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_600 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_600 + +LBB2_246: + WORD $0xf631 // xor esi, esi + +LBB2_1057: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1059 + +LBB2_1058: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1058 + +LBB2_1059: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1060: + WORD $0xc289 // mov edx, eax + WORD $0x142a; BYTE $0x31 // sub dl, byte [rcx + rsi] + LONG $0x30148841 // mov byte [r8 + rsi], dl + WORD $0xc289 // mov edx, eax + LONG $0x0131542a // sub dl, byte [rcx + rsi + 1] + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + WORD $0xc289 // mov edx, eax + LONG $0x0231542a // sub dl, byte [rcx + rsi + 2] + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + WORD $0xc289 // mov edx, eax + LONG $0x0331542a // sub dl, byte [rcx + rsi + 3] + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1060 + JMP LBB2_1109 + +LBB2_247: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_249 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_603 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_603 + +LBB2_249: + WORD $0xf631 // xor esi, esi + +LBB2_1065: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1067 + +LBB2_1066: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1066 + +LBB2_1067: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1068: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1068 + JMP LBB2_1109 + +LBB2_250: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_252 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_606 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_606 + +LBB2_252: + WORD $0xf631 // xor esi, esi + +LBB2_1073: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1075 + +LBB2_1074: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1074 + +LBB2_1075: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1076: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1076 + JMP LBB2_1109 + +LBB2_253: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_255 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_609 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_609 + +LBB2_255: + WORD $0xf631 // xor esi, esi + +LBB2_1081: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1083 + +LBB2_1082: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1082 + +LBB2_1083: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1084: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1084 + JMP LBB2_1109 + +LBB2_256: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_258 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_612 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_612 + +LBB2_258: + WORD $0xf631 // xor esi, esi + +LBB2_1089: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1091 + +LBB2_1090: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1090 + +LBB2_1091: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_1092: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1092 + JMP LBB2_1109 + +LBB2_259: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_261 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_615 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_615 + +LBB2_261: + WORD $0xf631 // xor esi, esi + +LBB2_1097: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1099 + +LBB2_1098: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1098 + +LBB2_1099: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1109 + +LBB2_1100: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1100 + JMP LBB2_1109 + +LBB2_262: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1109 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_264 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_618 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_618 + +LBB2_264: + WORD $0xf631 // xor esi, esi + +LBB2_1105: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1107 + +LBB2_1106: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1106 + +LBB2_1107: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1109 + +LBB2_1108: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1108 + JMP LBB2_1109 + +LBB2_445: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_661 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_447: + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb964; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080b98c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x00a0b994407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x00c0b99c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x00e0b9a4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_447 + JMP LBB2_662 + +LBB2_448: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_669 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_450: + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb964; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080b98c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x00a0b994407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x00c0b99c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x00e0b9a4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_450 + JMP LBB2_670 + +LBB2_451: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_677 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_453: + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60b9 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_453 + JMP LBB2_678 + +LBB2_454: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_685 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_456: + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60b9 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_456 + JMP LBB2_686 + +LBB2_457: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_693 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_459: + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60b9 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_459 + JMP LBB2_694 + +LBB2_460: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_701 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_462: + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60b9 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_462 + JMP LBB2_702 + +LBB2_463: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_709 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_465: + LONG $0x1459f5c5; BYTE $0xf9 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20f9 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40f9 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c59f5c5; WORD $0x60f9 // vmulpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f99459f5c5; BYTE $0x00 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c59f5c5; BYTE $0x00 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a459f5c5; BYTE $0x00 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac59f5c5; BYTE $0x00 // vmulpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_465 + JMP LBB2_710 + +LBB2_466: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_717 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_468: + LONG $0x1459f5c5; BYTE $0xf9 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20f9 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40f9 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c59f5c5; WORD $0x60f9 // vmulpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f99459f5c5; BYTE $0x00 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c59f5c5; BYTE $0x00 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a459f5c5; BYTE $0x00 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac59f5c5; BYTE $0x00 // vmulpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_468 + JMP LBB2_718 + +LBB2_469: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_725 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_471: + LONG $0x1458f5c5; BYTE $0xf9 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20f9 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40f9 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c58f5c5; WORD $0x60f9 // vaddpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f99458f5c5; BYTE $0x00 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c58f5c5; BYTE $0x00 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a458f5c5; BYTE $0x00 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac58f5c5; BYTE $0x00 // vaddpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_471 + JMP LBB2_726 + +LBB2_472: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_733 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_474: + LONG $0x145cf5c5; BYTE $0xf9 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c5cf5c5; WORD $0x20f9 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x645cf5c5; WORD $0x40f9 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c5cf5c5; WORD $0x60f9 // vsubpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9945cf5c5; BYTE $0x00 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c5cf5c5; BYTE $0x00 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a45cf5c5; BYTE $0x00 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac5cf5c5; BYTE $0x00 // vsubpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_474 + JMP LBB2_734 + +LBB2_475: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_741 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_477: + LONG $0x1458f5c5; BYTE $0xf9 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20f9 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40f9 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c58f5c5; WORD $0x60f9 // vaddpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f99458f5c5; BYTE $0x00 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c58f5c5; BYTE $0x00 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a458f5c5; BYTE $0x00 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac58f5c5; BYTE $0x00 // vaddpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_477 + JMP LBB2_742 + +LBB2_478: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x197de2c4; BYTE $0xc8 // vbroadcastsd ymm1, xmm0 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_749 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_480: + LONG $0x145cf5c5; BYTE $0xf9 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c5cf5c5; WORD $0x20f9 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x645cf5c5; WORD $0x40f9 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x6c5cf5c5; WORD $0x60f9 // vsubpd ymm5, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf86c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9945cf5c5; BYTE $0x00 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c5cf5c5; BYTE $0x00 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a45cf5c5; BYTE $0x00 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac5cf5c5; BYTE $0x00 // vsubpd ymm5, ymm1, yword [rcx + 8*rdi + 224] + QUAD $0x0080f894117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a4117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac117dc1c4; WORD $0x0000 // vmovupd yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_480 + JMP LBB2_750 + +LBB2_481: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc26ef9c5 // vmovd xmm0, edx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB2_621 + WORD $0xf631 // xor esi, esi + JMP LBB2_623 + +LBB2_483: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc26ef9c5 // vmovd xmm0, edx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB2_631 + WORD $0xf631 // xor esi, esi + JMP LBB2_633 + +LBB2_485: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_757 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_487: + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x6039 // vpaddb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_487 + JMP LBB2_758 + +LBB2_488: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_765 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_490: + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x6039 // vpsubb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_490 + JMP LBB2_766 + +LBB2_491: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_773 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_493: + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x6039 // vpaddb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_493 + JMP LBB2_774 + +LBB2_494: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_781 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_496: + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x6039 // vpsubb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_496 + JMP LBB2_782 + +LBB2_497: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_789 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_499: + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rcx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_499 + JMP LBB2_790 + +LBB2_500: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_797 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_502: + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rcx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_502 + JMP LBB2_798 + +LBB2_503: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_805 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_505: + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60f9 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_505 + JMP LBB2_806 + +LBB2_506: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9c1c4; BYTE $0xc3 // vmovq xmm0, r11 + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_813 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_508: + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60f9 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_508 + JMP LBB2_814 + +LBB2_509: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_821 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_511: + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60f9 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_511 + JMP LBB2_822 + +LBB2_512: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9c1c4; BYTE $0xc3 // vmovq xmm0, r11 + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_829 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_514: + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60f9 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_514 + JMP LBB2_830 + +LBB2_515: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_837 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_517: + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x2079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x4079 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x6079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_517 + JMP LBB2_838 + +LBB2_518: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_845 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_520: + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x2079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x4079 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x6079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_520 + JMP LBB2_846 + +LBB2_521: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_853 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_523: + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x2079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x4079 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x6079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_523 + JMP LBB2_854 + +LBB2_524: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_861 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_526: + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54d5fdc5; WORD $0x2079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cd5fdc5; WORD $0x4079 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54d5fdc5; WORD $0x6079 // vpmullw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_526 + JMP LBB2_862 + +LBB2_527: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_869 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_529: + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x2079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x4079 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x6079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_529 + JMP LBB2_870 + +LBB2_530: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_877 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_532: + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x2079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x4079 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x6079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_532 + JMP LBB2_878 + +LBB2_533: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_885 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_535: + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x2079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x4079 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x6079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_535 + JMP LBB2_886 + +LBB2_536: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_893 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_538: + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x2079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x4079 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x6079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_538 + JMP LBB2_894 + +LBB2_539: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_901 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_541: + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x2079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x4079 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x6079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_541 + JMP LBB2_902 + +LBB2_542: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_909 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_544: + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54fdfdc5; WORD $0x2079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cfdfdc5; WORD $0x4079 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54fdfdc5; WORD $0x6079 // vpaddw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_544 + JMP LBB2_910 + +LBB2_545: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_917 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_547: + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x2079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x4079 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x6079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_547 + JMP LBB2_918 + +LBB2_548: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x797de2c4; BYTE $0xc0 // vpbroadcastw ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_925 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_550: + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x2079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x4079 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x6079 // vpsubw ymm2, ymm0, yword [rcx + 2*rdi + 96] + LONG $0x7f7ec1c4; WORD $0x784c; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_550 + JMP LBB2_926 + +LBB2_551: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_933 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_553: + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rcx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_553 + JMP LBB2_934 + +LBB2_554: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_941 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_556: + LONG $0x1459f4c5; BYTE $0xb9 // vmulps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20b9 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40b9 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c59f4c5; WORD $0x60b9 // vmulps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b99459f4c5; BYTE $0x00 // vmulps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c59f4c5; BYTE $0x00 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a459f4c5; BYTE $0x00 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac59f4c5; BYTE $0x00 // vmulps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_556 + JMP LBB2_942 + +LBB2_557: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_949 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_559: + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf86c; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm5 + QUAD $0x000080f9946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f99c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f9a46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9ac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rcx + 8*rdi + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x0080f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm2 + QUAD $0x00a0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm3 + QUAD $0x00c0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm4 + QUAD $0x00e0f8ac7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_559 + JMP LBB2_950 + +LBB2_560: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_957 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_562: + LONG $0x1459f4c5; BYTE $0xb9 // vmulps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20b9 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40b9 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c59f4c5; WORD $0x60b9 // vmulps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b99459f4c5; BYTE $0x00 // vmulps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c59f4c5; BYTE $0x00 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a459f4c5; BYTE $0x00 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac59f4c5; BYTE $0x00 // vmulps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_562 + JMP LBB2_958 + +LBB2_563: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_965 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_565: + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60f9 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_565 + JMP LBB2_966 + +LBB2_566: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_973 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_568: + LONG $0x1458f4c5; BYTE $0xb9 // vaddps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20b9 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40b9 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c58f4c5; WORD $0x60b9 // vaddps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b99458f4c5; BYTE $0x00 // vaddps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c58f4c5; BYTE $0x00 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a458f4c5; BYTE $0x00 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac58f4c5; BYTE $0x00 // vaddps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_568 + JMP LBB2_974 + +LBB2_569: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9c1c4; BYTE $0xc3 // vmovq xmm0, r11 + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_981 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_571: + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60f9 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_571 + JMP LBB2_982 + +LBB2_572: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_989 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_574: + LONG $0x145cf4c5; BYTE $0xb9 // vsubps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c5cf4c5; WORD $0x20b9 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x645cf4c5; WORD $0x40b9 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c5cf4c5; WORD $0x60b9 // vsubps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b9945cf4c5; BYTE $0x00 // vsubps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c5cf4c5; BYTE $0x00 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a45cf4c5; BYTE $0x00 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac5cf4c5; BYTE $0x00 // vsubps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_574 + JMP LBB2_990 + +LBB2_575: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_997 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_577: + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64d4fdc5; WORD $0x60f9 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cd4fdc5; BYTE $0x00 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994d4fdc5; BYTE $0x00 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cd4fdc5; BYTE $0x00 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4d4fdc5; BYTE $0x00 // vpaddq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_577 + JMP LBB2_998 + +LBB2_578: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_1005 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_580: + LONG $0x1458f4c5; BYTE $0xb9 // vaddps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20b9 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40b9 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c58f4c5; WORD $0x60b9 // vaddps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b99458f4c5; BYTE $0x00 // vaddps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c58f4c5; BYTE $0x00 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a458f4c5; BYTE $0x00 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac58f4c5; BYTE $0x00 // vaddps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_580 + JMP LBB2_1006 + +LBB2_581: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0x6ef9c1c4; BYTE $0xc3 // vmovq xmm0, r11 + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1013 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_583: + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60f9 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm4 + QUAD $0x000080f98cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi + 128] + QUAD $0x0000a0f994fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 160] + QUAD $0x0000c0f99cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 192] + QUAD $0x0000e0f9a4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rcx + 8*rdi + 224] + QUAD $0x0080f88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 128], ymm1 + QUAD $0x00a0f8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 160], ymm2 + QUAD $0x00c0f89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 192], ymm3 + QUAD $0x00e0f8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_583 + JMP LBB2_1014 + +LBB2_584: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0x187de2c4; BYTE $0xc8 // vbroadcastss ymm1, xmm0 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_1021 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_586: + LONG $0x145cf4c5; BYTE $0xb9 // vsubps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c5cf4c5; WORD $0x20b9 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x645cf4c5; WORD $0x40b9 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x6c5cf4c5; WORD $0x60b9 // vsubps ymm5, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb86c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm5 + QUAD $0x000080b9945cf4c5; BYTE $0x00 // vsubps ymm2, ymm1, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b99c5cf4c5; BYTE $0x00 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b9a45cf4c5; BYTE $0x00 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9ac5cf4c5; BYTE $0x00 // vsubps ymm5, ymm1, yword [rcx + 4*rdi + 224] + QUAD $0x0080b894117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 128], ymm2 + QUAD $0x00a0b89c117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 160], ymm3 + QUAD $0x00c0b8a4117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 192], ymm4 + QUAD $0x00e0b8ac117cc1c4; WORD $0x0000 // vmovups yword [r8 + 4*rdi + 224], ymm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_586 + JMP LBB2_1022 + +LBB2_587: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc26ef9c5 // vmovd xmm0, edx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB2_641 + WORD $0xf631 // xor esi, esi + JMP LBB2_643 + +LBB2_589: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xc26ef9c5 // vmovd xmm0, edx + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0xe0778d48 // lea rsi, [rdi - 32] + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x05e8c148 // shr rax, 5 + LONG $0x01c08348 // add rax, 1 + WORD $0x8941; BYTE $0xc1 // mov r9d, eax + LONG $0x03e18341 // and r9d, 3 + LONG $0x60fe8348 // cmp rsi, 96 + JAE LBB2_651 + WORD $0xf631 // xor esi, esi + JMP LBB2_653 + +LBB2_591: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1029 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_593: + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x6039 // vpaddb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_593 + JMP LBB2_1030 + +LBB2_594: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1037 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_596: + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x6039 // vpsubb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_596 + JMP LBB2_1038 + +LBB2_597: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1045 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_599: + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64fcfdc5; WORD $0x6039 // vpaddb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cfcfdc5; BYTE $0x00 // vpaddb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994fcfdc5; BYTE $0x00 // vpaddb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cfcfdc5; BYTE $0x00 // vpaddb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4fcfdc5; BYTE $0x00 // vpaddb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_599 + JMP LBB2_1046 + +LBB2_600: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + LONG $0x80568d48 // lea rdx, [rsi - 128] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x07e9c149 // shr r9, 7 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1053 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_602: + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x6039 // vpsubb ymm4, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3864; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm4 + QUAD $0x000080398cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rcx + rdi + 128] + QUAD $0x0000a03994f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rcx + rdi + 160] + QUAD $0x0000c0399cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rcx + rdi + 192] + QUAD $0x0000e039a4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rcx + rdi + 224] + QUAD $0x0080388c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 128], ymm1 + QUAD $0x00a038947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 160], ymm2 + QUAD $0x00c0389c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 192], ymm3 + QUAD $0x00e038a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_602 + JMP LBB2_1054 + +LBB2_603: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1061 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_605: + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb964; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080b98c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x00a0b994407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x00c0b99c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x00e0b9a4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_605 + JMP LBB2_1062 + +LBB2_606: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1069 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_608: + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb964; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x0080b98c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x00a0b994407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x00c0b99c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x00e0b9a4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_608 + JMP LBB2_1070 + +LBB2_609: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1077 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_611: + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60b9 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_611 + JMP LBB2_1078 + +LBB2_612: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1085 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_614: + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60b9 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_614 + JMP LBB2_1086 + +LBB2_615: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1093 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_617: + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fefdc5; WORD $0x60b9 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfefdc5; BYTE $0x00 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fefdc5; BYTE $0x00 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfefdc5; BYTE $0x00 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fefdc5; BYTE $0x00 // vpaddd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_617 + JMP LBB2_1094 + +LBB2_618: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1101 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_620: + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60b9 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb864; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm4 + QUAD $0x000080b98cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi + 128] + QUAD $0x0000a0b994fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 160] + QUAD $0x0000c0b99cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 192] + QUAD $0x0000e0b9a4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rcx + 4*rdi + 224] + QUAD $0x0080b88c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 128], ymm1 + QUAD $0x00a0b8947f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 160], ymm2 + QUAD $0x00c0b89c7f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 192], ymm3 + QUAD $0x00e0b8a47f7ec1c4; WORD $0x0000 // vmovdqu yword [r8 + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_620 + JMP LBB2_1102 + +LBB2_621: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB2_622: + LONG $0x246ffec5; BYTE $0x31 // vmovdqu ymm4, yword [rcx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4031 // vmovdqu ymm4, yword [rcx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6031 // vmovdqu ymm4, yword [rcx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB2_622 + +LBB2_623: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_626 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB2_625: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB2_625 + +LBB2_626: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1109 + JMP LBB2_627 + +LBB2_631: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB2_632: + LONG $0x246ffec5; BYTE $0x31 // vmovdqu ymm4, yword [rcx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4031 // vmovdqu ymm4, yword [rcx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6031 // vmovdqu ymm4, yword [rcx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB2_632 + +LBB2_633: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_636 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB2_635: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB2_635 + +LBB2_636: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1109 + JMP LBB2_637 + +LBB2_641: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB2_642: + LONG $0x246ffec5; BYTE $0x31 // vmovdqu ymm4, yword [rcx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4031 // vmovdqu ymm4, yword [rcx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6031 // vmovdqu ymm4, yword [rcx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB2_642 + +LBB2_643: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_646 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB2_645: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB2_645 + +LBB2_646: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1109 + JMP LBB2_647 + +LBB2_651: + LONG $0xfce08348 // and rax, -4 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xf631 // xor esi, esi + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd860fdc5 // vpunpcklbw ymm3, ymm0, ymm0 + +LBB2_652: + LONG $0x246ffec5; BYTE $0x31 // vmovdqu ymm4, yword [rcx + rsi] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3024 // vmovdqu yword [r8 + rsi], ymm4 + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x646ffec5; WORD $0x4031 // vmovdqu ymm4, yword [rcx + rsi + 64] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x646ffec5; WORD $0x6031 // vmovdqu ymm4, yword [rcx + rsi + 96] + LONG $0xec68ddc5 // vpunpckhbw ymm5, ymm4, ymm4 + LONG $0xe9d5d5c5 // vpmullw ymm5, ymm5, ymm1 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xe460ddc5 // vpunpcklbw ymm4, ymm4, ymm4 + LONG $0xe3d5ddc5 // vpmullw ymm4, ymm4, ymm3 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe567ddc5 // vpackuswb ymm4, ymm4, ymm5 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm4 + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x04c08348 // add rax, 4 + JNE LBB2_652 + +LBB2_653: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_656 + WORD $0xf749; BYTE $0xd9 // neg r9 + LONG $0xc868fdc5 // vpunpckhbw ymm1, ymm0, ymm0 + LONG $0x556ffdc5; BYTE $0x00 // vmovdqa ymm2, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xc060fdc5 // vpunpcklbw ymm0, ymm0, ymm0 + +LBB2_655: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0xe368e5c5 // vpunpckhbw ymm4, ymm3, ymm3 + LONG $0xe1d5ddc5 // vpmullw ymm4, ymm4, ymm1 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdb60e5c5 // vpunpcklbw ymm3, ymm3, ymm3 + LONG $0xd8d5e5c5 // vpmullw ymm3, ymm3, ymm0 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdc67e5c5 // vpackuswb ymm3, ymm3, ymm4 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0xff49; BYTE $0xc1 // inc r9 + JNE LBB2_655 + +LBB2_656: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1109 + JMP LBB2_657 + +LBB2_661: + WORD $0xff31 // xor edi, edi + +LBB2_662: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_664 + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb944; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_664: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_665 + +LBB2_669: + WORD $0xff31 // xor edi, edi + +LBB2_670: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_672 + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb944; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_672: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_673 + +LBB2_677: + WORD $0xff31 // xor edi, edi + +LBB2_678: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_680 + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60b9 // vpaddd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_680: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_681 + +LBB2_685: + WORD $0xff31 // xor edi, edi + +LBB2_686: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_688 + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60b9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_688: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_689 + +LBB2_693: + WORD $0xff31 // xor edi, edi + +LBB2_694: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_696 + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60b9 // vpaddd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_696: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_697 + +LBB2_701: + WORD $0xff31 // xor edi, edi + +LBB2_702: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_704 + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60b9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_704: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_705 + +LBB2_709: + WORD $0xff31 // xor edi, edi + +LBB2_710: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_712 + LONG $0x1459f5c5; BYTE $0xf9 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20f9 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40f9 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c59f5c5; WORD $0x60f9 // vmulpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_712: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_713 + +LBB2_717: + WORD $0xff31 // xor edi, edi + +LBB2_718: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_720 + LONG $0x1459f5c5; BYTE $0xf9 // vmulpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c59f5c5; WORD $0x20f9 // vmulpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6459f5c5; WORD $0x40f9 // vmulpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c59f5c5; WORD $0x60f9 // vmulpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_720: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_721 + +LBB2_725: + WORD $0xff31 // xor edi, edi + +LBB2_726: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_728 + LONG $0x1458f5c5; BYTE $0xf9 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20f9 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40f9 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c58f5c5; WORD $0x60f9 // vaddpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_728: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_729 + +LBB2_733: + WORD $0xff31 // xor edi, edi + +LBB2_734: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_736 + LONG $0x145cf5c5; BYTE $0xf9 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c5cf5c5; WORD $0x20f9 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x645cf5c5; WORD $0x40f9 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c5cf5c5; WORD $0x60f9 // vsubpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_736: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_737 + +LBB2_741: + WORD $0xff31 // xor edi, edi + +LBB2_742: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_744 + LONG $0x1458f5c5; BYTE $0xf9 // vaddpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c58f5c5; WORD $0x20f9 // vaddpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x6458f5c5; WORD $0x40f9 // vaddpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c58f5c5; WORD $0x60f9 // vaddpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_744: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_745 + +LBB2_749: + WORD $0xff31 // xor edi, edi + +LBB2_750: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_752 + LONG $0x145cf5c5; BYTE $0xf9 // vsubpd ymm2, ymm1, yword [rcx + 8*rdi] + LONG $0x5c5cf5c5; WORD $0x20f9 // vsubpd ymm3, ymm1, yword [rcx + 8*rdi + 32] + LONG $0x645cf5c5; WORD $0x40f9 // vsubpd ymm4, ymm1, yword [rcx + 8*rdi + 64] + LONG $0x4c5cf5c5; WORD $0x60f9 // vsubpd ymm1, ymm1, yword [rcx + 8*rdi + 96] + LONG $0x117dc1c4; WORD $0xf814 // vmovupd yword [r8 + 8*rdi], ymm2 + LONG $0x117dc1c4; WORD $0xf85c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf864; BYTE $0x40 // vmovupd yword [r8 + 8*rdi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x60 // vmovupd yword [r8 + 8*rdi + 96], ymm1 + +LBB2_752: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_753 + +LBB2_757: + WORD $0xff31 // xor edi, edi + +LBB2_758: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_760 + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x6039 // vpaddb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_760: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_761 + +LBB2_765: + WORD $0xff31 // xor edi, edi + +LBB2_766: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_768 + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x6039 // vpsubb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_768: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_769 + +LBB2_773: + WORD $0xff31 // xor edi, edi + +LBB2_774: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_776 + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x6039 // vpaddb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_776: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_777 + +LBB2_781: + WORD $0xff31 // xor edi, edi + +LBB2_782: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_784 + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x6039 // vpsubb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_784: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_785 + +LBB2_789: + WORD $0xff31 // xor edi, edi + +LBB2_790: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_792 + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_792: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_793 + +LBB2_797: + WORD $0xff31 // xor edi, edi + +LBB2_798: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_800 + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_800: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_801 + +LBB2_805: + WORD $0xff31 // xor edi, edi + +LBB2_806: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_808 + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60f9 // vpaddq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_808: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_809 + +LBB2_813: + WORD $0xff31 // xor edi, edi + +LBB2_814: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_816 + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60f9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_816: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_817 + +LBB2_821: + WORD $0xff31 // xor edi, edi + +LBB2_822: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_824 + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60f9 // vpaddq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_824: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_825 + +LBB2_829: + WORD $0xff31 // xor edi, edi + +LBB2_830: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_832 + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60f9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_832: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_833 + +LBB2_837: + WORD $0xff31 // xor edi, edi + +LBB2_838: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_840 + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x2079 // vpmullw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_840: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_841 + +LBB2_845: + WORD $0xff31 // xor edi, edi + +LBB2_846: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_848 + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x2079 // vpmullw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_848: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_849 + +LBB2_853: + WORD $0xff31 // xor edi, edi + +LBB2_854: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_856 + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x2079 // vpmullw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_856: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_857 + +LBB2_861: + WORD $0xff31 // xor edi, edi + +LBB2_862: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_864 + LONG $0x0cd5fdc5; BYTE $0x79 // vpmullw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44d5fdc5; WORD $0x2079 // vpmullw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_864: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_865 + +LBB2_869: + WORD $0xff31 // xor edi, edi + +LBB2_870: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_872 + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x2079 // vpaddw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_872: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_873 + +LBB2_877: + WORD $0xff31 // xor edi, edi + +LBB2_878: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_880 + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x2079 // vpaddw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_880: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_881 + +LBB2_885: + WORD $0xff31 // xor edi, edi + +LBB2_886: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_888 + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x2079 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_888: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_889 + +LBB2_893: + WORD $0xff31 // xor edi, edi + +LBB2_894: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_896 + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x2079 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_896: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_897 + +LBB2_901: + WORD $0xff31 // xor edi, edi + +LBB2_902: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_904 + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x2079 // vpaddw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_904: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_905 + +LBB2_909: + WORD $0xff31 // xor edi, edi + +LBB2_910: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_912 + LONG $0x0cfdfdc5; BYTE $0x79 // vpaddw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44fdfdc5; WORD $0x2079 // vpaddw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_912: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_913 + +LBB2_917: + WORD $0xff31 // xor edi, edi + +LBB2_918: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_920 + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x2079 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_920: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_921 + +LBB2_925: + WORD $0xff31 // xor edi, edi + +LBB2_926: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_928 + LONG $0x0cf9fdc5; BYTE $0x79 // vpsubw ymm1, ymm0, yword [rcx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x2079 // vpsubw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB2_928: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_929 + +LBB2_933: + WORD $0xff31 // xor edi, edi + +LBB2_934: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_936 + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_936: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_937 + +LBB2_941: + WORD $0xff31 // xor edi, edi + +LBB2_942: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_944 + LONG $0x1459f4c5; BYTE $0xb9 // vmulps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20b9 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40b9 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c59f4c5; WORD $0x60b9 // vmulps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_944: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_945 + +LBB2_949: + WORD $0xff31 // xor edi, edi + +LBB2_950: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_952 + LONG $0x146ffec5; BYTE $0xf9 // vmovdqu ymm2, yword [rcx + 8*rdi] + LONG $0x5c6ffec5; WORD $0x20f9 // vmovdqu ymm3, yword [rcx + 8*rdi + 32] + LONG $0x646ffec5; WORD $0x40f9 // vmovdqu ymm4, yword [rcx + 8*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60f9 // vmovdqu ymm5, yword [rcx + 8*rdi + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x7f7ec1c4; WORD $0xf814 // vmovdqu yword [r8 + 8*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf864; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_952: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_953 + +LBB2_957: + WORD $0xff31 // xor edi, edi + +LBB2_958: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_960 + LONG $0x1459f4c5; BYTE $0xb9 // vmulps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c59f4c5; WORD $0x20b9 // vmulps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6459f4c5; WORD $0x40b9 // vmulps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c59f4c5; WORD $0x60b9 // vmulps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_960: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_961 + +LBB2_965: + WORD $0xff31 // xor edi, edi + +LBB2_966: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_968 + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60f9 // vpaddq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_968: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_969 + +LBB2_973: + WORD $0xff31 // xor edi, edi + +LBB2_974: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_976 + LONG $0x1458f4c5; BYTE $0xb9 // vaddps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20b9 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40b9 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c58f4c5; WORD $0x60b9 // vaddps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_976: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_977 + +LBB2_981: + WORD $0xff31 // xor edi, edi + +LBB2_982: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_984 + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60f9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_984: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_985 + +LBB2_989: + WORD $0xff31 // xor edi, edi + +LBB2_990: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_992 + LONG $0x145cf4c5; BYTE $0xb9 // vsubps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c5cf4c5; WORD $0x20b9 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x645cf4c5; WORD $0x40b9 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c5cf4c5; WORD $0x60b9 // vsubps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_992: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_993 + +LBB2_997: + WORD $0xff31 // xor edi, edi + +LBB2_998: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1000 + LONG $0x0cd4fdc5; BYTE $0xf9 // vpaddq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54d4fdc5; WORD $0x20f9 // vpaddq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cd4fdc5; WORD $0x40f9 // vpaddq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44d4fdc5; WORD $0x60f9 // vpaddq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_1000: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1001 + +LBB2_1005: + WORD $0xff31 // xor edi, edi + +LBB2_1006: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1008 + LONG $0x1458f4c5; BYTE $0xb9 // vaddps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c58f4c5; WORD $0x20b9 // vaddps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x6458f4c5; WORD $0x40b9 // vaddps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c58f4c5; WORD $0x60b9 // vaddps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_1008: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_1009 + +LBB2_1013: + WORD $0xff31 // xor edi, edi + +LBB2_1014: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1016 + LONG $0x0cfbfdc5; BYTE $0xf9 // vpsubq ymm1, ymm0, yword [rcx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20f9 // vpsubq ymm2, ymm0, yword [rcx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40f9 // vpsubq ymm3, ymm0, yword [rcx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60f9 // vpsubq ymm0, ymm0, yword [rcx + 8*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xf80c // vmovdqu yword [r8 + 8*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xf854; BYTE $0x20 // vmovdqu yword [r8 + 8*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xf85c; BYTE $0x40 // vmovdqu yword [r8 + 8*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xf844; BYTE $0x60 // vmovdqu yword [r8 + 8*rdi + 96], ymm0 + +LBB2_1016: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1017 + +LBB2_1021: + WORD $0xff31 // xor edi, edi + +LBB2_1022: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1024 + LONG $0x145cf4c5; BYTE $0xb9 // vsubps ymm2, ymm1, yword [rcx + 4*rdi] + LONG $0x5c5cf4c5; WORD $0x20b9 // vsubps ymm3, ymm1, yword [rcx + 4*rdi + 32] + LONG $0x645cf4c5; WORD $0x40b9 // vsubps ymm4, ymm1, yword [rcx + 4*rdi + 64] + LONG $0x4c5cf4c5; WORD $0x60b9 // vsubps ymm1, ymm1, yword [rcx + 4*rdi + 96] + LONG $0x117cc1c4; WORD $0xb814 // vmovups yword [r8 + 4*rdi], ymm2 + LONG $0x117cc1c4; WORD $0xb85c; BYTE $0x20 // vmovups yword [r8 + 4*rdi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb864; BYTE $0x40 // vmovups yword [r8 + 4*rdi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb84c; BYTE $0x60 // vmovups yword [r8 + 4*rdi + 96], ymm1 + +LBB2_1024: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1109 + JMP LBB2_1025 + +LBB2_1029: + WORD $0xff31 // xor edi, edi + +LBB2_1030: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1032 + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x6039 // vpaddb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_1032: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1033 + +LBB2_1037: + WORD $0xff31 // xor edi, edi + +LBB2_1038: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1040 + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x6039 // vpsubb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_1040: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1041 + +LBB2_1045: + WORD $0xff31 // xor edi, edi + +LBB2_1046: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1048 + LONG $0x0cfcfdc5; BYTE $0x39 // vpaddb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54fcfdc5; WORD $0x2039 // vpaddb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cfcfdc5; WORD $0x4039 // vpaddb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44fcfdc5; WORD $0x6039 // vpaddb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_1048: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1049 + +LBB2_1053: + WORD $0xff31 // xor edi, edi + +LBB2_1054: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1056 + LONG $0x0cf8fdc5; BYTE $0x39 // vpsubb ymm1, ymm0, yword [rcx + rdi] + LONG $0x54f8fdc5; WORD $0x2039 // vpsubb ymm2, ymm0, yword [rcx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x4039 // vpsubb ymm3, ymm0, yword [rcx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x6039 // vpsubb ymm0, ymm0, yword [rcx + rdi + 96] + LONG $0x7f7ec1c4; WORD $0x380c // vmovdqu yword [r8 + rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x3854; BYTE $0x20 // vmovdqu yword [r8 + rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0x385c; BYTE $0x40 // vmovdqu yword [r8 + rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x3844; BYTE $0x60 // vmovdqu yword [r8 + rdi + 96], ymm0 + +LBB2_1056: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1057 + +LBB2_1061: + WORD $0xff31 // xor edi, edi + +LBB2_1062: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1064 + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb944; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1064: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1065 + +LBB2_1069: + WORD $0xff31 // xor edi, edi + +LBB2_1070: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1072 + LONG $0x407de2c4; WORD $0xb90c // vpmulld ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x407de2c4; WORD $0xb954; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x407de2c4; WORD $0xb95c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x407de2c4; WORD $0xb944; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1072: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1073 + +LBB2_1077: + WORD $0xff31 // xor edi, edi + +LBB2_1078: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1080 + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60b9 // vpaddd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1080: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1081 + +LBB2_1085: + WORD $0xff31 // xor edi, edi + +LBB2_1086: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1088 + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60b9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1088: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1089 + +LBB2_1093: + WORD $0xff31 // xor edi, edi + +LBB2_1094: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1096 + LONG $0x0cfefdc5; BYTE $0xb9 // vpaddd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fefdc5; WORD $0x20b9 // vpaddd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfefdc5; WORD $0x40b9 // vpaddd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fefdc5; WORD $0x60b9 // vpaddd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1096: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1109 + JMP LBB2_1097 + +LBB2_1101: + WORD $0xff31 // xor edi, edi + +LBB2_1102: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1104 + LONG $0x0cfafdc5; BYTE $0xb9 // vpsubd ymm1, ymm0, yword [rcx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20b9 // vpsubd ymm2, ymm0, yword [rcx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40b9 // vpsubd ymm3, ymm0, yword [rcx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60b9 // vpsubd ymm0, ymm0, yword [rcx + 4*rdi + 96] + LONG $0x7f7ec1c4; WORD $0xb80c // vmovdqu yword [r8 + 4*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0xb854; BYTE $0x20 // vmovdqu yword [r8 + 4*rdi + 32], ymm2 + LONG $0x7f7ec1c4; WORD $0xb85c; BYTE $0x40 // vmovdqu yword [r8 + 4*rdi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0xb844; BYTE $0x60 // vmovdqu yword [r8 + 4*rdi + 96], ymm0 + +LBB2_1104: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB2_1105 + +LBB2_1109: + VZEROUPPER + RET + +DATA LCDATA4<>+0x000(SB)/8, $0x8000000000000000 +DATA LCDATA4<>+0x008(SB)/8, $0x3ff0000000000000 +DATA LCDATA4<>+0x010(SB)/8, $0x0000000000000001 +DATA LCDATA4<>+0x018(SB)/8, $0x7fffffffffffffff +DATA LCDATA4<>+0x020(SB)/8, $0x8000000000000000 +DATA LCDATA4<>+0x028(SB)/8, $0x8000000000000000 +DATA LCDATA4<>+0x030(SB)/8, $0x000000000c080400 +DATA LCDATA4<>+0x038(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x040(SB)/8, $0x8000000000000001 +DATA LCDATA4<>+0x048(SB)/8, $0x000000007fffffff +DATA LCDATA4<>+0x050(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x058(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x060(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x068(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x070(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x078(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x088(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x090(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x098(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x0a0(SB)/8, $0x0d0c090805040100 +DATA LCDATA4<>+0x0a8(SB)/8, $0x0f0e0d0c0d0c0908 +DATA LCDATA4<>+0x0b0(SB)/8, $0x1d1c191815141110 +DATA LCDATA4<>+0x0b8(SB)/8, $0x1f1e1d1c1d1c1918 +GLOBL LCDATA4<>(SB), 8, $192 + +TEXT ·_arithmetic_unary_same_types_avx2(SB), $0-40 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ input+16(FP), DX + MOVQ output+24(FP), CX + MOVQ len+32(FP), R8 + LEAQ LCDATA4<>(SB), BP + + LONG $0x13fe8040 // cmp sil, 19 + JLE LBB3_12 + LONG $0x14fe8040 // cmp sil, 20 + JE LBB3_22 + LONG $0x19fe8040 // cmp sil, 25 + JE LBB3_30 + LONG $0x1afe8040 // cmp sil, 26 + JNE LBB3_865 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_46 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_81 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_131 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_134 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB3_221 + WORD $0xd231 // xor edx, edx + JMP LBB3_373 + +LBB3_12: + LONG $0x04fe8040 // cmp sil, 4 + JE LBB3_38 + LONG $0x05fe8040 // cmp sil, 5 + JNE LBB3_865 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_53 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_86 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_137 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_140 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_21 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_374 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_374 + +LBB3_21: + WORD $0xf631 // xor esi, esi + +LBB3_616: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_618 + +LBB3_617: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_617 + +LBB3_618: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_619: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_619 + JMP LBB3_865 + +LBB3_22: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_60 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_91 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_143 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_146 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_29 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_377 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_377 + +LBB3_29: + WORD $0xf631 // xor esi, esi + +LBB3_380: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_382 + +LBB3_381: + WORD $0xff31 // xor edi, edi + LONG $0x00b23c83 // cmp dword [rdx + 4*rsi], 0 + LONG $0xd7950f40 // setne dil + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_381 + +LBB3_382: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_383: + WORD $0xc031 // xor eax, eax + LONG $0x00b23c83 // cmp dword [rdx + 4*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 12], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_383 + JMP LBB3_865 + +LBB3_30: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_67 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_96 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_149 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_152 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_37 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_384 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_384 + +LBB3_37: + WORD $0xf631 // xor esi, esi + +LBB3_624: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_626 + +LBB3_625: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_625 + +LBB3_626: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_627: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_627 + JMP LBB3_865 + +LBB3_38: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_74 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_101 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_155 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_158 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_45 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_387 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_387 + +LBB3_45: + WORD $0xf631 // xor esi, esi + +LBB3_632: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_634 + +LBB3_633: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_633 + +LBB3_634: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_635: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_635 + JMP LBB3_865 + +LBB3_46: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_106 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_161 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_164 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_52 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_390 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_390 + +LBB3_52: + WORD $0xf631 // xor esi, esi + +LBB3_640: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_643 + LONG $0x4528f9c5; BYTE $0x20 // vmovapd xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + +LBB3_642: + LONG $0x0c10fbc5; BYTE $0xf2 // vmovsd xmm1, qword [rdx + 8*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c13f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_642 + +LBB3_643: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_865 + LONG $0x4528f9c5; BYTE $0x20 // vmovapd xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + +LBB3_645: + LONG $0x0c10fbc5; BYTE $0xf2 // vmovsd xmm1, qword [rdx + 8*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c13f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm1 + LONG $0x4c10fbc5; WORD $0x08f2 // vmovsd xmm1, qword [rdx + 8*rsi + 8] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x08f1 // vmovlpd qword [rcx + 8*rsi + 8], xmm1 + LONG $0x4c10fbc5; WORD $0x10f2 // vmovsd xmm1, qword [rdx + 8*rsi + 16] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x10f1 // vmovlpd qword [rcx + 8*rsi + 16], xmm1 + LONG $0x4c10fbc5; WORD $0x18f2 // vmovsd xmm1, qword [rdx + 8*rsi + 24] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x18f1 // vmovlpd qword [rcx + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_645 + JMP LBB3_865 + +LBB3_53: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_111 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_167 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_170 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_59 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_393 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_393 + +LBB3_59: + WORD $0xf631 // xor esi, esi + +LBB3_650: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_653 + LONG $0x4528f9c5; BYTE $0x20 // vmovapd xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + +LBB3_652: + LONG $0x0c10fbc5; BYTE $0xf2 // vmovsd xmm1, qword [rdx + 8*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c13f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_652 + +LBB3_653: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_865 + LONG $0x4528f9c5; BYTE $0x20 // vmovapd xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + +LBB3_655: + LONG $0x0c10fbc5; BYTE $0xf2 // vmovsd xmm1, qword [rdx + 8*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c13f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm1 + LONG $0x4c10fbc5; WORD $0x08f2 // vmovsd xmm1, qword [rdx + 8*rsi + 8] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x08f1 // vmovlpd qword [rcx + 8*rsi + 8], xmm1 + LONG $0x4c10fbc5; WORD $0x10f2 // vmovsd xmm1, qword [rdx + 8*rsi + 16] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x10f1 // vmovlpd qword [rcx + 8*rsi + 16], xmm1 + LONG $0x4c10fbc5; WORD $0x18f2 // vmovsd xmm1, qword [rdx + 8*rsi + 24] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c13f9c5; WORD $0x18f1 // vmovlpd qword [rcx + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_655 + JMP LBB3_865 + +LBB3_60: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_116 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_173 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_176 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8944; BYTE $0xc0 // mov eax, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_66 + LONG $0xc2348d48 // lea rsi, [rdx + 8*rax] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_396 + LONG $0xc1348d48 // lea rsi, [rcx + 8*rax] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_396 + +LBB3_66: + WORD $0xf631 // xor esi, esi + +LBB3_399: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x01a8 // test al, 1 + JE LBB3_401 + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0x4d54f9c5; BYTE $0x20 // vandpd xmm1, xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI3_1] */ + LONG $0xc956e9c5 // vorpd xmm1, xmm2, xmm1 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + LONG $0xc2c2fbc5; BYTE $0x00 // vcmpeqsd xmm0, xmm0, xmm2 + LONG $0xc155f9c5 // vandnpd xmm0, xmm0, xmm1 + LONG $0x0413f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm0 + LONG $0x01ce8348 // or rsi, 1 + +LBB3_401: + WORD $0x0148; BYTE $0xc7 // add rdi, rax + JE LBB3_865 + LONG $0x4528f9c5; BYTE $0x20 // vmovapd xmm0, oword 32[rbp] /* [rip + .LCPI3_2] */ + LONG $0x4d12fbc5; BYTE $0x08 // vmovddup xmm1, qword 8[rbp] /* [rip + .LCPI3_1] */ + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + +LBB3_403: + LONG $0x1c10fbc5; BYTE $0xf2 // vmovsd xmm3, qword [rdx + 8*rsi] + LONG $0xe054e1c5 // vandpd xmm4, xmm3, xmm0 + LONG $0xe456f1c5 // vorpd xmm4, xmm1, xmm4 + LONG $0xdac2e3c5; BYTE $0x00 // vcmpeqsd xmm3, xmm3, xmm2 + LONG $0xdc55e1c5 // vandnpd xmm3, xmm3, xmm4 + LONG $0x1c13f9c5; BYTE $0xf1 // vmovlpd qword [rcx + 8*rsi], xmm3 + LONG $0x5c10fbc5; WORD $0x08f2 // vmovsd xmm3, qword [rdx + 8*rsi + 8] + LONG $0xe054e1c5 // vandpd xmm4, xmm3, xmm0 + LONG $0xe456f1c5 // vorpd xmm4, xmm1, xmm4 + LONG $0xdac2e3c5; BYTE $0x00 // vcmpeqsd xmm3, xmm3, xmm2 + LONG $0xdc55e1c5 // vandnpd xmm3, xmm3, xmm4 + LONG $0x5c13f9c5; WORD $0x08f1 // vmovlpd qword [rcx + 8*rsi + 8], xmm3 + LONG $0x02c68348 // add rsi, 2 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB3_403 + JMP LBB3_865 + +LBB3_67: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_121 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_179 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_182 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_73 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_404 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_404 + +LBB3_73: + WORD $0xf631 // xor esi, esi + +LBB3_660: + QUAD $0xffffffffffffba49; WORD $0x7fff // mov r10, 9223372036854775807 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_662 + +LBB3_661: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd7 // and rdi, r10 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_661 + +LBB3_662: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_663: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_663 + JMP LBB3_865 + +LBB3_74: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_126 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_185 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_188 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_80 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_407 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_407 + +LBB3_80: + WORD $0xf631 // xor esi, esi + +LBB3_668: + QUAD $0xffffffffffffba49; WORD $0x7fff // mov r10, 9223372036854775807 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_670 + +LBB3_669: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd7 // and rdi, r10 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_669 + +LBB3_670: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_671: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_671 + JMP LBB3_865 + +LBB3_81: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_191 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_85 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_410 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_410 + +LBB3_85: + WORD $0xf631 // xor esi, esi + +LBB3_676: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_678 + +LBB3_677: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_677 + +LBB3_678: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_679: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_679 + JMP LBB3_865 + +LBB3_86: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_194 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_90 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_413 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_413 + +LBB3_90: + WORD $0xf631 // xor esi, esi + +LBB3_684: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_686 + +LBB3_685: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_685 + +LBB3_686: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_687: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_687 + JMP LBB3_865 + +LBB3_91: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_197 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc3 // mov r11d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_95 + LONG $0x1a348d4a // lea rsi, [rdx + r11] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_416 + LONG $0x19348d4a // lea rsi, [rcx + r11] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_416 + +LBB3_95: + WORD $0xf631 // xor esi, esi + +LBB3_419: + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + WORD $0xf749; BYTE $0xd2 // not r10 + LONG $0x01c3f641 // test r11b, 1 + JE LBB3_421 + LONG $0x32048a44 // mov r8b, byte [rdx + rsi] + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + LONG $0xc1b60f45 // movzx r8d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf84e0f41 // cmovle edi, r8d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_421: + WORD $0x014d; BYTE $0xda // add r10, r11 + JE LBB3_865 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB3_423: + LONG $0x04b60f44; BYTE $0x32 // movzx r8d, byte [rdx + rsi] + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x44b60f44; WORD $0x0132 // movzx r8d, byte [rdx + rsi + 1] + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB3_423 + JMP LBB3_865 + +LBB3_96: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_200 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_100 + LONG $0x12348d4a // lea rsi, [rdx + r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_424 + LONG $0x11348d4a // lea rsi, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_424 + +LBB3_100: + WORD $0xf631 // xor esi, esi + +LBB3_427: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_429 + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x8941; BYTE $0xf9 // mov r9d, edi + LONG $0x07f9c141 // sar r9d, 7 + WORD $0x0144; BYTE $0xcf // add edi, r9d + WORD $0x3144; BYTE $0xcf // xor edi, r9d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_429: + WORD $0x014d; BYTE $0xd0 // add r8, r10 + JE LBB3_865 + +LBB3_430: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0xf889 // mov eax, edi + WORD $0xf8c1; BYTE $0x07 // sar eax, 7 + WORD $0xc701 // add edi, eax + WORD $0xc731 // xor edi, eax + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_430 + JMP LBB3_865 + +LBB3_101: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_203 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_105 + LONG $0x12348d4a // lea rsi, [rdx + r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_431 + LONG $0x11348d4a // lea rsi, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_431 + +LBB3_105: + WORD $0xf631 // xor esi, esi + +LBB3_434: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_436 + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x8941; BYTE $0xf9 // mov r9d, edi + LONG $0x07f9c141 // sar r9d, 7 + WORD $0x0144; BYTE $0xcf // add edi, r9d + WORD $0x3144; BYTE $0xcf // xor edi, r9d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_436: + WORD $0x014d; BYTE $0xd0 // add r8, r10 + JE LBB3_865 + +LBB3_437: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0xf889 // mov eax, edi + WORD $0xf8c1; BYTE $0x07 // sar eax, 7 + WORD $0xc701 // add edi, eax + WORD $0xc731 // xor edi, eax + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_437 + JMP LBB3_865 + +LBB3_106: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_206 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB3_265 + WORD $0xd231 // xor edx, edx + JMP LBB3_444 + +LBB3_111: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_209 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_115 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_445 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_445 + +LBB3_115: + WORD $0xf631 // xor esi, esi + +LBB3_692: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_694 + +LBB3_693: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_693 + +LBB3_694: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_695: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_695 + JMP LBB3_865 + +LBB3_116: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_212 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_120 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_448 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_448 + +LBB3_120: + WORD $0xf631 // xor esi, esi + +LBB3_451: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_453 + +LBB3_452: + WORD $0xff31 // xor edi, edi + LONG $0xf23c8348; BYTE $0x00 // cmp qword [rdx + 8*rsi], 0 + LONG $0xd7950f40 // setne dil + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_452 + +LBB3_453: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_454: + WORD $0xc031 // xor eax, eax + LONG $0xf23c8348; BYTE $0x00 // cmp qword [rdx + 8*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0008 // cmp qword [rdx + 8*rsi + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0010 // cmp qword [rdx + 8*rsi + 16], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0018 // cmp qword [rdx + 8*rsi + 24], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_454 + JMP LBB3_865 + +LBB3_121: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_215 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_125 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_455 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_455 + +LBB3_125: + WORD $0xf631 // xor esi, esi + +LBB3_700: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_702 + +LBB3_701: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_701 + +LBB3_702: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_703: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_703 + JMP LBB3_865 + +LBB3_126: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_218 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_865 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_130 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_458 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_458 + +LBB3_130: + WORD $0xf631 // xor esi, esi + +LBB3_708: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_710 + +LBB3_709: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_709 + +LBB3_710: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_711: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_711 + JMP LBB3_865 + +LBB3_131: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JAE LBB3_279 + WORD $0xd231 // xor edx, edx + JMP LBB3_467 + +LBB3_134: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_136 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_468 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_468 + +LBB3_136: + WORD $0xf631 // xor esi, esi + +LBB3_716: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_718 + +LBB3_717: + WORD $0xff31 // xor edi, edi + LONG $0x723c2b66 // sub di, word [rdx + 2*rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_717 + +LBB3_718: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_719: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_719 + JMP LBB3_865 + +LBB3_137: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_139 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_471 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_471 + +LBB3_139: + WORD $0xf631 // xor esi, esi + +LBB3_724: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_726 + +LBB3_725: + WORD $0xff31 // xor edi, edi + LONG $0x723c2b66 // sub di, word [rdx + 2*rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_725 + +LBB3_726: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_727: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_727 + JMP LBB3_865 + +LBB3_140: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_142 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_474 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_474 + +LBB3_142: + WORD $0xf631 // xor esi, esi + +LBB3_732: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_734 + +LBB3_733: + WORD $0xff31 // xor edi, edi + LONG $0x723c2b66 // sub di, word [rdx + 2*rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_733 + +LBB3_734: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_735: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_735 + JMP LBB3_865 + +LBB3_143: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_145 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_477 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_477 + +LBB3_145: + WORD $0xf631 // xor esi, esi + +LBB3_740: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_742 + +LBB3_741: + WORD $0xff31 // xor edi, edi + LONG $0x723c8366; BYTE $0x00 // cmp word [rdx + 2*rsi], 0 + LONG $0xd7950f40 // setne dil + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_741 + +LBB3_742: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_743: + WORD $0xc031 // xor eax, eax + LONG $0x723c8366; BYTE $0x00 // cmp word [rdx + 2*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0002 // cmp word [rdx + 2*rsi + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0004 // cmp word [rdx + 2*rsi + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0006 // cmp word [rdx + 2*rsi + 6], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_743 + JMP LBB3_865 + +LBB3_146: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_148 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_480 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_480 + +LBB3_148: + WORD $0xf631 // xor esi, esi + +LBB3_748: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_750 + LONG $0x04b70f44; BYTE $0x72 // movzx r8d, word [rdx + 2*rsi] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc0854566 // test r8w, r8w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc0854566 // test r8w, r8w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_750: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_865 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_752: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc04f0f41 // cmovg eax, r8d + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xf84f0f41 // cmovg edi, r8d + LONG $0x717c8966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], di + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_752 + JMP LBB3_865 + +LBB3_149: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_151 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_483 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_483 + +LBB3_151: + WORD $0xf631 // xor esi, esi + +LBB3_598: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_600 + +LBB3_599: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_599 + +LBB3_600: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_601: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_601 + JMP LBB3_865 + +LBB3_152: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_154 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_485 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_485 + +LBB3_154: + WORD $0xf631 // xor esi, esi + +LBB3_757: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_759 + LONG $0x723cbf0f // movsx edi, word [rdx + 2*rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x0ff8c141 // sar r8d, 15 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_759: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_865 + +LBB3_760: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244bf0f; BYTE $0x02 // movsx eax, word [rdx + 2*rsi + 2] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_760 + JMP LBB3_865 + +LBB3_155: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_157 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_488 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_488 + +LBB3_157: + WORD $0xf631 // xor esi, esi + +LBB3_608: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_610 + +LBB3_609: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_609 + +LBB3_610: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_611: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_611 + JMP LBB3_865 + +LBB3_158: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_160 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_490 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_490 + +LBB3_160: + WORD $0xf631 // xor esi, esi + +LBB3_765: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_767 + LONG $0x723cbf0f // movsx edi, word [rdx + 2*rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x0ff8c141 // sar r8d, 15 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_767: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_865 + +LBB3_768: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244bf0f; BYTE $0x02 // movsx eax, word [rdx + 2*rsi + 2] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_768 + JMP LBB3_865 + +LBB3_161: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_163 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_493 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_493 + +LBB3_163: + WORD $0xf631 // xor esi, esi + +LBB3_773: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_775 + +LBB3_774: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_774 + +LBB3_775: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_776: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_776 + JMP LBB3_865 + +LBB3_164: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_166 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_496 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_496 + +LBB3_166: + WORD $0xf631 // xor esi, esi + +LBB3_781: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_784 + LONG $0x1879e2c4; WORD $0x4445 // vbroadcastss xmm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_783: + LONG $0x0c10fac5; BYTE $0xb2 // vmovss xmm1, dword [rdx + 4*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c11fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_783 + +LBB3_784: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_865 + LONG $0x1879e2c4; WORD $0x4445 // vbroadcastss xmm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_786: + LONG $0x0c10fac5; BYTE $0xb2 // vmovss xmm1, dword [rdx + 4*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c11fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm1 + LONG $0x4c10fac5; WORD $0x04b2 // vmovss xmm1, dword [rdx + 4*rsi + 4] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x04b1 // vmovss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x4c10fac5; WORD $0x08b2 // vmovss xmm1, dword [rdx + 4*rsi + 8] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x08b1 // vmovss dword [rcx + 4*rsi + 8], xmm1 + LONG $0x4c10fac5; WORD $0x0cb2 // vmovss xmm1, dword [rdx + 4*rsi + 12] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x0cb1 // vmovss dword [rcx + 4*rsi + 12], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_786 + JMP LBB3_865 + +LBB3_167: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_169 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_499 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_499 + +LBB3_169: + WORD $0xf631 // xor esi, esi + +LBB3_791: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_793 + +LBB3_792: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_792 + +LBB3_793: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_794: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_794 + JMP LBB3_865 + +LBB3_170: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_172 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_502 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_502 + +LBB3_172: + WORD $0xf631 // xor esi, esi + +LBB3_799: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_802 + LONG $0x1879e2c4; WORD $0x4445 // vbroadcastss xmm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_801: + LONG $0x0c10fac5; BYTE $0xb2 // vmovss xmm1, dword [rdx + 4*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c11fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_801 + +LBB3_802: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_865 + LONG $0x1879e2c4; WORD $0x4445 // vbroadcastss xmm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_804: + LONG $0x0c10fac5; BYTE $0xb2 // vmovss xmm1, dword [rdx + 4*rsi] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x0c11fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm1 + LONG $0x4c10fac5; WORD $0x04b2 // vmovss xmm1, dword [rdx + 4*rsi + 4] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x04b1 // vmovss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x4c10fac5; WORD $0x08b2 // vmovss xmm1, dword [rdx + 4*rsi + 8] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x08b1 // vmovss dword [rcx + 4*rsi + 8], xmm1 + LONG $0x4c10fac5; WORD $0x0cb2 // vmovss xmm1, dword [rdx + 4*rsi + 12] + LONG $0xc857f1c5 // vxorpd xmm1, xmm1, xmm0 + LONG $0x4c11fac5; WORD $0x0cb1 // vmovss dword [rcx + 4*rsi + 12], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_804 + JMP LBB3_865 + +LBB3_173: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc3 // mov r11d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_175 + LONG $0xda348d4a // lea rsi, [rdx + 8*r11] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_505 + LONG $0xd9348d4a // lea rsi, [rcx + 8*r11] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_505 + +LBB3_175: + WORD $0xf631 // xor esi, esi + +LBB3_508: + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + WORD $0xf749; BYTE $0xd2 // not r10 + LONG $0x01c3f641 // test r11b, 1 + JE LBB3_510 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + WORD $0x854d; BYTE $0xc0 // test r8, r8 + LONG $0xd1950f41 // setne r9b + WORD $0xf749; BYTE $0xd9 // neg r9 + WORD $0x854d; BYTE $0xc0 // test r8, r8 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f49 // cmovle rdi, r9 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_510: + WORD $0x014d; BYTE $0xda // add r10, r11 + JE LBB3_865 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_512: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf84f0f49 // cmovg rdi, r8 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf84f0f49 // cmovg rdi, r8 + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB3_512 + JMP LBB3_865 + +LBB3_176: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8944; BYTE $0xc0 // mov eax, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_178 + LONG $0x82348d48 // lea rsi, [rdx + 4*rax] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_513 + LONG $0x81348d48 // lea rsi, [rcx + 4*rax] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_513 + +LBB3_178: + WORD $0xf631 // xor esi, esi + +LBB3_516: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x01a8 // test al, 1 + JE LBB3_518 + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0xf850f8c5 // vmovmskps edi, xmm0 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + LONG $0xcf2aaac5 // vcvtsi2ss xmm1, xmm10, edi + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + LONG $0xc2c2fac5; BYTE $0x00 // vcmpeqss xmm0, xmm0, xmm2 + LONG $0xc155f8c5 // vandnps xmm0, xmm0, xmm1 + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01ce8348 // or rsi, 1 + +LBB3_518: + WORD $0x0149; BYTE $0xc0 // add r8, rax + JE LBB3_865 + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + +LBB3_520: + LONG $0x0c10fac5; BYTE $0xb2 // vmovss xmm1, dword [rdx + 4*rsi] + LONG $0xf950f8c5 // vmovmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + LONG $0xd72aaac5 // vcvtsi2ss xmm2, xmm10, edi + LONG $0xc8c2f2c5; BYTE $0x00 // vcmpeqss xmm1, xmm1, xmm0 + LONG $0xca55f0c5 // vandnps xmm1, xmm1, xmm2 + LONG $0x0c11fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm1 + LONG $0x4c10fac5; WORD $0x04b2 // vmovss xmm1, dword [rdx + 4*rsi + 4] + LONG $0xf950f8c5 // vmovmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + LONG $0xd72aaac5 // vcvtsi2ss xmm2, xmm10, edi + LONG $0xc8c2f2c5; BYTE $0x00 // vcmpeqss xmm1, xmm1, xmm0 + LONG $0xca55f0c5 // vandnps xmm1, xmm1, xmm2 + LONG $0x4c11fac5; WORD $0x04b1 // vmovss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x02c68348 // add rsi, 2 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB3_520 + JMP LBB3_865 + +LBB3_179: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_181 + LONG $0xd2348d4a // lea rsi, [rdx + 8*r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_521 + LONG $0xd1348d4a // lea rsi, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_521 + +LBB3_181: + WORD $0xf631 // xor esi, esi + +LBB3_524: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_526 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f49 // cmovl rdi, r8 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_526: + WORD $0x014d; BYTE $0xd1 // add r9, r10 + JE LBB3_865 + +LBB3_527: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_527 + JMP LBB3_865 + +LBB3_182: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_184 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_528 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_528 + +LBB3_184: + WORD $0xf631 // xor esi, esi + +LBB3_809: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_812 + LONG $0xffffba41; WORD $0x7fff // mov r10d, 2147483647 + +LBB3_811: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x2144; BYTE $0xd0 // and eax, r10d + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_811 + +LBB3_812: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + LONG $0xffffffb8; BYTE $0x7f // mov eax, 2147483647 + +LBB3_814: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0xc721 // and edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b27c8b // mov edi, dword [rdx + 4*rsi + 4] + WORD $0xc721 // and edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x08b27c8b // mov edi, dword [rdx + 4*rsi + 8] + WORD $0xc721 // and edi, eax + LONG $0x08b17c89 // mov dword [rcx + 4*rsi + 8], edi + LONG $0x0cb27c8b // mov edi, dword [rdx + 4*rsi + 12] + WORD $0xc721 // and edi, eax + LONG $0x0cb17c89 // mov dword [rcx + 4*rsi + 12], edi + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_814 + JMP LBB3_865 + +LBB3_185: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_187 + LONG $0xd2348d4a // lea rsi, [rdx + 8*r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_531 + LONG $0xd1348d4a // lea rsi, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_531 + +LBB3_187: + WORD $0xf631 // xor esi, esi + +LBB3_534: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_536 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f49 // cmovl rdi, r8 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_536: + WORD $0x014d; BYTE $0xd1 // add r9, r10 + JE LBB3_865 + +LBB3_537: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_537 + JMP LBB3_865 + +LBB3_188: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_190 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_538 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_538 + +LBB3_190: + WORD $0xf631 // xor esi, esi + +LBB3_819: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_822 + LONG $0xffffba41; WORD $0x7fff // mov r10d, 2147483647 + +LBB3_821: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x2144; BYTE $0xd0 // and eax, r10d + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_821 + +LBB3_822: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + LONG $0xffffffb8; BYTE $0x7f // mov eax, 2147483647 + +LBB3_824: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0xc721 // and edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b27c8b // mov edi, dword [rdx + 4*rsi + 4] + WORD $0xc721 // and edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x08b27c8b // mov edi, dword [rdx + 4*rsi + 8] + WORD $0xc721 // and edi, eax + LONG $0x08b17c89 // mov dword [rcx + 4*rsi + 8], edi + LONG $0x0cb27c8b // mov edi, dword [rdx + 4*rsi + 12] + WORD $0xc721 // and edi, eax + LONG $0x0cb17c89 // mov dword [rcx + 4*rsi + 12], edi + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_824 + JMP LBB3_865 + +LBB3_191: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JAE LBB3_338 + WORD $0xd231 // xor edx, edx + JMP LBB3_547 + +LBB3_194: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_196 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_548 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_548 + +LBB3_196: + WORD $0xf631 // xor esi, esi + +LBB3_829: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_831 + +LBB3_830: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_830 + +LBB3_831: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_832: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_832 + JMP LBB3_865 + +LBB3_197: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_199 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_551 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_551 + +LBB3_199: + WORD $0xf631 // xor esi, esi + +LBB3_554: + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + WORD $0xf748; BYTE $0xd7 // not rdi + WORD $0x014c; BYTE $0xcf // add rdi, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_556 + +LBB3_555: + LONG $0x00323c80 // cmp byte [rdx + rsi], 0 + LONG $0x3114950f // setne byte [rcx + rsi] + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_555 + +LBB3_556: + LONG $0x03ff8348 // cmp rdi, 3 + JB LBB3_865 + +LBB3_557: + LONG $0x00323c80 // cmp byte [rdx + rsi], 0 + LONG $0x3114950f // setne byte [rcx + rsi] + LONG $0x01327c80; BYTE $0x00 // cmp byte [rdx + rsi + 1], 0 + LONG $0x3154950f; BYTE $0x01 // setne byte [rcx + rsi + 1] + LONG $0x02327c80; BYTE $0x00 // cmp byte [rdx + rsi + 2], 0 + LONG $0x3154950f; BYTE $0x02 // setne byte [rcx + rsi + 2] + LONG $0x03327c80; BYTE $0x00 // cmp byte [rdx + rsi + 3], 0 + LONG $0x3154950f; BYTE $0x03 // setne byte [rcx + rsi + 3] + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_557 + JMP LBB3_865 + +LBB3_200: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_202 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_558 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_558 + +LBB3_202: + WORD $0xf631 // xor esi, esi + +LBB3_837: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_839 + +LBB3_838: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_838 + +LBB3_839: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_840: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_840 + JMP LBB3_865 + +LBB3_203: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB3_205 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_561 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_561 + +LBB3_205: + WORD $0xf631 // xor esi, esi + +LBB3_845: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_847 + +LBB3_846: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_846 + +LBB3_847: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_848: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_848 + JMP LBB3_865 + +LBB3_206: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_208 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_564 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_564 + +LBB3_208: + WORD $0xf631 // xor esi, esi + +LBB3_853: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_855 + +LBB3_854: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_854 + +LBB3_855: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_856: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_856 + JMP LBB3_865 + +LBB3_209: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_211 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_567 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_567 + +LBB3_211: + WORD $0xf631 // xor esi, esi + +LBB3_861: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_863 + +LBB3_862: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_862 + +LBB3_863: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_865 + +LBB3_864: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_864 + JMP LBB3_865 + +LBB3_212: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc3 // mov r11d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_214 + LONG $0x9a348d4a // lea rsi, [rdx + 4*r11] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_570 + LONG $0x99348d4a // lea rsi, [rcx + 4*r11] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_570 + +LBB3_214: + WORD $0xf631 // xor esi, esi + +LBB3_573: + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + WORD $0xf749; BYTE $0xd2 // not r10 + LONG $0x01c3f641 // test r11b, 1 + JE LBB3_575 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + LONG $0xd1950f41 // setne r9b + WORD $0xf741; BYTE $0xd9 // neg r9d + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_575: + WORD $0x014d; BYTE $0xda // add r10, r11 + JE LBB3_865 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_577: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + LONG $0xf84f0f41 // cmovg edi, r8d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + LONG $0xf84f0f41 // cmovg edi, r8d + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB3_577 + JMP LBB3_865 + +LBB3_215: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_217 + LONG $0x92348d4a // lea rsi, [rdx + 4*r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_578 + LONG $0x91348d4a // lea rsi, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_578 + +LBB3_217: + WORD $0xf631 // xor esi, esi + +LBB3_581: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_583 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x8944; BYTE $0xc7 // mov edi, r8d + WORD $0xdff7 // neg edi + LONG $0xf84c0f41 // cmovl edi, r8d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_583: + WORD $0x014d; BYTE $0xd1 // add r9, r10 + JE LBB3_865 + +LBB3_584: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_584 + JMP LBB3_865 + +LBB3_218: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_865 + WORD $0x8945; BYTE $0xc2 // mov r10d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_220 + LONG $0x92348d4a // lea rsi, [rdx + 4*r10] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_585 + LONG $0x91348d4a // lea rsi, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_585 + +LBB3_220: + WORD $0xf631 // xor esi, esi + +LBB3_588: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + LONG $0x01c2f641 // test r10b, 1 + JE LBB3_590 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x8944; BYTE $0xc7 // mov edi, r8d + WORD $0xdff7 // neg edi + LONG $0xf84c0f41 // cmovl edi, r8d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_590: + WORD $0x014d; BYTE $0xd1 // add r9, r10 + JE LBB3_865 + +LBB3_591: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB3_591 + JMP LBB3_865 + +LBB3_221: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0428d48 // lea rax, [rdx - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x03 // and esi, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB3_367 + WORD $0xc031 // xor eax, eax + JMP LBB3_369 + +LBB3_265: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0428d48 // lea rax, [rdx - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x03 // and esi, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB3_438 + WORD $0xc031 // xor eax, eax + JMP LBB3_440 + +LBB3_279: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xc0 // and edx, -64 + LONG $0xc0428d48 // lea rax, [rdx - 64] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x06efc148 // shr rdi, 6 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x03 // and esi, 3 + LONG $0x00c03d48; WORD $0x0000 // cmp rax, 192 + JAE LBB3_461 + WORD $0xc031 // xor eax, eax + JMP LBB3_463 + +LBB3_338: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0x80 // and edx, -128 + LONG $0x80428d48 // lea rax, [rdx - 128] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x07efc148 // shr rdi, 7 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x03 // and esi, 3 + LONG $0x01803d48; WORD $0x0000 // cmp rax, 384 + JAE LBB3_541 + WORD $0xc031 // xor eax, eax + JMP LBB3_543 + +LBB3_374: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_612 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_376: + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60ba // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_376 + JMP LBB3_613 + +LBB3_377: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x587de2c4; WORD $0x404d // vpbroadcastd ymm1, dword 64[rbp] /* [rip + .LCPI3_3] */ + +LBB3_378: + LONG $0x1476fdc5; BYTE $0xba // vpcmpeqd ymm2, ymm0, yword [rdx + 4*rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c76fdc5; WORD $0x20ba // vpcmpeqd ymm3, ymm0, yword [rdx + 4*rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6476fdc5; WORD $0x40ba // vpcmpeqd ymm4, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x6c76fdc5; WORD $0x60ba // vpcmpeqd ymm5, ymm0, yword [rdx + 4*rdi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x147ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm2 + LONG $0x5c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm3 + LONG $0x647ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm4 + LONG $0x6c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm5 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_378 + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_380 + +LBB3_384: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_620 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_386: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_386 + JMP LBB3_621 + +LBB3_387: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_628 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_389: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_389 + JMP LBB3_629 + +LBB3_390: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_636 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_392: + LONG $0x0c57fdc5; BYTE $0xfa // vxorpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5457fdc5; WORD $0x20fa // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40fa // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x6457fdc5; WORD $0x60fa // vxorpd ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c57fdc5; BYTE $0x00 // vxorpd ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9457fdc5; BYTE $0x00 // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c57fdc5; BYTE $0x00 // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa457fdc5; BYTE $0x00 // vxorpd ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_392 + JMP LBB3_637 + +LBB3_393: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_646 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_395: + LONG $0x0c57fdc5; BYTE $0xfa // vxorpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5457fdc5; WORD $0x20fa // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40fa // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x6457fdc5; WORD $0x60fa // vxorpd ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c57fdc5; BYTE $0x00 // vxorpd ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9457fdc5; BYTE $0x00 // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c57fdc5; BYTE $0x00 // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa457fdc5; BYTE $0x00 // vxorpd ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_395 + JMP LBB3_647 + +LBB3_396: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x197de2c4; WORD $0x004d // vbroadcastsd ymm1, qword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI3_1] */ + +LBB3_397: + LONG $0x1c10fdc5; BYTE $0xfa // vmovupd ymm3, yword [rdx + 8*rdi] + LONG $0x6410fdc5; WORD $0x20fa // vmovupd ymm4, yword [rdx + 8*rdi + 32] + LONG $0x6c10fdc5; WORD $0x40fa // vmovupd ymm5, yword [rdx + 8*rdi + 64] + LONG $0x7410fdc5; WORD $0x60fa // vmovupd ymm6, yword [rdx + 8*rdi + 96] + LONG $0xf954e5c5 // vandpd ymm7, ymm3, ymm1 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xc1545dc5 // vandpd ymm8, ymm4, ymm1 + LONG $0xc2563dc5 // vorpd ymm8, ymm8, ymm2 + LONG $0xc95455c5 // vandpd ymm9, ymm5, ymm1 + LONG $0xca5635c5 // vorpd ymm9, ymm9, ymm2 + LONG $0xd1544dc5 // vandpd ymm10, ymm6, ymm1 + LONG $0xd2562dc5 // vorpd ymm10, ymm10, ymm2 + LONG $0xd8c2e5c5; BYTE $0x04 // vcmpneqpd ymm3, ymm3, ymm0 + LONG $0xdf54e5c5 // vandpd ymm3, ymm3, ymm7 + LONG $0xe0c2ddc5; BYTE $0x04 // vcmpneqpd ymm4, ymm4, ymm0 + LONG $0xe454bdc5 // vandpd ymm4, ymm8, ymm4 + LONG $0xe8c2d5c5; BYTE $0x04 // vcmpneqpd ymm5, ymm5, ymm0 + LONG $0xed54b5c5 // vandpd ymm5, ymm9, ymm5 + LONG $0xf0c2cdc5; BYTE $0x04 // vcmpneqpd ymm6, ymm6, ymm0 + LONG $0xf654adc5 // vandpd ymm6, ymm10, ymm6 + LONG $0x1c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm3 + LONG $0x6411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm4 + LONG $0x6c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm5 + LONG $0x7411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm6 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_397 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB3_865 + JMP LBB3_399 + +LBB3_404: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_656 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x1845 // vbroadcastsd ymm0, qword 24[rbp] /* [rip + .LCPI3_8] */ + +LBB3_406: + LONG $0x0c54fdc5; BYTE $0xfa // vandpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5454fdc5; WORD $0x20fa // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40fa // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x6454fdc5; WORD $0x60fa // vandpd ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c54fdc5; BYTE $0x00 // vandpd ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9454fdc5; BYTE $0x00 // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c54fdc5; BYTE $0x00 // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa454fdc5; BYTE $0x00 // vandpd ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_406 + JMP LBB3_657 + +LBB3_407: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_664 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x1845 // vbroadcastsd ymm0, qword 24[rbp] /* [rip + .LCPI3_8] */ + +LBB3_409: + LONG $0x0c54fdc5; BYTE $0xfa // vandpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5454fdc5; WORD $0x20fa // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40fa // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x6454fdc5; WORD $0x60fa // vandpd ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8c54fdc5; BYTE $0x00 // vandpd ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa9454fdc5; BYTE $0x00 // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9c54fdc5; BYTE $0x00 // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa454fdc5; BYTE $0x00 // vandpd ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_409 + JMP LBB3_665 + +LBB3_410: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_672 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_412: + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x603a // vpsubb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm4 + QUAD $0x0000803a8cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x000080398c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 128], ymm1 + QUAD $0x0000a039947ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 160], ymm2 + QUAD $0x0000c0399c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 192], ymm3 + QUAD $0x0000e039a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_412 + JMP LBB3_673 + +LBB3_413: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_680 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_415: + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x603a // vpsubb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm4 + QUAD $0x0000803a8cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x000080398c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 128], ymm1 + QUAD $0x0000a039947ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 160], ymm2 + QUAD $0x0000c0399c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 192], ymm3 + QUAD $0x0000e039a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_415 + JMP LBB3_681 + +LBB3_416: + WORD $0x8944; BYTE $0xde // mov esi, r11d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00000080956ffdc5 // vmovdqa ymm2, yword 128[rbp] /* [rip + .LCPI3_6] */ + +LBB3_417: + LONG $0x1c6ffec5; BYTE $0x3a // vmovdqu ymm3, yword [rdx + rdi] + LONG $0x646ffec5; WORD $0x203a // vmovdqu ymm4, yword [rdx + rdi + 32] + LONG $0x6c6ffec5; WORD $0x403a // vmovdqu ymm5, yword [rdx + rdi + 64] + LONG $0x746ffec5; WORD $0x603a // vmovdqu ymm6, yword [rdx + rdi + 96] + LONG $0xf874e5c5 // vpcmpeqb ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0745dc5 // vpcmpeqb ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87455c5 // vpcmpeqb ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0744dc5 // vpcmpeqb ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb64edc5 // vpcmpgtb ymm3, ymm2, ymm3 + LONG $0xe464edc5 // vpcmpgtb ymm4, ymm2, ymm4 + LONG $0xed64edc5 // vpcmpgtb ymm5, ymm2, ymm5 + LONG $0xf664edc5 // vpcmpgtb ymm6, ymm2, ymm6 + LONG $0x4c6de3c4; WORD $0x30df // vpblendvb ymm3, ymm2, ymm7, ymm3 + LONG $0x4c6dc3c4; WORD $0x40e0 // vpblendvb ymm4, ymm2, ymm8, ymm4 + LONG $0x4c6dc3c4; WORD $0x50e9 // vpblendvb ymm5, ymm2, ymm9, ymm5 + LONG $0x4c6dc3c4; WORD $0x60f2 // vpblendvb ymm6, ymm2, ymm10, ymm6 + LONG $0x1c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm3 + LONG $0x647ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm4 + LONG $0x6c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm5 + LONG $0x747ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm6 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_417 + WORD $0x394c; BYTE $0xde // cmp rsi, r11 + JE LBB3_865 + JMP LBB3_419 + +LBB3_424: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x30 // vmovdqa xmm0, oword 48[rbp] /* [rip + .LCPI3_11] */ + +LBB3_425: + LONG $0x217de2c4; WORD $0x3a0c // vpmovsxbd ymm1, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbd ymm2, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x10 // vpmovsxbd ymm3, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a64; BYTE $0x18 // vpmovsxbd ymm4, qword [rdx + rdi + 24] + LONG $0xe172d5c5; BYTE $0x07 // vpsrad ymm5, ymm1, 7 + LONG $0xe272cdc5; BYTE $0x07 // vpsrad ymm6, ymm2, 7 + LONG $0xe372c5c5; BYTE $0x07 // vpsrad ymm7, ymm3, 7 + LONG $0xe472bdc5; BYTE $0x07 // vpsrad ymm8, ymm4, 7 + LONG $0xc9fed5c5 // vpaddd ymm1, ymm5, ymm1 + LONG $0xd2fecdc5 // vpaddd ymm2, ymm6, ymm2 + LONG $0xdbfec5c5 // vpaddd ymm3, ymm7, ymm3 + LONG $0xe4febdc5 // vpaddd ymm4, ymm8, ymm4 + LONG $0xcdeff5c5 // vpxor ymm1, ymm1, ymm5 + LONG $0xd6efedc5 // vpxor ymm2, ymm2, ymm6 + LONG $0xdfefe5c5 // vpxor ymm3, ymm3, ymm7 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01cd // vextracti128 xmm5, ymm1, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xcd62f1c5 // vpunpckldq xmm1, xmm1, xmm5 + LONG $0x397de3c4; WORD $0x01d5 // vextracti128 xmm5, ymm2, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0xd562e9c5 // vpunpckldq xmm2, xmm2, xmm5 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xdd62e1c5 // vpunpckldq xmm3, xmm3, xmm5 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xe562d9c5 // vpunpckldq xmm4, xmm4, xmm5 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_425 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_427 + +LBB3_431: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x30 // vmovdqa xmm0, oword 48[rbp] /* [rip + .LCPI3_11] */ + +LBB3_432: + LONG $0x217de2c4; WORD $0x3a0c // vpmovsxbd ymm1, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbd ymm2, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x10 // vpmovsxbd ymm3, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a64; BYTE $0x18 // vpmovsxbd ymm4, qword [rdx + rdi + 24] + LONG $0xe172d5c5; BYTE $0x07 // vpsrad ymm5, ymm1, 7 + LONG $0xe272cdc5; BYTE $0x07 // vpsrad ymm6, ymm2, 7 + LONG $0xe372c5c5; BYTE $0x07 // vpsrad ymm7, ymm3, 7 + LONG $0xe472bdc5; BYTE $0x07 // vpsrad ymm8, ymm4, 7 + LONG $0xc9fed5c5 // vpaddd ymm1, ymm5, ymm1 + LONG $0xd2fecdc5 // vpaddd ymm2, ymm6, ymm2 + LONG $0xdbfec5c5 // vpaddd ymm3, ymm7, ymm3 + LONG $0xe4febdc5 // vpaddd ymm4, ymm8, ymm4 + LONG $0xcdeff5c5 // vpxor ymm1, ymm1, ymm5 + LONG $0xd6efedc5 // vpxor ymm2, ymm2, ymm6 + LONG $0xdfefe5c5 // vpxor ymm3, ymm3, ymm7 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01cd // vextracti128 xmm5, ymm1, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xcd62f1c5 // vpunpckldq xmm1, xmm1, xmm5 + LONG $0x397de3c4; WORD $0x01d5 // vextracti128 xmm5, ymm2, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0xd562e9c5 // vpunpckldq xmm2, xmm2, xmm5 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xdd62e1c5 // vpunpckldq xmm3, xmm3, xmm5 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xe562d9c5 // vpunpckldq xmm4, xmm4, xmm5 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_432 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_434 + +LBB3_445: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_688 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_447: + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60fa // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_447 + JMP LBB3_689 + +LBB3_448: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x597de2c4; WORD $0x104d // vpbroadcastq ymm1, qword 16[rbp] /* [rip + .LCPI3_4] */ + +LBB3_449: + LONG $0x297de2c4; WORD $0xfa14 // vpcmpeqq ymm2, ymm0, yword [rdx + 8*rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x297de2c4; WORD $0xfa5c; BYTE $0x20 // vpcmpeqq ymm3, ymm0, yword [rdx + 8*rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x297de2c4; WORD $0xfa64; BYTE $0x40 // vpcmpeqq ymm4, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x297de2c4; WORD $0xfa6c; BYTE $0x60 // vpcmpeqq ymm5, ymm0, yword [rdx + 8*rdi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x147ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm2 + LONG $0x5c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm3 + LONG $0x647ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm4 + LONG $0x6c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm5 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_449 + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_451 + +LBB3_455: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_696 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_457: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_457 + JMP LBB3_697 + +LBB3_458: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_704 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_460: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_460 + JMP LBB3_705 + +LBB3_468: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_712 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_470: + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x207a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x547ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x407a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x607a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x4c7ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm1 + LONG $0x547ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_470 + JMP LBB3_713 + +LBB3_471: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_720 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_473: + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x207a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x547ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x407a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x607a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x4c7ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm1 + LONG $0x547ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_473 + JMP LBB3_721 + +LBB3_474: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_728 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_476: + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x54f9fdc5; WORD $0x207a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x547ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm2 + LONG $0x4cf9fdc5; WORD $0x407a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x54f9fdc5; WORD $0x607a // vpsubw ymm2, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x4c7ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm1 + LONG $0x547ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_476 + JMP LBB3_729 + +LBB3_477: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_736 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x4d6ffdc5; BYTE $0x60 // vmovdqa ymm1, yword 96[rbp] /* [rip + .LCPI3_5] */ + +LBB3_479: + LONG $0x1475fdc5; BYTE $0x7a // vpcmpeqw ymm2, ymm0, yword [rdx + 2*rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x207a // vpcmpeqw ymm3, ymm0, yword [rdx + 2*rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x147ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm2 + LONG $0x5c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm3 + LONG $0x5475fdc5; WORD $0x407a // vpcmpeqw ymm2, ymm0, yword [rdx + 2*rdi + 64] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x607a // vpcmpeqw ymm3, ymm0, yword [rdx + 2*rdi + 96] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_479 + JMP LBB3_737 + +LBB3_480: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_744 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ffdc5; BYTE $0x60 // vmovdqa ymm2, yword 96[rbp] /* [rip + .LCPI3_5] */ + +LBB3_482: + LONG $0x1c6ffec5; BYTE $0x7a // vmovdqu ymm3, yword [rdx + 2*rdi] + LONG $0x646ffec5; WORD $0x207a // vmovdqu ymm4, yword [rdx + 2*rdi + 32] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x1c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm3 + LONG $0x647ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm4 + LONG $0x5c6ffec5; WORD $0x407a // vmovdqu ymm3, yword [rdx + 2*rdi + 64] + LONG $0x646ffec5; WORD $0x607a // vmovdqu ymm4, yword [rdx + 2*rdi + 96] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x5c7ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_482 + JMP LBB3_745 + +LBB3_483: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB3_592 + WORD $0xc031 // xor eax, eax + JMP LBB3_594 + +LBB3_485: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_753 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI3_10] */ + +LBB3_487: + LONG $0x237de2c4; WORD $0x7a0c // vpmovsxwd ymm1, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 16] + LONG $0xe272e5c5; BYTE $0x0f // vpsrad ymm3, ymm2, 15 + LONG $0xe172ddc5; BYTE $0x0f // vpsrad ymm4, ymm1, 15 + LONG $0xc9feddc5 // vpaddd ymm1, ymm4, ymm1 + LONG $0xd2fee5c5 // vpaddd ymm2, ymm3, ymm2 + LONG $0xd3efedc5 // vpxor ymm2, ymm2, ymm3 + LONG $0xcceff5c5 // vpxor ymm1, ymm1, ymm4 + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x20 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x30 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 48] + LONG $0xe272e5c5; BYTE $0x0f // vpsrad ymm3, ymm2, 15 + LONG $0xe172ddc5; BYTE $0x0f // vpsrad ymm4, ymm1, 15 + LONG $0xc9feddc5 // vpaddd ymm1, ymm4, ymm1 + LONG $0xd2fee5c5 // vpaddd ymm2, ymm3, ymm2 + LONG $0xd3efedc5 // vpxor ymm2, ymm2, ymm3 + LONG $0xcceff5c5 // vpxor ymm1, ymm1, ymm4 + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x547ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm2 + LONG $0x4c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_487 + JMP LBB3_754 + +LBB3_488: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB3_602 + WORD $0xc031 // xor eax, eax + JMP LBB3_604 + +LBB3_490: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_761 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI3_10] */ + +LBB3_492: + LONG $0x237de2c4; WORD $0x7a0c // vpmovsxwd ymm1, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 16] + LONG $0xe272e5c5; BYTE $0x0f // vpsrad ymm3, ymm2, 15 + LONG $0xe172ddc5; BYTE $0x0f // vpsrad ymm4, ymm1, 15 + LONG $0xc9feddc5 // vpaddd ymm1, ymm4, ymm1 + LONG $0xd2fee5c5 // vpaddd ymm2, ymm3, ymm2 + LONG $0xd3efedc5 // vpxor ymm2, ymm2, ymm3 + LONG $0xcceff5c5 // vpxor ymm1, ymm1, ymm4 + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x20 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x30 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 48] + LONG $0xe272e5c5; BYTE $0x0f // vpsrad ymm3, ymm2, 15 + LONG $0xe172ddc5; BYTE $0x0f // vpsrad ymm4, ymm1, 15 + LONG $0xc9feddc5 // vpaddd ymm1, ymm4, ymm1 + LONG $0xd2fee5c5 // vpaddd ymm2, ymm3, ymm2 + LONG $0xd3efedc5 // vpxor ymm2, ymm2, ymm3 + LONG $0xcceff5c5 // vpxor ymm1, ymm1, ymm4 + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x547ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm2 + LONG $0x4c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_492 + JMP LBB3_762 + +LBB3_493: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_769 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_495: + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60fa // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_495 + JMP LBB3_770 + +LBB3_496: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_777 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x187de2c4; WORD $0x4445 // vbroadcastss ymm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_498: + LONG $0x0c57fdc5; BYTE $0xba // vxorpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5457fdc5; WORD $0x20ba // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40ba // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x6457fdc5; WORD $0x60ba // vxorpd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c57fdc5; BYTE $0x00 // vxorpd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9457fdc5; BYTE $0x00 // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c57fdc5; BYTE $0x00 // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa457fdc5; BYTE $0x00 // vxorpd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_498 + JMP LBB3_778 + +LBB3_499: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_787 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_501: + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x64fbfdc5; WORD $0x60fa // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm4 + QUAD $0x000080fa8cfbfdc5; BYTE $0x00 // vpsubq ymm1, ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa94fbfdc5; BYTE $0x00 // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9cfbfdc5; BYTE $0x00 // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0faa4fbfdc5; BYTE $0x00 // vpsubq ymm4, ymm0, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_501 + JMP LBB3_788 + +LBB3_502: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_795 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x187de2c4; WORD $0x4445 // vbroadcastss ymm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + +LBB3_504: + LONG $0x0c57fdc5; BYTE $0xba // vxorpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5457fdc5; WORD $0x20ba // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40ba // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x6457fdc5; WORD $0x60ba // vxorpd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c57fdc5; BYTE $0x00 // vxorpd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9457fdc5; BYTE $0x00 // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c57fdc5; BYTE $0x00 // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa457fdc5; BYTE $0x00 // vxorpd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_504 + JMP LBB3_796 + +LBB3_505: + WORD $0x8944; BYTE $0xde // mov esi, r11d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x597de2c4; WORD $0x1055 // vpbroadcastq ymm2, qword 16[rbp] /* [rip + .LCPI3_4] */ + +LBB3_506: + LONG $0x1c6ffec5; BYTE $0xfa // vmovdqu ymm3, yword [rdx + 8*rdi] + LONG $0x646ffec5; WORD $0x20fa // vmovdqu ymm4, yword [rdx + 8*rdi + 32] + LONG $0x6c6ffec5; WORD $0x40fa // vmovdqu ymm5, yword [rdx + 8*rdi + 64] + LONG $0x746ffec5; WORD $0x60fa // vmovdqu ymm6, yword [rdx + 8*rdi + 96] + LONG $0x2965e2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0x295d62c4; BYTE $0xc0 // vpcmpeqq ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0x295562c4; BYTE $0xc8 // vpcmpeqq ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0x294d62c4; BYTE $0xd0 // vpcmpeqq ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0x376de2c4; BYTE $0xdb // vpcmpgtq ymm3, ymm2, ymm3 + LONG $0x376de2c4; BYTE $0xe4 // vpcmpgtq ymm4, ymm2, ymm4 + LONG $0x376de2c4; BYTE $0xed // vpcmpgtq ymm5, ymm2, ymm5 + LONG $0x376de2c4; BYTE $0xf6 // vpcmpgtq ymm6, ymm2, ymm6 + LONG $0x4b6de3c4; WORD $0x30df // vblendvpd ymm3, ymm2, ymm7, ymm3 + LONG $0x4b6dc3c4; WORD $0x40e0 // vblendvpd ymm4, ymm2, ymm8, ymm4 + LONG $0x4b6dc3c4; WORD $0x50e9 // vblendvpd ymm5, ymm2, ymm9, ymm5 + LONG $0x4b6dc3c4; WORD $0x60f2 // vblendvpd ymm6, ymm2, ymm10, ymm6 + LONG $0x1c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm3 + LONG $0x6411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm4 + LONG $0x6c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm5 + LONG $0x7411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm6 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_506 + WORD $0x394c; BYTE $0xde // cmp rsi, r11 + JE LBB3_865 + JMP LBB3_508 + +LBB3_513: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + LONG $0x587de2c4; WORD $0x404d // vpbroadcastd ymm1, dword 64[rbp] /* [rip + .LCPI3_3] */ + +LBB3_514: + LONG $0x146ffec5; BYTE $0xba // vmovdqu ymm2, yword [rdx + 4*rdi] + LONG $0x5c6ffec5; WORD $0x20ba // vmovdqu ymm3, yword [rdx + 4*rdi + 32] + LONG $0x646ffec5; WORD $0x40ba // vmovdqu ymm4, yword [rdx + 4*rdi + 64] + LONG $0x6c6ffec5; WORD $0x60ba // vmovdqu ymm5, yword [rdx + 4*rdi + 96] + LONG $0xe272cdc5; BYTE $0x1f // vpsrad ymm6, ymm2, 31 + LONG $0xf1ebcdc5 // vpor ymm6, ymm6, ymm1 + LONG $0xe372c5c5; BYTE $0x1f // vpsrad ymm7, ymm3, 31 + LONG $0xf9ebc5c5 // vpor ymm7, ymm7, ymm1 + LONG $0xe472bdc5; BYTE $0x1f // vpsrad ymm8, ymm4, 31 + LONG $0xc1eb3dc5 // vpor ymm8, ymm8, ymm1 + LONG $0xe572b5c5; BYTE $0x1f // vpsrad ymm9, ymm5, 31 + LONG $0xc9eb35c5 // vpor ymm9, ymm9, ymm1 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0xff5bfcc5 // vcvtdq2ps ymm7, ymm7 + LONG $0x5b7c41c4; BYTE $0xc0 // vcvtdq2ps ymm8, ymm8 + LONG $0x5b7c41c4; BYTE $0xc9 // vcvtdq2ps ymm9, ymm9 + LONG $0xd0c2ecc5; BYTE $0x04 // vcmpneqps ymm2, ymm2, ymm0 + LONG $0xd654ecc5 // vandps ymm2, ymm2, ymm6 + LONG $0xd8c2e4c5; BYTE $0x04 // vcmpneqps ymm3, ymm3, ymm0 + LONG $0xdf54e4c5 // vandps ymm3, ymm3, ymm7 + LONG $0xe0c2dcc5; BYTE $0x04 // vcmpneqps ymm4, ymm4, ymm0 + LONG $0xe454bcc5 // vandps ymm4, ymm8, ymm4 + LONG $0xe8c2d4c5; BYTE $0x04 // vcmpneqps ymm5, ymm5, ymm0 + LONG $0xed54b4c5 // vandps ymm5, ymm9, ymm5 + LONG $0x1411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm2 + LONG $0x5c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm3 + LONG $0x6411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm4 + LONG $0x6c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm5 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_514 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB3_865 + JMP LBB3_516 + +LBB3_521: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_522: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0xe1fbfdc5 // vpsubq ymm4, ymm0, ymm1 + LONG $0x4b75e3c4; WORD $0x10cc // vblendvpd ymm1, ymm1, ymm4, ymm1 + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xeafbfdc5 // vpsubq ymm5, ymm0, ymm2 + LONG $0x4b6de3c4; WORD $0x20d5 // vblendvpd ymm2, ymm2, ymm5, ymm2 + LONG $0xebfbfdc5 // vpsubq ymm5, ymm0, ymm3 + LONG $0x4b65e3c4; WORD $0x30dd // vblendvpd ymm3, ymm3, ymm5, ymm3 + LONG $0xecfbfdc5 // vpsubq ymm5, ymm0, ymm4 + LONG $0x4b5de3c4; WORD $0x40e5 // vblendvpd ymm4, ymm4, ymm5, ymm4 + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_522 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_524 + +LBB3_528: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_805 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x187de2c4; WORD $0x4845 // vbroadcastss ymm0, dword 72[rbp] /* [rip + .LCPI3_9] */ + +LBB3_530: + LONG $0x0c54fdc5; BYTE $0xba // vandpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5454fdc5; WORD $0x20ba // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40ba // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x6454fdc5; WORD $0x60ba // vandpd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c54fdc5; BYTE $0x00 // vandpd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9454fdc5; BYTE $0x00 // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c54fdc5; BYTE $0x00 // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa454fdc5; BYTE $0x00 // vandpd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_530 + JMP LBB3_806 + +LBB3_531: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_532: + LONG $0x0c6ffec5; BYTE $0xfa // vmovdqu ymm1, yword [rdx + 8*rdi] + LONG $0x546ffec5; WORD $0x20fa // vmovdqu ymm2, yword [rdx + 8*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40fa // vmovdqu ymm3, yword [rdx + 8*rdi + 64] + LONG $0xe1fbfdc5 // vpsubq ymm4, ymm0, ymm1 + LONG $0x4b75e3c4; WORD $0x10cc // vblendvpd ymm1, ymm1, ymm4, ymm1 + LONG $0x646ffec5; WORD $0x60fa // vmovdqu ymm4, yword [rdx + 8*rdi + 96] + LONG $0xeafbfdc5 // vpsubq ymm5, ymm0, ymm2 + LONG $0x4b6de3c4; WORD $0x20d5 // vblendvpd ymm2, ymm2, ymm5, ymm2 + LONG $0xebfbfdc5 // vpsubq ymm5, ymm0, ymm3 + LONG $0x4b65e3c4; WORD $0x30dd // vblendvpd ymm3, ymm3, ymm5, ymm3 + LONG $0xecfbfdc5 // vpsubq ymm5, ymm0, ymm4 + LONG $0x4b5de3c4; WORD $0x40e5 // vblendvpd ymm4, ymm4, ymm5, ymm4 + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_532 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_534 + +LBB3_538: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_815 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x187de2c4; WORD $0x4845 // vbroadcastss ymm0, dword 72[rbp] /* [rip + .LCPI3_9] */ + +LBB3_540: + LONG $0x0c54fdc5; BYTE $0xba // vandpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5454fdc5; WORD $0x20ba // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40ba // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x6454fdc5; WORD $0x60ba // vandpd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8c54fdc5; BYTE $0x00 // vandpd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba9454fdc5; BYTE $0x00 // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c54fdc5; BYTE $0x00 // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa454fdc5; BYTE $0x00 // vandpd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_540 + JMP LBB3_816 + +LBB3_548: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_825 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_550: + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x64f8fdc5; WORD $0x603a // vpsubb ymm4, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm4 + QUAD $0x0000803a8cf8fdc5; BYTE $0x00 // vpsubb ymm1, ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a94f8fdc5; BYTE $0x00 // vpsubb ymm2, ymm0, yword [rdx + rdi + 160] + QUAD $0x0000c03a9cf8fdc5; BYTE $0x00 // vpsubb ymm3, ymm0, yword [rdx + rdi + 192] + QUAD $0x0000e03aa4f8fdc5; BYTE $0x00 // vpsubb ymm4, ymm0, yword [rdx + rdi + 224] + QUAD $0x000080398c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 128], ymm1 + QUAD $0x0000a039947ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 160], ymm2 + QUAD $0x0000c0399c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 192], ymm3 + QUAD $0x0000e039a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + rdi + 224], ymm4 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_550 + JMP LBB3_826 + +LBB3_551: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI3_6] */ + +LBB3_552: + LONG $0x1474fdc5; BYTE $0x3a // vpcmpeqb ymm2, ymm0, yword [rdx + rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c74fdc5; WORD $0x203a // vpcmpeqb ymm3, ymm0, yword [rdx + rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6474fdc5; WORD $0x403a // vpcmpeqb ymm4, ymm0, yword [rdx + rdi + 64] + LONG $0x6c74fdc5; WORD $0x603a // vpcmpeqb ymm5, ymm0, yword [rdx + rdi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x147ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm2 + LONG $0x5c7ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm3 + LONG $0x647ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm4 + LONG $0x6c7ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm5 + LONG $0x80ef8348 // sub rdi, -128 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_552 + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_554 + +LBB3_558: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_833 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_560: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_560 + JMP LBB3_834 + +LBB3_561: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_841 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_563: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_563 + JMP LBB3_842 + +LBB3_564: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_849 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_566: + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60ba // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_566 + JMP LBB3_850 + +LBB3_567: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_857 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB3_569: + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x64fafdc5; WORD $0x60ba // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x647ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm4 + QUAD $0x000080ba8cfafdc5; BYTE $0x00 // vpsubd ymm1, ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba94fafdc5; BYTE $0x00 // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9cfafdc5; BYTE $0x00 // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa4fafdc5; BYTE $0x00 // vpsubd ymm4, ymm0, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm1 + QUAD $0x0000a0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm2 + QUAD $0x0000c0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm3 + QUAD $0x0000e0b9a47ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_569 + JMP LBB3_858 + +LBB3_570: + WORD $0x8944; BYTE $0xde // mov esi, r11d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x587de2c4; WORD $0x4055 // vpbroadcastd ymm2, dword 64[rbp] /* [rip + .LCPI3_3] */ + +LBB3_571: + LONG $0x1c6ffec5; BYTE $0xba // vmovdqu ymm3, yword [rdx + 4*rdi] + LONG $0x646ffec5; WORD $0x20ba // vmovdqu ymm4, yword [rdx + 4*rdi + 32] + LONG $0x6c6ffec5; WORD $0x40ba // vmovdqu ymm5, yword [rdx + 4*rdi + 64] + LONG $0x746ffec5; WORD $0x60ba // vmovdqu ymm6, yword [rdx + 4*rdi + 96] + LONG $0xf876e5c5 // vpcmpeqd ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0765dc5 // vpcmpeqd ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87655c5 // vpcmpeqd ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0764dc5 // vpcmpeqd ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb66edc5 // vpcmpgtd ymm3, ymm2, ymm3 + LONG $0xe466edc5 // vpcmpgtd ymm4, ymm2, ymm4 + LONG $0xed66edc5 // vpcmpgtd ymm5, ymm2, ymm5 + LONG $0xf666edc5 // vpcmpgtd ymm6, ymm2, ymm6 + LONG $0x4a6de3c4; WORD $0x30df // vblendvps ymm3, ymm2, ymm7, ymm3 + LONG $0x4a6dc3c4; WORD $0x40e0 // vblendvps ymm4, ymm2, ymm8, ymm4 + LONG $0x4a6dc3c4; WORD $0x50e9 // vblendvps ymm5, ymm2, ymm9, ymm5 + LONG $0x4a6dc3c4; WORD $0x60f2 // vblendvps ymm6, ymm2, ymm10, ymm6 + LONG $0x1c11fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm3 + LONG $0x6411fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm4 + LONG $0x6c11fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm5 + LONG $0x7411fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm6 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_571 + WORD $0x394c; BYTE $0xde // cmp rsi, r11 + JE LBB3_865 + JMP LBB3_573 + +LBB3_578: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB3_579: + LONG $0x1e7de2c4; WORD $0xba04 // vpabsd ymm0, yword [rdx + 4*rdi] + LONG $0x1e7de2c4; WORD $0xba4c; BYTE $0x20 // vpabsd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x1e7de2c4; WORD $0xba54; BYTE $0x40 // vpabsd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x1e7de2c4; WORD $0xba5c; BYTE $0x60 // vpabsd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_579 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_581 + +LBB3_585: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + +LBB3_586: + LONG $0x1e7de2c4; WORD $0xba04 // vpabsd ymm0, yword [rdx + 4*rdi] + LONG $0x1e7de2c4; WORD $0xba4c; BYTE $0x20 // vpabsd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x1e7de2c4; WORD $0xba54; BYTE $0x40 // vpabsd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x1e7de2c4; WORD $0xba5c; BYTE $0x60 // vpabsd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_586 + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB3_865 + JMP LBB3_588 + +LBB3_367: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_368: + LONG $0x0411fdc5; BYTE $0x81 // vmovupd yword [rcx + 4*rax], ymm0 + LONG $0x4411fdc5; WORD $0x2081 // vmovupd yword [rcx + 4*rax + 32], ymm0 + LONG $0x4411fdc5; WORD $0x4081 // vmovupd yword [rcx + 4*rax + 64], ymm0 + LONG $0x4411fdc5; WORD $0x6081 // vmovupd yword [rcx + 4*rax + 96], ymm0 + QUAD $0x000080818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 128], ymm0 + QUAD $0x0000a0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 160], ymm0 + QUAD $0x0000c0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 192], ymm0 + QUAD $0x0000e0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 224], ymm0 + QUAD $0x000100818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 256], ymm0 + QUAD $0x000120818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 288], ymm0 + QUAD $0x000140818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 320], ymm0 + QUAD $0x000160818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 352], ymm0 + QUAD $0x000180818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 384], ymm0 + QUAD $0x0001a0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 416], ymm0 + QUAD $0x0001c0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 448], ymm0 + QUAD $0x0001e0818411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rax + 480], ymm0 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_368 + +LBB3_369: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_372 + LONG $0x81048d48 // lea rax, [rcx + 4*rax] + LONG $0x60c08348 // add rax, 96 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_371: + LONG $0x4011fdc5; BYTE $0xa0 // vmovupd yword [rax - 96], ymm0 + LONG $0x4011fdc5; BYTE $0xc0 // vmovupd yword [rax - 64], ymm0 + LONG $0x4011fdc5; BYTE $0xe0 // vmovupd yword [rax - 32], ymm0 + LONG $0x0011fdc5 // vmovupd yword [rax], ymm0 + LONG $0x80e88348 // sub rax, -128 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_371 + +LBB3_372: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_865 + +LBB3_373: + LONG $0x009104c7; WORD $0x0000; BYTE $0x00 // mov dword [rcx + 4*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_373 + JMP LBB3_865 + +LBB3_438: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_439: + LONG $0x0411fdc5; BYTE $0xc1 // vmovupd yword [rcx + 8*rax], ymm0 + LONG $0x4411fdc5; WORD $0x20c1 // vmovupd yword [rcx + 8*rax + 32], ymm0 + LONG $0x4411fdc5; WORD $0x40c1 // vmovupd yword [rcx + 8*rax + 64], ymm0 + LONG $0x4411fdc5; WORD $0x60c1 // vmovupd yword [rcx + 8*rax + 96], ymm0 + QUAD $0x000080c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 128], ymm0 + QUAD $0x0000a0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 160], ymm0 + QUAD $0x0000c0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 192], ymm0 + QUAD $0x0000e0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 224], ymm0 + QUAD $0x000100c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 256], ymm0 + QUAD $0x000120c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 288], ymm0 + QUAD $0x000140c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 320], ymm0 + QUAD $0x000160c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 352], ymm0 + QUAD $0x000180c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 384], ymm0 + QUAD $0x0001a0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 416], ymm0 + QUAD $0x0001c0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 448], ymm0 + QUAD $0x0001e0c18411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rax + 480], ymm0 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_439 + +LBB3_440: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_443 + LONG $0xc1048d48 // lea rax, [rcx + 8*rax] + LONG $0x60c08348 // add rax, 96 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_442: + LONG $0x4011fdc5; BYTE $0xa0 // vmovupd yword [rax - 96], ymm0 + LONG $0x4011fdc5; BYTE $0xc0 // vmovupd yword [rax - 64], ymm0 + LONG $0x4011fdc5; BYTE $0xe0 // vmovupd yword [rax - 32], ymm0 + LONG $0x0011fdc5 // vmovupd yword [rax], ymm0 + LONG $0x80e88348 // sub rax, -128 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_442 + +LBB3_443: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_865 + +LBB3_444: + QUAD $0x00000000d104c748 // mov qword [rcx + 8*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_444 + JMP LBB3_865 + +LBB3_461: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_462: + LONG $0x0411fdc5; BYTE $0x41 // vmovupd yword [rcx + 2*rax], ymm0 + LONG $0x4411fdc5; WORD $0x2041 // vmovupd yword [rcx + 2*rax + 32], ymm0 + LONG $0x4411fdc5; WORD $0x4041 // vmovupd yword [rcx + 2*rax + 64], ymm0 + LONG $0x4411fdc5; WORD $0x6041 // vmovupd yword [rcx + 2*rax + 96], ymm0 + QUAD $0x000080418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 160], ymm0 + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm0 + QUAD $0x000100418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 256], ymm0 + QUAD $0x000120418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 288], ymm0 + QUAD $0x000140418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 320], ymm0 + QUAD $0x000160418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 352], ymm0 + QUAD $0x000180418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 384], ymm0 + QUAD $0x0001a0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 416], ymm0 + QUAD $0x0001c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 448], ymm0 + QUAD $0x0001e0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 480], ymm0 + LONG $0x01000548; WORD $0x0000 // add rax, 256 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_462 + +LBB3_463: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_466 + LONG $0x41048d48 // lea rax, [rcx + 2*rax] + LONG $0x60c08348 // add rax, 96 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_465: + LONG $0x4011fdc5; BYTE $0xa0 // vmovupd yword [rax - 96], ymm0 + LONG $0x4011fdc5; BYTE $0xc0 // vmovupd yword [rax - 64], ymm0 + LONG $0x4011fdc5; BYTE $0xe0 // vmovupd yword [rax - 32], ymm0 + LONG $0x0011fdc5 // vmovupd yword [rax], ymm0 + LONG $0x80e88348 // sub rax, -128 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_465 + +LBB3_466: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_865 + +LBB3_467: + LONG $0x5104c766; WORD $0x0000 // mov word [rcx + 2*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_467 + JMP LBB3_865 + +LBB3_541: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_542: + LONG $0x0411fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm0 + LONG $0x4411fdc5; WORD $0x2001 // vmovupd yword [rcx + rax + 32], ymm0 + LONG $0x4411fdc5; WORD $0x4001 // vmovupd yword [rcx + rax + 64], ymm0 + LONG $0x4411fdc5; WORD $0x6001 // vmovupd yword [rcx + rax + 96], ymm0 + QUAD $0x000080018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 128], ymm0 + QUAD $0x0000a0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 160], ymm0 + QUAD $0x0000c0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 192], ymm0 + QUAD $0x0000e0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 224], ymm0 + QUAD $0x000100018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 256], ymm0 + QUAD $0x000120018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 288], ymm0 + QUAD $0x000140018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 320], ymm0 + QUAD $0x000160018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 352], ymm0 + QUAD $0x000180018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 384], ymm0 + QUAD $0x0001a0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 416], ymm0 + QUAD $0x0001c0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 448], ymm0 + QUAD $0x0001e0018411fdc5; BYTE $0x00 // vmovupd yword [rcx + rax + 480], ymm0 + LONG $0x02000548; WORD $0x0000 // add rax, 512 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_542 + +LBB3_543: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_546 + WORD $0x0148; BYTE $0xc8 // add rax, rcx + LONG $0x60c08348 // add rax, 96 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + +LBB3_545: + LONG $0x4011fdc5; BYTE $0xa0 // vmovupd yword [rax - 96], ymm0 + LONG $0x4011fdc5; BYTE $0xc0 // vmovupd yword [rax - 64], ymm0 + LONG $0x4011fdc5; BYTE $0xe0 // vmovupd yword [rax - 32], ymm0 + LONG $0x0011fdc5 // vmovupd yword [rax], ymm0 + LONG $0x80e88348 // sub rax, -128 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_545 + +LBB3_546: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_865 + +LBB3_547: + LONG $0x001104c6 // mov byte [rcx + rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_547 + +LBB3_865: + VZEROUPPER + RET + +LBB3_592: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_593: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_593 + +LBB3_594: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_597 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_596: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_596 + +LBB3_597: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_598 + +LBB3_602: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_603: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_603 + +LBB3_604: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_607 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_606: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_606 + +LBB3_607: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_608 + +LBB3_612: + WORD $0xff31 // xor edi, edi + +LBB3_613: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_615 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60ba // vpsubd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm0 + +LBB3_615: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_616 + +LBB3_620: + WORD $0xff31 // xor edi, edi + +LBB3_621: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_623 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB3_623: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_624 + +LBB3_628: + WORD $0xff31 // xor edi, edi + +LBB3_629: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_631 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB3_631: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_632 + +LBB3_636: + WORD $0xff31 // xor edi, edi + +LBB3_637: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_639 + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0x0c57fdc5; BYTE $0xfa // vxorpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5457fdc5; WORD $0x20fa // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40fa // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x4457fdc5; WORD $0x60fa // vxorpd ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm0 + +LBB3_639: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_640 + +LBB3_646: + WORD $0xff31 // xor edi, edi + +LBB3_647: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_649 + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0x0c57fdc5; BYTE $0xfa // vxorpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5457fdc5; WORD $0x20fa // vxorpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40fa // vxorpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x4457fdc5; WORD $0x60fa // vxorpd ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm0 + +LBB3_649: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_650 + +LBB3_656: + WORD $0xff31 // xor edi, edi + +LBB3_657: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_659 + LONG $0x197de2c4; WORD $0x1845 // vbroadcastsd ymm0, qword 24[rbp] /* [rip + .LCPI3_8] */ + LONG $0x0c54fdc5; BYTE $0xfa // vandpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5454fdc5; WORD $0x20fa // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40fa // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x4454fdc5; WORD $0x60fa // vandpd ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm0 + +LBB3_659: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_660 + +LBB3_664: + WORD $0xff31 // xor edi, edi + +LBB3_665: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_667 + LONG $0x197de2c4; WORD $0x1845 // vbroadcastsd ymm0, qword 24[rbp] /* [rip + .LCPI3_8] */ + LONG $0x0c54fdc5; BYTE $0xfa // vandpd ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x5454fdc5; WORD $0x20fa // vandpd ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40fa // vandpd ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x4454fdc5; WORD $0x60fa // vandpd ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm0 + +LBB3_667: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_668 + +LBB3_672: + WORD $0xff31 // xor edi, edi + +LBB3_673: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_675 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x603a // vpsubb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm0 + +LBB3_675: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_676 + +LBB3_680: + WORD $0xff31 // xor edi, edi + +LBB3_681: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_683 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x603a // vpsubb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm0 + +LBB3_683: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_684 + +LBB3_688: + WORD $0xff31 // xor edi, edi + +LBB3_689: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_691 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60fa // vpsubq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm0 + +LBB3_691: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_692 + +LBB3_696: + WORD $0xff31 // xor edi, edi + +LBB3_697: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_699 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB3_699: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_700 + +LBB3_704: + WORD $0xff31 // xor edi, edi + +LBB3_705: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_707 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB3_707: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_708 + +LBB3_712: + WORD $0xff31 // xor edi, edi + +LBB3_713: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_715 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x207a // vpsubw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + +LBB3_715: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_716 + +LBB3_720: + WORD $0xff31 // xor edi, edi + +LBB3_721: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_723 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x207a // vpsubw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + +LBB3_723: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_724 + +LBB3_728: + WORD $0xff31 // xor edi, edi + +LBB3_729: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_731 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf9fdc5; BYTE $0x7a // vpsubw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x44f9fdc5; WORD $0x207a // vpsubw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + +LBB3_731: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_732 + +LBB3_736: + WORD $0xff31 // xor edi, edi + +LBB3_737: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_739 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0c75fdc5; BYTE $0x7a // vpcmpeqw ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x556ffdc5; BYTE $0x60 // vmovdqa ymm2, yword 96[rbp] /* [rip + .LCPI3_5] */ + LONG $0x4475fdc5; WORD $0x207a // vpcmpeqw ymm0, ymm0, yword [rdx + 2*rdi + 32] + LONG $0xcadff5c5 // vpandn ymm1, ymm1, ymm2 + LONG $0xc2dffdc5 // vpandn ymm0, ymm0, ymm2 + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + +LBB3_739: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_740 + +LBB3_744: + WORD $0xff31 // xor edi, edi + +LBB3_745: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_747 + LONG $0x046ffec5; BYTE $0x7a // vmovdqu ymm0, yword [rdx + 2*rdi] + LONG $0x4c6ffec5; WORD $0x207a // vmovdqu ymm1, yword [rdx + 2*rdi + 32] + LONG $0xd2efe9c5 // vpxor xmm2, xmm2, xmm2 + LONG $0xda75fdc5 // vpcmpeqw ymm3, ymm0, ymm2 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xdcefe5c5 // vpxor ymm3, ymm3, ymm4 + LONG $0xd275f5c5 // vpcmpeqw ymm2, ymm1, ymm2 + LONG $0xd4efedc5 // vpxor ymm2, ymm2, ymm4 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI3_5] */ + LONG $0xc065ddc5 // vpcmpgtw ymm0, ymm4, ymm0 + LONG $0xc965ddc5 // vpcmpgtw ymm1, ymm4, ymm1 + LONG $0x4c5de3c4; WORD $0x00c3 // vpblendvb ymm0, ymm4, ymm3, ymm0 + LONG $0x4c5de3c4; WORD $0x10ca // vpblendvb ymm1, ymm4, ymm2, ymm1 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + +LBB3_747: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_748 + +LBB3_753: + WORD $0xff31 // xor edi, edi + +LBB3_754: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_756 + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0xe172edc5; BYTE $0x0f // vpsrad ymm2, ymm1, 15 + LONG $0xe072e5c5; BYTE $0x0f // vpsrad ymm3, ymm0, 15 + LONG $0xc0fee5c5 // vpaddd ymm0, ymm3, ymm0 + LONG $0xc9feedc5 // vpaddd ymm1, ymm2, ymm1 + LONG $0xcaeff5c5 // vpxor ymm1, ymm1, ymm2 + LONG $0xc3effdc5 // vpxor ymm0, ymm0, ymm3 + QUAD $0x000000a0956ffdc5 // vmovdqa ymm2, yword 160[rbp] /* [rip + .LCPI3_10] */ + LONG $0x007de2c4; BYTE $0xc2 // vpshufb ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xca // vpshufb ymm1, ymm1, ymm2 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + +LBB3_756: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_757 + +LBB3_761: + WORD $0xff31 // xor edi, edi + +LBB3_762: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_764 + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0xe172edc5; BYTE $0x0f // vpsrad ymm2, ymm1, 15 + LONG $0xe072e5c5; BYTE $0x0f // vpsrad ymm3, ymm0, 15 + LONG $0xc0fee5c5 // vpaddd ymm0, ymm3, ymm0 + LONG $0xc9feedc5 // vpaddd ymm1, ymm2, ymm1 + LONG $0xcaeff5c5 // vpxor ymm1, ymm1, ymm2 + LONG $0xc3effdc5 // vpxor ymm0, ymm0, ymm3 + QUAD $0x000000a0956ffdc5 // vmovdqa ymm2, yword 160[rbp] /* [rip + .LCPI3_10] */ + LONG $0x007de2c4; BYTE $0xc2 // vpshufb ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xca // vpshufb ymm1, ymm1, ymm2 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + +LBB3_764: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_765 + +LBB3_769: + WORD $0xff31 // xor edi, edi + +LBB3_770: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_772 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60fa // vpsubq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm0 + +LBB3_772: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_773 + +LBB3_777: + WORD $0xff31 // xor edi, edi + +LBB3_778: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_780 + LONG $0x187de2c4; WORD $0x4445 // vbroadcastss ymm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + LONG $0x0c57fdc5; BYTE $0xba // vxorpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5457fdc5; WORD $0x20ba // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40ba // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x4457fdc5; WORD $0x60ba // vxorpd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm0 + +LBB3_780: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_781 + +LBB3_787: + WORD $0xff31 // xor edi, edi + +LBB3_788: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_790 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfbfdc5; BYTE $0xfa // vpsubq ymm1, ymm0, yword [rdx + 8*rdi] + LONG $0x54fbfdc5; WORD $0x20fa // vpsubq ymm2, ymm0, yword [rdx + 8*rdi + 32] + LONG $0x5cfbfdc5; WORD $0x40fa // vpsubq ymm3, ymm0, yword [rdx + 8*rdi + 64] + LONG $0x44fbfdc5; WORD $0x60fa // vpsubq ymm0, ymm0, yword [rdx + 8*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm0 + +LBB3_790: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_791 + +LBB3_795: + WORD $0xff31 // xor edi, edi + +LBB3_796: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_798 + LONG $0x187de2c4; WORD $0x4445 // vbroadcastss ymm0, dword 68[rbp] /* [rip + .LCPI3_7] */ + LONG $0x0c57fdc5; BYTE $0xba // vxorpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5457fdc5; WORD $0x20ba // vxorpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c57fdc5; WORD $0x40ba // vxorpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x4457fdc5; WORD $0x60ba // vxorpd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm0 + +LBB3_798: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_799 + +LBB3_805: + WORD $0xff31 // xor edi, edi + +LBB3_806: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_808 + LONG $0x187de2c4; WORD $0x4845 // vbroadcastss ymm0, dword 72[rbp] /* [rip + .LCPI3_9] */ + LONG $0x0c54fdc5; BYTE $0xba // vandpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5454fdc5; WORD $0x20ba // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40ba // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x4454fdc5; WORD $0x60ba // vandpd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm0 + +LBB3_808: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_809 + +LBB3_815: + WORD $0xff31 // xor edi, edi + +LBB3_816: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_818 + LONG $0x187de2c4; WORD $0x4845 // vbroadcastss ymm0, dword 72[rbp] /* [rip + .LCPI3_9] */ + LONG $0x0c54fdc5; BYTE $0xba // vandpd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x5454fdc5; WORD $0x20ba // vandpd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5c54fdc5; WORD $0x40ba // vandpd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x4454fdc5; WORD $0x60ba // vandpd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c11fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm3 + LONG $0x4411fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm0 + +LBB3_818: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_819 + +LBB3_825: + WORD $0xff31 // xor edi, edi + +LBB3_826: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_828 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cf8fdc5; BYTE $0x3a // vpsubb ymm1, ymm0, yword [rdx + rdi] + LONG $0x54f8fdc5; WORD $0x203a // vpsubb ymm2, ymm0, yword [rdx + rdi + 32] + LONG $0x5cf8fdc5; WORD $0x403a // vpsubb ymm3, ymm0, yword [rdx + rdi + 64] + LONG $0x44f8fdc5; WORD $0x603a // vpsubb ymm0, ymm0, yword [rdx + rdi + 96] + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + LONG $0x547ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4039 // vmovdqu yword [rcx + rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x6039 // vmovdqu yword [rcx + rdi + 96], ymm0 + +LBB3_828: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_829 + +LBB3_833: + WORD $0xff31 // xor edi, edi + +LBB3_834: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_836 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB3_836: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_837 + +LBB3_841: + WORD $0xff31 // xor edi, edi + +LBB3_842: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_844 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB3_844: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_845 + +LBB3_849: + WORD $0xff31 // xor edi, edi + +LBB3_850: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_852 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60ba // vpsubd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm0 + +LBB3_852: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_853 + +LBB3_857: + WORD $0xff31 // xor edi, edi + +LBB3_858: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_860 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0cfafdc5; BYTE $0xba // vpsubd ymm1, ymm0, yword [rdx + 4*rdi] + LONG $0x54fafdc5; WORD $0x20ba // vpsubd ymm2, ymm0, yword [rdx + 4*rdi + 32] + LONG $0x5cfafdc5; WORD $0x40ba // vpsubd ymm3, ymm0, yword [rdx + 4*rdi + 64] + LONG $0x44fafdc5; WORD $0x60ba // vpsubd ymm0, ymm0, yword [rdx + 4*rdi + 96] + LONG $0x0c7ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm1 + LONG $0x547ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm3 + LONG $0x447ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm0 + +LBB3_860: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_865 + JMP LBB3_861 + +DATA LCDATA5<>+0x000(SB)/8, $0x8000000000000000 +DATA LCDATA5<>+0x008(SB)/8, $0x3ff0000000000000 +DATA LCDATA5<>+0x010(SB)/8, $0x43e0000000000000 +DATA LCDATA5<>+0x018(SB)/8, $0x41e0000000000000 +DATA LCDATA5<>+0x020(SB)/8, $0xbff0000000000000 +DATA LCDATA5<>+0x028(SB)/8, $0x0000000000000001 +DATA LCDATA5<>+0x030(SB)/8, $0x8000000000000000 +DATA LCDATA5<>+0x038(SB)/8, $0x8000000000000000 +DATA LCDATA5<>+0x040(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x048(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x050(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x058(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x060(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x068(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x070(SB)/8, $0x0000000001010101 +DATA LCDATA5<>+0x078(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x088(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x090(SB)/8, $0x800000007fffffff +DATA LCDATA5<>+0x098(SB)/8, $0x000000013f800000 +DATA LCDATA5<>+0x0a0(SB)/8, $0x4f0000005f000000 +DATA LCDATA5<>+0x0a8(SB)/8, $0x00000000bf800000 +DATA LCDATA5<>+0x0b0(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0c0(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0c8(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0d0(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0d8(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0e0(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0e8(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0f0(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0f8(SB)/8, $0x0101010101010101 +GLOBL LCDATA5<>(SB), 8, $256 + +TEXT ·_arithmetic_unary_diff_type_avx2(SB), $0-48 + + MOVQ itype+0(FP), DI + MOVQ otype+8(FP), SI + MOVQ op+16(FP), DX + MOVQ input+24(FP), CX + MOVQ output+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA5<>(SB), BP + + WORD $0xfa80; BYTE $0x14 // cmp dl, 20 + JNE LBB4_1351 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB4_14 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB4_26 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB4_46 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB4_54 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB4_1351 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_94 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_164 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_267 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_270 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_13 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_870 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_870 + +LBB4_13: + WORD $0xd231 // xor edx, edx + +LBB4_873: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_875 + +LBB4_874: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_874 + +LBB4_875: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_876: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + WORD $0xf631 // xor esi, esi + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], esi + WORD $0xf631 // xor esi, esi + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], esi + WORD $0xf631 // xor esi, esi + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], esi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_876 + JMP LBB4_1351 + +LBB4_14: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB4_36 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB4_62 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB4_70 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB4_1351 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_101 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_169 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_273 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_276 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_450 + WORD $0xf631 // xor esi, esi + JMP LBB4_1292 + +LBB4_26: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB4_78 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB4_1351 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_108 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_174 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_279 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_282 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_35 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_877 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_877 + +LBB4_35: + WORD $0xd231 // xor edx, edx + +LBB4_880: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_882 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_882: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_884: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_884 + JMP LBB4_1351 + +LBB4_36: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB4_86 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB4_1351 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_115 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_179 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_285 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_288 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_456 + WORD $0xd231 // xor edx, edx + JMP LBB4_459 + +LBB4_46: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_122 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_184 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_291 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_294 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_460 + WORD $0xd231 // xor edx, edx + JMP LBB4_463 + +LBB4_54: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_129 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_189 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_297 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_300 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_464 + WORD $0xd231 // xor edx, edx + JMP LBB4_467 + +LBB4_62: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_136 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_194 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_303 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_306 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_469 + WORD $0xd231 // xor edx, edx + JMP LBB4_472 + +LBB4_70: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_143 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_199 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_309 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_312 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_474 + WORD $0xd231 // xor edx, edx + JMP LBB4_1298 + +LBB4_78: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_150 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_204 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_315 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_318 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_85 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_885 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_885 + +LBB4_85: + WORD $0xd231 // xor edx, edx + +LBB4_888: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_890 + +LBB4_889: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_889 + +LBB4_890: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_891: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], esi + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], esi + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], esi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_891 + JMP LBB4_1351 + +LBB4_86: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_157 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_209 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_321 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_324 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_93 + LONG $0x99148d4a // lea rdx, [rcx + 4*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_892 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_892 + +LBB4_93: + WORD $0xd231 // xor edx, edx + +LBB4_895: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_897 + LONG $0x910c8b44 // mov r9d, dword [rcx + 4*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_897: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_899: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x0491448b // mov eax, dword [rcx + 4*rdx + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_899 + JMP LBB4_1351 + +LBB4_94: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_214 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_327 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_330 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_483 + WORD $0xd231 // xor edx, edx + JMP LBB4_486 + +LBB4_101: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_219 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_333 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_336 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_107 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_900 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_900 + +LBB4_107: + WORD $0xd231 // xor edx, edx + +LBB4_903: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_905 + LONG $0x0410fbc5; BYTE $0xd1 // vmovsd xmm0, qword [rcx + 8*rdx] + LONG $0x4d54f9c5; BYTE $0x30 // vandpd xmm1, xmm0, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc956e9c5 // vorpd xmm1, xmm2, xmm1 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + LONG $0xc2c2fbc5; BYTE $0x00 // vcmpeqsd xmm0, xmm0, xmm2 + LONG $0xc155f9c5 // vandnpd xmm0, xmm0, xmm1 + LONG $0x1379c1c4; WORD $0xd004 // vmovlpd qword [r8 + 8*rdx], xmm0 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_905: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + LONG $0x4528f9c5; BYTE $0x30 // vmovapd xmm0, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x4d12fbc5; BYTE $0x08 // vmovddup xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + +LBB4_907: + LONG $0x1c10fbc5; BYTE $0xd1 // vmovsd xmm3, qword [rcx + 8*rdx] + LONG $0xe054e1c5 // vandpd xmm4, xmm3, xmm0 + LONG $0xe456f1c5 // vorpd xmm4, xmm1, xmm4 + LONG $0xdac2e3c5; BYTE $0x00 // vcmpeqsd xmm3, xmm3, xmm2 + LONG $0xdc55e1c5 // vandnpd xmm3, xmm3, xmm4 + LONG $0x1379c1c4; WORD $0xd01c // vmovlpd qword [r8 + 8*rdx], xmm3 + LONG $0x5c10fbc5; WORD $0x08d1 // vmovsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xe054e1c5 // vandpd xmm4, xmm3, xmm0 + LONG $0xe456f1c5 // vorpd xmm4, xmm1, xmm4 + LONG $0xdac2e3c5; BYTE $0x00 // vcmpeqsd xmm3, xmm3, xmm2 + LONG $0xdc55e1c5 // vandnpd xmm3, xmm3, xmm4 + LONG $0x1379c1c4; WORD $0xd05c; BYTE $0x08 // vmovlpd qword [r8 + 8*rdx + 8], xmm3 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_907 + JMP LBB4_1351 + +LBB4_108: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_224 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_339 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_342 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_114 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_908 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_908 + +LBB4_114: + WORD $0xd231 // xor edx, edx + +LBB4_911: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1254 + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + JNE LBB4_1250 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + JMP LBB4_1251 + +LBB4_115: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_229 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_345 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_348 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_496 + WORD $0xd231 // xor edx, edx + JMP LBB4_499 + +LBB4_122: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_234 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_351 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_354 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_503 + WORD $0xd231 // xor edx, edx + JMP LBB4_506 + +LBB4_129: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_239 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_357 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_360 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_510 + WORD $0xd231 // xor edx, edx + JMP LBB4_513 + +LBB4_136: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_244 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_363 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_366 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_519 + WORD $0xd231 // xor edx, edx + JMP LBB4_522 + +LBB4_143: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_249 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_369 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_372 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_528 + WORD $0xd231 // xor edx, edx + JMP LBB4_531 + +LBB4_150: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_257 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_375 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_378 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_156 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_914 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_914 + +LBB4_156: + WORD $0xd231 // xor edx, edx + +LBB4_917: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_922 + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_920 + +LBB4_919: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JE LBB4_922 + +LBB4_920: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_919 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_919 + +LBB4_157: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_262 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_381 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_384 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_538 + WORD $0xd231 // xor edx, edx + JMP LBB4_541 + +LBB4_164: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_387 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_168 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_933 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_933 + +LBB4_168: + WORD $0xd231 // xor edx, edx + +LBB4_936: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_938 + +LBB4_937: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_937 + +LBB4_938: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_939: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_939 + JMP LBB4_1351 + +LBB4_169: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_390 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_173 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_940 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_940 + +LBB4_173: + WORD $0xd231 // xor edx, edx + +LBB4_943: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_945 + LONG $0x0410fbc5; BYTE $0xd1 // vmovsd xmm0, qword [rcx + 8*rdx] + WORD $0xff31 // xor edi, edi + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0x4554f9c5; BYTE $0x30 // vandpd xmm0, xmm0, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x4d12fbc5; BYTE $0x08 // vmovddup xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc056f1c5 // vorpd xmm0, xmm1, xmm0 + LONG $0xd82cfbc5 // vcvttsd2si ebx, xmm0 + WORD $0x440f; BYTE $0xdf // cmove ebx, edi + LONG $0x101c8841 // mov byte [r8 + rdx], bl + LONG $0x01ca8348 // or rdx, 1 + +LBB4_945: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + WORD $0xf631 // xor esi, esi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_947: + LONG $0x1c10fbc5; BYTE $0xd1 // vmovsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x5c10fbc5; WORD $0x08d1 // vmovsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x107c8841; BYTE $0x01 // mov byte [r8 + rdx + 1], dil + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_947 + JMP LBB4_1351 + +LBB4_174: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_393 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB4_178 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_948 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_948 + +LBB4_178: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_951: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_953 + LONG $0x193c8a42 // mov dil, byte [rcx + r11] + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_953: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_955: + LONG $0x04b60f42; BYTE $0x19 // movzx eax, byte [rcx + r11] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x44b60f42; WORD $0x0119 // movzx eax, byte [rcx + r11 + 1] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_955 + JMP LBB4_1351 + +LBB4_179: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_396 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_183 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_956 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_956 + +LBB4_183: + WORD $0xd231 // xor edx, edx + +LBB4_959: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_961 + +LBB4_960: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_960 + +LBB4_961: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_962: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_962 + JMP LBB4_1351 + +LBB4_184: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_399 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_188 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_963 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_963 + +LBB4_188: + WORD $0xd231 // xor edx, edx + +LBB4_966: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_968 + +LBB4_967: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_967 + +LBB4_968: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_969: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_969 + JMP LBB4_1351 + +LBB4_189: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_402 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_193 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_970 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_970 + +LBB4_193: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_973: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_975 + LONG $0x3cb70f42; BYTE $0x59 // movzx edi, word [rcx + 2*r11] + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_975: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_977: + LONG $0x3cb70f42; BYTE $0x59 // movzx edi, word [rcx + 2*r11] + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8566; BYTE $0xff // test di, di + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x44b70f42; WORD $0x0259 // movzx eax, word [rcx + 2*r11 + 2] + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_977 + JMP LBB4_1351 + +LBB4_194: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_405 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_198 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_978 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_978 + +LBB4_198: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_981: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_983 + LONG $0xd93c8b4a // mov rdi, qword [rcx + 8*r11] + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_983: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_985: + LONG $0xd93c8b4a // mov rdi, qword [rcx + 8*r11] + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0xd9448b4a; BYTE $0x08 // mov rax, qword [rcx + 8*r11 + 8] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_985 + JMP LBB4_1351 + +LBB4_199: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_408 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_203 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_986 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_986 + +LBB4_203: + WORD $0xd231 // xor edx, edx + +LBB4_989: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_991 + LONG $0x046ef9c5; BYTE $0x91 // vmovd xmm0, dword [rcx + 4*rdx] + LONG $0xc77ef9c5 // vmovd edi, xmm0 + WORD $0xff85 // test edi, edi + LONG $0xd7990f40 // setns dil + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0xffc78040 // add dil, -1 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xffb60f40 // movzx edi, dil + LONG $0xf9440f41 // cmove edi, r9d + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x01ca8348 // or rdx, 1 + +LBB4_991: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + WORD $0xf631 // xor esi, esi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + +LBB4_993: + LONG $0x0c6ef9c5; BYTE $0x91 // vmovd xmm1, dword [rcx + 4*rdx] + LONG $0xcf7ef9c5 // vmovd edi, xmm1 + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x4c6ef9c5; WORD $0x0491 // vmovd xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc87ef9c5 // vmovd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10448841; BYTE $0x01 // mov byte [r8 + rdx + 1], al + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_993 + JMP LBB4_1351 + +LBB4_204: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_411 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB4_208 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_994 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_994 + +LBB4_208: + WORD $0xd231 // xor edx, edx + +LBB4_997: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_999 + +LBB4_998: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_998 + +LBB4_999: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_1000: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1000 + JMP LBB4_1351 + +LBB4_209: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_414 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_213 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1001 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1001 + +LBB4_213: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_1004: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1006 + LONG $0x993c8b42 // mov edi, dword [rcx + 4*r11] + WORD $0xff85 // test edi, edi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0xff85 // test edi, edi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_1006: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1008: + LONG $0x993c8b42 // mov edi, dword [rcx + 4*r11] + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xff85 // test edi, edi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x99448b42; BYTE $0x04 // mov eax, dword [rcx + 4*r11 + 4] + WORD $0xc085 // test eax, eax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc085 // test eax, eax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_1008 + JMP LBB4_1351 + +LBB4_214: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_417 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_577 + WORD $0xd231 // xor edx, edx + JMP LBB4_580 + +LBB4_219: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_420 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + QUAD $0x000000000000bb49; WORD $0x8000 // mov r11, -9223372036854775808 + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_581 + WORD $0xf631 // xor esi, esi + JMP LBB4_1286 + +LBB4_224: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_423 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_228 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1009 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1009 + +LBB4_228: + WORD $0xd231 // xor edx, edx + +LBB4_1012: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1014 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1014: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1016: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1016 + JMP LBB4_1351 + +LBB4_229: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_426 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_233 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1017 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1017 + +LBB4_233: + WORD $0xd231 // xor edx, edx + +LBB4_1020: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1022 + +LBB4_1021: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1021 + +LBB4_1022: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1023: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rsi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1023 + JMP LBB4_1351 + +LBB4_234: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_429 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_590 + WORD $0xd231 // xor edx, edx + JMP LBB4_593 + +LBB4_239: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_432 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_594 + WORD $0xd231 // xor edx, edx + JMP LBB4_597 + +LBB4_244: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_435 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_248 + LONG $0xd9148d4a // lea rdx, [rcx + 8*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1024 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1024 + +LBB4_248: + WORD $0xd231 // xor edx, edx + +LBB4_1027: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1029 + LONG $0xd10c8b4c // mov r9, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1029: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1031: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0xd1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdx + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1031 + JMP LBB4_1351 + +LBB4_249: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_438 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_602 + WORD $0xc031 // xor eax, eax + JMP LBB4_254 + +LBB4_257: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_441 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_261 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1032 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1032 + +LBB4_261: + WORD $0xd231 // xor edx, edx + +LBB4_1035: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1037 + +LBB4_1036: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1036 + +LBB4_1037: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1038: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rsi + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rsi + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rsi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1038 + JMP LBB4_1351 + +LBB4_262: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_444 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1351 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_613 + WORD $0xd231 // xor edx, edx + JMP LBB4_616 + +LBB4_267: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_618 + WORD $0xd231 // xor edx, edx + JMP LBB4_621 + +LBB4_270: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_622 + WORD $0xd231 // xor edx, edx + JMP LBB4_625 + +LBB4_273: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0xd231 // xor edx, edx + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_626 + WORD $0xf631 // xor esi, esi + JMP LBB4_629 + +LBB4_276: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0xd231 // xor edx, edx + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_631 + WORD $0xf631 // xor esi, esi + JMP LBB4_634 + +LBB4_279: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_281 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1039 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1039 + +LBB4_281: + WORD $0xd231 // xor edx, edx + +LBB4_1042: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1044 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1044: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1046: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1046 + JMP LBB4_1351 + +LBB4_282: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_284 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1047 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1047 + +LBB4_284: + WORD $0xd231 // xor edx, edx + +LBB4_1050: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1052 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1052: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1054: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1054 + JMP LBB4_1351 + +LBB4_285: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_642 + WORD $0xd231 // xor edx, edx + JMP LBB4_645 + +LBB4_288: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_646 + WORD $0xd231 // xor edx, edx + JMP LBB4_649 + +LBB4_291: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_293 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1055 + LONG $0x40148d49 // lea rdx, [r8 + 2*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1055 + +LBB4_293: + WORD $0xd231 // xor edx, edx + +LBB4_1321: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1323 + +LBB4_1322: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1322 + +LBB4_1323: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1324: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], si + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1324 + JMP LBB4_1351 + +LBB4_294: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_296 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1058 + LONG $0x40148d49 // lea rdx, [r8 + 2*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1058 + +LBB4_296: + WORD $0xd231 // xor edx, edx + +LBB4_1329: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1331 + +LBB4_1330: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1330 + +LBB4_1331: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1332: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], si + WORD $0xf631 // xor esi, esi + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], si + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1332 + JMP LBB4_1351 + +LBB4_297: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_299 + LONG $0x59148d4a // lea rdx, [rcx + 2*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1061 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1061 + +LBB4_299: + WORD $0xd231 // xor edx, edx + +LBB4_1337: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1339 + LONG $0x0cb70f44; BYTE $0x51 // movzx r9d, word [rcx + 2*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1339: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1341: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x5144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rdx + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1341 + JMP LBB4_1351 + +LBB4_300: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_302 + LONG $0x59148d4a // lea rdx, [rcx + 2*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1064 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1064 + +LBB4_302: + WORD $0xd231 // xor edx, edx + +LBB4_1346: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1348 + LONG $0x0cb70f44; BYTE $0x51 // movzx r9d, word [rcx + 2*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1348: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1350: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x5144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rdx + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1350 + JMP LBB4_1351 + +LBB4_303: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_662 + WORD $0xd231 // xor edx, edx + JMP LBB4_665 + +LBB4_306: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_667 + WORD $0xd231 // xor edx, edx + JMP LBB4_670 + +LBB4_309: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_672 + WORD $0xf631 // xor esi, esi + JMP LBB4_675 + +LBB4_312: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_677 + WORD $0xf631 // xor esi, esi + JMP LBB4_680 + +LBB4_315: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_317 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1067 + LONG $0x40148d49 // lea rdx, [r8 + 2*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1067 + +LBB4_317: + WORD $0xd231 // xor edx, edx + +LBB4_1070: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1072 + +LBB4_1071: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1071 + +LBB4_1072: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1073: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], si + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], si + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], si + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1073 + JMP LBB4_1351 + +LBB4_318: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_320 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1074 + LONG $0x40148d49 // lea rdx, [r8 + 2*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1074 + +LBB4_320: + WORD $0xd231 // xor edx, edx + +LBB4_1077: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1079 + +LBB4_1078: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1078 + +LBB4_1079: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1080: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], si + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], si + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0x74894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], si + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1080 + JMP LBB4_1351 + +LBB4_321: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_688 + WORD $0xd231 // xor edx, edx + JMP LBB4_691 + +LBB4_324: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_693 + WORD $0xd231 // xor edx, edx + JMP LBB4_696 + +LBB4_327: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_698 + WORD $0xd231 // xor edx, edx + JMP LBB4_701 + +LBB4_330: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_702 + WORD $0xd231 // xor edx, edx + JMP LBB4_705 + +LBB4_333: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_709 + WORD $0xd231 // xor edx, edx + JMP LBB4_1306 + +LBB4_336: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_712 + WORD $0xd231 // xor edx, edx + JMP LBB4_715 + +LBB4_339: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_341 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1081 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1081 + +LBB4_341: + WORD $0xd231 // xor edx, edx + +LBB4_1084: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1086 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1086: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1088: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1088 + JMP LBB4_1351 + +LBB4_342: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_344 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1089 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1089 + +LBB4_344: + WORD $0xd231 // xor edx, edx + +LBB4_1092: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1269 + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + JNE LBB4_1265 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + JMP LBB4_1266 + +LBB4_345: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_347 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1095 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1095 + +LBB4_347: + WORD $0xd231 // xor edx, edx + +LBB4_1098: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1100 + +LBB4_1099: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1099 + +LBB4_1100: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1101: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rsi + WORD $0xf631 // xor esi, esi + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rsi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1101 + JMP LBB4_1351 + +LBB4_348: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_728 + WORD $0xd231 // xor edx, edx + JMP LBB4_731 + +LBB4_351: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_735 + WORD $0xd231 // xor edx, edx + JMP LBB4_738 + +LBB4_354: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_739 + WORD $0xd231 // xor edx, edx + JMP LBB4_742 + +LBB4_357: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_746 + WORD $0xd231 // xor edx, edx + JMP LBB4_749 + +LBB4_360: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_751 + WORD $0xd231 // xor edx, edx + JMP LBB4_754 + +LBB4_363: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_365 + LONG $0xd9148d4a // lea rdx, [rcx + 8*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1102 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1102 + +LBB4_365: + WORD $0xd231 // xor edx, edx + +LBB4_1105: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1107 + LONG $0xd10c8b4c // mov r9, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1107: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1109: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0xd1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdx + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1109 + JMP LBB4_1351 + +LBB4_366: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_763 + WORD $0xd231 // xor edx, edx + JMP LBB4_766 + +LBB4_369: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_772 + WORD $0xd231 // xor edx, edx + JMP LBB4_1312 + +LBB4_372: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_374 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1110 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1110 + +LBB4_374: + WORD $0xd231 // xor edx, edx + +LBB4_1113: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1115 + LONG $0x0410fac5; BYTE $0x91 // vmovss xmm0, dword [rcx + 4*rdx] + LONG $0xf850f8c5 // vmovmskps edi, xmm0 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + LONG $0xcf2aaac5 // vcvtsi2ss xmm1, xmm10, edi + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + LONG $0xc2c2fac5; BYTE $0x00 // vcmpeqss xmm0, xmm0, xmm2 + LONG $0xc155f8c5 // vandnps xmm0, xmm0, xmm1 + LONG $0x117ac1c4; WORD $0x9004 // vmovss dword [r8 + 4*rdx], xmm0 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1115: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + +LBB4_1117: + LONG $0x0c10fac5; BYTE $0x91 // vmovss xmm1, dword [rcx + 4*rdx] + LONG $0xf150f8c5 // vmovmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + LONG $0xd62aaac5 // vcvtsi2ss xmm2, xmm10, esi + LONG $0xc8c2f2c5; BYTE $0x00 // vcmpeqss xmm1, xmm1, xmm0 + LONG $0xca55f0c5 // vandnps xmm1, xmm1, xmm2 + LONG $0x117ac1c4; WORD $0x900c // vmovss dword [r8 + 4*rdx], xmm1 + LONG $0x4c10fac5; WORD $0x0491 // vmovss xmm1, dword [rcx + 4*rdx + 4] + LONG $0xf150f8c5 // vmovmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + LONG $0xd62aaac5 // vcvtsi2ss xmm2, xmm10, esi + LONG $0xc8c2f2c5; BYTE $0x00 // vcmpeqss xmm1, xmm1, xmm0 + LONG $0xca55f0c5 // vandnps xmm1, xmm1, xmm2 + LONG $0x117ac1c4; WORD $0x904c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1117 + JMP LBB4_1351 + +LBB4_375: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_377 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1118 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1118 + +LBB4_377: + WORD $0xd231 // xor edx, edx + +LBB4_1121: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1123 + +LBB4_1122: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1122 + +LBB4_1123: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1124: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rsi + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rsi + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0748949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rsi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1124 + JMP LBB4_1351 + +LBB4_378: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_380 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1125 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1125 + +LBB4_380: + WORD $0xd231 // xor edx, edx + +LBB4_1128: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1133 + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1131 + +LBB4_1130: + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JE LBB4_1133 + +LBB4_1131: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1130 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_1130 + +LBB4_381: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_784 + WORD $0xd231 // xor edx, edx + JMP LBB4_787 + +LBB4_384: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_789 + WORD $0xd231 // xor edx, edx + JMP LBB4_792 + +LBB4_387: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_389 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1144 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1144 + +LBB4_389: + WORD $0xd231 // xor edx, edx + +LBB4_1147: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1149 + +LBB4_1148: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1148 + +LBB4_1149: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_1150: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1150 + JMP LBB4_1351 + +LBB4_390: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_392 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1151 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1151 + +LBB4_392: + WORD $0xd231 // xor edx, edx + +LBB4_1154: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1156 + LONG $0x0410fbc5; BYTE $0xd1 // vmovsd xmm0, qword [rcx + 8*rdx] + WORD $0xff31 // xor edi, edi + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0x4554f9c5; BYTE $0x30 // vandpd xmm0, xmm0, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x4d12fbc5; BYTE $0x08 // vmovddup xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc056f1c5 // vorpd xmm0, xmm1, xmm0 + LONG $0xd82cfbc5 // vcvttsd2si ebx, xmm0 + WORD $0x440f; BYTE $0xdf // cmove ebx, edi + LONG $0x101c8841 // mov byte [r8 + rdx], bl + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1156: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + WORD $0xf631 // xor esi, esi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_1158: + LONG $0x1c10fbc5; BYTE $0xd1 // vmovsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x5c10fbc5; WORD $0x08d1 // vmovsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x107c8841; BYTE $0x01 // mov byte [r8 + rdx + 1], dil + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1158 + JMP LBB4_1351 + +LBB4_393: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB4_395 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1159 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1159 + +LBB4_395: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_1162: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1164 + LONG $0x193c8a42 // mov dil, byte [rcx + r11] + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_1164: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1166: + LONG $0x04b60f42; BYTE $0x19 // movzx eax, byte [rcx + r11] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x44b60f42; WORD $0x0119 // movzx eax, byte [rcx + r11 + 1] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_1166 + JMP LBB4_1351 + +LBB4_396: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_398 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1167 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1167 + +LBB4_398: + WORD $0xd231 // xor edx, edx + +LBB4_1170: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1172 + +LBB4_1171: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1171 + +LBB4_1172: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_1173: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1173 + JMP LBB4_1351 + +LBB4_399: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_401 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1174 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1174 + +LBB4_401: + WORD $0xd231 // xor edx, edx + +LBB4_1177: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1179 + +LBB4_1178: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1178 + +LBB4_1179: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_1180: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1180 + JMP LBB4_1351 + +LBB4_402: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x40f98341 // cmp r9d, 64 + JB LBB4_404 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1181 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1181 + +LBB4_404: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_1184: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1186 + LONG $0x3cb70f42; BYTE $0x59 // movzx edi, word [rcx + 2*r11] + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_1186: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1188: + LONG $0x3cb70f42; BYTE $0x59 // movzx edi, word [rcx + 2*r11] + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8566; BYTE $0xff // test di, di + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x44b70f42; WORD $0x0259 // movzx eax, word [rcx + 2*r11 + 2] + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_1188 + JMP LBB4_1351 + +LBB4_405: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_407 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1189 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1189 + +LBB4_407: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_1192: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1194 + LONG $0xd93c8b4a // mov rdi, qword [rcx + 8*r11] + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_1194: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1196: + LONG $0xd93c8b4a // mov rdi, qword [rcx + 8*r11] + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0xd9448b4a; BYTE $0x08 // mov rax, qword [rcx + 8*r11 + 8] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_1196 + JMP LBB4_1351 + +LBB4_408: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_410 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1197 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1197 + +LBB4_410: + WORD $0xd231 // xor edx, edx + +LBB4_1200: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1202 + LONG $0x046ef9c5; BYTE $0x91 // vmovd xmm0, dword [rcx + 4*rdx] + LONG $0xc77ef9c5 // vmovd edi, xmm0 + WORD $0xff85 // test edi, edi + LONG $0xd7990f40 // setns dil + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0xffc78040 // add dil, -1 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xffb60f40 // movzx edi, dil + LONG $0xf9440f41 // cmove edi, r9d + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1202: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + WORD $0xf631 // xor esi, esi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + +LBB4_1204: + LONG $0x0c6ef9c5; BYTE $0x91 // vmovd xmm1, dword [rcx + 4*rdx] + LONG $0xcf7ef9c5 // vmovd edi, xmm1 + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x4c6ef9c5; WORD $0x0491 // vmovd xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc87ef9c5 // vmovd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10448841; BYTE $0x01 // mov byte [r8 + rdx + 1], al + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1204 + JMP LBB4_1351 + +LBB4_411: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x80f98141; WORD $0x0000; BYTE $0x00 // cmp r9d, 128 + JB LBB4_413 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1205 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1205 + +LBB4_413: + WORD $0xd231 // xor edx, edx + +LBB4_1208: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1210 + +LBB4_1209: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1209 + +LBB4_1210: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + +LBB4_1211: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1211 + JMP LBB4_1351 + +LBB4_414: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_416 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1212 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1212 + +LBB4_416: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_1215: + WORD $0x894c; BYTE $0xde // mov rsi, r11 + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1217 + LONG $0x993c8b42 // mov edi, dword [rcx + 4*r11] + WORD $0xff85 // test edi, edi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0xff85 // test edi, edi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x183c8843 // mov byte [r8 + r11], dil + LONG $0x01cb8349 // or r11, 1 + +LBB4_1217: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1219: + LONG $0x993c8b42 // mov edi, dword [rcx + 4*r11] + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xff85 // test edi, edi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18048843 // mov byte [r8 + r11], al + LONG $0x99448b42; BYTE $0x04 // mov eax, dword [rcx + 4*r11 + 4] + WORD $0xc085 // test eax, eax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc085 // test eax, eax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x18448843; BYTE $0x01 // mov byte [r8 + r11 + 1], al + LONG $0x02c38349 // add r11, 2 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_1219 + JMP LBB4_1351 + +LBB4_417: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_419 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1220 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1220 + +LBB4_419: + WORD $0xd231 // xor edx, edx + +LBB4_1223: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1225 + +LBB4_1224: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1224 + +LBB4_1225: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1226: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + WORD $0xf631 // xor esi, esi + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], esi + WORD $0xf631 // xor esi, esi + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], esi + WORD $0xf631 // xor esi, esi + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], esi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1226 + JMP LBB4_1351 + +LBB4_420: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0xd231 // xor edx, edx + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_831 + WORD $0xf631 // xor esi, esi + JMP LBB4_834 + +LBB4_423: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_425 + LONG $0x19148d4a // lea rdx, [rcx + r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1227 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1227 + +LBB4_425: + WORD $0xd231 // xor edx, edx + +LBB4_1230: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1232 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1232: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1234: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1234 + JMP LBB4_1351 + +LBB4_426: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_839 + WORD $0xd231 // xor edx, edx + JMP LBB4_842 + +LBB4_429: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_843 + WORD $0xd231 // xor edx, edx + JMP LBB4_846 + +LBB4_432: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_847 + WORD $0xd231 // xor edx, edx + JMP LBB4_850 + +LBB4_435: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB4_852 + WORD $0xd231 // xor edx, edx + JMP LBB4_855 + +LBB4_438: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB4_857 + WORD $0xd231 // xor edx, edx + JMP LBB4_860 + +LBB4_441: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_443 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1235 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1235 + +LBB4_443: + WORD $0xd231 // xor edx, edx + +LBB4_1238: + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x0149; BYTE $0xc1 // add r9, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1240 + +LBB4_1239: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1239 + +LBB4_1240: + LONG $0x03f98349 // cmp r9, 3 + JB LBB4_1351 + +LBB4_1241: + WORD $0xf631 // xor esi, esi + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + WORD $0xf631 // xor esi, esi + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], esi + WORD $0xf631 // xor esi, esi + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], esi + WORD $0xf631 // xor esi, esi + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90748941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], esi + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1241 + JMP LBB4_1351 + +LBB4_444: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1351 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_446 + LONG $0x99148d4a // lea rdx, [rcx + 4*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_1242 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_1242 + +LBB4_446: + WORD $0xd231 // xor edx, edx + +LBB4_1245: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1247 + LONG $0x910c8b44 // mov r9d, dword [rcx + 4*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1247: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1351 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1249: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x0491448b // mov eax, dword [rcx + 4*rdx + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1249 + JMP LBB4_1351 + +LBB4_922: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_925 + +LBB4_924: + LONG $0xd679c1c4; WORD $0xd04c; BYTE $0x18 // vmovq qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_925: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_926 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JE LBB4_930 + +LBB4_927: + LONG $0xd679c1c4; WORD $0xd04c; BYTE $0x08 // vmovq qword [r8 + 8*rdx + 8], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_928 + +LBB4_931: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xd679c1c4; WORD $0xd04c; BYTE $0x10 // vmovq qword [r8 + 8*rdx + 16], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_924 + JMP LBB4_932 + +LBB4_926: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_927 + +LBB4_930: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xd679c1c4; WORD $0xd04c; BYTE $0x08 // vmovq qword [r8 + 8*rdx + 8], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JE LBB4_931 + +LBB4_928: + LONG $0xd679c1c4; WORD $0xd04c; BYTE $0x10 // vmovq qword [r8 + 8*rdx + 16], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_924 + +LBB4_932: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_924 + +LBB4_1133: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1351 + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1136 + +LBB4_1135: + LONG $0x7e79c1c4; WORD $0x904c; BYTE $0x0c // vmovd dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_1136: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1137 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JE LBB4_1141 + +LBB4_1138: + LONG $0x7e79c1c4; WORD $0x904c; BYTE $0x04 // vmovd dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1139 + +LBB4_1142: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0x7e79c1c4; WORD $0x904c; BYTE $0x08 // vmovd dword [r8 + 4*rdx + 8], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1135 + JMP LBB4_1143 + +LBB4_1137: + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1138 + +LBB4_1141: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0x7e79c1c4; WORD $0x904c; BYTE $0x04 // vmovd dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JE LBB4_1142 + +LBB4_1139: + LONG $0x7e79c1c4; WORD $0x904c; BYTE $0x08 // vmovd dword [r8 + 4*rdx + 8], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_1135 + +LBB4_1143: + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_1135 + +LBB4_450: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1288 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x197de2c4; WORD $0x084d // vbroadcastsd ymm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0x573941c4; BYTE $0xc0 // vxorpd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x185d // vbroadcastsd ymm3, qword 24[rbp] /* [rip + .LCPI4_7] */ + QUAD $0x000094a51879e2c4; BYTE $0x00 // vbroadcastss xmm4, dword 148[rbp] /* [rip + .LCPI4_4] */ + +LBB4_452: + LONG $0x2c10fdc5; BYTE $0xf9 // vmovupd ymm5, yword [rcx + 8*rdi] + LONG $0xf5c2bdc5; BYTE $0x00 // vcmpeqpd ymm6, ymm8, ymm5 + LONG $0xe854d5c5 // vandpd ymm5, ymm5, ymm0 + LONG $0xed56f5c5 // vorpd ymm5, ymm1, ymm5 + LONG $0xfbc2d5c5; BYTE $0x01 // vcmpltpd ymm7, ymm5, ymm3 + LONG $0x197de3c4; WORD $0x01fa // vextractf128 xmm2, ymm7, 1 + LONG $0xd26bc1c5 // vpackssdw xmm2, xmm7, xmm2 + LONG $0xfb5cd5c5 // vsubpd ymm7, ymm5, ymm3 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0xede6fdc5 // vcvttpd2dq xmm5, ymm5 + LONG $0xfc57c1c5 // vxorpd xmm7, xmm7, xmm4 + LONG $0x4a41e3c4; WORD $0x20d5 // vblendvps xmm2, xmm7, xmm5, xmm2 + LONG $0x197de3c4; WORD $0x01f5 // vextractf128 xmm5, ymm6, 1 + LONG $0xed6bc9c5 // vpackssdw xmm5, xmm6, xmm5 + LONG $0xd2dfd1c5 // vpandn xmm2, xmm5, xmm2 + LONG $0x7f7ac1c4; WORD $0xb814 // vmovdqu oword [r8 + 4*rdi], xmm2 + LONG $0x5410fdc5; WORD $0x20f9 // vmovupd ymm2, yword [rcx + 8*rdi + 32] + LONG $0xeac2bdc5; BYTE $0x00 // vcmpeqpd ymm5, ymm8, ymm2 + LONG $0x197de3c4; WORD $0x01ee // vextractf128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xd054edc5 // vandpd ymm2, ymm2, ymm0 + LONG $0xd256f5c5 // vorpd ymm2, ymm1, ymm2 + LONG $0xf3c2edc5; BYTE $0x01 // vcmpltpd ymm6, ymm2, ymm3 + LONG $0x197de3c4; WORD $0x01f7 // vextractf128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xfb5cedc5 // vsubpd ymm7, ymm2, ymm3 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0xfc57c1c5 // vxorpd xmm7, xmm7, xmm4 + LONG $0xd2e6fdc5 // vcvttpd2dq xmm2, ymm2 + LONG $0x4a41e3c4; WORD $0x60d2 // vblendvps xmm2, xmm7, xmm2, xmm6 + LONG $0xd2dfd1c5 // vpandn xmm2, xmm5, xmm2 + LONG $0x7f7ac1c4; WORD $0xb854; BYTE $0x10 // vmovdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_452 + JMP LBB4_1289 + +LBB4_456: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_457: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x7f7ac1c4; WORD $0xb01c // vmovdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0xb064; BYTE $0x10 // vmovdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0xb06c; BYTE $0x20 // vmovdqu oword [r8 + 4*rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0xb074; BYTE $0x30 // vmovdqu oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_457 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_459: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_459 + JMP LBB4_1351 + +LBB4_460: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_461: + LONG $0x1c75f9c5; BYTE $0x71 // vpcmpeqw xmm3, xmm0, oword [rcx + 2*rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x337de2c4; BYTE $0xdb // vpmovzxwd ymm3, xmm3 + LONG $0x6475f9c5; WORD $0x1071 // vpcmpeqw xmm4, xmm0, oword [rcx + 2*rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x337de2c4; BYTE $0xe4 // vpmovzxwd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c75f9c5; WORD $0x2071 // vpcmpeqw xmm5, xmm0, oword [rcx + 2*rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x337de2c4; BYTE $0xed // vpmovzxwd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7475f9c5; WORD $0x3071 // vpcmpeqw xmm6, xmm0, oword [rcx + 2*rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x337de2c4; BYTE $0xf6 // vpmovzxwd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xb01c // vmovdqu yword [r8 + 4*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xb074; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_461 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_463: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_463 + JMP LBB4_1351 + +LBB4_464: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009c95187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_465: + LONG $0x1c6ffac5; BYTE $0x71 // vmovdqu xmm3, oword [rcx + 2*rsi] + LONG $0x646ffac5; WORD $0x1071 // vmovdqu xmm4, oword [rcx + 2*rsi + 16] + LONG $0x6c6ffac5; WORD $0x2071 // vmovdqu xmm5, oword [rcx + 2*rsi + 32] + LONG $0x746ffac5; WORD $0x3071 // vmovdqu xmm6, oword [rcx + 2*rsi + 48] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x237d62c4; BYTE $0xcf // vpmovsxwd ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x237d62c4; BYTE $0xd1 // vpmovsxwd ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x237de2c4; BYTE $0xff // vpmovsxwd ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0x237de2c4; BYTE $0xc9 // vpmovsxwd ymm1, xmm1 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x237de2c4; BYTE $0xdb // vpmovsxwd ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x237de2c4; BYTE $0xe4 // vpmovsxwd ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x237de2c4; BYTE $0xed // vpmovsxwd ymm5, xmm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x237de2c4; BYTE $0xf6 // vpmovsxwd ymm6, xmm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_465 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_467: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_468: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_468 + JMP LBB4_1351 + +LBB4_469: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + QUAD $0x00009c951879e2c4; BYTE $0x00 // vbroadcastss xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_470: + LONG $0x246ffec5; BYTE $0xf1 // vmovdqu ymm4, yword [rcx + 8*rsi] + LONG $0x6c6ffec5; WORD $0x20f1 // vmovdqu ymm5, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x7c6ffec5; WORD $0x60f1 // vmovdqu ymm7, yword [rcx + 8*rsi + 96] + LONG $0x375de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96b61c5 // vpackssdw xmm9, xmm3, xmm1 + LONG $0x3755e2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01cb // vextracti128 xmm3, ymm1, 1 + LONG $0xd36b71c5 // vpackssdw xmm10, xmm1, xmm3 + LONG $0x374de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd96b61c5 // vpackssdw xmm11, xmm3, xmm1 + LONG $0x3745e2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96be1c5 // vpackssdw xmm1, xmm3, xmm1 + LONG $0x295de2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x2955e2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0x2945e2c4; BYTE $0xf0 // vpcmpeqq ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4a61e3c4; WORD $0x90da // vblendvps xmm3, xmm3, xmm2, xmm9 + LONG $0x4a59e3c4; WORD $0xa0e2 // vblendvps xmm4, xmm4, xmm2, xmm10 + LONG $0x4a51e3c4; WORD $0xb0ea // vblendvps xmm5, xmm5, xmm2, xmm11 + LONG $0x4a49e3c4; WORD $0x10ca // vblendvps xmm1, xmm6, xmm2, xmm1 + LONG $0x1178c1c4; WORD $0xb01c // vmovups oword [r8 + 4*rsi], xmm3 + LONG $0x1178c1c4; WORD $0xb064; BYTE $0x10 // vmovups oword [r8 + 4*rsi + 16], xmm4 + LONG $0x1178c1c4; WORD $0xb06c; BYTE $0x20 // vmovups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x1178c1c4; WORD $0xb04c; BYTE $0x30 // vmovups oword [r8 + 4*rsi + 48], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_470 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_472: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_473: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_473 + JMP LBB4_1351 + +LBB4_474: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1294 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + QUAD $0x00009c85587de2c4; BYTE $0x00 // vpbroadcastd ymm0, dword 156[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc957f0c5 // vxorps xmm1, xmm1, xmm1 + QUAD $0x0000a495187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 164[rbp] /* [rip + .LCPI4_10] */ + QUAD $0x0000949d187de2c4; BYTE $0x00 // vbroadcastss ymm3, dword 148[rbp] /* [rip + .LCPI4_4] */ + +LBB4_476: + LONG $0x246ffec5; BYTE $0xb1 // vmovdqu ymm4, yword [rcx + 4*rsi] + LONG $0xe472d5c5; BYTE $0x1f // vpsrad ymm5, ymm4, 31 + LONG $0xe8ebd5c5 // vpor ymm5, ymm5, ymm0 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf2c2d4c5; BYTE $0x01 // vcmpltps ymm6, ymm5, ymm2 + LONG $0xfa5cd4c5 // vsubps ymm7, ymm5, ymm2 + LONG $0xff5bfec5 // vcvttps2dq ymm7, ymm7 + LONG $0xfb57c4c5 // vxorps ymm7, ymm7, ymm3 + LONG $0xed5bfec5 // vcvttps2dq ymm5, ymm5 + LONG $0x4a45e3c4; WORD $0x60ed // vblendvps ymm5, ymm7, ymm5, ymm6 + LONG $0xe1c2dcc5; BYTE $0x04 // vcmpneqps ymm4, ymm4, ymm1 + LONG $0xe554dcc5 // vandps ymm4, ymm4, ymm5 + LONG $0x117cc1c4; WORD $0xb024 // vmovups yword [r8 + 4*rsi], ymm4 + LONG $0x646ffec5; WORD $0x20b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 32] + LONG $0xe472d5c5; BYTE $0x1f // vpsrad ymm5, ymm4, 31 + LONG $0xe8ebd5c5 // vpor ymm5, ymm5, ymm0 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf2c2d4c5; BYTE $0x01 // vcmpltps ymm6, ymm5, ymm2 + LONG $0xfa5cd4c5 // vsubps ymm7, ymm5, ymm2 + LONG $0xff5bfec5 // vcvttps2dq ymm7, ymm7 + LONG $0xfb57c4c5 // vxorps ymm7, ymm7, ymm3 + LONG $0xed5bfec5 // vcvttps2dq ymm5, ymm5 + LONG $0x4a45e3c4; WORD $0x60ed // vblendvps ymm5, ymm7, ymm5, ymm6 + LONG $0xe1c2dcc5; BYTE $0x04 // vcmpneqps ymm4, ymm4, ymm1 + LONG $0xe554dcc5 // vandps ymm4, ymm4, ymm5 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_476 + JMP LBB4_1295 + +LBB4_483: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x00009c8d5879e2c4; BYTE $0x00 // vpbroadcastd xmm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_484: + LONG $0x1476f9c5; BYTE $0xb1 // vpcmpeqd xmm2, xmm0, oword [rcx + 4*rsi] + LONG $0xd1dfe9c5 // vpandn xmm2, xmm2, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0x5c76f9c5; WORD $0x10b1 // vpcmpeqd xmm3, xmm0, oword [rcx + 4*rsi + 16] + LONG $0xd9dfe1c5 // vpandn xmm3, xmm3, xmm1 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x6476f9c5; WORD $0x20b1 // vpcmpeqd xmm4, xmm0, oword [rcx + 4*rsi + 32] + LONG $0xe1dfd9c5 // vpandn xmm4, xmm4, xmm1 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0x6c76f9c5; WORD $0x30b1 // vpcmpeqd xmm5, xmm0, oword [rcx + 4*rsi + 48] + LONG $0xe9dfd1c5 // vpandn xmm5, xmm5, xmm1 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0x117dc1c4; WORD $0xf014 // vmovupd yword [r8 + 8*rsi], ymm2 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm5 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_484 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_486: + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_488 + +LBB4_487: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_488: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_487 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_487 + +LBB4_496: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_497: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_497 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_499: + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_501 + +LBB4_500: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_501: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_500 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_500 + +LBB4_503: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_504: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x3379e2c4; BYTE $0xdb // vpmovzxwd xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x3379e2c4; BYTE $0xe4 // vpmovzxwd xmm4, xmm4 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x3379e2c4; BYTE $0xed // vpmovzxwd xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x3379e2c4; BYTE $0xf6 // vpmovzxwd xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_504 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_506: + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_508 + +LBB4_507: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_508: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_507 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_507 + +LBB4_510: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_511: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x247d62c4; BYTE $0xcf // vpmovsxwq ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x247d62c4; BYTE $0xd1 // vpmovsxwq ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x247de2c4; BYTE $0xff // vpmovsxwq ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x2379e2c4; BYTE $0xdb // vpmovsxwd xmm3, xmm3 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x2379e2c4; BYTE $0xe4 // vpmovsxwd xmm4, xmm4 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x2379e2c4; BYTE $0xed // vpmovsxwd xmm5, xmm5 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0x247de2c4; BYTE $0xc9 // vpmovsxwq ymm1, xmm1 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x2379e2c4; BYTE $0xf6 // vpmovsxwd xmm6, xmm6 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_511 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_513: + LONG $0x4510fbc5; BYTE $0x20 // vmovsd xmm0, qword 32[rbp] /* [rip + .LCPI4_13] */ + LONG $0x4d10fbc5; BYTE $0x08 // vmovsd xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_515 + +LBB4_514: + LONG $0x117bc1c4; WORD $0xd01c // vmovsd qword [r8 + 8*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_515: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JNE LBB4_517 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + +LBB4_517: + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_514 + LONG $0xda28f9c5 // vmovapd xmm3, xmm2 + JMP LBB4_514 + +LBB4_519: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x762541c4; BYTE $0xdb // vpcmpeqd ymm11, ymm11, ymm11 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_520: + LONG $0x1c6ffec5; BYTE $0xf1 // vmovdqu ymm3, yword [rcx + 8*rsi] + LONG $0x646ffec5; WORD $0x20f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40f1 // vmovdqu ymm5, yword [rcx + 8*rsi + 64] + LONG $0x746ffec5; WORD $0x60f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 96] + LONG $0x3765e2c4; BYTE $0xf8 // vpcmpgtq ymm7, ymm3, ymm0 + LONG $0x375d62c4; BYTE $0xc0 // vpcmpgtq ymm8, ymm4, ymm0 + LONG $0x375562c4; BYTE $0xc8 // vpcmpgtq ymm9, ymm5, ymm0 + LONG $0x374d62c4; BYTE $0xd0 // vpcmpgtq ymm10, ymm6, ymm0 + LONG $0x2965e2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm3, ymm0 + LONG $0xdbefa5c5 // vpxor ymm3, ymm11, ymm3 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96be1c5 // vpackssdw xmm1, xmm3, xmm1 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0x295de2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm4, ymm0 + LONG $0xdbefa5c5 // vpxor ymm3, ymm11, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x2955e2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm5, ymm0 + LONG $0xe4efa5c5 // vpxor ymm4, ymm11, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefa5c5 // vpxor ymm5, ymm11, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0x4b75e3c4; WORD $0x70ca // vblendvpd ymm1, ymm1, ymm2, ymm7 + LONG $0x4b65e3c4; WORD $0x80da // vblendvpd ymm3, ymm3, ymm2, ymm8 + LONG $0x4b5de3c4; WORD $0x90e2 // vblendvpd ymm4, ymm4, ymm2, ymm9 + LONG $0x4b55e3c4; WORD $0xa0ea // vblendvpd ymm5, ymm5, ymm2, ymm10 + LONG $0x117dc1c4; WORD $0xf00c // vmovupd yword [r8 + 8*rsi], ymm1 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm5 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_520 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_522: + LONG $0x4510fbc5; BYTE $0x20 // vmovsd xmm0, qword 32[rbp] /* [rip + .LCPI4_13] */ + LONG $0x4d10fbc5; BYTE $0x08 // vmovsd xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_524 + +LBB4_523: + LONG $0x117bc1c4; WORD $0xd01c // vmovsd qword [r8 + 8*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_524: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JNE LBB4_526 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + +LBB4_526: + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_523 + LONG $0xda28f9c5 // vmovapd xmm3, xmm2 + JMP LBB4_523 + +LBB4_528: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0x573841c4; BYTE $0xc0 // vxorps xmm8, xmm8, xmm8 + QUAD $0x00009c8d5879e2c4; BYTE $0x00 // vpbroadcastd xmm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_529: + LONG $0x1410f8c5; BYTE $0xb1 // vmovups xmm2, oword [rcx + 4*rsi] + LONG $0x5c10f8c5; WORD $0x10b1 // vmovups xmm3, oword [rcx + 4*rsi + 16] + LONG $0x6410f8c5; WORD $0x20b1 // vmovups xmm4, oword [rcx + 4*rsi + 32] + LONG $0x6c10f8c5; WORD $0x30b1 // vmovups xmm5, oword [rcx + 4*rsi + 48] + LONG $0xf2c2b8c5; BYTE $0x00 // vcmpeqps xmm6, xmm8, xmm2 + LONG $0x257de2c4; BYTE $0xf6 // vpmovsxdq ymm6, xmm6 + LONG $0xfbc2b8c5; BYTE $0x00 // vcmpeqps xmm7, xmm8, xmm3 + LONG $0x257de2c4; BYTE $0xff // vpmovsxdq ymm7, xmm7 + LONG $0xc4c2b8c5; BYTE $0x00 // vcmpeqps xmm0, xmm8, xmm4 + LONG $0x257d62c4; BYTE $0xc8 // vpmovsxdq ymm9, xmm0 + LONG $0xc5c2b8c5; BYTE $0x00 // vcmpeqps xmm0, xmm8, xmm5 + LONG $0x257de2c4; BYTE $0xc0 // vpmovsxdq ymm0, xmm0 + LONG $0xe272e9c5; BYTE $0x1f // vpsrad xmm2, xmm2, 31 + LONG $0xd1ebe9c5 // vpor xmm2, xmm2, xmm1 + LONG $0xe372e1c5; BYTE $0x1f // vpsrad xmm3, xmm3, 31 + LONG $0xd9ebe1c5 // vpor xmm3, xmm3, xmm1 + LONG $0xe472d9c5; BYTE $0x1f // vpsrad xmm4, xmm4, 31 + LONG $0xe1ebd9c5 // vpor xmm4, xmm4, xmm1 + LONG $0xe572d1c5; BYTE $0x1f // vpsrad xmm5, xmm5, 31 + LONG $0xe9ebd1c5 // vpor xmm5, xmm5, xmm1 + LONG $0xd25bf8c5 // vcvtdq2ps xmm2, xmm2 + LONG $0xdb5bf8c5 // vcvtdq2ps xmm3, xmm3 + LONG $0xe45bf8c5 // vcvtdq2ps xmm4, xmm4 + LONG $0xed5bf8c5 // vcvtdq2ps xmm5, xmm5 + LONG $0xd25afcc5 // vcvtps2pd ymm2, xmm2 + LONG $0xd2dfcdc5 // vpandn ymm2, ymm6, ymm2 + LONG $0xdb5afcc5 // vcvtps2pd ymm3, xmm3 + LONG $0xdbdfc5c5 // vpandn ymm3, ymm7, ymm3 + LONG $0xe45afcc5 // vcvtps2pd ymm4, xmm4 + LONG $0xed5afcc5 // vcvtps2pd ymm5, xmm5 + LONG $0xe4dfb5c5 // vpandn ymm4, ymm9, ymm4 + LONG $0xc5dffdc5 // vpandn ymm0, ymm0, ymm5 + LONG $0x7f7ec1c4; WORD $0xf014 // vmovdqu yword [r8 + 8*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf05c; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf044; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm0 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_529 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_531: + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + JMP LBB4_533 + +LBB4_532: + LONG $0xd679c1c4; WORD $0xd00c // vmovq qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_533: + LONG $0x1410fac5; BYTE $0x91 // vmovss xmm2, dword [rcx + 4*rdx] + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc22ef8c5 // vucomiss xmm0, xmm2 + JE LBB4_532 + LONG $0xf250f8c5 // vmovmskps esi, xmm2 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + LONG $0xce2aaac5 // vcvtsi2ss xmm1, xmm10, esi + LONG $0xc95af2c5 // vcvtss2sd xmm1, xmm1, xmm1 + JMP LBB4_532 + +LBB4_538: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_539: + LONG $0x1c6ffac5; BYTE $0xb1 // vmovdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646ffac5; WORD $0x10b1 // vmovdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0x6c6ffac5; WORD $0x20b1 // vmovdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746ffac5; WORD $0x30b1 // vmovdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xf866e1c5 // vpcmpgtd xmm7, xmm3, xmm0 + LONG $0x257d62c4; BYTE $0xcf // vpmovsxdq ymm9, xmm7 + LONG $0xc866d9c5 // vpcmpgtd xmm1, xmm4, xmm0 + LONG $0x257d62c4; BYTE $0xd1 // vpmovsxdq ymm10, xmm1 + LONG $0xf866d1c5 // vpcmpgtd xmm7, xmm5, xmm0 + LONG $0x257de2c4; BYTE $0xff // vpmovsxdq ymm7, xmm7 + LONG $0xc866c9c5 // vpcmpgtd xmm1, xmm6, xmm0 + LONG $0x257de2c4; BYTE $0xc9 // vpmovsxdq ymm1, xmm1 + LONG $0xd876e1c5 // vpcmpeqd xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0xe076d9c5 // vpcmpeqd xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0xe876d1c5 // vpcmpeqd xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0xf076c9c5 // vpcmpeqd xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_539 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_541: + LONG $0x4510fbc5; BYTE $0x20 // vmovsd xmm0, qword 32[rbp] /* [rip + .LCPI4_13] */ + LONG $0x4d10fbc5; BYTE $0x08 // vmovsd xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_543 + +LBB4_542: + LONG $0x117bc1c4; WORD $0xd01c // vmovsd qword [r8 + 8*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_543: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JNE LBB4_545 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + +LBB4_545: + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_542 + LONG $0xda28f9c5 // vmovapd xmm3, xmm2 + JMP LBB4_542 + +LBB4_577: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_578: + LONG $0x1c76f9c5; BYTE $0xb1 // vpcmpeqd xmm3, xmm0, oword [rcx + 4*rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x357de2c4; BYTE $0xdb // vpmovzxdq ymm3, xmm3 + LONG $0x6476f9c5; WORD $0x10b1 // vpcmpeqd xmm4, xmm0, oword [rcx + 4*rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x357de2c4; BYTE $0xe4 // vpmovzxdq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c76f9c5; WORD $0x20b1 // vpcmpeqd xmm5, xmm0, oword [rcx + 4*rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x357de2c4; BYTE $0xed // vpmovzxdq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7476f9c5; WORD $0x30b1 // vpcmpeqd xmm6, xmm0, oword [rcx + 4*rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x357de2c4; BYTE $0xf6 // vpmovzxdq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_578 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_580: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_580 + JMP LBB4_1351 + +LBB4_581: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1282 + WORD $0x894d; BYTE $0xce // mov r14, r9 + LONG $0xfee68349 // and r14, -2 + WORD $0xf749; BYTE $0xde // neg r14 + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x573941c4; BYTE $0xc0 // vxorpd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0x5d10fbc5; BYTE $0x10 // vmovsd xmm3, qword 16[rbp] /* [rip + .LCPI4_6] */ + +LBB4_583: + LONG $0x2410fdc5; BYTE $0xf9 // vmovupd ymm4, yword [rcx + 8*rdi] + LONG $0xe854ddc5 // vandpd ymm5, ymm4, ymm0 + LONG $0xed56edc5 // vorpd ymm5, ymm2, ymm5 + LONG $0x197de3c4; WORD $0x01ee // vextractf128 xmm6, ymm5, 1 + LONG $0xfb5ccbc5 // vsubsd xmm7, xmm6, xmm3 + LONG $0x2cfbe1c4; BYTE $0xdf // vcvttsd2si rbx, xmm7 + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2cfbe1c4; BYTE $0xd6 // vcvttsd2si rdx, xmm6 + LONG $0xf32ef9c5 // vucomisd xmm6, xmm3 + LONG $0xd3430f48 // cmovae rdx, rbx + LONG $0x0479e3c4; WORD $0x4ef6 // vpermilps xmm6, xmm6, 78 + LONG $0xfb5ccbc5 // vsubsd xmm7, xmm6, xmm3 + LONG $0x2cfbe1c4; BYTE $0xdf // vcvttsd2si rbx, xmm7 + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + LONG $0xf32ef9c5 // vucomisd xmm6, xmm3 + LONG $0x6ef9e1c4; BYTE $0xf2 // vmovq xmm6, rdx + LONG $0xc3430f48 // cmovae rax, rbx + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0xcb5cd3c5 // vsubsd xmm1, xmm5, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc1 // vcvttsd2si rax, xmm1 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd5 // vcvttsd2si rdx, xmm5 + LONG $0xeb2ef9c5 // vucomisd xmm5, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x0479e3c4; WORD $0x4ecd // vpermilps xmm1, xmm5, 78 + LONG $0xeb5cf3c5 // vsubsd xmm5, xmm1, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc5 // vcvttsd2si rax, xmm5 + LONG $0x6ef9e1c4; BYTE $0xea // vmovq xmm5, rdx + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd1 // vcvttsd2si rdx, xmm1 + LONG $0xcb2ef9c5 // vucomisd xmm1, xmm3 + LONG $0xcf6cc9c5 // vpunpcklqdq xmm1, xmm6, xmm7 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xf2 // vmovq xmm6, rdx + LONG $0xee6cd1c5 // vpunpcklqdq xmm5, xmm5, xmm6 + LONG $0x3855e3c4; WORD $0x01c9 // vinserti128 ymm1, ymm5, xmm1, 1 + LONG $0xe4c2bdc5; BYTE $0x04 // vcmpneqpd ymm4, ymm8, ymm4 + LONG $0xc954ddc5 // vandpd ymm1, ymm4, ymm1 + LONG $0x117dc1c4; WORD $0xf80c // vmovupd yword [r8 + 8*rdi], ymm1 + LONG $0x6410fdc5; WORD $0x20f9 // vmovupd ymm4, yword [rcx + 8*rdi + 32] + LONG $0xc854ddc5 // vandpd ymm1, ymm4, ymm0 + LONG $0xc956edc5 // vorpd ymm1, ymm2, ymm1 + LONG $0x197de3c4; WORD $0x01cd // vextractf128 xmm5, ymm1, 1 + LONG $0xf35cd3c5 // vsubsd xmm6, xmm5, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd5 // vcvttsd2si rdx, xmm5 + LONG $0xeb2ef9c5 // vucomisd xmm5, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x0479e3c4; WORD $0x4eed // vpermilps xmm5, xmm5, 78 + LONG $0xf35cd3c5 // vsubsd xmm6, xmm5, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + LONG $0x6ef9e1c4; BYTE $0xf2 // vmovq xmm6, rdx + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd5 // vcvttsd2si rdx, xmm5 + LONG $0xeb2ef9c5 // vucomisd xmm5, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xea // vmovq xmm5, rdx + LONG $0xfb5cf3c5 // vsubsd xmm7, xmm1, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc7 // vcvttsd2si rax, xmm7 + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd1 // vcvttsd2si rdx, xmm1 + LONG $0xcb2ef9c5 // vucomisd xmm1, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x0479e3c4; WORD $0x4ec9 // vpermilps xmm1, xmm1, 78 + LONG $0xf35cf3c5 // vsubsd xmm6, xmm1, xmm3 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + LONG $0x6ef9e1c4; BYTE $0xf2 // vmovq xmm6, rdx + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd1 // vcvttsd2si rdx, xmm1 + LONG $0xcb2ef9c5 // vucomisd xmm1, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xca // vmovq xmm1, rdx + LONG $0xc96cc9c5 // vpunpcklqdq xmm1, xmm6, xmm1 + LONG $0x3875e3c4; WORD $0x01cd // vinserti128 ymm1, ymm1, xmm5, 1 + LONG $0xe4c2bdc5; BYTE $0x04 // vcmpneqpd ymm4, ymm8, ymm4 + LONG $0xc954ddc5 // vandpd ymm1, ymm4, ymm1 + LONG $0x117dc1c4; WORD $0xf84c; BYTE $0x20 // vmovupd yword [r8 + 8*rdi + 32], ymm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68349 // add r14, 2 + JNE LBB4_583 + JMP LBB4_1283 + +LBB4_590: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_591: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x347de2c4; BYTE $0xdb // vpmovzxwq ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x347de2c4; BYTE $0xe4 // vpmovzxwq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x347de2c4; BYTE $0xed // vpmovzxwq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x347de2c4; BYTE $0xf6 // vpmovzxwq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_591 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_593: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_593 + JMP LBB4_1351 + +LBB4_594: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_595: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x247d62c4; BYTE $0xcf // vpmovsxwq ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x247d62c4; BYTE $0xd1 // vpmovsxwq ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x247de2c4; BYTE $0xff // vpmovsxwq ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0x247de2c4; BYTE $0xc9 // vpmovsxwq ymm1, xmm1 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x247de2c4; BYTE $0xdb // vpmovsxwq ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x247de2c4; BYTE $0xe4 // vpmovsxwq ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x247de2c4; BYTE $0xed // vpmovsxwq ymm5, xmm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x247de2c4; BYTE $0xf6 // vpmovsxwq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_595 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_597: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_598: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_598 + JMP LBB4_1351 + +LBB4_602: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + QUAD $0x000000a08d10fac5 // vmovss xmm1, dword 160[rbp] /* [rip + .LCPI4_9] */ + QUAD $0x000000000000b949; WORD $0x8000 // mov r9, -9223372036854775808 + JMP LBB4_605 + +LBB4_603: + LONG $0xd250f8c5 // vmovmskps edx, xmm2 + WORD $0xe283; BYTE $0x01 // and edx, 1 + WORD $0xdaf7 // neg edx + WORD $0xca83; BYTE $0x01 // or edx, 1 + LONG $0xd22adac5 // vcvtsi2ss xmm2, xmm4, edx + LONG $0xd95ceac5 // vsubss xmm3, xmm2, xmm1 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + WORD $0x314c; BYTE $0xcf // xor rdi, r9 + LONG $0x2cfae1c4; BYTE $0xd2 // vcvttss2si rdx, xmm2 + LONG $0xd12ef8c5 // vucomiss xmm2, xmm1 + LONG $0xd7430f48 // cmovae rdx, rdi + LONG $0xc0548949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdx + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_254 + +LBB4_605: + LONG $0x1410fac5; BYTE $0x81 // vmovss xmm2, dword [rcx + 4*rax] + LONG $0xc22ef8c5 // vucomiss xmm0, xmm2 + JNE LBB4_607 + WORD $0xd231 // xor edx, edx + JMP LBB4_608 + +LBB4_607: + LONG $0xd250f8c5 // vmovmskps edx, xmm2 + WORD $0xe283; BYTE $0x01 // and edx, 1 + WORD $0xdaf7 // neg edx + WORD $0xca83; BYTE $0x01 // or edx, 1 + LONG $0xd22adac5 // vcvtsi2ss xmm2, xmm4, edx + LONG $0xd95ceac5 // vsubss xmm3, xmm2, xmm1 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + WORD $0x314c; BYTE $0xcf // xor rdi, r9 + LONG $0x2cfae1c4; BYTE $0xd2 // vcvttss2si rdx, xmm2 + LONG $0xd12ef8c5 // vucomiss xmm2, xmm1 + LONG $0xd7430f48 // cmovae rdx, rdi + +LBB4_608: + LONG $0xc0148949 // mov qword [r8 + 8*rax], rdx + LONG $0x5410fac5; WORD $0x0481 // vmovss xmm2, dword [rcx + 4*rax + 4] + LONG $0xc22ef8c5 // vucomiss xmm0, xmm2 + JNE LBB4_603 + WORD $0xd231 // xor edx, edx + LONG $0xc0548949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdx + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JNE LBB4_605 + +LBB4_254: + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1351 + LONG $0x0410fac5; BYTE $0x81 // vmovss xmm0, dword [rcx + 4*rax] + LONG $0xc957f0c5 // vxorps xmm1, xmm1, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + JNE LBB4_1280 + WORD $0xc931 // xor ecx, ecx + JMP LBB4_1281 + +LBB4_613: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_614: + LONG $0x1c6ffac5; BYTE $0xb1 // vmovdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646ffac5; WORD $0x10b1 // vmovdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0x6c6ffac5; WORD $0x20b1 // vmovdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746ffac5; WORD $0x30b1 // vmovdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xf866e1c5 // vpcmpgtd xmm7, xmm3, xmm0 + LONG $0x257d62c4; BYTE $0xcf // vpmovsxdq ymm9, xmm7 + LONG $0xc866d9c5 // vpcmpgtd xmm1, xmm4, xmm0 + LONG $0x257d62c4; BYTE $0xd1 // vpmovsxdq ymm10, xmm1 + LONG $0xf866d1c5 // vpcmpgtd xmm7, xmm5, xmm0 + LONG $0x257de2c4; BYTE $0xff // vpmovsxdq ymm7, xmm7 + LONG $0xc866c9c5 // vpcmpgtd xmm1, xmm6, xmm0 + LONG $0x257de2c4; BYTE $0xc9 // vpmovsxdq ymm1, xmm1 + LONG $0xd876e1c5 // vpcmpeqd xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x257de2c4; BYTE $0xdb // vpmovsxdq ymm3, xmm3 + LONG $0xe076d9c5 // vpcmpeqd xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x257de2c4; BYTE $0xe4 // vpmovsxdq ymm4, xmm4 + LONG $0xe876d1c5 // vpcmpeqd xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x257de2c4; BYTE $0xed // vpmovsxdq ymm5, xmm5 + LONG $0xf076c9c5 // vpcmpeqd xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x257de2c4; BYTE $0xf6 // vpmovsxdq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_614 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_616: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_617: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff85 // test edi, edi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_617 + JMP LBB4_1351 + +LBB4_618: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + +LBB4_619: + LONG $0x1476fdc5; BYTE $0xb1 // vpcmpeqd ymm2, ymm0, yword [rcx + 4*rsi] + LONG $0xd1efedc5 // vpxor ymm2, ymm2, ymm1 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd271e9c5; BYTE $0x0f // vpsrlw xmm2, xmm2, 15 + LONG $0x5c76fdc5; WORD $0x20b1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xd371e1c5; BYTE $0x0f // vpsrlw xmm3, xmm3, 15 + LONG $0x6476fdc5; WORD $0x40b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 64] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xd471d9c5; BYTE $0x0f // vpsrlw xmm4, xmm4, 15 + LONG $0x6c76fdc5; WORD $0x60b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xd571d1c5; BYTE $0x0f // vpsrlw xmm5, xmm5, 15 + LONG $0x7f7ac1c4; WORD $0x7014 // vmovdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f7ac1c4; WORD $0x705c; BYTE $0x10 // vmovdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x7f7ac1c4; WORD $0x7064; BYTE $0x20 // vmovdqu oword [r8 + 2*rsi + 32], xmm4 + LONG $0x7f7ac1c4; WORD $0x706c; BYTE $0x30 // vmovdqu oword [r8 + 2*rsi + 48], xmm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_619 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_621: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_621 + JMP LBB4_1351 + +LBB4_622: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + +LBB4_623: + LONG $0x1476fdc5; BYTE $0xb1 // vpcmpeqd ymm2, ymm0, yword [rcx + 4*rsi] + LONG $0xd1efedc5 // vpxor ymm2, ymm2, ymm1 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd271e9c5; BYTE $0x0f // vpsrlw xmm2, xmm2, 15 + LONG $0x5c76fdc5; WORD $0x20b1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xd371e1c5; BYTE $0x0f // vpsrlw xmm3, xmm3, 15 + LONG $0x6476fdc5; WORD $0x40b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 64] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xd471d9c5; BYTE $0x0f // vpsrlw xmm4, xmm4, 15 + LONG $0x6c76fdc5; WORD $0x60b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xd571d1c5; BYTE $0x0f // vpsrlw xmm5, xmm5, 15 + LONG $0x7f7ac1c4; WORD $0x7014 // vmovdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f7ac1c4; WORD $0x705c; BYTE $0x10 // vmovdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x7f7ac1c4; WORD $0x7064; BYTE $0x20 // vmovdqu oword [r8 + 2*rsi + 32], xmm4 + LONG $0x7f7ac1c4; WORD $0x706c; BYTE $0x30 // vmovdqu oword [r8 + 2*rsi + 48], xmm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_623 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_625: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_625 + JMP LBB4_1351 + +LBB4_626: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x573141c4; BYTE $0xc9 // vxorpd xmm9, xmm9, xmm9 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xef2941c4; BYTE $0xd2 // vpxor xmm10, xmm10, xmm10 + +LBB4_627: + LONG $0x2410fdc5; BYTE $0xf9 // vmovupd ymm4, yword [rcx + 8*rdi] + LONG $0x6c10fdc5; WORD $0x20f9 // vmovupd ymm5, yword [rcx + 8*rdi + 32] + LONG $0x7410fdc5; WORD $0x40f9 // vmovupd ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c10fdc5; WORD $0x60f9 // vmovupd ymm7, yword [rcx + 8*rdi + 96] + LONG $0xc4c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm4 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xd96b71c5 // vpackssdw xmm11, xmm1, xmm1 + LONG $0xc5c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm5 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0xe36b61c5 // vpackssdw xmm12, xmm3, xmm3 + LONG $0xc6c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm6 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc7c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm7 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xe054ddc5 // vandpd ymm4, ymm4, ymm0 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0xe854d5c5 // vandpd ymm5, ymm5, ymm0 + LONG $0xed56edc5 // vorpd ymm5, ymm2, ymm5 + LONG $0xf054cdc5 // vandpd ymm6, ymm6, ymm0 + LONG $0xf656edc5 // vorpd ymm6, ymm2, ymm6 + LONG $0xf854c5c5 // vandpd ymm7, ymm7, ymm0 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xe4e6fdc5 // vcvttpd2dq xmm4, ymm4 + LONG $0xede6fdc5 // vcvttpd2dq xmm5, ymm5 + LONG $0x2b59e2c4; BYTE $0xe4 // vpackusdw xmm4, xmm4, xmm4 + LONG $0x2b51e2c4; BYTE $0xed // vpackusdw xmm5, xmm5, xmm5 + LONG $0xf6e6fdc5 // vcvttpd2dq xmm6, ymm6 + LONG $0x2b49e2c4; BYTE $0xf6 // vpackusdw xmm6, xmm6, xmm6 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0x2b41e2c4; BYTE $0xff // vpackusdw xmm7, xmm7, xmm7 + LONG $0x4c59c3c4; WORD $0xb0e2 // vpblendvb xmm4, xmm4, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c41c3c4; WORD $0x30da // vpblendvb xmm3, xmm7, xmm10, xmm3 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x385de3c4; WORD $0x01dd // vinserti128 ymm3, ymm4, xmm5, 1 + LONG $0xc96ce5c5 // vpunpcklqdq ymm1, ymm3, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB4_627 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_629: + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_630: + LONG $0x1c10fbc5; BYTE $0xf1 // vmovsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfa // cmove edi, edx + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_630 + JMP LBB4_1351 + +LBB4_631: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0x197de2c4; WORD $0x0045 // vbroadcastsd ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x573141c4; BYTE $0xc9 // vxorpd xmm9, xmm9, xmm9 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xef2941c4; BYTE $0xd2 // vpxor xmm10, xmm10, xmm10 + +LBB4_632: + LONG $0x2410fdc5; BYTE $0xf9 // vmovupd ymm4, yword [rcx + 8*rdi] + LONG $0x6c10fdc5; WORD $0x20f9 // vmovupd ymm5, yword [rcx + 8*rdi + 32] + LONG $0x7410fdc5; WORD $0x40f9 // vmovupd ymm6, yword [rcx + 8*rdi + 64] + LONG $0x7c10fdc5; WORD $0x60f9 // vmovupd ymm7, yword [rcx + 8*rdi + 96] + LONG $0xc4c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm4 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xd96b71c5 // vpackssdw xmm11, xmm1, xmm1 + LONG $0xc5c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm5 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0xe36b61c5 // vpackssdw xmm12, xmm3, xmm3 + LONG $0xc6c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm6 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc7c235c5; BYTE $0x00 // vcmpeqpd ymm8, ymm9, ymm7 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xe054ddc5 // vandpd ymm4, ymm4, ymm0 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0xe854d5c5 // vandpd ymm5, ymm5, ymm0 + LONG $0xed56edc5 // vorpd ymm5, ymm2, ymm5 + LONG $0xf054cdc5 // vandpd ymm6, ymm6, ymm0 + LONG $0xf656edc5 // vorpd ymm6, ymm2, ymm6 + LONG $0xf854c5c5 // vandpd ymm7, ymm7, ymm0 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xe4e6fdc5 // vcvttpd2dq xmm4, ymm4 + LONG $0xede6fdc5 // vcvttpd2dq xmm5, ymm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xf6e6fdc5 // vcvttpd2dq xmm6, ymm6 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0xff6bc1c5 // vpackssdw xmm7, xmm7, xmm7 + LONG $0x4c59c3c4; WORD $0xb0e2 // vpblendvb xmm4, xmm4, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c41c3c4; WORD $0x30da // vpblendvb xmm3, xmm7, xmm10, xmm3 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x385de3c4; WORD $0x01dd // vinserti128 ymm3, ymm4, xmm5, 1 + LONG $0xc96ce5c5 // vpunpcklqdq ymm1, ymm3, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB4_632 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_634: + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_635: + LONG $0x1c10fbc5; BYTE $0xf1 // vmovsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfa // cmove edi, edx + LONG $0x3c894166; BYTE $0x70 // mov word [r8 + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_635 + JMP LBB4_1351 + +LBB4_642: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x60 // vmovdqa xmm2, oword 96[rbp] /* [rip + .LCPI4_16] */ + +LBB4_643: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0xdd6ce5c5 // vpunpcklqdq ymm3, ymm3, ymm5 + LONG $0x00fde3c4; WORD $0xd8db // vpermq ymm3, ymm3, 216 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_643 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_645: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_645 + JMP LBB4_1351 + +LBB4_646: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x60 // vmovdqa xmm2, oword 96[rbp] /* [rip + .LCPI4_16] */ + +LBB4_647: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0xdd6ce5c5 // vpunpcklqdq ymm3, ymm3, ymm5 + LONG $0x00fde3c4; WORD $0xd8db // vpermq ymm3, ymm3, 216 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_647 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_649: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_649 + JMP LBB4_1351 + +LBB4_662: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x556f79c5; BYTE $0x60 // vmovdqa xmm10, oword 96[rbp] /* [rip + .LCPI4_16] */ + +LBB4_663: + LONG $0x3c6ffec5; BYTE $0xf1 // vmovdqu ymm7, yword [rcx + 8*rsi] + LONG $0x446f7ec5; WORD $0x20f1 // vmovdqu ymm8, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x646ffec5; WORD $0x60f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 96] + LONG $0x3745e2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6b61c5 // vpackssdw xmm11, xmm3, xmm3 + LONG $0x373de2c4; BYTE $0xe8 // vpcmpgtq ymm5, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01e9 // vextracti128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xe16b71c5 // vpackssdw xmm12, xmm1, xmm1 + LONG $0x374de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0x375de2c4; BYTE $0xd0 // vpcmpgtq ymm2, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0x2945e2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm7, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01df // vextracti128 xmm7, ymm3, 1 + LONG $0xdf6be1c5 // vpackssdw xmm3, xmm3, xmm7 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0x293de2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm8, ymm0 + LONG $0xffefb5c5 // vpxor ymm7, ymm9, ymm7 + LONG $0x397de3c4; WORD $0x01fd // vextracti128 xmm5, ymm7, 1 + LONG $0xed6bc1c5 // vpackssdw xmm5, xmm7, xmm5 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0x294de2c4; BYTE $0xf0 // vpcmpeqq ymm6, ymm6, ymm0 + LONG $0xf6efb5c5 // vpxor ymm6, ymm9, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0x295de2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e7 // vextracti128 xmm7, ymm4, 1 + LONG $0xe76bd9c5 // vpackssdw xmm4, xmm4, xmm7 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0x4c61c3c4; WORD $0xb0da // vpblendvb xmm3, xmm3, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c59c3c4; WORD $0x20d2 // vpblendvb xmm2, xmm4, xmm10, xmm2 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0x3865e3c4; WORD $0x01d5 // vinserti128 ymm2, ymm3, xmm5, 1 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x700c // vmovdqu yword [r8 + 2*rsi], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_663 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_665: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_666: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_666 + JMP LBB4_1351 + +LBB4_667: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x556f79c5; BYTE $0x60 // vmovdqa xmm10, oword 96[rbp] /* [rip + .LCPI4_16] */ + +LBB4_668: + LONG $0x3c6ffec5; BYTE $0xf1 // vmovdqu ymm7, yword [rcx + 8*rsi] + LONG $0x446f7ec5; WORD $0x20f1 // vmovdqu ymm8, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x646ffec5; WORD $0x60f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 96] + LONG $0x3745e2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6b61c5 // vpackssdw xmm11, xmm3, xmm3 + LONG $0x373de2c4; BYTE $0xe8 // vpcmpgtq ymm5, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01e9 // vextracti128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xe16b71c5 // vpackssdw xmm12, xmm1, xmm1 + LONG $0x374de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0x375de2c4; BYTE $0xd0 // vpcmpgtq ymm2, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0x2945e2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm7, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01df // vextracti128 xmm7, ymm3, 1 + LONG $0xdf6be1c5 // vpackssdw xmm3, xmm3, xmm7 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0x293de2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm8, ymm0 + LONG $0xffefb5c5 // vpxor ymm7, ymm9, ymm7 + LONG $0x397de3c4; WORD $0x01fd // vextracti128 xmm5, ymm7, 1 + LONG $0xed6bc1c5 // vpackssdw xmm5, xmm7, xmm5 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0x294de2c4; BYTE $0xf0 // vpcmpeqq ymm6, ymm6, ymm0 + LONG $0xf6efb5c5 // vpxor ymm6, ymm9, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0x295de2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e7 // vextracti128 xmm7, ymm4, 1 + LONG $0xe76bd9c5 // vpackssdw xmm4, xmm4, xmm7 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0x4c61c3c4; WORD $0xb0da // vpblendvb xmm3, xmm3, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c59c3c4; WORD $0x20d2 // vpblendvb xmm2, xmm4, xmm10, xmm2 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0x3865e3c4; WORD $0x01d5 // vinserti128 ymm2, ymm3, xmm5, 1 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x700c // vmovdqu yword [r8 + 2*rsi], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_668 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_670: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_671: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_671 + JMP LBB4_1351 + +LBB4_672: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0x573041c4; BYTE $0xc9 // vxorps xmm9, xmm9, xmm9 + LONG $0x762d41c4; BYTE $0xd2 // vpcmpeqd ymm10, ymm10, ymm10 + LONG $0x5d6f79c5; BYTE $0x40 // vmovdqa xmm11, oword 64[rbp] /* [rip + .LCPI4_11] */ + LONG $0x761941c4; BYTE $0xe4 // vpcmpeqd xmm12, xmm12, xmm12 + +LBB4_673: + LONG $0x2410fcc5; BYTE $0xb9 // vmovups ymm4, yword [rcx + 4*rdi] + LONG $0x6c10fcc5; WORD $0x20b9 // vmovups ymm5, yword [rcx + 4*rdi + 32] + LONG $0x7410fcc5; WORD $0x40b9 // vmovups ymm6, yword [rcx + 4*rdi + 64] + LONG $0x7c10fcc5; WORD $0x60b9 // vmovups ymm7, yword [rcx + 4*rdi + 96] + LONG $0xc4c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm4 + LONG $0x197d63c4; WORD $0x01c0 // vextractf128 xmm0, ymm8, 1 + LONG $0xe86b39c5 // vpackssdw xmm13, xmm8, xmm0 + LONG $0xc5c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm5 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xc6c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm6 + LONG $0x197d63c4; WORD $0x01c2 // vextractf128 xmm2, ymm8, 1 + LONG $0xd26bb9c5 // vpackssdw xmm2, xmm8, xmm2 + LONG $0xc7c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm7 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0x665dc1c4; BYTE $0xe2 // vpcmpgtd ymm4, ymm4, ymm10 + LONG $0x397de3c4; WORD $0x01e0 // vextracti128 xmm0, ymm4, 1 + LONG $0xc06bd9c5 // vpackssdw xmm0, xmm4, xmm0 + LONG $0x6655c1c4; BYTE $0xe2 // vpcmpgtd ymm4, ymm5, ymm10 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0x664dc1c4; BYTE $0xea // vpcmpgtd ymm5, ymm6, ymm10 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0x6645c1c4; BYTE $0xf2 // vpcmpgtd ymm6, ymm7, ymm10 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4c19c3c4; WORD $0x00c3 // vpblendvb xmm0, xmm12, xmm11, xmm0 + LONG $0xc0df91c5 // vpandn xmm0, xmm13, xmm0 + LONG $0x4c19c3c4; WORD $0x40e3 // vpblendvb xmm4, xmm12, xmm11, xmm4 + LONG $0xccdff1c5 // vpandn xmm1, xmm1, xmm4 + LONG $0x4c19c3c4; WORD $0x50e3 // vpblendvb xmm4, xmm12, xmm11, xmm5 + LONG $0x4c19c3c4; WORD $0x60eb // vpblendvb xmm5, xmm12, xmm11, xmm6 + LONG $0xd4dfe9c5 // vpandn xmm2, xmm2, xmm4 + LONG $0xdddfe1c5 // vpandn xmm3, xmm3, xmm5 + LONG $0x7f7ac1c4; WORD $0x7804 // vmovdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f7ac1c4; WORD $0x784c; BYTE $0x10 // vmovdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x7f7ac1c4; WORD $0x7854; BYTE $0x20 // vmovdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x785c; BYTE $0x30 // vmovdqu oword [r8 + 2*rdi + 48], xmm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB4_673 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_675: + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB4_676: + LONG $0x0c6ef9c5; BYTE $0xb1 // vmovd xmm1, dword [rcx + 4*rsi] + LONG $0xcf7ef9c5 // vmovd edi, xmm1 + WORD $0xd231 // xor edx, edx + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd2 // setns dl + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + LONG $0xff12548d // lea edx, [rdx + rdx - 1] + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_676 + JMP LBB4_1351 + +LBB4_677: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xff31 // xor edi, edi + LONG $0x573041c4; BYTE $0xc9 // vxorps xmm9, xmm9, xmm9 + LONG $0x762d41c4; BYTE $0xd2 // vpcmpeqd ymm10, ymm10, ymm10 + LONG $0x5d6f79c5; BYTE $0x40 // vmovdqa xmm11, oword 64[rbp] /* [rip + .LCPI4_11] */ + LONG $0x761941c4; BYTE $0xe4 // vpcmpeqd xmm12, xmm12, xmm12 + +LBB4_678: + LONG $0x2410fcc5; BYTE $0xb9 // vmovups ymm4, yword [rcx + 4*rdi] + LONG $0x6c10fcc5; WORD $0x20b9 // vmovups ymm5, yword [rcx + 4*rdi + 32] + LONG $0x7410fcc5; WORD $0x40b9 // vmovups ymm6, yword [rcx + 4*rdi + 64] + LONG $0x7c10fcc5; WORD $0x60b9 // vmovups ymm7, yword [rcx + 4*rdi + 96] + LONG $0xc4c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm4 + LONG $0x197d63c4; WORD $0x01c0 // vextractf128 xmm0, ymm8, 1 + LONG $0xe86b39c5 // vpackssdw xmm13, xmm8, xmm0 + LONG $0xc5c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm5 + LONG $0x197d63c4; WORD $0x01c1 // vextractf128 xmm1, ymm8, 1 + LONG $0xc96bb9c5 // vpackssdw xmm1, xmm8, xmm1 + LONG $0xc6c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm6 + LONG $0x197d63c4; WORD $0x01c2 // vextractf128 xmm2, ymm8, 1 + LONG $0xd26bb9c5 // vpackssdw xmm2, xmm8, xmm2 + LONG $0xc7c234c5; BYTE $0x00 // vcmpeqps ymm8, ymm9, ymm7 + LONG $0x197d63c4; WORD $0x01c3 // vextractf128 xmm3, ymm8, 1 + LONG $0xdb6bb9c5 // vpackssdw xmm3, xmm8, xmm3 + LONG $0x665dc1c4; BYTE $0xe2 // vpcmpgtd ymm4, ymm4, ymm10 + LONG $0x397de3c4; WORD $0x01e0 // vextracti128 xmm0, ymm4, 1 + LONG $0xc06bd9c5 // vpackssdw xmm0, xmm4, xmm0 + LONG $0x6655c1c4; BYTE $0xe2 // vpcmpgtd ymm4, ymm5, ymm10 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0x664dc1c4; BYTE $0xea // vpcmpgtd ymm5, ymm6, ymm10 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0x6645c1c4; BYTE $0xf2 // vpcmpgtd ymm6, ymm7, ymm10 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4c19c3c4; WORD $0x00c3 // vpblendvb xmm0, xmm12, xmm11, xmm0 + LONG $0xc0df91c5 // vpandn xmm0, xmm13, xmm0 + LONG $0x4c19c3c4; WORD $0x40e3 // vpblendvb xmm4, xmm12, xmm11, xmm4 + LONG $0xccdff1c5 // vpandn xmm1, xmm1, xmm4 + LONG $0x4c19c3c4; WORD $0x50e3 // vpblendvb xmm4, xmm12, xmm11, xmm5 + LONG $0x4c19c3c4; WORD $0x60eb // vpblendvb xmm5, xmm12, xmm11, xmm6 + LONG $0xd4dfe9c5 // vpandn xmm2, xmm2, xmm4 + LONG $0xdddfe1c5 // vpandn xmm3, xmm3, xmm5 + LONG $0x7f7ac1c4; WORD $0x7804 // vmovdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f7ac1c4; WORD $0x784c; BYTE $0x10 // vmovdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x7f7ac1c4; WORD $0x7854; BYTE $0x20 // vmovdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x785c; BYTE $0x30 // vmovdqu oword [r8 + 2*rdi + 48], xmm3 + LONG $0x20c78348 // add rdi, 32 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB4_678 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_680: + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB4_681: + LONG $0x0c6ef9c5; BYTE $0xb1 // vmovd xmm1, dword [rcx + 4*rsi] + LONG $0xcf7ef9c5 // vmovd edi, xmm1 + WORD $0xd231 // xor edx, edx + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd2 // setns dl + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + LONG $0xff12548d // lea edx, [rdx + rdx - 1] + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_681 + JMP LBB4_1351 + +LBB4_688: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + LONG $0x4d6f79c5; BYTE $0x40 // vmovdqa xmm9, oword 64[rbp] /* [rip + .LCPI4_11] */ + +LBB4_689: + LONG $0x246ffec5; BYTE $0xb1 // vmovdqu ymm4, yword [rcx + 4*rsi] + LONG $0x6c6ffec5; WORD $0x20b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 32] + LONG $0x746ffec5; WORD $0x40b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 64] + LONG $0x7c6ffec5; WORD $0x60b1 // vmovdqu ymm7, yword [rcx + 4*rsi + 96] + LONG $0xd866ddc5 // vpcmpgtd ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd16b61c5 // vpackssdw xmm10, xmm3, xmm1 + LONG $0xc866d5c5 // vpcmpgtd ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xda6b71c5 // vpackssdw xmm11, xmm1, xmm2 + LONG $0xd066cdc5 // vpcmpgtd ymm2, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd866c5c5 // vpcmpgtd ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96be1c5 // vpackssdw xmm1, xmm3, xmm1 + LONG $0xd876ddc5 // vpcmpeqd ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xe076d5c5 // vpcmpeqd ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe876cdc5 // vpcmpeqd ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xf076c5c5 // vpcmpeqd ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4c61c3c4; WORD $0xa0d9 // vpblendvb xmm3, xmm3, xmm9, xmm10 + LONG $0x4c59c3c4; WORD $0xb0e1 // vpblendvb xmm4, xmm4, xmm9, xmm11 + LONG $0x4c51c3c4; WORD $0x20d1 // vpblendvb xmm2, xmm5, xmm9, xmm2 + LONG $0x4c49c3c4; WORD $0x10c9 // vpblendvb xmm1, xmm6, xmm9, xmm1 + LONG $0x7f7ac1c4; WORD $0x701c // vmovdqu oword [r8 + 2*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x7064; BYTE $0x10 // vmovdqu oword [r8 + 2*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x7054; BYTE $0x20 // vmovdqu oword [r8 + 2*rsi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x704c; BYTE $0x30 // vmovdqu oword [r8 + 2*rsi + 48], xmm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_689 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_691: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_692: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_692 + JMP LBB4_1351 + +LBB4_693: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + LONG $0x4d6f79c5; BYTE $0x40 // vmovdqa xmm9, oword 64[rbp] /* [rip + .LCPI4_11] */ + +LBB4_694: + LONG $0x246ffec5; BYTE $0xb1 // vmovdqu ymm4, yword [rcx + 4*rsi] + LONG $0x6c6ffec5; WORD $0x20b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 32] + LONG $0x746ffec5; WORD $0x40b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 64] + LONG $0x7c6ffec5; WORD $0x60b1 // vmovdqu ymm7, yword [rcx + 4*rsi + 96] + LONG $0xd866ddc5 // vpcmpgtd ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd16b61c5 // vpackssdw xmm10, xmm3, xmm1 + LONG $0xc866d5c5 // vpcmpgtd ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xda6b71c5 // vpackssdw xmm11, xmm1, xmm2 + LONG $0xd066cdc5 // vpcmpgtd ymm2, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd866c5c5 // vpcmpgtd ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96be1c5 // vpackssdw xmm1, xmm3, xmm1 + LONG $0xd876ddc5 // vpcmpeqd ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xe076d5c5 // vpcmpeqd ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe876cdc5 // vpcmpeqd ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xf076c5c5 // vpcmpeqd ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4c61c3c4; WORD $0xa0d9 // vpblendvb xmm3, xmm3, xmm9, xmm10 + LONG $0x4c59c3c4; WORD $0xb0e1 // vpblendvb xmm4, xmm4, xmm9, xmm11 + LONG $0x4c51c3c4; WORD $0x20d1 // vpblendvb xmm2, xmm5, xmm9, xmm2 + LONG $0x4c49c3c4; WORD $0x10c9 // vpblendvb xmm1, xmm6, xmm9, xmm1 + LONG $0x7f7ac1c4; WORD $0x701c // vmovdqu oword [r8 + 2*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x7064; BYTE $0x10 // vmovdqu oword [r8 + 2*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x7054; BYTE $0x20 // vmovdqu oword [r8 + 2*rsi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x704c; BYTE $0x30 // vmovdqu oword [r8 + 2*rsi + 48], xmm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_694 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_696: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_697: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_697 + JMP LBB4_1351 + +LBB4_698: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_699: + LONG $0x1c76f9c5; BYTE $0xb1 // vpcmpeqd xmm3, xmm0, oword [rcx + 4*rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x357de2c4; BYTE $0xdb // vpmovzxdq ymm3, xmm3 + LONG $0x6476f9c5; WORD $0x10b1 // vpcmpeqd xmm4, xmm0, oword [rcx + 4*rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x357de2c4; BYTE $0xe4 // vpmovzxdq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c76f9c5; WORD $0x20b1 // vpcmpeqd xmm5, xmm0, oword [rcx + 4*rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x357de2c4; BYTE $0xed // vpmovzxdq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7476f9c5; WORD $0x30b1 // vpcmpeqd xmm6, xmm0, oword [rcx + 4*rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x357de2c4; BYTE $0xf6 // vpmovzxdq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_699 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_701: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_701 + JMP LBB4_1351 + +LBB4_702: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x0000988d587de2c4; BYTE $0x00 // vpbroadcastd ymm1, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_703: + LONG $0x1476fdc5; BYTE $0xb1 // vpcmpeqd ymm2, ymm0, yword [rcx + 4*rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c76fdc5; WORD $0x20b1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6476fdc5; WORD $0x40b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 64] + LONG $0x6c76fdc5; WORD $0x60b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0xb014 // vmovdqu yword [r8 + 4*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xb05c; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_703 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_705: + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_707 + +LBB4_706: + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_707: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_706 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_706 + +LBB4_709: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1302 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x197de2c4; WORD $0x004d // vbroadcastsd ymm1, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_711: + LONG $0x1c10fdc5; BYTE $0xf1 // vmovupd ymm3, yword [rcx + 8*rsi] + LONG $0xe154e5c5 // vandpd ymm4, ymm3, ymm1 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0x2cfbe1c4; BYTE $0xdd // vcvttsd2si rbx, xmm5 + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x0479e3c4; WORD $0x4eed // vpermilps xmm5, xmm5, 78 + LONG $0x2cfbe1c4; BYTE $0xdd // vcvttsd2si rbx, xmm5 + LONG $0x6ef9e1c4; BYTE $0xeb // vmovq xmm5, rbx + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x2cfbe1c4; BYTE $0xdc // vcvttsd2si rbx, xmm4 + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x0479e3c4; WORD $0x4ee4 // vpermilps xmm4, xmm4, 78 + LONG $0x2cfbe1c4; BYTE $0xdc // vcvttsd2si rbx, xmm4 + LONG $0x6ef9e1c4; BYTE $0xe3 // vmovq xmm4, rbx + LONG $0xe46cc9c5 // vpunpcklqdq xmm4, xmm6, xmm4 + LONG $0x385de3c4; WORD $0x01e5 // vinserti128 ymm4, ymm4, xmm5, 1 + LONG $0xd8c2e5c5; BYTE $0x04 // vcmpneqpd ymm3, ymm3, ymm0 + LONG $0xdc54e5c5 // vandpd ymm3, ymm3, ymm4 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x5c10fdc5; WORD $0x20f1 // vmovupd ymm3, yword [rcx + 8*rsi + 32] + LONG $0xe154e5c5 // vandpd ymm4, ymm3, ymm1 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0x2cfbe1c4; BYTE $0xdd // vcvttsd2si rbx, xmm5 + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x0479e3c4; WORD $0x4eed // vpermilps xmm5, xmm5, 78 + LONG $0x2cfbe1c4; BYTE $0xdd // vcvttsd2si rbx, xmm5 + LONG $0x6ef9e1c4; BYTE $0xeb // vmovq xmm5, rbx + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x2cfbe1c4; BYTE $0xdc // vcvttsd2si rbx, xmm4 + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x0479e3c4; WORD $0x4ee4 // vpermilps xmm4, xmm4, 78 + LONG $0x2cfbe1c4; BYTE $0xdc // vcvttsd2si rbx, xmm4 + LONG $0x6ef9e1c4; BYTE $0xe3 // vmovq xmm4, rbx + LONG $0xe46cc9c5 // vpunpcklqdq xmm4, xmm6, xmm4 + LONG $0x385de3c4; WORD $0x01e5 // vinserti128 ymm4, ymm4, xmm5, 1 + LONG $0xd8c2e5c5; BYTE $0x04 // vcmpneqpd ymm3, ymm3, ymm0 + LONG $0xdc54e5c5 // vandpd ymm3, ymm3, ymm4 + LONG $0x117dc1c4; WORD $0xf05c; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm3 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_711 + JMP LBB4_1303 + +LBB4_712: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0x197de2c4; WORD $0x0845 // vbroadcastsd ymm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd05afdc5 // vcvtpd2ps xmm2, ymm0 + LONG $0x573941c4; BYTE $0xc0 // vxorpd xmm8, xmm8, xmm8 + QUAD $0x0000908d1879e2c4; BYTE $0x00 // vbroadcastss xmm1, dword 144[rbp] /* [rip + .LCPI4_3] */ + LONG $0xd154e9c5 // vandpd xmm2, xmm2, xmm1 + +LBB4_713: + LONG $0x1c10fdc5; BYTE $0xf1 // vmovupd ymm3, yword [rcx + 8*rsi] + LONG $0x6410fdc5; WORD $0x20f1 // vmovupd ymm4, yword [rcx + 8*rsi + 32] + LONG $0x6c10fdc5; WORD $0x40f1 // vmovupd ymm5, yword [rcx + 8*rsi + 64] + LONG $0x7410fdc5; WORD $0x60f1 // vmovupd ymm6, yword [rcx + 8*rsi + 96] + LONG $0xfbc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm3 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xc86b41c5 // vpackssdw xmm9, xmm7, xmm0 + LONG $0xfcc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm4 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xd06b41c5 // vpackssdw xmm10, xmm7, xmm0 + LONG $0xfdc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm5 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xd86b41c5 // vpackssdw xmm11, xmm7, xmm0 + LONG $0xfec2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm6 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xc06bc1c5 // vpackssdw xmm0, xmm7, xmm0 + LONG $0xdb5afdc5 // vcvtpd2ps xmm3, ymm3 + LONG $0xdb55f1c5 // vandnpd xmm3, xmm1, xmm3 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xe45afdc5 // vcvtpd2ps xmm4, ymm4 + LONG $0xdbdfb1c5 // vpandn xmm3, xmm9, xmm3 + LONG $0xe455f1c5 // vandnpd xmm4, xmm1, xmm4 + LONG $0xe456e9c5 // vorpd xmm4, xmm2, xmm4 + LONG $0xe4dfa9c5 // vpandn xmm4, xmm10, xmm4 + LONG $0xed5afdc5 // vcvtpd2ps xmm5, ymm5 + LONG $0xed55f1c5 // vandnpd xmm5, xmm1, xmm5 + LONG $0xed56e9c5 // vorpd xmm5, xmm2, xmm5 + LONG $0xeddfa1c5 // vpandn xmm5, xmm11, xmm5 + LONG $0xf65afdc5 // vcvtpd2ps xmm6, ymm6 + LONG $0xf655f1c5 // vandnpd xmm6, xmm1, xmm6 + LONG $0xf656e9c5 // vorpd xmm6, xmm2, xmm6 + LONG $0xc6dff9c5 // vpandn xmm0, xmm0, xmm6 + LONG $0x7f7ac1c4; WORD $0xb01c // vmovdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0xb064; BYTE $0x10 // vmovdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0xb06c; BYTE $0x20 // vmovdqu oword [r8 + 4*rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0xb044; BYTE $0x30 // vmovdqu oword [r8 + 4*rsi + 48], xmm0 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_713 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_715: + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + QUAD $0x0000948d5879e2c4; BYTE $0x00 // vpbroadcastd xmm1, dword 148[rbp] /* [rip + .LCPI4_4] */ + QUAD $0x000098955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_717 + +LBB4_716: + LONG $0x7e79c1c4; WORD $0x901c // vmovd dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_717: + LONG $0x2410fbc5; BYTE $0xd1 // vmovsd xmm4, qword [rcx + 8*rdx] + LONG $0xc42ef9c5 // vucomisd xmm0, xmm4 + LONG $0xdbefe1c5 // vpxor xmm3, xmm3, xmm3 + JE LBB4_716 + LONG $0xdc5adbc5 // vcvtsd2ss xmm3, xmm4, xmm4 + LONG $0xd9dbe1c5 // vpand xmm3, xmm3, xmm1 + LONG $0xdbebe9c5 // vpor xmm3, xmm2, xmm3 + JMP LBB4_716 + +LBB4_728: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x000098955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_729: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x7f7ac1c4; WORD $0xb01c // vmovdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0xb064; BYTE $0x10 // vmovdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0xb06c; BYTE $0x20 // vmovdqu oword [r8 + 4*rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0xb074; BYTE $0x30 // vmovdqu oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_729 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_731: + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_733 + +LBB4_732: + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_733: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_732 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_732 + +LBB4_735: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_736: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x347de2c4; BYTE $0xdb // vpmovzxwq ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x347de2c4; BYTE $0xe4 // vpmovzxwq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x347de2c4; BYTE $0xed // vpmovzxwq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x347de2c4; BYTE $0xf6 // vpmovzxwq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_736 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_738: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_738 + JMP LBB4_1351 + +LBB4_739: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_740: + LONG $0x1c75f9c5; BYTE $0x71 // vpcmpeqw xmm3, xmm0, oword [rcx + 2*rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x337de2c4; BYTE $0xdb // vpmovzxwd ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x6475f9c5; WORD $0x1071 // vpcmpeqw xmm4, xmm0, oword [rcx + 2*rsi + 16] + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x337de2c4; BYTE $0xe4 // vpmovzxwd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe45bfcc5 // vcvtdq2ps ymm4, ymm4 + LONG $0x6c75f9c5; WORD $0x2071 // vpcmpeqw xmm5, xmm0, oword [rcx + 2*rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x337de2c4; BYTE $0xed // vpmovzxwd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0x7475f9c5; WORD $0x3071 // vpcmpeqw xmm6, xmm0, oword [rcx + 2*rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x337de2c4; BYTE $0xf6 // vpmovzxwd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb074; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_740 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_742: + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_744 + +LBB4_743: + LONG $0x7e79c1c4; WORD $0x900c // vmovd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_744: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xc86ff9c5 // vmovdqa xmm1, xmm0 + JNE LBB4_743 + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + JMP LBB4_743 + +LBB4_746: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_747: + LONG $0x1c7efac5; BYTE $0x71 // vmovq xmm3, qword [rcx + 2*rsi] + LONG $0x647efac5; WORD $0x0871 // vmovq xmm4, qword [rcx + 2*rsi + 8] + LONG $0x6c7efac5; WORD $0x1071 // vmovq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747efac5; WORD $0x1871 // vmovq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x247d62c4; BYTE $0xcf // vpmovsxwq ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x247d62c4; BYTE $0xd1 // vpmovsxwq ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x247de2c4; BYTE $0xff // vpmovsxwq ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0x247de2c4; BYTE $0xc9 // vpmovsxwq ymm1, xmm1 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x247de2c4; BYTE $0xdb // vpmovsxwq ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x247de2c4; BYTE $0xe4 // vpmovsxwq ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x247de2c4; BYTE $0xed // vpmovsxwq ymm5, xmm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x247de2c4; BYTE $0xf6 // vpmovsxwq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_747 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_749: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_750: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_750 + JMP LBB4_1351 + +LBB4_751: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009895187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_752: + LONG $0x1c6ffac5; BYTE $0x71 // vmovdqu xmm3, oword [rcx + 2*rsi] + LONG $0x646ffac5; WORD $0x1071 // vmovdqu xmm4, oword [rcx + 2*rsi + 16] + LONG $0x6c6ffac5; WORD $0x2071 // vmovdqu xmm5, oword [rcx + 2*rsi + 32] + LONG $0x746ffac5; WORD $0x3071 // vmovdqu xmm6, oword [rcx + 2*rsi + 48] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x237d62c4; BYTE $0xcf // vpmovsxwd ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x237d62c4; BYTE $0xd1 // vpmovsxwd ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x237de2c4; BYTE $0xff // vpmovsxwd ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0x237de2c4; BYTE $0xc9 // vpmovsxwd ymm1, xmm1 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x237de2c4; BYTE $0xdb // vpmovsxwd ymm3, xmm3 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x237de2c4; BYTE $0xe4 // vpmovsxwd ymm4, xmm4 + LONG $0xe45bfcc5 // vcvtdq2ps ymm4, ymm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x237de2c4; BYTE $0xed // vpmovsxwd ymm5, xmm5 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x237de2c4; BYTE $0xf6 // vpmovsxwd ymm6, xmm6 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_752 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_754: + QUAD $0x000000a88510fac5 // vmovss xmm0, dword 168[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000000988d10fac5 // vmovss xmm1, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_756 + +LBB4_755: + LONG $0x117ac1c4; WORD $0x901c // vmovss dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_756: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JNE LBB4_758 + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + +LBB4_758: + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_755 + LONG $0xda28f8c5 // vmovaps xmm3, xmm2 + JMP LBB4_755 + +LBB4_763: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + QUAD $0x000098951879e2c4; BYTE $0x00 // vbroadcastss xmm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_764: + LONG $0x346ffec5; BYTE $0xf1 // vmovdqu ymm6, yword [rcx + 8*rsi] + LONG $0x7c6ffec5; WORD $0x20f1 // vmovdqu ymm7, yword [rcx + 8*rsi + 32] + LONG $0x446f7ec5; WORD $0x40f1 // vmovdqu ymm8, yword [rcx + 8*rsi + 64] + LONG $0x646ffec5; WORD $0x60f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 96] + LONG $0x374de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xd56b61c5 // vpackssdw xmm10, xmm3, xmm5 + LONG $0x3745e2c4; BYTE $0xe8 // vpcmpgtq ymm5, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01e9 // vextracti128 xmm1, ymm5, 1 + LONG $0xd96b51c5 // vpackssdw xmm11, xmm5, xmm1 + LONG $0x373de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01cb // vextracti128 xmm3, ymm1, 1 + LONG $0xe36b71c5 // vpackssdw xmm12, xmm1, xmm3 + LONG $0x375de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefb5c5 // vpxor ymm5, ymm9, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed5bf8c5 // vcvtdq2ps xmm5, xmm5 + LONG $0x2945e2c4; BYTE $0xf0 // vpcmpeqq ymm6, ymm7, ymm0 + LONG $0xf6efb5c5 // vpxor ymm6, ymm9, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf65bf8c5 // vcvtdq2ps xmm6, xmm6 + LONG $0x293de2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm8, ymm0 + LONG $0xffefb5c5 // vpxor ymm7, ymm9, ymm7 + LONG $0x397de3c4; WORD $0x01f9 // vextracti128 xmm1, ymm7, 1 + LONG $0xc96bc1c5 // vpackssdw xmm1, xmm7, xmm1 + LONG $0xc95bf8c5 // vcvtdq2ps xmm1, xmm1 + LONG $0x295de2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e7 // vextracti128 xmm7, ymm4, 1 + LONG $0xe76bd9c5 // vpackssdw xmm4, xmm4, xmm7 + LONG $0xe45bf8c5 // vcvtdq2ps xmm4, xmm4 + LONG $0x4a51e3c4; WORD $0xa0ea // vblendvps xmm5, xmm5, xmm2, xmm10 + LONG $0x4a49e3c4; WORD $0xb0f2 // vblendvps xmm6, xmm6, xmm2, xmm11 + LONG $0x4a71e3c4; WORD $0xc0ca // vblendvps xmm1, xmm1, xmm2, xmm12 + LONG $0x4a59e3c4; WORD $0x30da // vblendvps xmm3, xmm4, xmm2, xmm3 + LONG $0x1178c1c4; WORD $0xb02c // vmovups oword [r8 + 4*rsi], xmm5 + LONG $0x1178c1c4; WORD $0xb074; BYTE $0x10 // vmovups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x1178c1c4; WORD $0xb04c; BYTE $0x20 // vmovups oword [r8 + 4*rsi + 32], xmm1 + LONG $0x1178c1c4; WORD $0xb05c; BYTE $0x30 // vmovups oword [r8 + 4*rsi + 48], xmm3 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_764 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_766: + QUAD $0x000000a88510fac5 // vmovss xmm0, dword 168[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000000988d10fac5 // vmovss xmm1, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_768 + +LBB4_767: + LONG $0x117ac1c4; WORD $0x901c // vmovss dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_768: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JNE LBB4_770 + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + +LBB4_770: + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_767 + LONG $0xda28f8c5 // vmovaps xmm3, xmm2 + JMP LBB4_767 + +LBB4_772: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1308 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + QUAD $0x00009c8d5879e2c4; BYTE $0x00 // vpbroadcastd xmm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_774: + LONG $0x1410f8c5; BYTE $0xb1 // vmovups xmm2, oword [rcx + 4*rsi] + LONG $0xd8c2e8c5; BYTE $0x00 // vcmpeqps xmm3, xmm2, xmm0 + LONG $0x257de2c4; BYTE $0xdb // vpmovsxdq ymm3, xmm3 + LONG $0xe272e9c5; BYTE $0x1f // vpsrad xmm2, xmm2, 31 + LONG $0xd1ebe9c5 // vpor xmm2, xmm2, xmm1 + LONG $0xd25bf8c5 // vcvtdq2ps xmm2, xmm2 + LONG $0x0479e3c4; WORD $0xe7e2 // vpermilps xmm4, xmm2, 231 + LONG $0x2cfae1c4; BYTE $0xc4 // vcvttss2si rax, xmm4 + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x0579e3c4; WORD $0x01ea // vpermilpd xmm5, xmm2, 1 + LONG $0x2cfae1c4; BYTE $0xc5 // vcvttss2si rax, xmm5 + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x2cfae1c4; BYTE $0xc2 // vcvttss2si rax, xmm2 + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xd216fac5 // vmovshdup xmm2, xmm2 + LONG $0x2cfae1c4; BYTE $0xc2 // vcvttss2si rax, xmm2 + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0xd26cd1c5 // vpunpcklqdq xmm2, xmm5, xmm2 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0xd2dfe5c5 // vpandn ymm2, ymm3, ymm2 + LONG $0x7f7ec1c4; WORD $0xf014 // vmovdqu yword [r8 + 8*rsi], ymm2 + LONG $0x546ffac5; WORD $0x10b1 // vmovdqu xmm2, oword [rcx + 4*rsi + 16] + LONG $0xe272e1c5; BYTE $0x1f // vpsrad xmm3, xmm2, 31 + LONG $0xd9ebe1c5 // vpor xmm3, xmm3, xmm1 + LONG $0xdb5bf8c5 // vcvtdq2ps xmm3, xmm3 + LONG $0x0479e3c4; WORD $0xe7e3 // vpermilps xmm4, xmm3, 231 + LONG $0x2cfae1c4; BYTE $0xc4 // vcvttss2si rax, xmm4 + LONG $0x0579e3c4; WORD $0x01e3 // vpermilpd xmm4, xmm3, 1 + LONG $0x2cfa61c4; BYTE $0xdc // vcvttss2si r11, xmm4 + LONG $0x2cfae1c4; BYTE $0xdb // vcvttss2si rbx, xmm3 + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0xdb16fac5 // vmovshdup xmm3, xmm3 + LONG $0x2cfae1c4; BYTE $0xc3 // vcvttss2si rax, xmm3 + LONG $0x6ef9c1c4; BYTE $0xdb // vmovq xmm3, r11 + LONG $0x6ef9e1c4; BYTE $0xeb // vmovq xmm5, rbx + LONG $0xd0c2e8c5; BYTE $0x00 // vcmpeqps xmm2, xmm2, xmm0 + LONG $0x257de2c4; BYTE $0xd2 // vpmovsxdq ymm2, xmm2 + LONG $0xdc6ce1c5 // vpunpcklqdq xmm3, xmm3, xmm4 + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + LONG $0xd3dfedc5 // vpandn ymm2, ymm2, ymm3 + LONG $0x7f7ec1c4; WORD $0xf054; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm2 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_774 + JMP LBB4_1309 + +LBB4_784: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_785: + LONG $0x1c6ffac5; BYTE $0xb1 // vmovdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646ffac5; WORD $0x10b1 // vmovdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0x6c6ffac5; WORD $0x20b1 // vmovdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746ffac5; WORD $0x30b1 // vmovdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xf866e1c5 // vpcmpgtd xmm7, xmm3, xmm0 + LONG $0x257d62c4; BYTE $0xcf // vpmovsxdq ymm9, xmm7 + LONG $0xc866d9c5 // vpcmpgtd xmm1, xmm4, xmm0 + LONG $0x257d62c4; BYTE $0xd1 // vpmovsxdq ymm10, xmm1 + LONG $0xf866d1c5 // vpcmpgtd xmm7, xmm5, xmm0 + LONG $0x257de2c4; BYTE $0xff // vpmovsxdq ymm7, xmm7 + LONG $0xc866c9c5 // vpcmpgtd xmm1, xmm6, xmm0 + LONG $0x257de2c4; BYTE $0xc9 // vpmovsxdq ymm1, xmm1 + LONG $0xd876e1c5 // vpcmpeqd xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x257de2c4; BYTE $0xdb // vpmovsxdq ymm3, xmm3 + LONG $0xe076d9c5 // vpcmpeqd xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x257de2c4; BYTE $0xe4 // vpmovsxdq ymm4, xmm4 + LONG $0xe876d1c5 // vpcmpeqd xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x257de2c4; BYTE $0xed // vpmovsxdq ymm5, xmm5 + LONG $0xf076c9c5 // vpcmpeqd xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x257de2c4; BYTE $0xf6 // vpmovsxdq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_785 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_787: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_788: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff85 // test edi, edi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_788 + JMP LBB4_1351 + +LBB4_789: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009895187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_790: + LONG $0x1c6ffec5; BYTE $0xb1 // vmovdqu ymm3, yword [rcx + 4*rsi] + LONG $0x646ffec5; WORD $0x20b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 64] + LONG $0x746ffec5; WORD $0x60b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 96] + LONG $0xf866e5c5 // vpcmpgtd ymm7, ymm3, ymm0 + LONG $0xc0665dc5 // vpcmpgtd ymm8, ymm4, ymm0 + LONG $0xc86655c5 // vpcmpgtd ymm9, ymm5, ymm0 + LONG $0xd0664dc5 // vpcmpgtd ymm10, ymm6, ymm0 + LONG $0xd876e5c5 // vpcmpeqd ymm3, ymm3, ymm0 + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0xe076ddc5 // vpcmpeqd ymm4, ymm4, ymm0 + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0xe45bfcc5 // vcvtdq2ps ymm4, ymm4 + LONG $0xe876d5c5 // vpcmpeqd ymm5, ymm5, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf076cdc5 // vpcmpeqd ymm6, ymm6, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0x4a65e3c4; WORD $0x70da // vblendvps ymm3, ymm3, ymm2, ymm7 + LONG $0x4a5de3c4; WORD $0x80e2 // vblendvps ymm4, ymm4, ymm2, ymm8 + LONG $0x4a55e3c4; WORD $0x90ea // vblendvps ymm5, ymm5, ymm2, ymm9 + LONG $0x4a4de3c4; WORD $0xa0f2 // vblendvps ymm6, ymm6, ymm2, ymm10 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb074; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_790 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_792: + QUAD $0x000000a88510fac5 // vmovss xmm0, dword 168[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000000988d10fac5 // vmovss xmm1, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_794 + +LBB4_793: + LONG $0x117ac1c4; WORD $0x901c // vmovss dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_794: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JNE LBB4_796 + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + +LBB4_796: + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_793 + LONG $0xda28f8c5 // vmovaps xmm3, xmm2 + JMP LBB4_793 + +LBB4_831: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf0 // and esi, -16 + WORD $0xff31 // xor edi, edi + LONG $0x573941c4; BYTE $0xc0 // vxorpd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x004d // vbroadcastsd ymm1, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_832: + LONG $0x1c10fdc5; BYTE $0xf9 // vmovupd ymm3, yword [rcx + 8*rdi] + LONG $0x6410fdc5; WORD $0x20f9 // vmovupd ymm4, yword [rcx + 8*rdi + 32] + LONG $0x6c10fdc5; WORD $0x40f9 // vmovupd ymm5, yword [rcx + 8*rdi + 64] + LONG $0x7410fdc5; WORD $0x60f9 // vmovupd ymm6, yword [rcx + 8*rdi + 96] + LONG $0xfbc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm3 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xc86b41c5 // vpackssdw xmm9, xmm7, xmm0 + LONG $0xfcc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm4 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xd06b41c5 // vpackssdw xmm10, xmm7, xmm0 + LONG $0xfdc2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm5 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xd86b41c5 // vpackssdw xmm11, xmm7, xmm0 + LONG $0xfec2bdc5; BYTE $0x00 // vcmpeqpd ymm7, ymm8, ymm6 + LONG $0x197de3c4; WORD $0x01f8 // vextractf128 xmm0, ymm7, 1 + LONG $0xc06bc1c5 // vpackssdw xmm0, xmm7, xmm0 + LONG $0xd954e5c5 // vandpd ymm3, ymm3, ymm1 + LONG $0xdb56edc5 // vorpd ymm3, ymm2, ymm3 + LONG $0xe154ddc5 // vandpd ymm4, ymm4, ymm1 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0xe954d5c5 // vandpd ymm5, ymm5, ymm1 + LONG $0xed56edc5 // vorpd ymm5, ymm2, ymm5 + LONG $0xf154cdc5 // vandpd ymm6, ymm6, ymm1 + LONG $0xf656edc5 // vorpd ymm6, ymm2, ymm6 + LONG $0xdbe6fdc5 // vcvttpd2dq xmm3, ymm3 + LONG $0xdbdfb1c5 // vpandn xmm3, xmm9, xmm3 + LONG $0xe4e6fdc5 // vcvttpd2dq xmm4, ymm4 + LONG $0xe4dfa9c5 // vpandn xmm4, xmm10, xmm4 + LONG $0xede6fdc5 // vcvttpd2dq xmm5, ymm5 + LONG $0xf6e6fdc5 // vcvttpd2dq xmm6, ymm6 + LONG $0xeddfa1c5 // vpandn xmm5, xmm11, xmm5 + LONG $0xc6dff9c5 // vpandn xmm0, xmm0, xmm6 + LONG $0x7f7ac1c4; WORD $0xb81c // vmovdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f7ac1c4; WORD $0xb864; BYTE $0x10 // vmovdqu oword [r8 + 4*rdi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0xb86c; BYTE $0x20 // vmovdqu oword [r8 + 4*rdi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0xb844; BYTE $0x30 // vmovdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB4_832 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_834: + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_835: + LONG $0x1c10fbc5; BYTE $0xf1 // vmovsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0xfb2cfbc5 // vcvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfa // cmove edi, edx + LONG $0xb03c8941 // mov dword [r8 + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_835 + JMP LBB4_1351 + +LBB4_839: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_840: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x297de2c4; WORD $0xf174; BYTE $0x60 // vpcmpeqq ymm6, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x7f7ac1c4; WORD $0xb01c // vmovdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0xb064; BYTE $0x10 // vmovdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0xb06c; BYTE $0x20 // vmovdqu oword [r8 + 4*rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0xb074; BYTE $0x30 // vmovdqu oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_840 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_842: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_842 + JMP LBB4_1351 + +LBB4_843: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_844: + LONG $0x1c75f9c5; BYTE $0x71 // vpcmpeqw xmm3, xmm0, oword [rcx + 2*rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x337de2c4; BYTE $0xdb // vpmovzxwd ymm3, xmm3 + LONG $0x6475f9c5; WORD $0x1071 // vpcmpeqw xmm4, xmm0, oword [rcx + 2*rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x337de2c4; BYTE $0xe4 // vpmovzxwd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c75f9c5; WORD $0x2071 // vpcmpeqw xmm5, xmm0, oword [rcx + 2*rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x337de2c4; BYTE $0xed // vpmovzxwd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7475f9c5; WORD $0x3071 // vpcmpeqw xmm6, xmm0, oword [rcx + 2*rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x337de2c4; BYTE $0xf6 // vpmovzxwd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xb01c // vmovdqu yword [r8 + 4*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xb074; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_844 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_846: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_846 + JMP LBB4_1351 + +LBB4_847: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009c95187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_848: + LONG $0x1c6ffac5; BYTE $0x71 // vmovdqu xmm3, oword [rcx + 2*rsi] + LONG $0x646ffac5; WORD $0x1071 // vmovdqu xmm4, oword [rcx + 2*rsi + 16] + LONG $0x6c6ffac5; WORD $0x2071 // vmovdqu xmm5, oword [rcx + 2*rsi + 32] + LONG $0x746ffac5; WORD $0x3071 // vmovdqu xmm6, oword [rcx + 2*rsi + 48] + LONG $0xf865e1c5 // vpcmpgtw xmm7, xmm3, xmm0 + LONG $0x237d62c4; BYTE $0xcf // vpmovsxwd ymm9, xmm7 + LONG $0xc865d9c5 // vpcmpgtw xmm1, xmm4, xmm0 + LONG $0x237d62c4; BYTE $0xd1 // vpmovsxwd ymm10, xmm1 + LONG $0xf865d1c5 // vpcmpgtw xmm7, xmm5, xmm0 + LONG $0x237de2c4; BYTE $0xff // vpmovsxwd ymm7, xmm7 + LONG $0xc865c9c5 // vpcmpgtw xmm1, xmm6, xmm0 + LONG $0x237de2c4; BYTE $0xc9 // vpmovsxwd ymm1, xmm1 + LONG $0xd875e1c5 // vpcmpeqw xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x237de2c4; BYTE $0xdb // vpmovsxwd ymm3, xmm3 + LONG $0xe075d9c5 // vpcmpeqw xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x237de2c4; BYTE $0xe4 // vpmovsxwd ymm4, xmm4 + LONG $0xe875d1c5 // vpcmpeqw xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x237de2c4; BYTE $0xed // vpmovsxwd ymm5, xmm5 + LONG $0xf075c9c5 // vpcmpeqw xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x237de2c4; BYTE $0xf6 // vpmovsxwd ymm6, xmm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_848 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_850: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_851: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_851 + JMP LBB4_1351 + +LBB4_852: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + QUAD $0x00009c951879e2c4; BYTE $0x00 // vbroadcastss xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_853: + LONG $0x246ffec5; BYTE $0xf1 // vmovdqu ymm4, yword [rcx + 8*rsi] + LONG $0x6c6ffec5; WORD $0x20f1 // vmovdqu ymm5, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x7c6ffec5; WORD $0x60f1 // vmovdqu ymm7, yword [rcx + 8*rsi + 96] + LONG $0x375de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96b61c5 // vpackssdw xmm9, xmm3, xmm1 + LONG $0x3755e2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01cb // vextracti128 xmm3, ymm1, 1 + LONG $0xd36b71c5 // vpackssdw xmm10, xmm1, xmm3 + LONG $0x374de2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd96b61c5 // vpackssdw xmm11, xmm3, xmm1 + LONG $0x3745e2c4; BYTE $0xd8 // vpcmpgtq ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc96be1c5 // vpackssdw xmm1, xmm3, xmm1 + LONG $0x295de2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x2955e2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0x2945e2c4; BYTE $0xf0 // vpcmpeqq ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0x4a61e3c4; WORD $0x90da // vblendvps xmm3, xmm3, xmm2, xmm9 + LONG $0x4a59e3c4; WORD $0xa0e2 // vblendvps xmm4, xmm4, xmm2, xmm10 + LONG $0x4a51e3c4; WORD $0xb0ea // vblendvps xmm5, xmm5, xmm2, xmm11 + LONG $0x4a49e3c4; WORD $0x10ca // vblendvps xmm1, xmm6, xmm2, xmm1 + LONG $0x1178c1c4; WORD $0xb01c // vmovups oword [r8 + 4*rsi], xmm3 + LONG $0x1178c1c4; WORD $0xb064; BYTE $0x10 // vmovups oword [r8 + 4*rsi + 16], xmm4 + LONG $0x1178c1c4; WORD $0xb06c; BYTE $0x20 // vmovups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x1178c1c4; WORD $0xb04c; BYTE $0x30 // vmovups oword [r8 + 4*rsi + 48], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_853 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_855: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_856: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_856 + JMP LBB4_1351 + +LBB4_857: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + QUAD $0x00009c8d587de2c4; BYTE $0x00 // vpbroadcastd ymm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_858: + LONG $0x146ffec5; BYTE $0xb1 // vmovdqu ymm2, yword [rcx + 4*rsi] + LONG $0x5c6ffec5; WORD $0x20b1 // vmovdqu ymm3, yword [rcx + 4*rsi + 32] + LONG $0x646ffec5; WORD $0x40b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 64] + LONG $0x6c6ffec5; WORD $0x60b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 96] + LONG $0xe272cdc5; BYTE $0x1f // vpsrad ymm6, ymm2, 31 + LONG $0xf1ebcdc5 // vpor ymm6, ymm6, ymm1 + LONG $0xe372c5c5; BYTE $0x1f // vpsrad ymm7, ymm3, 31 + LONG $0xf9ebc5c5 // vpor ymm7, ymm7, ymm1 + LONG $0xe472bdc5; BYTE $0x1f // vpsrad ymm8, ymm4, 31 + LONG $0xc1eb3dc5 // vpor ymm8, ymm8, ymm1 + LONG $0xe572b5c5; BYTE $0x1f // vpsrad ymm9, ymm5, 31 + LONG $0xc9eb35c5 // vpor ymm9, ymm9, ymm1 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0xff5bfcc5 // vcvtdq2ps ymm7, ymm7 + LONG $0x5b7c41c4; BYTE $0xc0 // vcvtdq2ps ymm8, ymm8 + LONG $0x5b7c41c4; BYTE $0xc9 // vcvtdq2ps ymm9, ymm9 + LONG $0xf65bfec5 // vcvttps2dq ymm6, ymm6 + LONG $0xff5bfec5 // vcvttps2dq ymm7, ymm7 + LONG $0x5b7e41c4; BYTE $0xc0 // vcvttps2dq ymm8, ymm8 + LONG $0x5b7e41c4; BYTE $0xc9 // vcvttps2dq ymm9, ymm9 + LONG $0xd0c2ecc5; BYTE $0x04 // vcmpneqps ymm2, ymm2, ymm0 + LONG $0xd654ecc5 // vandps ymm2, ymm2, ymm6 + LONG $0xd8c2e4c5; BYTE $0x04 // vcmpneqps ymm3, ymm3, ymm0 + LONG $0xdf54e4c5 // vandps ymm3, ymm3, ymm7 + LONG $0xe0c2dcc5; BYTE $0x04 // vcmpneqps ymm4, ymm4, ymm0 + LONG $0xe454bcc5 // vandps ymm4, ymm8, ymm4 + LONG $0xe8c2d4c5; BYTE $0x04 // vcmpneqps ymm5, ymm5, ymm0 + LONG $0xed54b4c5 // vandps ymm5, ymm9, ymm5 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_858 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_860: + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + JMP LBB4_862 + +LBB4_861: + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_862: + LONG $0x0c10fac5; BYTE $0x91 // vmovss xmm1, dword [rcx + 4*rdx] + WORD $0xf631 // xor esi, esi + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + JE LBB4_861 + LONG $0xf150f8c5 // vmovmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + LONG $0xce2aaac5 // vcvtsi2ss xmm1, xmm10, esi + LONG $0xf12cfac5 // vcvttss2si esi, xmm1 + JMP LBB4_861 + +LBB4_870: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x00009c8d587de2c4; BYTE $0x00 // vpbroadcastd ymm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_871: + LONG $0x1476fdc5; BYTE $0xb1 // vpcmpeqd ymm2, ymm0, yword [rcx + 4*rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c76fdc5; WORD $0x20b1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6476fdc5; WORD $0x40b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 64] + LONG $0x6c76fdc5; WORD $0x60b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0xb014 // vmovdqu yword [r8 + 4*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xb05c; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_871 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_873 + +LBB4_877: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009c95187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_878: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x217d62c4; BYTE $0xcf // vpmovsxbd ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x217d62c4; BYTE $0xd1 // vpmovsxbd ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x217de2c4; BYTE $0xff // vpmovsxbd ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0x217de2c4; BYTE $0xc9 // vpmovsxbd ymm1, xmm1 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x217de2c4; BYTE $0xdb // vpmovsxbd ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x217de2c4; BYTE $0xe4 // vpmovsxbd ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x217de2c4; BYTE $0xed // vpmovsxbd ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x217de2c4; BYTE $0xf6 // vpmovsxbd ymm6, xmm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_878 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_880 + +LBB4_885: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_886: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x317de2c4; BYTE $0xdb // vpmovzxbd ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x317de2c4; BYTE $0xe4 // vpmovzxbd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x317de2c4; BYTE $0xed // vpmovzxbd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x317de2c4; BYTE $0xf6 // vpmovzxbd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xb01c // vmovdqu yword [r8 + 4*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xb074; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_886 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_888 + +LBB4_892: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_893: + LONG $0x1c6ffec5; BYTE $0xb1 // vmovdqu ymm3, yword [rcx + 4*rsi] + LONG $0x646ffec5; WORD $0x20b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 64] + LONG $0x746ffec5; WORD $0x60b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 96] + LONG $0xf876e5c5 // vpcmpeqd ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0765dc5 // vpcmpeqd ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87655c5 // vpcmpeqd ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0764dc5 // vpcmpeqd ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb66edc5 // vpcmpgtd ymm3, ymm2, ymm3 + LONG $0xe466edc5 // vpcmpgtd ymm4, ymm2, ymm4 + LONG $0xed66edc5 // vpcmpgtd ymm5, ymm2, ymm5 + LONG $0xf666edc5 // vpcmpgtd ymm6, ymm2, ymm6 + LONG $0x4a6de3c4; WORD $0x30df // vblendvps ymm3, ymm2, ymm7, ymm3 + LONG $0x4a6dc3c4; WORD $0x40e0 // vblendvps ymm4, ymm2, ymm8, ymm4 + LONG $0x4a6dc3c4; WORD $0x50e9 // vblendvps ymm5, ymm2, ymm9, ymm5 + LONG $0x4a6dc3c4; WORD $0x60f2 // vblendvps ymm6, ymm2, ymm10, ymm6 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb074; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_893 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_895 + +LBB4_900: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x197de2c4; WORD $0x004d // vbroadcastsd ymm1, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_901: + LONG $0x1c10fdc5; BYTE $0xf1 // vmovupd ymm3, yword [rcx + 8*rsi] + LONG $0x6410fdc5; WORD $0x20f1 // vmovupd ymm4, yword [rcx + 8*rsi + 32] + LONG $0x6c10fdc5; WORD $0x40f1 // vmovupd ymm5, yword [rcx + 8*rsi + 64] + LONG $0x7410fdc5; WORD $0x60f1 // vmovupd ymm6, yword [rcx + 8*rsi + 96] + LONG $0xf954e5c5 // vandpd ymm7, ymm3, ymm1 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xc1545dc5 // vandpd ymm8, ymm4, ymm1 + LONG $0xc2563dc5 // vorpd ymm8, ymm8, ymm2 + LONG $0xc95455c5 // vandpd ymm9, ymm5, ymm1 + LONG $0xca5635c5 // vorpd ymm9, ymm9, ymm2 + LONG $0xd1544dc5 // vandpd ymm10, ymm6, ymm1 + LONG $0xd2562dc5 // vorpd ymm10, ymm10, ymm2 + LONG $0xd8c2e5c5; BYTE $0x04 // vcmpneqpd ymm3, ymm3, ymm0 + LONG $0xdf54e5c5 // vandpd ymm3, ymm3, ymm7 + LONG $0xe0c2ddc5; BYTE $0x04 // vcmpneqpd ymm4, ymm4, ymm0 + LONG $0xe454bdc5 // vandpd ymm4, ymm8, ymm4 + LONG $0xe8c2d5c5; BYTE $0x04 // vcmpneqpd ymm5, ymm5, ymm0 + LONG $0xed54b5c5 // vandpd ymm5, ymm9, ymm5 + LONG $0xf0c2cdc5; BYTE $0x04 // vcmpneqpd ymm6, ymm6, ymm0 + LONG $0xf654adc5 // vandpd ymm6, ymm10, ymm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_901 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_903 + +LBB4_908: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_909: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x227d62c4; BYTE $0xcf // vpmovsxbq ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x227d62c4; BYTE $0xd1 // vpmovsxbq ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x227de2c4; BYTE $0xff // vpmovsxbq ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x2179e2c4; BYTE $0xdb // vpmovsxbd xmm3, xmm3 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x2179e2c4; BYTE $0xe4 // vpmovsxbd xmm4, xmm4 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x2179e2c4; BYTE $0xed // vpmovsxbd xmm5, xmm5 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0x227de2c4; BYTE $0xc9 // vpmovsxbq ymm1, xmm1 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x2179e2c4; BYTE $0xf6 // vpmovsxbd xmm6, xmm6 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_909 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_911 + +LBB4_914: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_915: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x3179e2c4; BYTE $0xdb // vpmovzxbd xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x3179e2c4; BYTE $0xe4 // vpmovzxbd xmm4, xmm4 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe4e6fec5 // vcvtdq2pd ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x3179e2c4; BYTE $0xed // vpmovzxbd xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0xede6fec5 // vcvtdq2pd ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x3179e2c4; BYTE $0xf6 // vpmovzxbd xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0xf6e6fec5 // vcvtdq2pd ymm6, xmm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_915 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_917 + +LBB4_933: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x50 // vmovdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_12] */ + +LBB4_934: + LONG $0x1c76fdc5; BYTE $0xb1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x6476fdc5; WORD $0x20b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x6c76fdc5; WORD $0x40b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 64] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x7476fdc5; WORD $0x60b1 // vpcmpeqd ymm6, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf663c9c5 // vpacksswb xmm6, xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0xdd6ce5c5 // vpunpcklqdq ymm3, ymm3, ymm5 + LONG $0x00fde3c4; WORD $0xd8db // vpermq ymm3, ymm3, 216 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_934 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_936 + +LBB4_940: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0x597de2c4; WORD $0x0045 // vpbroadcastq ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x572941c4; BYTE $0xd2 // vxorpd xmm10, xmm10, xmm10 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xef2141c4; BYTE $0xdb // vpxor xmm11, xmm11, xmm11 + +LBB4_941: + LONG $0x3410fdc5; BYTE $0xf1 // vmovupd ymm6, yword [rcx + 8*rsi] + LONG $0x7c10fdc5; WORD $0x20f1 // vmovupd ymm7, yword [rcx + 8*rsi + 32] + LONG $0x44107dc5; WORD $0x40f1 // vmovupd ymm8, yword [rcx + 8*rsi + 64] + LONG $0x4c107dc5; WORD $0x60f1 // vmovupd ymm9, yword [rcx + 8*rsi + 96] + LONG $0xe6c2adc5; BYTE $0x00 // vcmpeqpd ymm4, ymm10, ymm6 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe46359c5 // vpacksswb xmm12, xmm4, xmm4 + LONG $0xefc2adc5; BYTE $0x00 // vcmpeqpd ymm5, ymm10, ymm7 + LONG $0x197de3c4; WORD $0x01e9 // vextractf128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe96371c5 // vpacksswb xmm13, xmm1, xmm1 + LONG $0xc23dc1c4; WORD $0x00ca // vcmpeqpd ymm1, ymm8, ymm10 + LONG $0x197de3c4; WORD $0x01cb // vextractf128 xmm3, ymm1, 1 + LONG $0xcb6bf1c5 // vpackssdw xmm1, xmm1, xmm3 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xc235c1c4; WORD $0x00da // vcmpeqpd ymm3, ymm9, ymm10 + LONG $0x197de3c4; WORD $0x01dc // vextractf128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xe054cdc5 // vandpd ymm4, ymm6, ymm0 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0xf054c5c5 // vandpd ymm6, ymm7, ymm0 + LONG $0xf656edc5 // vorpd ymm6, ymm2, ymm6 + LONG $0xf854bdc5 // vandpd ymm7, ymm8, ymm0 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xc05435c5 // vandpd ymm8, ymm9, ymm0 + LONG $0xc2563dc5 // vorpd ymm8, ymm8, ymm2 + LONG $0xe4e6fdc5 // vcvttpd2dq xmm4, ymm4 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0xf6e6fdc5 // vcvttpd2dq xmm6, ymm6 + LONG $0xf66bc9c5 // vpackssdw xmm6, xmm6, xmm6 + LONG $0xf663c9c5 // vpacksswb xmm6, xmm6, xmm6 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0xff6bc1c5 // vpackssdw xmm7, xmm7, xmm7 + LONG $0xff63c1c5 // vpacksswb xmm7, xmm7, xmm7 + LONG $0xe67dc1c4; BYTE $0xe8 // vcvttpd2dq xmm5, ymm8 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0x4c59c3c4; WORD $0xc0e3 // vpblendvb xmm4, xmm4, xmm11, xmm12 + LONG $0x4c49c3c4; WORD $0xd0f3 // vpblendvb xmm6, xmm6, xmm11, xmm13 + LONG $0x4c41c3c4; WORD $0x10cb // vpblendvb xmm1, xmm7, xmm11, xmm1 + LONG $0xe662d9c5 // vpunpckldq xmm4, xmm4, xmm6 + LONG $0x4c51c3c4; WORD $0x30db // vpblendvb xmm3, xmm5, xmm11, xmm3 + LONG $0xcb62f1c5 // vpunpckldq xmm1, xmm1, xmm3 + LONG $0xc96cd9c5 // vpunpcklqdq xmm1, xmm4, xmm1 + LONG $0x7f7ac1c4; WORD $0x300c // vmovdqu oword [r8 + rsi], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_941 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_943 + +LBB4_948: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0x80e38341 // and r11d, -128 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x000000e0956ffdc5 // vmovdqa ymm2, yword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_949: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0x6c6ffec5; WORD $0x4031 // vmovdqu ymm5, yword [rcx + rsi + 64] + LONG $0x746ffec5; WORD $0x6031 // vmovdqu ymm6, yword [rcx + rsi + 96] + LONG $0xf874e5c5 // vpcmpeqb ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0745dc5 // vpcmpeqb ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87455c5 // vpcmpeqb ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0744dc5 // vpcmpeqb ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb64edc5 // vpcmpgtb ymm3, ymm2, ymm3 + LONG $0xe464edc5 // vpcmpgtb ymm4, ymm2, ymm4 + LONG $0xed64edc5 // vpcmpgtb ymm5, ymm2, ymm5 + LONG $0xf664edc5 // vpcmpgtb ymm6, ymm2, ymm6 + LONG $0x4c6de3c4; WORD $0x30df // vpblendvb ymm3, ymm2, ymm7, ymm3 + LONG $0x4c6dc3c4; WORD $0x40e0 // vpblendvb ymm4, ymm2, ymm8, ymm4 + LONG $0x4c6dc3c4; WORD $0x50e9 // vpblendvb ymm5, ymm2, ymm9, ymm5 + LONG $0x4c6dc3c4; WORD $0x60f2 // vpblendvb ymm6, ymm2, ymm10, ymm6 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x306c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0x3074; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm6 + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_949 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_951 + +LBB4_956: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x70 // vmovdqa xmm2, oword 112[rbp] /* [rip + .LCPI4_17] */ + +LBB4_957: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xdc62e1c5 // vpunpckldq xmm3, xmm3, xmm4 + LONG $0xe1efd5c5 // vpxor ymm4, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x60 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0xe562d9c5 // vpunpckldq xmm4, xmm4, xmm5 + LONG $0xdc6ce1c5 // vpunpcklqdq xmm3, xmm3, xmm4 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_957 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_959 + +LBB4_963: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00000080956ff9c5 // vmovdqa xmm2, oword 128[rbp] /* [rip + .LCPI4_19] */ + +LBB4_964: + LONG $0x1c75fdc5; BYTE $0x71 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc63e1c5 // vpacksswb xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x6475fdc5; WORD $0x2071 // vpcmpeqw ymm4, ymm0, yword [rcx + 2*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe563d9c5 // vpacksswb xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x6c75fdc5; WORD $0x4071 // vpcmpeqw ymm5, ymm0, yword [rcx + 2*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee63d1c5 // vpacksswb xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x7475fdc5; WORD $0x6071 // vpcmpeqw ymm6, ymm0, yword [rcx + 2*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf763c9c5 // vpacksswb xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x3064; BYTE $0x10 // vmovdqu oword [r8 + rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x306c; BYTE $0x20 // vmovdqu oword [r8 + rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0x3074; BYTE $0x30 // vmovdqu oword [r8 + rsi + 48], xmm6 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_964 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_966 + +LBB4_970: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xc0e38341 // and r11d, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + QUAD $0x000000808d6f79c5 // vmovdqa xmm9, oword 128[rbp] /* [rip + .LCPI4_19] */ + +LBB4_971: + LONG $0x246ffec5; BYTE $0x71 // vmovdqu ymm4, yword [rcx + 2*rsi] + LONG $0x6c6ffec5; WORD $0x2071 // vmovdqu ymm5, yword [rcx + 2*rsi + 32] + LONG $0x746ffec5; WORD $0x4071 // vmovdqu ymm6, yword [rcx + 2*rsi + 64] + LONG $0x7c6ffec5; WORD $0x6071 // vmovdqu ymm7, yword [rcx + 2*rsi + 96] + LONG $0xd865ddc5 // vpcmpgtw ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd16361c5 // vpacksswb xmm10, xmm3, xmm1 + LONG $0xc865d5c5 // vpcmpgtw ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xda6371c5 // vpacksswb xmm11, xmm1, xmm2 + LONG $0xd065cdc5 // vpcmpgtw ymm2, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd363e9c5 // vpacksswb xmm2, xmm2, xmm3 + LONG $0xd865c5c5 // vpcmpgtw ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc963e1c5 // vpacksswb xmm1, xmm3, xmm1 + LONG $0xd875ddc5 // vpcmpeqw ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc63e1c5 // vpacksswb xmm3, xmm3, xmm4 + LONG $0xe075d5c5 // vpcmpeqw ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe563d9c5 // vpacksswb xmm4, xmm4, xmm5 + LONG $0xe875cdc5 // vpcmpeqw ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee63d1c5 // vpacksswb xmm5, xmm5, xmm6 + LONG $0xf075c5c5 // vpcmpeqw ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf763c9c5 // vpacksswb xmm6, xmm6, xmm7 + LONG $0x4c61c3c4; WORD $0xa0d9 // vpblendvb xmm3, xmm3, xmm9, xmm10 + LONG $0x4c59c3c4; WORD $0xb0e1 // vpblendvb xmm4, xmm4, xmm9, xmm11 + LONG $0x4c51c3c4; WORD $0x20d1 // vpblendvb xmm2, xmm5, xmm9, xmm2 + LONG $0x4c49c3c4; WORD $0x10c9 // vpblendvb xmm1, xmm6, xmm9, xmm1 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x3064; BYTE $0x10 // vmovdqu oword [r8 + rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x3054; BYTE $0x20 // vmovdqu oword [r8 + rsi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x304c; BYTE $0x30 // vmovdqu oword [r8 + rsi + 48], xmm1 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_971 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_973 + +LBB4_978: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xf0e38341 // and r11d, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x5d6f79c5; BYTE $0x70 // vmovdqa xmm11, oword 112[rbp] /* [rip + .LCPI4_17] */ + +LBB4_979: + LONG $0x146f7ec5; BYTE $0xf1 // vmovdqu ymm10, yword [rcx + 8*rsi] + LONG $0x446f7ec5; WORD $0x20f1 // vmovdqu ymm8, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x646ffec5; WORD $0x60f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 96] + LONG $0x372de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm10, ymm0 + LONG $0x397de3c4; WORD $0x01cb // vextracti128 xmm3, ymm1, 1 + LONG $0xcb6bf1c5 // vpackssdw xmm1, xmm1, xmm3 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe16371c5 // vpacksswb xmm12, xmm1, xmm1 + LONG $0x373de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01cd // vextracti128 xmm5, ymm1, 1 + LONG $0xcd6bf1c5 // vpackssdw xmm1, xmm1, xmm5 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe96371c5 // vpacksswb xmm13, xmm1, xmm1 + LONG $0x374de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01cf // vextracti128 xmm7, ymm1, 1 + LONG $0xcf6bf1c5 // vpackssdw xmm1, xmm1, xmm7 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xf963f1c5 // vpacksswb xmm7, xmm1, xmm1 + LONG $0x375de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x292de2c4; BYTE $0xd0 // vpcmpeqq ymm2, ymm10, ymm0 + LONG $0xd2efb5c5 // vpxor ymm2, ymm9, ymm2 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0x293de2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm8, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefb5c5 // vpxor ymm5, ymm9, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0x295de2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e6 // vextracti128 xmm6, ymm4, 1 + LONG $0xe66bd9c5 // vpackssdw xmm4, xmm4, xmm6 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x4c69c3c4; WORD $0xc0d3 // vpblendvb xmm2, xmm2, xmm11, xmm12 + LONG $0x4c61c3c4; WORD $0xd0db // vpblendvb xmm3, xmm3, xmm11, xmm13 + LONG $0x4c51c3c4; WORD $0x70eb // vpblendvb xmm5, xmm5, xmm11, xmm7 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0x4c59c3c4; WORD $0x10cb // vpblendvb xmm1, xmm4, xmm11, xmm1 + LONG $0xc962d1c5 // vpunpckldq xmm1, xmm5, xmm1 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x7f7ac1c4; WORD $0x300c // vmovdqu oword [r8 + rsi], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_979 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_981 + +LBB4_986: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0x571841c4; BYTE $0xe4 // vxorps xmm12, xmm12, xmm12 + LONG $0x761541c4; BYTE $0xed // vpcmpeqd ymm13, ymm13, ymm13 + LONG $0x756f79c5; BYTE $0x50 // vmovdqa xmm14, oword 80[rbp] /* [rip + .LCPI4_12] */ + LONG $0x760141c4; BYTE $0xff // vpcmpeqd xmm15, xmm15, xmm15 + +LBB4_987: + LONG $0x0c107cc5; BYTE $0xb1 // vmovups ymm9, yword [rcx + 4*rsi] + LONG $0x54107cc5; WORD $0x20b1 // vmovups ymm10, yword [rcx + 4*rsi + 32] + LONG $0x5c107cc5; WORD $0x40b1 // vmovups ymm11, yword [rcx + 4*rsi + 64] + LONG $0x7c10fcc5; WORD $0x60b1 // vmovups ymm7, yword [rcx + 4*rsi + 96] + LONG $0xc234c1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm9, ymm12 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xc46359c5 // vpacksswb xmm8, xmm4, xmm4 + LONG $0xc22cc1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm10, ymm12 + LONG $0x197de3c4; WORD $0x01e6 // vextractf128 xmm6, ymm4, 1 + LONG $0xe66bd9c5 // vpackssdw xmm4, xmm4, xmm6 + LONG $0xf463d9c5 // vpacksswb xmm6, xmm4, xmm4 + LONG $0xc224c1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm11, ymm12 + LONG $0x197de3c4; WORD $0x01e0 // vextractf128 xmm0, ymm4, 1 + LONG $0xc06bd9c5 // vpackssdw xmm0, xmm4, xmm0 + LONG $0xe063f9c5 // vpacksswb xmm4, xmm0, xmm0 + LONG $0xc7c29cc5; BYTE $0x00 // vcmpeqps ymm0, ymm12, ymm7 + LONG $0x197de3c4; WORD $0x01c1 // vextractf128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0xc063f9c5 // vpacksswb xmm0, xmm0, xmm0 + LONG $0x6635c1c4; BYTE $0xcd // vpcmpgtd ymm1, ymm9, ymm13 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x662dc1c4; BYTE $0xd5 // vpcmpgtd ymm2, ymm10, ymm13 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0x6625c1c4; BYTE $0xdd // vpcmpgtd ymm3, ymm11, ymm13 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0x6645c1c4; BYTE $0xed // vpcmpgtd ymm5, ymm7, ymm13 + LONG $0x397de3c4; WORD $0x01ef // vextracti128 xmm7, ymm5, 1 + LONG $0xef6bd1c5 // vpackssdw xmm5, xmm5, xmm7 + LONG $0x4c01c3c4; WORD $0x10ce // vpblendvb xmm1, xmm15, xmm14, xmm1 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xc9dfb9c5 // vpandn xmm1, xmm8, xmm1 + LONG $0x4c01c3c4; WORD $0x20d6 // vpblendvb xmm2, xmm15, xmm14, xmm2 + LONG $0x4c01c3c4; WORD $0x30de // vpblendvb xmm3, xmm15, xmm14, xmm3 + LONG $0x4c01c3c4; WORD $0x50ee // vpblendvb xmm5, xmm15, xmm14, xmm5 + LONG $0xffefc1c5 // vpxor xmm7, xmm7, xmm7 + LONG $0x4c69e3c4; WORD $0x60d7 // vpblendvb xmm2, xmm2, xmm7, xmm6 + LONG $0x4c51e3c4; WORD $0x00c7 // vpblendvb xmm0, xmm5, xmm7, xmm0 + LONG $0xdbdfd9c5 // vpandn xmm3, xmm4, xmm3 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x7f7ec1c4; WORD $0x3004 // vmovdqu yword [r8 + rsi], ymm0 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_987 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + JMP LBB4_989 + +LBB4_994: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0x80 // and edx, -128 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x000000e08d6ffdc5 // vmovdqa ymm1, yword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_995: + LONG $0x1474fdc5; BYTE $0x31 // vpcmpeqb ymm2, ymm0, yword [rcx + rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c74fdc5; WORD $0x2031 // vpcmpeqb ymm3, ymm0, yword [rcx + rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6474fdc5; WORD $0x4031 // vpcmpeqb ymm4, ymm0, yword [rcx + rsi + 64] + LONG $0x6c74fdc5; WORD $0x6031 // vpcmpeqb ymm5, ymm0, yword [rcx + rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0x3014 // vmovdqu yword [r8 + rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0x305c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0x306c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm5 + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_995 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_997 + +LBB4_1001: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xe0e38341 // and r11d, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x556f79c5; BYTE $0x50 // vmovdqa xmm10, oword 80[rbp] /* [rip + .LCPI4_12] */ + +LBB4_1002: + LONG $0x3c6ffec5; BYTE $0xb1 // vmovdqu ymm7, yword [rcx + 4*rsi] + LONG $0x446f7ec5; WORD $0x20b1 // vmovdqu ymm8, yword [rcx + 4*rsi + 32] + LONG $0x746ffec5; WORD $0x40b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 64] + LONG $0x646ffec5; WORD $0x60b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 96] + LONG $0xd866c5c5 // vpcmpgtd ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6361c5 // vpacksswb xmm11, xmm3, xmm3 + LONG $0xe866bdc5 // vpcmpgtd ymm5, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01e9 // vextracti128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xe16371c5 // vpacksswb xmm12, xmm1, xmm1 + LONG $0xc866cdc5 // vpcmpgtd ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xd066ddc5 // vpcmpgtd ymm2, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0xd876c5c5 // vpcmpeqd ymm3, ymm7, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01df // vextracti128 xmm7, ymm3, 1 + LONG $0xdf6be1c5 // vpackssdw xmm3, xmm3, xmm7 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xf876bdc5 // vpcmpeqd ymm7, ymm8, ymm0 + LONG $0xffefb5c5 // vpxor ymm7, ymm9, ymm7 + LONG $0x397de3c4; WORD $0x01fd // vextracti128 xmm5, ymm7, 1 + LONG $0xed6bc1c5 // vpackssdw xmm5, xmm7, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xf076cdc5 // vpcmpeqd ymm6, ymm6, ymm0 + LONG $0xf6efb5c5 // vpxor ymm6, ymm9, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf663c9c5 // vpacksswb xmm6, xmm6, xmm6 + LONG $0xe076ddc5 // vpcmpeqd ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e7 // vextracti128 xmm7, ymm4, 1 + LONG $0xe76bd9c5 // vpackssdw xmm4, xmm4, xmm7 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x4c61c3c4; WORD $0xb0da // vpblendvb xmm3, xmm3, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c59c3c4; WORD $0x20d2 // vpblendvb xmm2, xmm4, xmm10, xmm2 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0x3865e3c4; WORD $0x01d5 // vinserti128 ymm2, ymm3, xmm5, 1 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1002 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_1004 + +LBB4_1009: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1010: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x227d62c4; BYTE $0xcf // vpmovsxbq ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x227d62c4; BYTE $0xd1 // vpmovsxbq ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x227de2c4; BYTE $0xff // vpmovsxbq ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0x227de2c4; BYTE $0xc9 // vpmovsxbq ymm1, xmm1 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x227de2c4; BYTE $0xdb // vpmovsxbq ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x227de2c4; BYTE $0xe4 // vpmovsxbq ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x227de2c4; BYTE $0xed // vpmovsxbq ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x227de2c4; BYTE $0xf6 // vpmovsxbq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1010 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1012 + +LBB4_1017: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x597de2c4; WORD $0x284d // vpbroadcastq ymm1, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1018: + LONG $0x297de2c4; WORD $0xf114 // vpcmpeqq ymm2, ymm0, yword [rcx + 8*rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x297de2c4; WORD $0xf15c; BYTE $0x20 // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x40 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 64] + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x60 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0xf014 // vmovdqu yword [r8 + 8*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf05c; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm5 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1018 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1020 + +LBB4_1024: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1025: + LONG $0x1c6ffec5; BYTE $0xf1 // vmovdqu ymm3, yword [rcx + 8*rsi] + LONG $0x646ffec5; WORD $0x20f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40f1 // vmovdqu ymm5, yword [rcx + 8*rsi + 64] + LONG $0x746ffec5; WORD $0x60f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 96] + LONG $0x2965e2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0x295d62c4; BYTE $0xc0 // vpcmpeqq ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0x295562c4; BYTE $0xc8 // vpcmpeqq ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0x294d62c4; BYTE $0xd0 // vpcmpeqq ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0x376de2c4; BYTE $0xdb // vpcmpgtq ymm3, ymm2, ymm3 + LONG $0x376de2c4; BYTE $0xe4 // vpcmpgtq ymm4, ymm2, ymm4 + LONG $0x376de2c4; BYTE $0xed // vpcmpgtq ymm5, ymm2, ymm5 + LONG $0x376de2c4; BYTE $0xf6 // vpcmpgtq ymm6, ymm2, ymm6 + LONG $0x4b6de3c4; WORD $0x30df // vblendvpd ymm3, ymm2, ymm7, ymm3 + LONG $0x4b6dc3c4; WORD $0x40e0 // vblendvpd ymm4, ymm2, ymm8, ymm4 + LONG $0x4b6dc3c4; WORD $0x50e9 // vblendvpd ymm5, ymm2, ymm9, ymm5 + LONG $0x4b6dc3c4; WORD $0x60f2 // vblendvpd ymm6, ymm2, ymm10, ymm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1025 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1027 + +LBB4_1032: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1033: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x327de2c4; BYTE $0xdb // vpmovzxbq ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x327de2c4; BYTE $0xe4 // vpmovzxbq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x327de2c4; BYTE $0xed // vpmovzxbq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x327de2c4; BYTE $0xf6 // vpmovzxbq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1033 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1035 + +LBB4_1039: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1040: + LONG $0x1c6ffac5; BYTE $0x31 // vmovdqu xmm3, oword [rcx + rsi] + LONG $0x646ffac5; WORD $0x1031 // vmovdqu xmm4, oword [rcx + rsi + 16] + LONG $0x6c6ffac5; WORD $0x2031 // vmovdqu xmm5, oword [rcx + rsi + 32] + LONG $0x746ffac5; WORD $0x3031 // vmovdqu xmm6, oword [rcx + rsi + 48] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x207d62c4; BYTE $0xd7 // vpmovsxbw ymm10, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x207de2c4; BYTE $0xc9 // vpmovsxbw ymm1, xmm1 + LONG $0xd064d1c5 // vpcmpgtb xmm2, xmm5, xmm0 + LONG $0x207de2c4; BYTE $0xd2 // vpmovsxbw ymm2, xmm2 + LONG $0xf864c9c5 // vpcmpgtb xmm7, xmm6, xmm0 + LONG $0x207de2c4; BYTE $0xff // vpmovsxbw ymm7, xmm7 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x207de2c4; BYTE $0xdb // vpmovsxbw ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x207de2c4; BYTE $0xe4 // vpmovsxbw ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x207de2c4; BYTE $0xed // vpmovsxbw ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x207de2c4; BYTE $0xf6 // vpmovsxbw ymm6, xmm6 + LONG $0x4c65c3c4; WORD $0xa0d9 // vpblendvb ymm3, ymm3, ymm9, ymm10 + LONG $0x4c5dc3c4; WORD $0x10c9 // vpblendvb ymm1, ymm4, ymm9, ymm1 + LONG $0x4c55c3c4; WORD $0x20d1 // vpblendvb ymm2, ymm5, ymm9, ymm2 + LONG $0x4c4dc3c4; WORD $0x70e1 // vpblendvb ymm4, ymm6, ymm9, ymm7 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x704c; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7054; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm4 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1040 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1042 + +LBB4_1047: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1048: + LONG $0x1c6ffac5; BYTE $0x31 // vmovdqu xmm3, oword [rcx + rsi] + LONG $0x646ffac5; WORD $0x1031 // vmovdqu xmm4, oword [rcx + rsi + 16] + LONG $0x6c6ffac5; WORD $0x2031 // vmovdqu xmm5, oword [rcx + rsi + 32] + LONG $0x746ffac5; WORD $0x3031 // vmovdqu xmm6, oword [rcx + rsi + 48] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x207d62c4; BYTE $0xd7 // vpmovsxbw ymm10, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x207de2c4; BYTE $0xc9 // vpmovsxbw ymm1, xmm1 + LONG $0xd064d1c5 // vpcmpgtb xmm2, xmm5, xmm0 + LONG $0x207de2c4; BYTE $0xd2 // vpmovsxbw ymm2, xmm2 + LONG $0xf864c9c5 // vpcmpgtb xmm7, xmm6, xmm0 + LONG $0x207de2c4; BYTE $0xff // vpmovsxbw ymm7, xmm7 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x207de2c4; BYTE $0xdb // vpmovsxbw ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x207de2c4; BYTE $0xe4 // vpmovsxbw ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x207de2c4; BYTE $0xed // vpmovsxbw ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x207de2c4; BYTE $0xf6 // vpmovsxbw ymm6, xmm6 + LONG $0x4c65c3c4; WORD $0xa0d9 // vpblendvb ymm3, ymm3, ymm9, ymm10 + LONG $0x4c5dc3c4; WORD $0x10c9 // vpblendvb ymm1, ymm4, ymm9, ymm1 + LONG $0x4c55c3c4; WORD $0x20d1 // vpblendvb ymm2, ymm5, ymm9, ymm2 + LONG $0x4c4dc3c4; WORD $0x70e1 // vpblendvb ymm4, ymm6, ymm9, ymm7 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x704c; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm1 + LONG $0x7f7ec1c4; WORD $0x7054; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm4 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1048 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1050 + +LBB4_1055: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1317 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x000000c08d6ffdc5 // vmovdqa ymm1, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1057: + LONG $0x1475fdc5; BYTE $0x79 // vpcmpeqw ymm2, ymm0, yword [rcx + 2*rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x2079 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x7f7ec1c4; WORD $0x7814 // vmovdqu yword [r8 + 2*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm3 + LONG $0x5475fdc5; WORD $0x4079 // vpcmpeqw ymm2, ymm0, yword [rcx + 2*rdi + 64] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x6079 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rdi + 96] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB4_1057 + JMP LBB4_1318 + +LBB4_1058: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1325 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x000000c08d6ffdc5 // vmovdqa ymm1, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1060: + LONG $0x1475fdc5; BYTE $0x79 // vpcmpeqw ymm2, ymm0, yword [rcx + 2*rdi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x2079 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rdi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x7f7ec1c4; WORD $0x7814 // vmovdqu yword [r8 + 2*rdi], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm3 + LONG $0x5475fdc5; WORD $0x4079 // vpcmpeqw ymm2, ymm0, yword [rcx + 2*rdi + 64] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c75fdc5; WORD $0x6079 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rdi + 96] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x7f7ec1c4; WORD $0x7854; BYTE $0x40 // vmovdqu yword [r8 + 2*rdi + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x785c; BYTE $0x60 // vmovdqu yword [r8 + 2*rdi + 96], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB4_1060 + JMP LBB4_1326 + +LBB4_1061: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1333 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1063: + LONG $0x1c6ffec5; BYTE $0x71 // vmovdqu ymm3, yword [rcx + 2*rsi] + LONG $0x646ffec5; WORD $0x2071 // vmovdqu ymm4, yword [rcx + 2*rsi + 32] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm4 + LONG $0x5c6ffec5; WORD $0x4071 // vmovdqu ymm3, yword [rcx + 2*rsi + 64] + LONG $0x646ffec5; WORD $0x6071 // vmovdqu ymm4, yword [rcx + 2*rsi + 96] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x7f7ec1c4; WORD $0x705c; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm4 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_1063 + JMP LBB4_1334 + +LBB4_1064: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1342 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1066: + LONG $0x1c6ffec5; BYTE $0x71 // vmovdqu ymm3, yword [rcx + 2*rsi] + LONG $0x646ffec5; WORD $0x2071 // vmovdqu ymm4, yword [rcx + 2*rsi + 32] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm4 + LONG $0x5c6ffec5; WORD $0x4071 // vmovdqu ymm3, yword [rcx + 2*rsi + 64] + LONG $0x646ffec5; WORD $0x6071 // vmovdqu ymm4, yword [rcx + 2*rsi + 96] + LONG $0xe875e5c5 // vpcmpeqw ymm5, ymm3, ymm0 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0xf075ddc5 // vpcmpeqw ymm6, ymm4, ymm0 + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0xdb65edc5 // vpcmpgtw ymm3, ymm2, ymm3 + LONG $0xe465edc5 // vpcmpgtw ymm4, ymm2, ymm4 + LONG $0x4c6de3c4; WORD $0x30dd // vpblendvb ymm3, ymm2, ymm5, ymm3 + LONG $0x4c6de3c4; WORD $0x40e6 // vpblendvb ymm4, ymm2, ymm6, ymm4 + LONG $0x7f7ec1c4; WORD $0x705c; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm4 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_1066 + JMP LBB4_1343 + +LBB4_1067: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1068: + LONG $0x1c74f9c5; BYTE $0x31 // vpcmpeqb xmm3, xmm0, oword [rcx + rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x307de2c4; BYTE $0xdb // vpmovzxbw ymm3, xmm3 + LONG $0x6474f9c5; WORD $0x1031 // vpcmpeqb xmm4, xmm0, oword [rcx + rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x307de2c4; BYTE $0xe4 // vpmovzxbw ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c74f9c5; WORD $0x2031 // vpcmpeqb xmm5, xmm0, oword [rcx + rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x307de2c4; BYTE $0xed // vpmovzxbw ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7474f9c5; WORD $0x3031 // vpcmpeqb xmm6, xmm0, oword [rcx + rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x307de2c4; BYTE $0xf6 // vpmovzxbw ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x706c; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0x7074; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm6 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1068 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1070 + +LBB4_1074: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_1075: + LONG $0x1c74f9c5; BYTE $0x31 // vpcmpeqb xmm3, xmm0, oword [rcx + rsi] + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x307de2c4; BYTE $0xdb // vpmovzxbw ymm3, xmm3 + LONG $0x6474f9c5; WORD $0x1031 // vpcmpeqb xmm4, xmm0, oword [rcx + rsi + 16] + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x307de2c4; BYTE $0xe4 // vpmovzxbw ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0x6c74f9c5; WORD $0x2031 // vpcmpeqb xmm5, xmm0, oword [rcx + rsi + 32] + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x307de2c4; BYTE $0xed // vpmovzxbw ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0x7474f9c5; WORD $0x3031 // vpcmpeqb xmm6, xmm0, oword [rcx + rsi + 48] + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x307de2c4; BYTE $0xf6 // vpmovzxbw ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0x701c // vmovdqu yword [r8 + 2*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x7064; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x706c; BYTE $0x40 // vmovdqu yword [r8 + 2*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0x7074; BYTE $0x60 // vmovdqu yword [r8 + 2*rsi + 96], ymm6 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1075 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1077 + +LBB4_1081: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + LONG $0x197de2c4; WORD $0x2855 // vbroadcastsd ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1082: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x227d62c4; BYTE $0xcf // vpmovsxbq ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x227d62c4; BYTE $0xd1 // vpmovsxbq ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x227de2c4; BYTE $0xff // vpmovsxbq ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0x227de2c4; BYTE $0xc9 // vpmovsxbq ymm1, xmm1 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x227de2c4; BYTE $0xdb // vpmovsxbq ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x227de2c4; BYTE $0xe4 // vpmovsxbq ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x227de2c4; BYTE $0xed // vpmovsxbq ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x227de2c4; BYTE $0xf6 // vpmovsxbq ymm6, xmm6 + LONG $0x4b65e3c4; WORD $0x90da // vblendvpd ymm3, ymm3, ymm2, ymm9 + LONG $0x4b5de3c4; WORD $0xa0e2 // vblendvpd ymm4, ymm4, ymm2, ymm10 + LONG $0x4b55e3c4; WORD $0x70ea // vblendvpd ymm5, ymm5, ymm2, ymm7 + LONG $0x4b4de3c4; WORD $0x10ca // vblendvpd ymm1, ymm6, ymm2, ymm1 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf04c; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1082 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1084 + +LBB4_1089: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009895187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_1090: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x217d62c4; BYTE $0xcf // vpmovsxbd ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x217d62c4; BYTE $0xd1 // vpmovsxbd ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x217de2c4; BYTE $0xff // vpmovsxbd ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0x217de2c4; BYTE $0xc9 // vpmovsxbd ymm1, xmm1 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x217de2c4; BYTE $0xdb // vpmovsxbd ymm3, xmm3 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x217de2c4; BYTE $0xe4 // vpmovsxbd ymm4, xmm4 + LONG $0xe45bfcc5 // vcvtdq2ps ymm4, ymm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x217de2c4; BYTE $0xed // vpmovsxbd ymm5, xmm5 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x217de2c4; BYTE $0xf6 // vpmovsxbd ymm6, xmm6 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1090 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1092 + +LBB4_1095: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x597de2c4; WORD $0x284d // vpbroadcastq ymm1, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1096: + LONG $0x297de2c4; WORD $0xf114 // vpcmpeqq ymm2, ymm0, yword [rcx + 8*rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x297de2c4; WORD $0xf15c; BYTE $0x20 // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x40 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 64] + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x60 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0xf014 // vmovdqu yword [r8 + 8*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xf05c; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm5 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1096 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1098 + +LBB4_1102: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1103: + LONG $0x1c6ffec5; BYTE $0xf1 // vmovdqu ymm3, yword [rcx + 8*rsi] + LONG $0x646ffec5; WORD $0x20f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40f1 // vmovdqu ymm5, yword [rcx + 8*rsi + 64] + LONG $0x746ffec5; WORD $0x60f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 96] + LONG $0x2965e2c4; BYTE $0xf8 // vpcmpeqq ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0x295d62c4; BYTE $0xc0 // vpcmpeqq ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0x295562c4; BYTE $0xc8 // vpcmpeqq ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0x294d62c4; BYTE $0xd0 // vpcmpeqq ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0x376de2c4; BYTE $0xdb // vpcmpgtq ymm3, ymm2, ymm3 + LONG $0x376de2c4; BYTE $0xe4 // vpcmpgtq ymm4, ymm2, ymm4 + LONG $0x376de2c4; BYTE $0xed // vpcmpgtq ymm5, ymm2, ymm5 + LONG $0x376de2c4; BYTE $0xf6 // vpcmpgtq ymm6, ymm2, ymm6 + LONG $0x4b6de3c4; WORD $0x30df // vblendvpd ymm3, ymm2, ymm7, ymm3 + LONG $0x4b6dc3c4; WORD $0x40e0 // vblendvpd ymm4, ymm2, ymm8, ymm4 + LONG $0x4b6dc3c4; WORD $0x50e9 // vblendvpd ymm5, ymm2, ymm9, ymm5 + LONG $0x4b6dc3c4; WORD $0x60f2 // vblendvpd ymm6, ymm2, ymm10, ymm6 + LONG $0x117dc1c4; WORD $0xf01c // vmovupd yword [r8 + 8*rsi], ymm3 + LONG $0x117dc1c4; WORD $0xf064; BYTE $0x20 // vmovupd yword [r8 + 8*rsi + 32], ymm4 + LONG $0x117dc1c4; WORD $0xf06c; BYTE $0x40 // vmovupd yword [r8 + 8*rsi + 64], ymm5 + LONG $0x117dc1c4; WORD $0xf074; BYTE $0x60 // vmovupd yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1103 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1105 + +LBB4_1110: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + QUAD $0x00009c8d587de2c4; BYTE $0x00 // vpbroadcastd ymm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1111: + LONG $0x146ffec5; BYTE $0xb1 // vmovdqu ymm2, yword [rcx + 4*rsi] + LONG $0x5c6ffec5; WORD $0x20b1 // vmovdqu ymm3, yword [rcx + 4*rsi + 32] + LONG $0x646ffec5; WORD $0x40b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 64] + LONG $0x6c6ffec5; WORD $0x60b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 96] + LONG $0xe272cdc5; BYTE $0x1f // vpsrad ymm6, ymm2, 31 + LONG $0xf1ebcdc5 // vpor ymm6, ymm6, ymm1 + LONG $0xe372c5c5; BYTE $0x1f // vpsrad ymm7, ymm3, 31 + LONG $0xf9ebc5c5 // vpor ymm7, ymm7, ymm1 + LONG $0xe472bdc5; BYTE $0x1f // vpsrad ymm8, ymm4, 31 + LONG $0xc1eb3dc5 // vpor ymm8, ymm8, ymm1 + LONG $0xe572b5c5; BYTE $0x1f // vpsrad ymm9, ymm5, 31 + LONG $0xc9eb35c5 // vpor ymm9, ymm9, ymm1 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0xff5bfcc5 // vcvtdq2ps ymm7, ymm7 + LONG $0x5b7c41c4; BYTE $0xc0 // vcvtdq2ps ymm8, ymm8 + LONG $0x5b7c41c4; BYTE $0xc9 // vcvtdq2ps ymm9, ymm9 + LONG $0xd0c2ecc5; BYTE $0x04 // vcmpneqps ymm2, ymm2, ymm0 + LONG $0xd654ecc5 // vandps ymm2, ymm2, ymm6 + LONG $0xd8c2e4c5; BYTE $0x04 // vcmpneqps ymm3, ymm3, ymm0 + LONG $0xdf54e4c5 // vandps ymm3, ymm3, ymm7 + LONG $0xe0c2dcc5; BYTE $0x04 // vcmpneqps ymm4, ymm4, ymm0 + LONG $0xe454bcc5 // vandps ymm4, ymm8, ymm4 + LONG $0xe8c2d4c5; BYTE $0x04 // vcmpneqps ymm5, ymm5, ymm0 + LONG $0xed54b4c5 // vandps ymm5, ymm9, ymm5 + LONG $0x117cc1c4; WORD $0xb014 // vmovups yword [r8 + 4*rsi], ymm2 + LONG $0x117cc1c4; WORD $0xb05c; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1111 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1113 + +LBB4_1118: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x2855 // vpbroadcastq ymm2, qword 40[rbp] /* [rip + .LCPI4_15] */ + +LBB4_1119: + LONG $0x1c6ef9c5; BYTE $0x31 // vmovd xmm3, dword [rcx + rsi] + LONG $0x646ef9c5; WORD $0x0431 // vmovd xmm4, dword [rcx + rsi + 4] + LONG $0x6c6ef9c5; WORD $0x0831 // vmovd xmm5, dword [rcx + rsi + 8] + LONG $0x746ef9c5; WORD $0x0c31 // vmovd xmm6, dword [rcx + rsi + 12] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x327de2c4; BYTE $0xdb // vpmovzxbq ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x327de2c4; BYTE $0xe4 // vpmovzxbq ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x327de2c4; BYTE $0xed // vpmovzxbq ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x327de2c4; BYTE $0xf6 // vpmovzxbq ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xf01c // vmovdqu yword [r8 + 8*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xf064; BYTE $0x20 // vmovdqu yword [r8 + 8*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xf06c; BYTE $0x40 // vmovdqu yword [r8 + 8*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xf074; BYTE $0x60 // vmovdqu yword [r8 + 8*rsi + 96], ymm6 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1119 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1121 + +LBB4_1125: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1126: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x317de2c4; BYTE $0xdb // vpmovzxbd ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x317de2c4; BYTE $0xe4 // vpmovzxbd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe45bfcc5 // vcvtdq2ps ymm4, ymm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x317de2c4; BYTE $0xed // vpmovzxbd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xed5bfcc5 // vcvtdq2ps ymm5, ymm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x317de2c4; BYTE $0xf6 // vpmovzxbd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0xf65bfcc5 // vcvtdq2ps ymm6, ymm6 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb074; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1126 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1128 + +LBB4_1144: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x50 // vmovdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_12] */ + +LBB4_1145: + LONG $0x1c76fdc5; BYTE $0xb1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x6476fdc5; WORD $0x20b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x6c76fdc5; WORD $0x40b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 64] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x7476fdc5; WORD $0x60b1 // vpcmpeqd ymm6, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf663c9c5 // vpacksswb xmm6, xmm6, xmm6 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0xdd6ce5c5 // vpunpcklqdq ymm3, ymm3, ymm5 + LONG $0x00fde3c4; WORD $0xd8db // vpermq ymm3, ymm3, 216 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1145 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1147 + +LBB4_1151: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0x597de2c4; WORD $0x0045 // vpbroadcastq ymm0, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x572941c4; BYTE $0xd2 // vxorpd xmm10, xmm10, xmm10 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xef2141c4; BYTE $0xdb // vpxor xmm11, xmm11, xmm11 + +LBB4_1152: + LONG $0x3410fdc5; BYTE $0xf1 // vmovupd ymm6, yword [rcx + 8*rsi] + LONG $0x7c10fdc5; WORD $0x20f1 // vmovupd ymm7, yword [rcx + 8*rsi + 32] + LONG $0x44107dc5; WORD $0x40f1 // vmovupd ymm8, yword [rcx + 8*rsi + 64] + LONG $0x4c107dc5; WORD $0x60f1 // vmovupd ymm9, yword [rcx + 8*rsi + 96] + LONG $0xe6c2adc5; BYTE $0x00 // vcmpeqpd ymm4, ymm10, ymm6 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe46359c5 // vpacksswb xmm12, xmm4, xmm4 + LONG $0xefc2adc5; BYTE $0x00 // vcmpeqpd ymm5, ymm10, ymm7 + LONG $0x197de3c4; WORD $0x01e9 // vextractf128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe96371c5 // vpacksswb xmm13, xmm1, xmm1 + LONG $0xc23dc1c4; WORD $0x00ca // vcmpeqpd ymm1, ymm8, ymm10 + LONG $0x197de3c4; WORD $0x01cb // vextractf128 xmm3, ymm1, 1 + LONG $0xcb6bf1c5 // vpackssdw xmm1, xmm1, xmm3 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xc235c1c4; WORD $0x00da // vcmpeqpd ymm3, ymm9, ymm10 + LONG $0x197de3c4; WORD $0x01dc // vextractf128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xe054cdc5 // vandpd ymm4, ymm6, ymm0 + LONG $0xe456edc5 // vorpd ymm4, ymm2, ymm4 + LONG $0xf054c5c5 // vandpd ymm6, ymm7, ymm0 + LONG $0xf656edc5 // vorpd ymm6, ymm2, ymm6 + LONG $0xf854bdc5 // vandpd ymm7, ymm8, ymm0 + LONG $0xff56edc5 // vorpd ymm7, ymm2, ymm7 + LONG $0xc05435c5 // vandpd ymm8, ymm9, ymm0 + LONG $0xc2563dc5 // vorpd ymm8, ymm8, ymm2 + LONG $0xe4e6fdc5 // vcvttpd2dq xmm4, ymm4 + LONG $0x2b59e2c4; BYTE $0xe4 // vpackusdw xmm4, xmm4, xmm4 + LONG $0xe467d9c5 // vpackuswb xmm4, xmm4, xmm4 + LONG $0xf6e6fdc5 // vcvttpd2dq xmm6, ymm6 + LONG $0x2b49e2c4; BYTE $0xf6 // vpackusdw xmm6, xmm6, xmm6 + LONG $0xf667c9c5 // vpackuswb xmm6, xmm6, xmm6 + LONG $0xffe6fdc5 // vcvttpd2dq xmm7, ymm7 + LONG $0x2b41e2c4; BYTE $0xff // vpackusdw xmm7, xmm7, xmm7 + LONG $0xff67c1c5 // vpackuswb xmm7, xmm7, xmm7 + LONG $0xe67dc1c4; BYTE $0xe8 // vcvttpd2dq xmm5, ymm8 + LONG $0x2b51e2c4; BYTE $0xed // vpackusdw xmm5, xmm5, xmm5 + LONG $0xed67d1c5 // vpackuswb xmm5, xmm5, xmm5 + LONG $0x4c59c3c4; WORD $0xc0e3 // vpblendvb xmm4, xmm4, xmm11, xmm12 + LONG $0x4c49c3c4; WORD $0xd0f3 // vpblendvb xmm6, xmm6, xmm11, xmm13 + LONG $0x4c41c3c4; WORD $0x10cb // vpblendvb xmm1, xmm7, xmm11, xmm1 + LONG $0xe662d9c5 // vpunpckldq xmm4, xmm4, xmm6 + LONG $0x4c51c3c4; WORD $0x30db // vpblendvb xmm3, xmm5, xmm11, xmm3 + LONG $0xcb62f1c5 // vpunpckldq xmm1, xmm1, xmm3 + LONG $0xc96cd9c5 // vpunpcklqdq xmm1, xmm4, xmm1 + LONG $0x7f7ac1c4; WORD $0x300c // vmovdqu oword [r8 + rsi], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1152 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1154 + +LBB4_1159: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0x80e38341 // and r11d, -128 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x000000e0956ffdc5 // vmovdqa ymm2, yword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_1160: + LONG $0x1c6ffec5; BYTE $0x31 // vmovdqu ymm3, yword [rcx + rsi] + LONG $0x646ffec5; WORD $0x2031 // vmovdqu ymm4, yword [rcx + rsi + 32] + LONG $0x6c6ffec5; WORD $0x4031 // vmovdqu ymm5, yword [rcx + rsi + 64] + LONG $0x746ffec5; WORD $0x6031 // vmovdqu ymm6, yword [rcx + rsi + 96] + LONG $0xf874e5c5 // vpcmpeqb ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0745dc5 // vpcmpeqb ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87455c5 // vpcmpeqb ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0744dc5 // vpcmpeqb ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb64edc5 // vpcmpgtb ymm3, ymm2, ymm3 + LONG $0xe464edc5 // vpcmpgtb ymm4, ymm2, ymm4 + LONG $0xed64edc5 // vpcmpgtb ymm5, ymm2, ymm5 + LONG $0xf664edc5 // vpcmpgtb ymm6, ymm2, ymm6 + LONG $0x4c6de3c4; WORD $0x30df // vpblendvb ymm3, ymm2, ymm7, ymm3 + LONG $0x4c6dc3c4; WORD $0x40e0 // vpblendvb ymm4, ymm2, ymm8, ymm4 + LONG $0x4c6dc3c4; WORD $0x50e9 // vpblendvb ymm5, ymm2, ymm9, ymm5 + LONG $0x4c6dc3c4; WORD $0x60f2 // vpblendvb ymm6, ymm2, ymm10, ymm6 + LONG $0x7f7ec1c4; WORD $0x301c // vmovdqu yword [r8 + rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x306c; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0x3074; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm6 + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1160 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_1162 + +LBB4_1167: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0x556ff9c5; BYTE $0x70 // vmovdqa xmm2, oword 112[rbp] /* [rip + .LCPI4_17] */ + +LBB4_1168: + LONG $0x297de2c4; WORD $0xf11c // vpcmpeqq ymm3, ymm0, yword [rcx + 8*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x297de2c4; WORD $0xf164; BYTE $0x20 // vpcmpeqq ymm4, ymm0, yword [rcx + 8*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x40 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 64] + LONG $0xdc62e1c5 // vpunpckldq xmm3, xmm3, xmm4 + LONG $0xe1efd5c5 // vpxor ymm4, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x297de2c4; WORD $0xf16c; BYTE $0x60 // vpcmpeqq ymm5, ymm0, yword [rcx + 8*rsi + 96] + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0xe562d9c5 // vpunpckldq xmm4, xmm4, xmm5 + LONG $0xdc6ce1c5 // vpunpcklqdq xmm3, xmm3, xmm4 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1168 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1170 + +LBB4_1174: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xc0 // and edx, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00000080956ff9c5 // vmovdqa xmm2, oword 128[rbp] /* [rip + .LCPI4_19] */ + +LBB4_1175: + LONG $0x1c75fdc5; BYTE $0x71 // vpcmpeqw ymm3, ymm0, yword [rcx + 2*rsi] + LONG $0xd9efe5c5 // vpxor ymm3, ymm3, ymm1 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc63e1c5 // vpacksswb xmm3, xmm3, xmm4 + LONG $0xdadbe1c5 // vpand xmm3, xmm3, xmm2 + LONG $0x6475fdc5; WORD $0x2071 // vpcmpeqw ymm4, ymm0, yword [rcx + 2*rsi + 32] + LONG $0xe1efddc5 // vpxor ymm4, ymm4, ymm1 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe563d9c5 // vpacksswb xmm4, xmm4, xmm5 + LONG $0xe2dbd9c5 // vpand xmm4, xmm4, xmm2 + LONG $0x6c75fdc5; WORD $0x4071 // vpcmpeqw ymm5, ymm0, yword [rcx + 2*rsi + 64] + LONG $0xe9efd5c5 // vpxor ymm5, ymm5, ymm1 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee63d1c5 // vpacksswb xmm5, xmm5, xmm6 + LONG $0xeadbd1c5 // vpand xmm5, xmm5, xmm2 + LONG $0x7475fdc5; WORD $0x6071 // vpcmpeqw ymm6, ymm0, yword [rcx + 2*rsi + 96] + LONG $0xf1efcdc5 // vpxor ymm6, ymm6, ymm1 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf763c9c5 // vpacksswb xmm6, xmm6, xmm7 + LONG $0xf2dbc9c5 // vpand xmm6, xmm6, xmm2 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x3064; BYTE $0x10 // vmovdqu oword [r8 + rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x306c; BYTE $0x20 // vmovdqu oword [r8 + rsi + 32], xmm5 + LONG $0x7f7ac1c4; WORD $0x3074; BYTE $0x30 // vmovdqu oword [r8 + rsi + 48], xmm6 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1175 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1177 + +LBB4_1181: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xc0e38341 // and r11d, -64 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + QUAD $0x000000808d6f79c5 // vmovdqa xmm9, oword 128[rbp] /* [rip + .LCPI4_19] */ + +LBB4_1182: + LONG $0x246ffec5; BYTE $0x71 // vmovdqu ymm4, yword [rcx + 2*rsi] + LONG $0x6c6ffec5; WORD $0x2071 // vmovdqu ymm5, yword [rcx + 2*rsi + 32] + LONG $0x746ffec5; WORD $0x4071 // vmovdqu ymm6, yword [rcx + 2*rsi + 64] + LONG $0x7c6ffec5; WORD $0x6071 // vmovdqu ymm7, yword [rcx + 2*rsi + 96] + LONG $0xd865ddc5 // vpcmpgtw ymm3, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xd16361c5 // vpacksswb xmm10, xmm3, xmm1 + LONG $0xc865d5c5 // vpcmpgtw ymm1, ymm5, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xda6371c5 // vpacksswb xmm11, xmm1, xmm2 + LONG $0xd065cdc5 // vpcmpgtw ymm2, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd363e9c5 // vpacksswb xmm2, xmm2, xmm3 + LONG $0xd865c5c5 // vpcmpgtw ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01d9 // vextracti128 xmm1, ymm3, 1 + LONG $0xc963e1c5 // vpacksswb xmm1, xmm3, xmm1 + LONG $0xd875ddc5 // vpcmpeqw ymm3, ymm4, ymm0 + LONG $0xdbefbdc5 // vpxor ymm3, ymm8, ymm3 + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc63e1c5 // vpacksswb xmm3, xmm3, xmm4 + LONG $0xe075d5c5 // vpcmpeqw ymm4, ymm5, ymm0 + LONG $0xe4efbdc5 // vpxor ymm4, ymm8, ymm4 + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe563d9c5 // vpacksswb xmm4, xmm4, xmm5 + LONG $0xe875cdc5 // vpcmpeqw ymm5, ymm6, ymm0 + LONG $0xedefbdc5 // vpxor ymm5, ymm8, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee63d1c5 // vpacksswb xmm5, xmm5, xmm6 + LONG $0xf075c5c5 // vpcmpeqw ymm6, ymm7, ymm0 + LONG $0xf6efbdc5 // vpxor ymm6, ymm8, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf763c9c5 // vpacksswb xmm6, xmm6, xmm7 + LONG $0x4c61c3c4; WORD $0xa0d9 // vpblendvb xmm3, xmm3, xmm9, xmm10 + LONG $0x4c59c3c4; WORD $0xb0e1 // vpblendvb xmm4, xmm4, xmm9, xmm11 + LONG $0x4c51c3c4; WORD $0x20d1 // vpblendvb xmm2, xmm5, xmm9, xmm2 + LONG $0x4c49c3c4; WORD $0x10c9 // vpblendvb xmm1, xmm6, xmm9, xmm1 + LONG $0x7f7ac1c4; WORD $0x301c // vmovdqu oword [r8 + rsi], xmm3 + LONG $0x7f7ac1c4; WORD $0x3064; BYTE $0x10 // vmovdqu oword [r8 + rsi + 16], xmm4 + LONG $0x7f7ac1c4; WORD $0x3054; BYTE $0x20 // vmovdqu oword [r8 + rsi + 32], xmm2 + LONG $0x7f7ac1c4; WORD $0x304c; BYTE $0x30 // vmovdqu oword [r8 + rsi + 48], xmm1 + LONG $0x40c68348 // add rsi, 64 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1182 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_1184 + +LBB4_1189: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xf0e38341 // and r11d, -16 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x5d6f79c5; BYTE $0x70 // vmovdqa xmm11, oword 112[rbp] /* [rip + .LCPI4_17] */ + +LBB4_1190: + LONG $0x146f7ec5; BYTE $0xf1 // vmovdqu ymm10, yword [rcx + 8*rsi] + LONG $0x446f7ec5; WORD $0x20f1 // vmovdqu ymm8, yword [rcx + 8*rsi + 32] + LONG $0x746ffec5; WORD $0x40f1 // vmovdqu ymm6, yword [rcx + 8*rsi + 64] + LONG $0x646ffec5; WORD $0x60f1 // vmovdqu ymm4, yword [rcx + 8*rsi + 96] + LONG $0x372de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm10, ymm0 + LONG $0x397de3c4; WORD $0x01cb // vextracti128 xmm3, ymm1, 1 + LONG $0xcb6bf1c5 // vpackssdw xmm1, xmm1, xmm3 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe16371c5 // vpacksswb xmm12, xmm1, xmm1 + LONG $0x373de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01cd // vextracti128 xmm5, ymm1, 1 + LONG $0xcd6bf1c5 // vpackssdw xmm1, xmm1, xmm5 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xe96371c5 // vpacksswb xmm13, xmm1, xmm1 + LONG $0x374de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01cf // vextracti128 xmm7, ymm1, 1 + LONG $0xcf6bf1c5 // vpackssdw xmm1, xmm1, xmm7 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xf963f1c5 // vpacksswb xmm7, xmm1, xmm1 + LONG $0x375de2c4; BYTE $0xc8 // vpcmpgtq ymm1, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x292de2c4; BYTE $0xd0 // vpcmpeqq ymm2, ymm10, ymm0 + LONG $0xd2efb5c5 // vpxor ymm2, ymm9, ymm2 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0x293de2c4; BYTE $0xd8 // vpcmpeqq ymm3, ymm8, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6be1c5 // vpackssdw xmm3, xmm3, xmm3 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0x294de2c4; BYTE $0xe8 // vpcmpeqq ymm5, ymm6, ymm0 + LONG $0xedefb5c5 // vpxor ymm5, ymm9, ymm5 + LONG $0x397de3c4; WORD $0x01ee // vextracti128 xmm6, ymm5, 1 + LONG $0xee6bd1c5 // vpackssdw xmm5, xmm5, xmm6 + LONG $0xed6bd1c5 // vpackssdw xmm5, xmm5, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0x295de2c4; BYTE $0xe0 // vpcmpeqq ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e6 // vextracti128 xmm6, ymm4, 1 + LONG $0xe66bd9c5 // vpackssdw xmm4, xmm4, xmm6 + LONG $0xe46bd9c5 // vpackssdw xmm4, xmm4, xmm4 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x4c69c3c4; WORD $0xc0d3 // vpblendvb xmm2, xmm2, xmm11, xmm12 + LONG $0x4c61c3c4; WORD $0xd0db // vpblendvb xmm3, xmm3, xmm11, xmm13 + LONG $0x4c51c3c4; WORD $0x70eb // vpblendvb xmm5, xmm5, xmm11, xmm7 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0x4c59c3c4; WORD $0x10cb // vpblendvb xmm1, xmm4, xmm11, xmm1 + LONG $0xc962d1c5 // vpunpckldq xmm1, xmm5, xmm1 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x7f7ac1c4; WORD $0x300c // vmovdqu oword [r8 + rsi], xmm1 + LONG $0x10c68348 // add rsi, 16 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1190 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_1192 + +LBB4_1197: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0x571841c4; BYTE $0xe4 // vxorps xmm12, xmm12, xmm12 + LONG $0x761541c4; BYTE $0xed // vpcmpeqd ymm13, ymm13, ymm13 + LONG $0x756f79c5; BYTE $0x50 // vmovdqa xmm14, oword 80[rbp] /* [rip + .LCPI4_12] */ + LONG $0x760141c4; BYTE $0xff // vpcmpeqd xmm15, xmm15, xmm15 + +LBB4_1198: + LONG $0x0c107cc5; BYTE $0xb1 // vmovups ymm9, yword [rcx + 4*rsi] + LONG $0x54107cc5; WORD $0x20b1 // vmovups ymm10, yword [rcx + 4*rsi + 32] + LONG $0x5c107cc5; WORD $0x40b1 // vmovups ymm11, yword [rcx + 4*rsi + 64] + LONG $0x7c10fcc5; WORD $0x60b1 // vmovups ymm7, yword [rcx + 4*rsi + 96] + LONG $0xc234c1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm9, ymm12 + LONG $0x197de3c4; WORD $0x01e5 // vextractf128 xmm5, ymm4, 1 + LONG $0xe56bd9c5 // vpackssdw xmm4, xmm4, xmm5 + LONG $0xc46359c5 // vpacksswb xmm8, xmm4, xmm4 + LONG $0xc22cc1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm10, ymm12 + LONG $0x197de3c4; WORD $0x01e6 // vextractf128 xmm6, ymm4, 1 + LONG $0xe66bd9c5 // vpackssdw xmm4, xmm4, xmm6 + LONG $0xf463d9c5 // vpacksswb xmm6, xmm4, xmm4 + LONG $0xc224c1c4; WORD $0x00e4 // vcmpeqps ymm4, ymm11, ymm12 + LONG $0x197de3c4; WORD $0x01e0 // vextractf128 xmm0, ymm4, 1 + LONG $0xc06bd9c5 // vpackssdw xmm0, xmm4, xmm0 + LONG $0xe063f9c5 // vpacksswb xmm4, xmm0, xmm0 + LONG $0xc7c29cc5; BYTE $0x00 // vcmpeqps ymm0, ymm12, ymm7 + LONG $0x197de3c4; WORD $0x01c1 // vextractf128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0xc063f9c5 // vpacksswb xmm0, xmm0, xmm0 + LONG $0x6635c1c4; BYTE $0xcd // vpcmpgtd ymm1, ymm9, ymm13 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x662dc1c4; BYTE $0xd5 // vpcmpgtd ymm2, ymm10, ymm13 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0x6625c1c4; BYTE $0xdd // vpcmpgtd ymm3, ymm11, ymm13 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0x6645c1c4; BYTE $0xed // vpcmpgtd ymm5, ymm7, ymm13 + LONG $0x397de3c4; WORD $0x01ef // vextracti128 xmm7, ymm5, 1 + LONG $0xef6bd1c5 // vpackssdw xmm5, xmm5, xmm7 + LONG $0x4c01c3c4; WORD $0x10ce // vpblendvb xmm1, xmm15, xmm14, xmm1 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xc9dfb9c5 // vpandn xmm1, xmm8, xmm1 + LONG $0x4c01c3c4; WORD $0x20d6 // vpblendvb xmm2, xmm15, xmm14, xmm2 + LONG $0x4c01c3c4; WORD $0x30de // vpblendvb xmm3, xmm15, xmm14, xmm3 + LONG $0x4c01c3c4; WORD $0x50ee // vpblendvb xmm5, xmm15, xmm14, xmm5 + LONG $0xffefc1c5 // vpxor xmm7, xmm7, xmm7 + LONG $0x4c69e3c4; WORD $0x60d7 // vpblendvb xmm2, xmm2, xmm7, xmm6 + LONG $0x4c51e3c4; WORD $0x00c7 // vpblendvb xmm0, xmm5, xmm7, xmm0 + LONG $0xdbdfd9c5 // vpandn xmm3, xmm4, xmm3 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x7f7ec1c4; WORD $0x3004 // vmovdqu yword [r8 + rsi], ymm0 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1198 + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + JMP LBB4_1200 + +LBB4_1205: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0x80 // and edx, -128 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x000000e08d6ffdc5 // vmovdqa ymm1, yword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_1206: + LONG $0x1474fdc5; BYTE $0x31 // vpcmpeqb ymm2, ymm0, yword [rcx + rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c74fdc5; WORD $0x2031 // vpcmpeqb ymm3, ymm0, yword [rcx + rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6474fdc5; WORD $0x4031 // vpcmpeqb ymm4, ymm0, yword [rcx + rsi + 64] + LONG $0x6c74fdc5; WORD $0x6031 // vpcmpeqb ymm5, ymm0, yword [rcx + rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0x3014 // vmovdqu yword [r8 + rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0x305c; BYTE $0x20 // vmovdqu yword [r8 + rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0x3064; BYTE $0x40 // vmovdqu yword [r8 + rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0x306c; BYTE $0x60 // vmovdqu yword [r8 + rsi + 96], ymm5 + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1206 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1208 + +LBB4_1212: + WORD $0x8945; BYTE $0xd3 // mov r11d, r10d + LONG $0xe0e38341 // and r11d, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763541c4; BYTE $0xc9 // vpcmpeqd ymm9, ymm9, ymm9 + LONG $0x556f79c5; BYTE $0x50 // vmovdqa xmm10, oword 80[rbp] /* [rip + .LCPI4_12] */ + +LBB4_1213: + LONG $0x3c6ffec5; BYTE $0xb1 // vmovdqu ymm7, yword [rcx + 4*rsi] + LONG $0x446f7ec5; WORD $0x20b1 // vmovdqu ymm8, yword [rcx + 4*rsi + 32] + LONG $0x746ffec5; WORD $0x40b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 64] + LONG $0x646ffec5; WORD $0x60b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 96] + LONG $0xd866c5c5 // vpcmpgtd ymm3, ymm7, ymm0 + LONG $0x397de3c4; WORD $0x01dd // vextracti128 xmm5, ymm3, 1 + LONG $0xdd6be1c5 // vpackssdw xmm3, xmm3, xmm5 + LONG $0xdb6361c5 // vpacksswb xmm11, xmm3, xmm3 + LONG $0xe866bdc5 // vpcmpgtd ymm5, ymm8, ymm0 + LONG $0x397de3c4; WORD $0x01e9 // vextracti128 xmm1, ymm5, 1 + LONG $0xc96bd1c5 // vpackssdw xmm1, xmm5, xmm1 + LONG $0xe16371c5 // vpacksswb xmm12, xmm1, xmm1 + LONG $0xc866cdc5 // vpcmpgtd ymm1, ymm6, ymm0 + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xd066ddc5 // vpcmpgtd ymm2, ymm4, ymm0 + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0xd876c5c5 // vpcmpeqd ymm3, ymm7, ymm0 + LONG $0xdbefb5c5 // vpxor ymm3, ymm9, ymm3 + LONG $0x397de3c4; WORD $0x01df // vextracti128 xmm7, ymm3, 1 + LONG $0xdf6be1c5 // vpackssdw xmm3, xmm3, xmm7 + LONG $0xdb63e1c5 // vpacksswb xmm3, xmm3, xmm3 + LONG $0xf876bdc5 // vpcmpeqd ymm7, ymm8, ymm0 + LONG $0xffefb5c5 // vpxor ymm7, ymm9, ymm7 + LONG $0x397de3c4; WORD $0x01fd // vextracti128 xmm5, ymm7, 1 + LONG $0xed6bc1c5 // vpackssdw xmm5, xmm7, xmm5 + LONG $0xed63d1c5 // vpacksswb xmm5, xmm5, xmm5 + LONG $0xf076cdc5 // vpcmpeqd ymm6, ymm6, ymm0 + LONG $0xf6efb5c5 // vpxor ymm6, ymm9, ymm6 + LONG $0x397de3c4; WORD $0x01f7 // vextracti128 xmm7, ymm6, 1 + LONG $0xf76bc9c5 // vpackssdw xmm6, xmm6, xmm7 + LONG $0xf663c9c5 // vpacksswb xmm6, xmm6, xmm6 + LONG $0xe076ddc5 // vpcmpeqd ymm4, ymm4, ymm0 + LONG $0xe4efb5c5 // vpxor ymm4, ymm9, ymm4 + LONG $0x397de3c4; WORD $0x01e7 // vextracti128 xmm7, ymm4, 1 + LONG $0xe76bd9c5 // vpackssdw xmm4, xmm4, xmm7 + LONG $0xe463d9c5 // vpacksswb xmm4, xmm4, xmm4 + LONG $0x4c61c3c4; WORD $0xb0da // vpblendvb xmm3, xmm3, xmm10, xmm11 + LONG $0x4c51c3c4; WORD $0xc0ea // vpblendvb xmm5, xmm5, xmm10, xmm12 + LONG $0x4c49c3c4; WORD $0x10ca // vpblendvb xmm1, xmm6, xmm10, xmm1 + LONG $0x4c59c3c4; WORD $0x20d2 // vpblendvb xmm2, xmm4, xmm10, xmm2 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0x3865e3c4; WORD $0x01d5 // vinserti128 ymm2, ymm3, xmm5, 1 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x7f7ec1c4; WORD $0x300c // vmovdqu yword [r8 + rsi], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1213 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JE LBB4_1351 + JMP LBB4_1215 + +LBB4_1220: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + QUAD $0x00009c8d587de2c4; BYTE $0x00 // vpbroadcastd ymm1, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1221: + LONG $0x1476fdc5; BYTE $0xb1 // vpcmpeqd ymm2, ymm0, yword [rcx + 4*rsi] + LONG $0xd1dfedc5 // vpandn ymm2, ymm2, ymm1 + LONG $0x5c76fdc5; WORD $0x20b1 // vpcmpeqd ymm3, ymm0, yword [rcx + 4*rsi + 32] + LONG $0xd9dfe5c5 // vpandn ymm3, ymm3, ymm1 + LONG $0x6476fdc5; WORD $0x40b1 // vpcmpeqd ymm4, ymm0, yword [rcx + 4*rsi + 64] + LONG $0x6c76fdc5; WORD $0x60b1 // vpcmpeqd ymm5, ymm0, yword [rcx + 4*rsi + 96] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + LONG $0xe9dfd5c5 // vpandn ymm5, ymm5, ymm1 + LONG $0x7f7ec1c4; WORD $0xb014 // vmovdqu yword [r8 + 4*rsi], ymm2 + LONG $0x7f7ec1c4; WORD $0xb05c; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm5 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1221 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1223 + +LBB4_1227: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x763941c4; BYTE $0xc0 // vpcmpeqd xmm8, xmm8, xmm8 + QUAD $0x00009c95187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1228: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xf864e1c5 // vpcmpgtb xmm7, xmm3, xmm0 + LONG $0x217d62c4; BYTE $0xcf // vpmovsxbd ymm9, xmm7 + LONG $0xc864d9c5 // vpcmpgtb xmm1, xmm4, xmm0 + LONG $0x217d62c4; BYTE $0xd1 // vpmovsxbd ymm10, xmm1 + LONG $0xf864d1c5 // vpcmpgtb xmm7, xmm5, xmm0 + LONG $0x217de2c4; BYTE $0xff // vpmovsxbd ymm7, xmm7 + LONG $0xc864c9c5 // vpcmpgtb xmm1, xmm6, xmm0 + LONG $0x217de2c4; BYTE $0xc9 // vpmovsxbd ymm1, xmm1 + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xdbefb9c5 // vpxor xmm3, xmm8, xmm3 + LONG $0x217de2c4; BYTE $0xdb // vpmovsxbd ymm3, xmm3 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe4efb9c5 // vpxor xmm4, xmm8, xmm4 + LONG $0x217de2c4; BYTE $0xe4 // vpmovsxbd ymm4, xmm4 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xedefb9c5 // vpxor xmm5, xmm8, xmm5 + LONG $0x217de2c4; BYTE $0xed // vpmovsxbd ymm5, xmm5 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf6efb9c5 // vpxor xmm6, xmm8, xmm6 + LONG $0x217de2c4; BYTE $0xf6 // vpmovsxbd ymm6, xmm6 + LONG $0x4a65e3c4; WORD $0x90da // vblendvps ymm3, ymm3, ymm2, ymm9 + LONG $0x4a5de3c4; WORD $0xa0e2 // vblendvps ymm4, ymm4, ymm2, ymm10 + LONG $0x4a55e3c4; WORD $0x70ea // vblendvps ymm5, ymm5, ymm2, ymm7 + LONG $0x4a4de3c4; WORD $0x10ca // vblendvps ymm1, ymm6, ymm2, ymm1 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb04c; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm1 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1228 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1230 + +LBB4_1235: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f1c5 // vpcmpeqd xmm1, xmm1, xmm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1236: + LONG $0x1c7efac5; BYTE $0x31 // vmovq xmm3, qword [rcx + rsi] + LONG $0x647efac5; WORD $0x0831 // vmovq xmm4, qword [rcx + rsi + 8] + LONG $0x6c7efac5; WORD $0x1031 // vmovq xmm5, qword [rcx + rsi + 16] + LONG $0x747efac5; WORD $0x1831 // vmovq xmm6, qword [rcx + rsi + 24] + LONG $0xd874e1c5 // vpcmpeqb xmm3, xmm3, xmm0 + LONG $0xd9efe1c5 // vpxor xmm3, xmm3, xmm1 + LONG $0x317de2c4; BYTE $0xdb // vpmovzxbd ymm3, xmm3 + LONG $0xdadbe5c5 // vpand ymm3, ymm3, ymm2 + LONG $0xe074d9c5 // vpcmpeqb xmm4, xmm4, xmm0 + LONG $0xe1efd9c5 // vpxor xmm4, xmm4, xmm1 + LONG $0x317de2c4; BYTE $0xe4 // vpmovzxbd ymm4, xmm4 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xe874d1c5 // vpcmpeqb xmm5, xmm5, xmm0 + LONG $0xe9efd1c5 // vpxor xmm5, xmm5, xmm1 + LONG $0x317de2c4; BYTE $0xed // vpmovzxbd ymm5, xmm5 + LONG $0xeadbd5c5 // vpand ymm5, ymm5, ymm2 + LONG $0xf074c9c5 // vpcmpeqb xmm6, xmm6, xmm0 + LONG $0xf1efc9c5 // vpxor xmm6, xmm6, xmm1 + LONG $0x317de2c4; BYTE $0xf6 // vpmovzxbd ymm6, xmm6 + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + LONG $0x7f7ec1c4; WORD $0xb01c // vmovdqu yword [r8 + 4*rsi], ymm3 + LONG $0x7f7ec1c4; WORD $0xb064; BYTE $0x20 // vmovdqu yword [r8 + 4*rsi + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0xb06c; BYTE $0x40 // vmovdqu yword [r8 + 4*rsi + 64], ymm5 + LONG $0x7f7ec1c4; WORD $0xb074; BYTE $0x60 // vmovdqu yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1236 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1238 + +LBB4_1242: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + WORD $0xf631 // xor esi, esi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + +LBB4_1243: + LONG $0x1c6ffec5; BYTE $0xb1 // vmovdqu ymm3, yword [rcx + 4*rsi] + LONG $0x646ffec5; WORD $0x20b1 // vmovdqu ymm4, yword [rcx + 4*rsi + 32] + LONG $0x6c6ffec5; WORD $0x40b1 // vmovdqu ymm5, yword [rcx + 4*rsi + 64] + LONG $0x746ffec5; WORD $0x60b1 // vmovdqu ymm6, yword [rcx + 4*rsi + 96] + LONG $0xf876e5c5 // vpcmpeqd ymm7, ymm3, ymm0 + LONG $0xf9efc5c5 // vpxor ymm7, ymm7, ymm1 + LONG $0xc0765dc5 // vpcmpeqd ymm8, ymm4, ymm0 + LONG $0xc1ef3dc5 // vpxor ymm8, ymm8, ymm1 + LONG $0xc87655c5 // vpcmpeqd ymm9, ymm5, ymm0 + LONG $0xc9ef35c5 // vpxor ymm9, ymm9, ymm1 + LONG $0xd0764dc5 // vpcmpeqd ymm10, ymm6, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0xdb66edc5 // vpcmpgtd ymm3, ymm2, ymm3 + LONG $0xe466edc5 // vpcmpgtd ymm4, ymm2, ymm4 + LONG $0xed66edc5 // vpcmpgtd ymm5, ymm2, ymm5 + LONG $0xf666edc5 // vpcmpgtd ymm6, ymm2, ymm6 + LONG $0x4a6de3c4; WORD $0x30df // vblendvps ymm3, ymm2, ymm7, ymm3 + LONG $0x4a6dc3c4; WORD $0x40e0 // vblendvps ymm4, ymm2, ymm8, ymm4 + LONG $0x4a6dc3c4; WORD $0x50e9 // vblendvps ymm5, ymm2, ymm9, ymm5 + LONG $0x4a6dc3c4; WORD $0x60f2 // vblendvps ymm6, ymm2, ymm10, ymm6 + LONG $0x117cc1c4; WORD $0xb01c // vmovups yword [r8 + 4*rsi], ymm3 + LONG $0x117cc1c4; WORD $0xb064; BYTE $0x20 // vmovups yword [r8 + 4*rsi + 32], ymm4 + LONG $0x117cc1c4; WORD $0xb06c; BYTE $0x40 // vmovups yword [r8 + 4*rsi + 64], ymm5 + LONG $0x117cc1c4; WORD $0xb074; BYTE $0x60 // vmovups yword [r8 + 4*rsi + 96], ymm6 + LONG $0x20c68348 // add rsi, 32 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_1243 + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1245 + +LBB4_1250: + LONG $0x457efac5; BYTE $0x20 // vmovq xmm0, qword 32[rbp] /* [rip + .LCPI4_13] */ + +LBB4_1251: + JLE LBB4_1253 + LONG $0x457efac5; BYTE $0x08 // vmovq xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_1253: + LONG $0xd679c1c4; WORD $0xd004 // vmovq qword [r8 + 8*rdx], xmm0 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1254: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + LONG $0x4510fbc5; BYTE $0x20 // vmovsd xmm0, qword 32[rbp] /* [rip + .LCPI4_13] */ + LONG $0x4d10fbc5; BYTE $0x08 // vmovsd xmm1, qword 8[rbp] /* [rip + .LCPI4_1] */ + JMP LBB4_1257 + +LBB4_1256: + LONG $0x117bc1c4; WORD $0xd05c; BYTE $0x08 // vmovsd qword [r8 + 8*rdx + 8], xmm3 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_1257: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JNE LBB4_1258 + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JLE LBB4_1262 + +LBB4_1259: + LONG $0x117bc1c4; WORD $0xd01c // vmovsd qword [r8 + 8*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JNE LBB4_1260 + +LBB4_1263: + LONG $0xd257e9c5 // vxorpd xmm2, xmm2, xmm2 + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_1256 + JMP LBB4_1264 + +LBB4_1258: + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_1259 + +LBB4_1262: + LONG $0xda28f9c5 // vmovapd xmm3, xmm2 + LONG $0x117bc1c4; WORD $0xd01c // vmovsd qword [r8 + 8*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd028f9c5 // vmovapd xmm2, xmm0 + JE LBB4_1263 + +LBB4_1260: + LONG $0xd928f9c5 // vmovapd xmm3, xmm1 + JG LBB4_1256 + +LBB4_1264: + LONG $0xda28f9c5 // vmovapd xmm3, xmm2 + JMP LBB4_1256 + +LBB4_1265: + QUAD $0x000000a8856ef9c5 // vmovd xmm0, dword 168[rbp] /* [rip + .LCPI4_14] */ + +LBB4_1266: + JLE LBB4_1268 + QUAD $0x00000098856ef9c5 // vmovd xmm0, dword 152[rbp] /* [rip + .LCPI4_5] */ + +LBB4_1268: + LONG $0x7e79c1c4; WORD $0x9004 // vmovd dword [r8 + 4*rdx], xmm0 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1269: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1351 + QUAD $0x000000a88510fac5 // vmovss xmm0, dword 168[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000000988d10fac5 // vmovss xmm1, dword 152[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1272 + +LBB4_1271: + LONG $0x117ac1c4; WORD $0x905c; BYTE $0x04 // vmovss dword [r8 + 4*rdx + 4], xmm3 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_1272: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JNE LBB4_1273 + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JLE LBB4_1277 + +LBB4_1274: + LONG $0x117ac1c4; WORD $0x901c // vmovss dword [r8 + 4*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JNE LBB4_1275 + +LBB4_1278: + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_1271 + JMP LBB4_1279 + +LBB4_1273: + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_1274 + +LBB4_1277: + LONG $0xda28f8c5 // vmovaps xmm3, xmm2 + LONG $0x117ac1c4; WORD $0x901c // vmovss dword [r8 + 4*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd028f8c5 // vmovaps xmm2, xmm0 + JE LBB4_1278 + +LBB4_1275: + LONG $0xd928f8c5 // vmovaps xmm3, xmm1 + JG LBB4_1271 + +LBB4_1279: + LONG $0xda28f8c5 // vmovaps xmm3, xmm2 + JMP LBB4_1271 + +LBB4_1282: + WORD $0xff31 // xor edi, edi + +LBB4_1283: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1285 + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0xc957f1c5 // vxorpd xmm1, xmm1, xmm1 + LONG $0x197de2c4; WORD $0x0055 // vbroadcastsd ymm2, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x197de2c4; WORD $0x085d // vbroadcastsd ymm3, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd254fdc5 // vandpd ymm2, ymm0, ymm2 + LONG $0xda56e5c5 // vorpd ymm3, ymm3, ymm2 + LONG $0x197de3c4; WORD $0x01dc // vextractf128 xmm4, ymm3, 1 + LONG $0x5510fbc5; BYTE $0x10 // vmovsd xmm2, qword 16[rbp] /* [rip + .LCPI4_6] */ + LONG $0xea5cdbc5 // vsubsd xmm5, xmm4, xmm2 + LONG $0x2cfbe1c4; BYTE $0xc5 // vcvttsd2si rax, xmm5 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd4 // vcvttsd2si rdx, xmm4 + LONG $0xe22ef9c5 // vucomisd xmm4, xmm2 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xea // vmovq xmm5, rdx + LONG $0x0479e3c4; WORD $0x4ee4 // vpermilps xmm4, xmm4, 78 + LONG $0xf25cdbc5 // vsubsd xmm6, xmm4, xmm2 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd4 // vcvttsd2si rdx, xmm4 + LONG $0xe22ef9c5 // vucomisd xmm4, xmm2 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xe2 // vmovq xmm4, rdx + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0xea5ce3c5 // vsubsd xmm5, xmm3, xmm2 + LONG $0x2cfbe1c4; BYTE $0xc5 // vcvttsd2si rax, xmm5 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd3 // vcvttsd2si rdx, xmm3 + LONG $0xda2ef9c5 // vucomisd xmm3, xmm2 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xea // vmovq xmm5, rdx + LONG $0x0479e3c4; WORD $0x4edb // vpermilps xmm3, xmm3, 78 + LONG $0xf25ce3c5 // vsubsd xmm6, xmm3, xmm2 + LONG $0x2cfbe1c4; BYTE $0xc6 // vcvttsd2si rax, xmm6 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xd3 // vcvttsd2si rdx, xmm3 + LONG $0xda2ef9c5 // vucomisd xmm3, xmm2 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6ef9e1c4; BYTE $0xd2 // vmovq xmm2, rdx + LONG $0xd26cd1c5 // vpunpcklqdq xmm2, xmm5, xmm2 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0xc1c2fdc5; BYTE $0x04 // vcmpneqpd ymm0, ymm0, ymm1 + LONG $0xc254fdc5 // vandpd ymm0, ymm0, ymm2 + LONG $0x117dc1c4; WORD $0xf804 // vmovupd yword [r8 + 8*rdi], ymm0 + +LBB4_1285: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1351 + +LBB4_1286: + LONG $0x4512fbc5; BYTE $0x08 // vmovddup xmm0, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5510fbc5; BYTE $0x10 // vmovsd xmm2, qword 16[rbp] /* [rip + .LCPI4_6] */ + WORD $0xc031 // xor eax, eax + LONG $0xdb57e1c5 // vxorpd xmm3, xmm3, xmm3 + +LBB4_1287: + LONG $0x2410fbc5; BYTE $0xf1 // vmovsd xmm4, qword [rcx + 8*rsi] + LONG $0xe954d9c5 // vandpd xmm5, xmm4, xmm1 + LONG $0xed56f9c5 // vorpd xmm5, xmm0, xmm5 + LONG $0xf25cd3c5 // vsubsd xmm6, xmm5, xmm2 + LONG $0x2cfbe1c4; BYTE $0xd6 // vcvttsd2si rdx, xmm6 + WORD $0x314c; BYTE $0xda // xor rdx, r11 + LONG $0x2cfbe1c4; BYTE $0xfd // vcvttsd2si rdi, xmm5 + LONG $0xea2ef9c5 // vucomisd xmm5, xmm2 + LONG $0xfa430f48 // cmovae rdi, rdx + LONG $0xdc2ef9c5 // vucomisd xmm3, xmm4 + LONG $0xf8440f48 // cmove rdi, rax + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1287 + JMP LBB4_1351 + +LBB4_1280: + LONG $0xc850f8c5 // vmovmskps ecx, xmm0 + WORD $0xe183; BYTE $0x01 // and ecx, 1 + WORD $0xd9f7 // neg ecx + WORD $0xc983; BYTE $0x01 // or ecx, 1 + LONG $0xc12adac5 // vcvtsi2ss xmm0, xmm4, ecx + QUAD $0x000000a08d10fac5 // vmovss xmm1, dword 160[rbp] /* [rip + .LCPI4_9] */ + LONG $0xd15cfac5 // vsubss xmm2, xmm0, xmm1 + LONG $0x2cfae1c4; BYTE $0xca // vcvttss2si rcx, xmm2 + QUAD $0x000000000000ba48; WORD $0x8000 // mov rdx, -9223372036854775808 + WORD $0x3148; BYTE $0xca // xor rdx, rcx + LONG $0x2cfae1c4; BYTE $0xc8 // vcvttss2si rcx, xmm0 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + LONG $0xca430f48 // cmovae rcx, rdx + +LBB4_1281: + LONG $0xc00c8949 // mov qword [r8 + 8*rax], rcx + JMP LBB4_1351 + +LBB4_1288: + WORD $0xff31 // xor edi, edi + +LBB4_1289: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1291 + LONG $0x0410fdc5; BYTE $0xf9 // vmovupd ymm0, yword [rcx + 8*rdi] + LONG $0xc957f1c5 // vxorpd xmm1, xmm1, xmm1 + LONG $0xc9c2fdc5; BYTE $0x00 // vcmpeqpd ymm1, ymm0, ymm1 + LONG $0x197de3c4; WORD $0x01ca // vextractf128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0x197de2c4; WORD $0x0055 // vbroadcastsd ymm2, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xc254fdc5 // vandpd ymm0, ymm0, ymm2 + LONG $0x197de2c4; WORD $0x0855 // vbroadcastsd ymm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc056edc5 // vorpd ymm0, ymm2, ymm0 + LONG $0x197de2c4; WORD $0x1855 // vbroadcastsd ymm2, qword 24[rbp] /* [rip + .LCPI4_7] */ + LONG $0xdac2fdc5; BYTE $0x01 // vcmpltpd ymm3, ymm0, ymm2 + LONG $0x197de3c4; WORD $0x01dc // vextractf128 xmm4, ymm3, 1 + LONG $0xd25cfdc5 // vsubpd ymm2, ymm0, ymm2 + LONG $0xd2e6fdc5 // vcvttpd2dq xmm2, ymm2 + QUAD $0x000094ad1879e2c4; BYTE $0x00 // vbroadcastss xmm5, dword 148[rbp] /* [rip + .LCPI4_4] */ + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0xd557e9c5 // vxorpd xmm2, xmm2, xmm5 + LONG $0xc0e6fdc5 // vcvttpd2dq xmm0, ymm0 + LONG $0x4a69e3c4; WORD $0x30c0 // vblendvps xmm0, xmm2, xmm0, xmm3 + LONG $0xc0dff1c5 // vpandn xmm0, xmm1, xmm0 + LONG $0x7f7ac1c4; WORD $0xb804 // vmovdqu oword [r8 + 4*rdi], xmm0 + +LBB4_1291: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1351 + +LBB4_1292: + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_1293: + LONG $0x1c10fbc5; BYTE $0xf1 // vmovsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0x2cfbe1c4; BYTE $0xd3 // vcvttsd2si rdx, xmm3 + LONG $0xd2440f41 // cmove edx, r10d + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1293 + JMP LBB4_1351 + +LBB4_1294: + WORD $0xf631 // xor esi, esi + +LBB4_1295: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1297 + LONG $0x046ffec5; BYTE $0xb1 // vmovdqu ymm0, yword [rcx + 4*rsi] + LONG $0xe072f5c5; BYTE $0x1f // vpsrad ymm1, ymm0, 31 + QUAD $0x00009c95587de2c4; BYTE $0x00 // vpbroadcastd ymm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + QUAD $0x0000a495187de2c4; BYTE $0x00 // vbroadcastss ymm2, dword 164[rbp] /* [rip + .LCPI4_10] */ + LONG $0xdac2f4c5; BYTE $0x01 // vcmpltps ymm3, ymm1, ymm2 + LONG $0xd25cf4c5 // vsubps ymm2, ymm1, ymm2 + LONG $0xd25bfec5 // vcvttps2dq ymm2, ymm2 + QUAD $0x000094a5187de2c4; BYTE $0x00 // vbroadcastss ymm4, dword 148[rbp] /* [rip + .LCPI4_4] */ + LONG $0xd457ecc5 // vxorps ymm2, ymm2, ymm4 + LONG $0xc95bfec5 // vcvttps2dq ymm1, ymm1 + LONG $0x4a6de3c4; WORD $0x30c9 // vblendvps ymm1, ymm2, ymm1, ymm3 + LONG $0xd257e8c5 // vxorps xmm2, xmm2, xmm2 + LONG $0xc2c2fcc5; BYTE $0x04 // vcmpneqps ymm0, ymm0, ymm2 + LONG $0xc154fcc5 // vandps ymm0, ymm0, ymm1 + LONG $0x117cc1c4; WORD $0xb004 // vmovups yword [r8 + 4*rsi], ymm0 + +LBB4_1297: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_1298: + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + JMP LBB4_1300 + +LBB4_1299: + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1351 + +LBB4_1300: + LONG $0x0c10fac5; BYTE $0x91 // vmovss xmm1, dword [rcx + 4*rdx] + WORD $0xf631 // xor esi, esi + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + JE LBB4_1299 + LONG $0xf150f8c5 // vmovmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + LONG $0xce2abac5 // vcvtsi2ss xmm1, xmm8, esi + LONG $0x2cfae1c4; BYTE $0xf1 // vcvttss2si rsi, xmm1 + JMP LBB4_1299 + +LBB4_1302: + WORD $0xf631 // xor esi, esi + +LBB4_1303: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1305 + LONG $0x0410fdc5; BYTE $0xf1 // vmovupd ymm0, yword [rcx + 8*rsi] + LONG $0xc957f1c5 // vxorpd xmm1, xmm1, xmm1 + LONG $0x197de2c4; WORD $0x0055 // vbroadcastsd ymm2, qword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xd254fdc5 // vandpd ymm2, ymm0, ymm2 + LONG $0x197de2c4; WORD $0x085d // vbroadcastsd ymm3, qword 8[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd256e5c5 // vorpd ymm2, ymm3, ymm2 + LONG $0x197de3c4; WORD $0x01d3 // vextractf128 xmm3, ymm2, 1 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xe7 // vmovq xmm4, rdi + LONG $0x0479e3c4; WORD $0x4edb // vpermilps xmm3, xmm3, 78 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0x6ef9e1c4; BYTE $0xe7 // vmovq xmm4, rdi + LONG $0x0479e3c4; WORD $0x4ed2 // vpermilps xmm2, xmm2, 78 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd26cd9c5 // vpunpcklqdq xmm2, xmm4, xmm2 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xc1c2fdc5; BYTE $0x04 // vcmpneqpd ymm0, ymm0, ymm1 + LONG $0xc254fdc5 // vandpd ymm0, ymm0, ymm2 + LONG $0x117dc1c4; WORD $0xf004 // vmovupd yword [r8 + 8*rsi], ymm0 + +LBB4_1305: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + +LBB4_1306: + WORD $0xf631 // xor esi, esi + LONG $0xc057f9c5 // vxorpd xmm0, xmm0, xmm0 + LONG $0x4d28f9c5; BYTE $0x30 // vmovapd xmm1, oword 48[rbp] /* [rip + .LCPI4_2] */ + LONG $0x5512fbc5; BYTE $0x08 // vmovddup xmm2, qword 8[rbp] /* [rip + .LCPI4_1] */ + +LBB4_1307: + LONG $0x1c10fbc5; BYTE $0xd1 // vmovsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32ef9c5 // vucomisd xmm0, xmm3 + LONG $0xd954e1c5 // vandpd xmm3, xmm3, xmm1 + LONG $0xdb56e9c5 // vorpd xmm3, xmm2, xmm3 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xfe440f48 // cmove rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1307 + JMP LBB4_1351 + +LBB4_1308: + WORD $0xf631 // xor esi, esi + +LBB4_1309: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1311 + LONG $0x0410f8c5; BYTE $0xb1 // vmovups xmm0, oword [rcx + 4*rsi] + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0xc9c2f8c5; BYTE $0x00 // vcmpeqps xmm1, xmm0, xmm1 + LONG $0x257de2c4; BYTE $0xc9 // vpmovsxdq ymm1, xmm1 + LONG $0xe072f9c5; BYTE $0x1f // vpsrad xmm0, xmm0, 31 + QUAD $0x00009c955879e2c4; BYTE $0x00 // vpbroadcastd xmm2, dword 156[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc2ebf9c5 // vpor xmm0, xmm0, xmm2 + LONG $0xc05bf8c5 // vcvtdq2ps xmm0, xmm0 + LONG $0x0479e3c4; WORD $0xe7d0 // vpermilps xmm2, xmm0, 231 + LONG $0x2cfae1c4; BYTE $0xc2 // vcvttss2si rax, xmm2 + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x0579e3c4; WORD $0x01d8 // vpermilpd xmm3, xmm0, 1 + LONG $0x2cfae1c4; BYTE $0xc3 // vcvttss2si rax, xmm3 + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x2cfae1c4; BYTE $0xc0 // vcvttss2si rax, xmm0 + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xc016fac5 // vmovshdup xmm0, xmm0 + LONG $0x2cfae1c4; BYTE $0xc0 // vcvttss2si rax, xmm0 + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xc06ce1c5 // vpunpcklqdq xmm0, xmm3, xmm0 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + LONG $0xc0dff5c5 // vpandn ymm0, ymm1, ymm0 + LONG $0x7f7ec1c4; WORD $0xf004 // vmovdqu yword [r8 + 8*rsi], ymm0 + +LBB4_1311: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1351 + +LBB4_1312: + LONG $0xc057f8c5 // vxorps xmm0, xmm0, xmm0 + JMP LBB4_1315 + +LBB4_1313: + LONG $0xc150f8c5 // vmovmskps eax, xmm1 + WORD $0xe083; BYTE $0x01 // and eax, 1 + WORD $0xd8f7 // neg eax + WORD $0xc883; BYTE $0x01 // or eax, 1 + LONG $0xc82acac5 // vcvtsi2ss xmm1, xmm6, eax + LONG $0x2cfae1c4; BYTE $0xf1 // vcvttss2si rsi, xmm1 + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JE LBB4_1351 + +LBB4_1315: + LONG $0x0c10fac5; BYTE $0x91 // vmovss xmm1, dword [rcx + 4*rdx] + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + JNE LBB4_1313 + WORD $0xf631 // xor esi, esi + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1315 + JMP LBB4_1351 + +LBB4_1317: + WORD $0xff31 // xor edi, edi + +LBB4_1318: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1320 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0c75fdc5; BYTE $0x79 // vpcmpeqw ymm1, ymm0, yword [rcx + 2*rdi] + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0x4475fdc5; WORD $0x2079 // vpcmpeqw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0xcadff5c5 // vpandn ymm1, ymm1, ymm2 + LONG $0xc2dffdc5 // vpandn ymm0, ymm0, ymm2 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB4_1320: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1321 + +LBB4_1325: + WORD $0xff31 // xor edi, edi + +LBB4_1326: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1328 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0c75fdc5; BYTE $0x79 // vpcmpeqw ymm1, ymm0, yword [rcx + 2*rdi] + QUAD $0x000000c0956ffdc5 // vmovdqa ymm2, yword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0x4475fdc5; WORD $0x2079 // vpcmpeqw ymm0, ymm0, yword [rcx + 2*rdi + 32] + LONG $0xcadff5c5 // vpandn ymm1, ymm1, ymm2 + LONG $0xc2dffdc5 // vpandn ymm0, ymm0, ymm2 + LONG $0x7f7ec1c4; WORD $0x780c // vmovdqu yword [r8 + 2*rdi], ymm1 + LONG $0x7f7ec1c4; WORD $0x7844; BYTE $0x20 // vmovdqu yword [r8 + 2*rdi + 32], ymm0 + +LBB4_1328: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1351 + JMP LBB4_1329 + +LBB4_1333: + WORD $0xf631 // xor esi, esi + +LBB4_1334: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1336 + LONG $0x046ffec5; BYTE $0x71 // vmovdqu ymm0, yword [rcx + 2*rsi] + LONG $0x4c6ffec5; WORD $0x2071 // vmovdqu ymm1, yword [rcx + 2*rsi + 32] + LONG $0xd2efe9c5 // vpxor xmm2, xmm2, xmm2 + LONG $0xda75fdc5 // vpcmpeqw ymm3, ymm0, ymm2 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xdcefe5c5 // vpxor ymm3, ymm3, ymm4 + LONG $0xd275f5c5 // vpcmpeqw ymm2, ymm1, ymm2 + LONG $0xd4efedc5 // vpxor ymm2, ymm2, ymm4 + QUAD $0x000000c0a56ffdc5 // vmovdqa ymm4, yword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0xc065ddc5 // vpcmpgtw ymm0, ymm4, ymm0 + LONG $0xc965ddc5 // vpcmpgtw ymm1, ymm4, ymm1 + LONG $0x4c5de3c4; WORD $0x00c3 // vpblendvb ymm0, ymm4, ymm3, ymm0 + LONG $0x4c5de3c4; WORD $0x10ca // vpblendvb ymm1, ymm4, ymm2, ymm1 + LONG $0x7f7ec1c4; WORD $0x7004 // vmovdqu yword [r8 + 2*rsi], ymm0 + LONG $0x7f7ec1c4; WORD $0x704c; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm1 + +LBB4_1336: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1351 + JMP LBB4_1337 + +LBB4_1342: + WORD $0xf631 // xor esi, esi + +LBB4_1343: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1345 + LONG $0x046ffec5; BYTE $0x71 // vmovdqu ymm0, yword [rcx + 2*rsi] + LONG $0x4c6ffec5; WORD $0x2071 // vmovdqu ymm1, yword [rcx + 2*rsi + 32] + LONG $0xd2efe9c5 // vpxor xmm2, xmm2, xmm2 + LONG $0xda75fdc5 // vpcmpeqw ymm3, ymm0, ymm2 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xdcefe5c5 // vpxor ymm3, ymm3, ymm4 + LONG $0xd275f5c5 // vpcmpeqw ymm2, ymm1, ymm2 + LONG $0xd4efedc5 // vpxor ymm2, ymm2, ymm4 + QUAD $0x000000c0a56ffdc5 // vmovdqa ymm4, yword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0xc065ddc5 // vpcmpgtw ymm0, ymm4, ymm0 + LONG $0xc965ddc5 // vpcmpgtw ymm1, ymm4, ymm1 + LONG $0x4c5de3c4; WORD $0x00c3 // vpblendvb ymm0, ymm4, ymm3, ymm0 + LONG $0x4c5de3c4; WORD $0x10ca // vpblendvb ymm1, ymm4, ymm2, ymm1 + LONG $0x7f7ec1c4; WORD $0x7004 // vmovdqu yword [r8 + 2*rsi], ymm0 + LONG $0x7f7ec1c4; WORD $0x704c; BYTE $0x20 // vmovdqu yword [r8 + 2*rsi + 32], ymm1 + +LBB4_1345: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JNE LBB4_1346 + +LBB4_1351: + VZEROUPPER + RET diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.go new file mode 100644 index 0000000..bcc9af0 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.go @@ -0,0 +1,60 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _arithmetic_unary_same_types_sse4(typ int, op int8, input, output unsafe.Pointer, len int) + +func arithmeticUnarySSE4(typ arrow.Type, op ArithmeticOp, input, out []byte, len int) { + _arithmetic_unary_same_types_sse4(int(typ), int8(op), unsafe.Pointer(&input[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_binary_sse4(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticSSE4(typ arrow.Type, op ArithmeticOp, left, right, out []byte, len int) { + _arithmetic_binary_sse4(int(typ), int8(op), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_arr_scalar_sse4(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticArrScalarSSE4(typ arrow.Type, op ArithmeticOp, left []byte, right unsafe.Pointer, out []byte, len int) { + _arithmetic_arr_scalar_sse4(int(typ), int8(op), unsafe.Pointer(&left[0]), right, unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_scalar_arr_sse4(typ int, op int8, inLeft, inRight, out unsafe.Pointer, len int) + +func arithmeticScalarArrSSE4(typ arrow.Type, op ArithmeticOp, left unsafe.Pointer, right, out []byte, len int) { + _arithmetic_scalar_arr_sse4(int(typ), int8(op), left, unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), len) +} + +//go:noescape +func _arithmetic_unary_diff_type_sse4(itype, otype int, op int8, input, output unsafe.Pointer, len int) + +func arithmeticUnaryDiffTypesSSE4(ityp, otyp arrow.Type, op ArithmeticOp, input, output []byte, len int) { + _arithmetic_unary_diff_type_sse4(int(ityp), int(otyp), int8(op), unsafe.Pointer(&input[0]), unsafe.Pointer(&output[0]), len) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.s new file mode 100644 index 0000000..82c279e --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/base_arithmetic_sse4_amd64.s @@ -0,0 +1,39139 @@ +//+build !noasm !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +DATA LCDATA1<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x008(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA1<>(SB), 8, $16 + +TEXT ·_arithmetic_binary_sse4(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA1<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB0_11 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB0_21 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB0_367 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB0_1013 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_719 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_6 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_760 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_776 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_792 + WORD $0xf631 // xor esi, esi + +LBB0_801: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_803 + +LBB0_802: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_802 + +LBB0_803: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_804: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_804 + JMP LBB0_1013 + +LBB0_11: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB0_194 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB0_540 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB0_1013 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_869 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_16 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_910 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_926 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_942 + WORD $0xf631 // xor esi, esi + +LBB0_951: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_953 + +LBB0_952: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_952 + +LBB0_953: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_954: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_954 + JMP LBB0_1013 + +LBB0_21: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_34 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_23 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_75 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_91 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_107 + WORD $0xf631 // xor esi, esi + +LBB0_116: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_118 + +LBB0_117: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_117 + +LBB0_118: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_119: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_119 + JMP LBB0_1013 + +LBB0_367: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_380 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_369 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_421 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_437 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_453 + WORD $0xf631 // xor esi, esi + +LBB0_462: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_464 + +LBB0_463: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_463 + +LBB0_464: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_465: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_465 + JMP LBB0_1013 + +LBB0_194: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_207 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_196 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_248 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_264 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_280 + WORD $0xf631 // xor esi, esi + +LBB0_289: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_291 + +LBB0_290: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_290 + +LBB0_291: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_292: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_292 + JMP LBB0_1013 + +LBB0_540: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_553 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_542 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_594 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_610 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_626 + WORD $0xf631 // xor esi, esi + +LBB0_635: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_637 + +LBB0_636: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_636 + +LBB0_637: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_638: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_638 + JMP LBB0_1013 + +LBB0_719: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_720 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_826 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_834 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_850 + WORD $0xf631 // xor esi, esi + +LBB0_859: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_861 + +LBB0_860: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04590ff2; BYTE $0xf2 // mulsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_860 + +LBB0_861: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_862: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04590ff2; BYTE $0xf2 // mulsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f1 // movsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x44590ff2; WORD $0x08f2 // mulsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f1 // movsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x44590ff2; WORD $0x10f2 // mulsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f1 // movsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x44590ff2; WORD $0x18f2 // mulsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_862 + JMP LBB0_1013 + +LBB0_869: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_870 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_976 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_984 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_1000 + WORD $0xf631 // xor esi, esi + +LBB0_1009: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1011 + +LBB0_1010: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04590ff2; BYTE $0xf2 // mulsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1010 + +LBB0_1011: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_1012: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04590ff2; BYTE $0xf2 // mulsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f1 // movsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x44590ff2; WORD $0x08f2 // mulsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f1 // movsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x44590ff2; WORD $0x10f2 // mulsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f1 // movsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x44590ff2; WORD $0x18f2 // mulsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_1012 + JMP LBB0_1013 + +LBB0_34: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_35 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_149 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_165 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_181 + WORD $0xf631 // xor esi, esi + +LBB0_190: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_192 + +LBB0_191: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04580ff2; BYTE $0xf2 // addsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_191 + +LBB0_192: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_193: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04580ff2; BYTE $0xf2 // addsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f1 // movsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x44580ff2; WORD $0x08f2 // addsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f1 // movsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x44580ff2; WORD $0x10f2 // addsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f1 // movsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x44580ff2; WORD $0x18f2 // addsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_193 + JMP LBB0_1013 + +LBB0_380: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_381 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_495 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_511 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_527 + WORD $0xf631 // xor esi, esi + +LBB0_536: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_538 + +LBB0_537: + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0x045c0ff2; BYTE $0xf1 // subsd xmm0, qword [rcx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_537 + +LBB0_538: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_539: + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0x045c0ff2; BYTE $0xf1 // subsd xmm0, qword [rcx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f2 // movsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x445c0ff2; WORD $0x08f1 // subsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f2 // movsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x445c0ff2; WORD $0x10f1 // subsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f2 // movsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x445c0ff2; WORD $0x18f1 // subsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_539 + JMP LBB0_1013 + +LBB0_207: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_208 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_322 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_338 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_354 + WORD $0xf631 // xor esi, esi + +LBB0_363: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_365 + +LBB0_364: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04580ff2; BYTE $0xf2 // addsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_364 + +LBB0_365: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_366: + LONG $0x04100ff2; BYTE $0xf1 // movsd xmm0, qword [rcx + 8*rsi] + LONG $0x04580ff2; BYTE $0xf2 // addsd xmm0, qword [rdx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f1 // movsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x44580ff2; WORD $0x08f2 // addsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f1 // movsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x44580ff2; WORD $0x10f2 // addsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f1 // movsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x44580ff2; WORD $0x18f2 // addsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_366 + JMP LBB0_1013 + +LBB0_553: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_554 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_668 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_684 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_700 + WORD $0xf631 // xor esi, esi + +LBB0_709: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_711 + +LBB0_710: + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0x045c0ff2; BYTE $0xf1 // subsd xmm0, qword [rcx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_710 + +LBB0_711: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_712: + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0x045c0ff2; BYTE $0xf1 // subsd xmm0, qword [rcx + 8*rsi] + LONG $0x110f41f2; WORD $0xf004 // movsd qword [r8 + 8*rsi], xmm0 + LONG $0x44100ff2; WORD $0x08f2 // movsd xmm0, qword [rdx + 8*rsi + 8] + LONG $0x445c0ff2; WORD $0x08f1 // subsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm0 + LONG $0x44100ff2; WORD $0x10f2 // movsd xmm0, qword [rdx + 8*rsi + 16] + LONG $0x445c0ff2; WORD $0x10f1 // subsd xmm0, qword [rcx + 8*rsi + 16] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm0 + LONG $0x44100ff2; WORD $0x18f2 // movsd xmm0, qword [rdx + 8*rsi + 24] + LONG $0x445c0ff2; WORD $0x18f1 // subsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0x110f41f2; WORD $0xf044; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_712 + JMP LBB0_1013 + +LBB0_6: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_731 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_747 + WORD $0xff31 // xor edi, edi + +LBB0_756: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_758 + +LBB0_757: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_757 + +LBB0_758: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_759: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_759 + JMP LBB0_1013 + +LBB0_16: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_881 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_897 + WORD $0xff31 // xor edi, edi + +LBB0_906: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_908 + +LBB0_907: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_907 + +LBB0_908: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_909: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_909 + JMP LBB0_1013 + +LBB0_23: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_46 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_62 + WORD $0xf631 // xor esi, esi + +LBB0_71: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_73 + +LBB0_72: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_72 + +LBB0_73: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_74: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_74 + JMP LBB0_1013 + +LBB0_369: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_392 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_408 + WORD $0xf631 // xor esi, esi + +LBB0_417: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_419 + +LBB0_418: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_418 + +LBB0_419: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_420: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_420 + JMP LBB0_1013 + +LBB0_196: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_219 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_235 + WORD $0xf631 // xor esi, esi + +LBB0_244: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_246 + +LBB0_245: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_245 + +LBB0_246: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_247: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_247 + JMP LBB0_1013 + +LBB0_542: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_565 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_581 + WORD $0xf631 // xor esi, esi + +LBB0_590: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_592 + +LBB0_591: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_591 + +LBB0_592: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_593: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_593 + JMP LBB0_1013 + +LBB0_720: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_805 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_821 + WORD $0xff31 // xor edi, edi + JMP LBB0_823 + +LBB0_870: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_955 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_971 + WORD $0xff31 // xor edi, edi + JMP LBB0_973 + +LBB0_35: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_120 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_136 + WORD $0xf631 // xor esi, esi + +LBB0_145: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_147 + +LBB0_146: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_146 + +LBB0_147: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_148: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_148 + JMP LBB0_1013 + +LBB0_381: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_466 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_482 + WORD $0xf631 // xor esi, esi + +LBB0_491: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_493 + +LBB0_492: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_492 + +LBB0_493: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_494: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_494 + JMP LBB0_1013 + +LBB0_208: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_293 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_309 + WORD $0xf631 // xor esi, esi + +LBB0_318: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_320 + +LBB0_319: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_319 + +LBB0_320: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_321: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_321 + JMP LBB0_1013 + +LBB0_554: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_639 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1013 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_655 + WORD $0xf631 // xor esi, esi + +LBB0_664: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_666 + +LBB0_665: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_665 + +LBB0_666: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_667: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_667 + JMP LBB0_1013 + +LBB0_760: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_763 + WORD $0xf631 // xor esi, esi + +LBB0_772: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_774 + +LBB0_773: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_773 + +LBB0_774: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_775: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_775 + JMP LBB0_1013 + +LBB0_776: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_779 + WORD $0xf631 // xor esi, esi + +LBB0_788: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_790 + +LBB0_789: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_789 + +LBB0_790: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_791: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_791 + JMP LBB0_1013 + +LBB0_910: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_913 + WORD $0xf631 // xor esi, esi + +LBB0_922: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_924 + +LBB0_923: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_923 + +LBB0_924: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_925: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_925 + JMP LBB0_1013 + +LBB0_926: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_929 + WORD $0xf631 // xor esi, esi + +LBB0_938: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_940 + +LBB0_939: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_939 + +LBB0_940: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_941: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x04af0f66; BYTE $0x72 // imul ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x44af0f66; WORD $0x0272 // imul ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x44af0f66; WORD $0x0472 // imul ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x44af0f66; WORD $0x0672 // imul ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_941 + JMP LBB0_1013 + +LBB0_75: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_78 + WORD $0xf631 // xor esi, esi + +LBB0_87: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_89 + +LBB0_88: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_88 + +LBB0_89: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_90: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_90 + JMP LBB0_1013 + +LBB0_91: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_94 + WORD $0xf631 // xor esi, esi + +LBB0_103: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_105 + +LBB0_104: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_104 + +LBB0_105: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_106: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_106 + JMP LBB0_1013 + +LBB0_421: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_424 + WORD $0xf631 // xor esi, esi + +LBB0_433: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_435 + +LBB0_434: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_434 + +LBB0_435: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_436: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_436 + JMP LBB0_1013 + +LBB0_437: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_440 + WORD $0xf631 // xor esi, esi + +LBB0_449: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_451 + +LBB0_450: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_450 + +LBB0_451: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_452: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_452 + JMP LBB0_1013 + +LBB0_248: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_251 + WORD $0xf631 // xor esi, esi + +LBB0_260: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_262 + +LBB0_261: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_261 + +LBB0_262: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_263: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_263 + JMP LBB0_1013 + +LBB0_264: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_267 + WORD $0xf631 // xor esi, esi + +LBB0_276: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_278 + +LBB0_277: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_277 + +LBB0_278: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_279: + LONG $0x7104b70f // movzx eax, word [rcx + 2*rsi] + LONG $0x72040366 // add ax, word [rdx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + LONG $0x72440366; BYTE $0x02 // add ax, word [rdx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7144b70f; BYTE $0x04 // movzx eax, word [rcx + 2*rsi + 4] + LONG $0x72440366; BYTE $0x04 // add ax, word [rdx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7144b70f; BYTE $0x06 // movzx eax, word [rcx + 2*rsi + 6] + LONG $0x72440366; BYTE $0x06 // add ax, word [rdx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_279 + JMP LBB0_1013 + +LBB0_594: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_597 + WORD $0xf631 // xor esi, esi + +LBB0_606: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_608 + +LBB0_607: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_607 + +LBB0_608: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_609: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_609 + JMP LBB0_1013 + +LBB0_610: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JAE LBB0_613 + WORD $0xf631 // xor esi, esi + +LBB0_622: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_624 + +LBB0_623: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_623 + +LBB0_624: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_625: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71042b66 // sub ax, word [rcx + 2*rsi] + LONG $0x04894166; BYTE $0x70 // mov word [r8 + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71442b66; BYTE $0x02 // sub ax, word [rcx + 2*rsi + 2] + LONG $0x44894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71442b66; BYTE $0x04 // sub ax, word [rcx + 2*rsi + 4] + LONG $0x44894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71442b66; BYTE $0x06 // sub ax, word [rcx + 2*rsi + 6] + LONG $0x44894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_625 + JMP LBB0_1013 + +LBB0_826: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_829 + WORD $0xff31 // xor edi, edi + JMP LBB0_831 + +LBB0_834: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_837 + WORD $0xf631 // xor esi, esi + +LBB0_846: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_848 + +LBB0_847: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04590ff3; BYTE $0xb2 // mulss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_847 + +LBB0_848: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_849: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04590ff3; BYTE $0xb2 // mulss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b1 // movss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x44590ff3; WORD $0x04b2 // mulss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b1 // movss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x44590ff3; WORD $0x08b2 // mulss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb1 // movss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x44590ff3; WORD $0x0cb2 // mulss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_849 + JMP LBB0_1013 + +LBB0_976: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_979 + WORD $0xff31 // xor edi, edi + JMP LBB0_981 + +LBB0_984: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_987 + WORD $0xf631 // xor esi, esi + +LBB0_996: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_998 + +LBB0_997: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04590ff3; BYTE $0xb2 // mulss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_997 + +LBB0_998: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_999: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04590ff3; BYTE $0xb2 // mulss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b1 // movss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x44590ff3; WORD $0x04b2 // mulss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b1 // movss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x44590ff3; WORD $0x08b2 // mulss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb1 // movss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x44590ff3; WORD $0x0cb2 // mulss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_999 + JMP LBB0_1013 + +LBB0_149: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_152 + WORD $0xf631 // xor esi, esi + +LBB0_161: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_163 + +LBB0_162: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_162 + +LBB0_163: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_164: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_164 + JMP LBB0_1013 + +LBB0_165: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_168 + WORD $0xf631 // xor esi, esi + +LBB0_177: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_179 + +LBB0_178: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04580ff3; BYTE $0xb2 // addss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_178 + +LBB0_179: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_180: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04580ff3; BYTE $0xb2 // addss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b1 // movss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x44580ff3; WORD $0x04b2 // addss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b1 // movss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x44580ff3; WORD $0x08b2 // addss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb1 // movss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x44580ff3; WORD $0x0cb2 // addss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_180 + JMP LBB0_1013 + +LBB0_495: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_498 + WORD $0xf631 // xor esi, esi + +LBB0_507: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_509 + +LBB0_508: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_508 + +LBB0_509: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_510: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_510 + JMP LBB0_1013 + +LBB0_511: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_514 + WORD $0xf631 // xor esi, esi + +LBB0_523: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_525 + +LBB0_524: + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + LONG $0x045c0ff3; BYTE $0xb1 // subss xmm0, dword [rcx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_524 + +LBB0_525: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_526: + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + LONG $0x045c0ff3; BYTE $0xb1 // subss xmm0, dword [rcx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b2 // movss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x445c0ff3; WORD $0x04b1 // subss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b2 // movss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x445c0ff3; WORD $0x08b1 // subss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb2 // movss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x445c0ff3; WORD $0x0cb1 // subss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_526 + JMP LBB0_1013 + +LBB0_322: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_325 + WORD $0xf631 // xor esi, esi + +LBB0_334: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_336 + +LBB0_335: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_335 + +LBB0_336: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_337: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + LONG $0xf2040348 // add rax, qword [rdx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + LONG $0xf2440348; BYTE $0x08 // add rax, qword [rdx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf1448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rsi + 16] + LONG $0xf2440348; BYTE $0x10 // add rax, qword [rdx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf1448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rsi + 24] + LONG $0xf2440348; BYTE $0x18 // add rax, qword [rdx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_337 + JMP LBB0_1013 + +LBB0_338: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_341 + WORD $0xf631 // xor esi, esi + +LBB0_350: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_352 + +LBB0_351: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04580ff3; BYTE $0xb2 // addss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_351 + +LBB0_352: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_353: + LONG $0x04100ff3; BYTE $0xb1 // movss xmm0, dword [rcx + 4*rsi] + LONG $0x04580ff3; BYTE $0xb2 // addss xmm0, dword [rdx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b1 // movss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x44580ff3; WORD $0x04b2 // addss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b1 // movss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x44580ff3; WORD $0x08b2 // addss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb1 // movss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x44580ff3; WORD $0x0cb2 // addss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_353 + JMP LBB0_1013 + +LBB0_668: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB0_671 + WORD $0xf631 // xor esi, esi + +LBB0_680: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_682 + +LBB0_681: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_681 + +LBB0_682: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_683: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_683 + JMP LBB0_1013 + +LBB0_684: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_687 + WORD $0xf631 // xor esi, esi + +LBB0_696: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xd0 // add rax, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_698 + +LBB0_697: + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + LONG $0x045c0ff3; BYTE $0xb1 // subss xmm0, dword [rcx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_697 + +LBB0_698: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1013 + +LBB0_699: + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + LONG $0x045c0ff3; BYTE $0xb1 // subss xmm0, dword [rcx + 4*rsi] + LONG $0x110f41f3; WORD $0xb004 // movss dword [r8 + 4*rsi], xmm0 + LONG $0x44100ff3; WORD $0x04b2 // movss xmm0, dword [rdx + 4*rsi + 4] + LONG $0x445c0ff3; WORD $0x04b1 // subss xmm0, dword [rcx + 4*rsi + 4] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm0 + LONG $0x44100ff3; WORD $0x08b2 // movss xmm0, dword [rdx + 4*rsi + 8] + LONG $0x445c0ff3; WORD $0x08b1 // subss xmm0, dword [rcx + 4*rsi + 8] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm0 + LONG $0x44100ff3; WORD $0x0cb2 // movss xmm0, dword [rdx + 4*rsi + 12] + LONG $0x445c0ff3; WORD $0x0cb1 // subss xmm0, dword [rcx + 4*rsi + 12] + LONG $0x110f41f3; WORD $0xb044; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_699 + JMP LBB0_1013 + +LBB0_731: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_734 + WORD $0xff31 // xor edi, edi + +LBB0_743: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_745 + +LBB0_744: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_744 + +LBB0_745: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_746: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_746 + JMP LBB0_1013 + +LBB0_881: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_884 + WORD $0xff31 // xor edi, edi + +LBB0_893: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB0_895 + +LBB0_894: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB0_894 + +LBB0_895: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_896: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0x24f6; BYTE $0x3a // mul byte [rdx + rdi] + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + LONG $0x013a64f6 // mul byte [rdx + rdi + 1] + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + LONG $0x023a64f6 // mul byte [rdx + rdi + 2] + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + LONG $0x033a64f6 // mul byte [rdx + rdi + 3] + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB0_896 + JMP LBB0_1013 + +LBB0_46: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_49 + WORD $0xf631 // xor esi, esi + +LBB0_58: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_60 + +LBB0_59: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_59 + +LBB0_60: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_61: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_61 + JMP LBB0_1013 + +LBB0_392: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_395 + WORD $0xf631 // xor esi, esi + +LBB0_404: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_406 + +LBB0_405: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_405 + +LBB0_406: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_407: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_407 + JMP LBB0_1013 + +LBB0_219: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_222 + WORD $0xf631 // xor esi, esi + +LBB0_231: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_233 + +LBB0_232: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_232 + +LBB0_233: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_234: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0x0402; BYTE $0x32 // add al, byte [rdx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + LONG $0x01324402 // add al, byte [rdx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3144b60f; BYTE $0x02 // movzx eax, byte [rcx + rsi + 2] + LONG $0x02324402 // add al, byte [rdx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3144b60f; BYTE $0x03 // movzx eax, byte [rcx + rsi + 3] + LONG $0x03324402 // add al, byte [rdx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_234 + JMP LBB0_1013 + +LBB0_565: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JAE LBB0_568 + WORD $0xf631 // xor esi, esi + +LBB0_577: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_579 + +LBB0_578: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_578 + +LBB0_579: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_580: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_580 + JMP LBB0_1013 + +LBB0_805: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_808 + WORD $0xf631 // xor esi, esi + +LBB0_817: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_819 + +LBB0_818: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_818 + +LBB0_819: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_820: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_820 + JMP LBB0_1013 + +LBB0_955: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_958 + WORD $0xf631 // xor esi, esi + +LBB0_967: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_969 + +LBB0_968: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_968 + +LBB0_969: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_970: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + LONG $0xb204af0f // imul eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0xb244af0f; BYTE $0x04 // imul eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0xb244af0f; BYTE $0x08 // imul eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0xb244af0f; BYTE $0x0c // imul eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_970 + JMP LBB0_1013 + +LBB0_120: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_123 + WORD $0xf631 // xor esi, esi + +LBB0_132: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_134 + +LBB0_133: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_133 + +LBB0_134: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_135: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_135 + JMP LBB0_1013 + +LBB0_466: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_469 + WORD $0xf631 // xor esi, esi + +LBB0_478: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_480 + +LBB0_479: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_479 + +LBB0_480: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_481: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_481 + JMP LBB0_1013 + +LBB0_293: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_296 + WORD $0xf631 // xor esi, esi + +LBB0_305: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_307 + +LBB0_306: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_306 + +LBB0_307: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_308: + WORD $0x048b; BYTE $0xb1 // mov eax, dword [rcx + 4*rsi] + WORD $0x0403; BYTE $0xb2 // add eax, dword [rdx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + LONG $0x04b24403 // add eax, dword [rdx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b1448b // mov eax, dword [rcx + 4*rsi + 8] + LONG $0x08b24403 // add eax, dword [rdx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb1448b // mov eax, dword [rcx + 4*rsi + 12] + LONG $0x0cb24403 // add eax, dword [rdx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_308 + JMP LBB0_1013 + +LBB0_639: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB0_1013 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB0_642 + WORD $0xf631 // xor esi, esi + +LBB0_651: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_653 + +LBB0_652: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_652 + +LBB0_653: + LONG $0x03f98349 // cmp r9, 3 + JB LBB0_1013 + +LBB0_654: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB0_654 + JMP LBB0_1013 + +LBB0_792: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_801 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_801 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_795 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_797: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_797 + JMP LBB0_798 + +LBB0_942: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_951 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_951 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_945 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_947: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_947 + JMP LBB0_948 + +LBB0_107: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_116 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_116 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_110 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_112: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_112 + JMP LBB0_113 + +LBB0_453: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_462 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_462 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_456 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_458: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_458 + JMP LBB0_459 + +LBB0_280: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_289 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_289 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_283 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_285: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_285 + JMP LBB0_286 + +LBB0_626: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_635 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_635 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_629 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_631: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_631 + JMP LBB0_632 + +LBB0_850: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_859 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_859 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_853 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_855: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x30f9 // movupd xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_855 + JMP LBB0_856 + +LBB0_1000: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_1009 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_1009 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1003 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_1005: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x30f9 // movupd xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_1005 + JMP LBB0_1006 + +LBB0_181: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_190 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_190 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_184 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_186: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x30f9 // movupd xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_186 + JMP LBB0_187 + +LBB0_527: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_536 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_536 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_530 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_532: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x10f9 // movupd xmm2, oword [rcx + 8*rdi + 16] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf804 // movupd oword [r8 + 8*rdi], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x30f9 // movupd xmm2, oword [rcx + 8*rdi + 48] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_532 + JMP LBB0_533 + +LBB0_354: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_363 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_363 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_357 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_359: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x30f9 // movupd xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_359 + JMP LBB0_360 + +LBB0_700: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_709 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_709 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_703 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_705: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x10f9 // movupd xmm2, oword [rcx + 8*rdi + 16] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf804 // movupd oword [r8 + 8*rdi], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x30f9 // movupd xmm2, oword [rcx + 8*rdi + 48] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_705 + JMP LBB0_706 + +LBB0_747: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_756 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_756 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_750 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0x456f0f66; BYTE $0x00 // movdqa xmm0, oword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_752: + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x646f0ff3; WORD $0x1001 // movdqu xmm4, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0034 // movdqu oword [r8 + rax], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm3 + LONG $0x4c6f0ff3; WORD $0x2002 // movdqu xmm1, oword [rdx + rax + 32] + LONG $0x546f0ff3; WORD $0x3002 // movdqu xmm2, oword [rdx + rax + 48] + LONG $0x5c6f0ff3; WORD $0x2001 // movdqu xmm3, oword [rcx + rax + 32] + LONG $0x646f0ff3; WORD $0x3001 // movdqu xmm4, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0074; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm3 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB0_752 + JMP LBB0_753 + +LBB0_897: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_906 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_906 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_900 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0x456f0f66; BYTE $0x00 // movdqa xmm0, oword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_902: + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x646f0ff3; WORD $0x1001 // movdqu xmm4, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0034 // movdqu oword [r8 + rax], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm3 + LONG $0x4c6f0ff3; WORD $0x2002 // movdqu xmm1, oword [rdx + rax + 32] + LONG $0x546f0ff3; WORD $0x3002 // movdqu xmm2, oword [rdx + rax + 48] + LONG $0x5c6f0ff3; WORD $0x2001 // movdqu xmm3, oword [rcx + rax + 32] + LONG $0x646f0ff3; WORD $0x3001 // movdqu xmm4, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0074; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm3 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB0_902 + JMP LBB0_903 + +LBB0_62: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_71 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_71 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_65 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_67: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3039 // movdqu xmm0, oword [rcx + rdi + 48] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_67 + JMP LBB0_68 + +LBB0_408: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_417 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_417 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_411 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_413: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_413 + JMP LBB0_414 + +LBB0_235: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_244 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_244 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_238 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_240: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3039 // movdqu xmm0, oword [rcx + rdi + 48] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_240 + JMP LBB0_241 + +LBB0_581: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_590 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_590 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_584 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_586: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_586 + JMP LBB0_587 + +LBB0_821: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_822: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xf8048949 // mov qword [r8 + 8*rdi], rax + LONG $0xf9448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdi + 8] + LONG $0x44af0f48; WORD $0x08fa // imul rax, qword [rdx + 8*rdi + 8] + LONG $0xf8448949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rax + LONG $0xf9448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rdi + 16] + LONG $0x44af0f48; WORD $0x10fa // imul rax, qword [rdx + 8*rdi + 16] + LONG $0xf8448949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rax + LONG $0xf9448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rdi + 24] + LONG $0x44af0f48; WORD $0x18fa // imul rax, qword [rdx + 8*rdi + 24] + LONG $0xf8448949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_822 + +LBB0_823: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_1013 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB0_825: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xfe048948 // mov qword [rsi + 8*rdi], rax + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB0_825 + JMP LBB0_1013 + +LBB0_971: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_972: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xf8048949 // mov qword [r8 + 8*rdi], rax + LONG $0xf9448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdi + 8] + LONG $0x44af0f48; WORD $0x08fa // imul rax, qword [rdx + 8*rdi + 8] + LONG $0xf8448949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rax + LONG $0xf9448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rdi + 16] + LONG $0x44af0f48; WORD $0x10fa // imul rax, qword [rdx + 8*rdi + 16] + LONG $0xf8448949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rax + LONG $0xf9448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rdi + 24] + LONG $0x44af0f48; WORD $0x18fa // imul rax, qword [rdx + 8*rdi + 24] + LONG $0xf8448949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_972 + +LBB0_973: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_1013 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB0_975: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xfe048948 // mov qword [rsi + 8*rdi], rax + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB0_975 + JMP LBB0_1013 + +LBB0_136: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_145 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_145 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_139 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_141: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30f9 // movdqu xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_141 + JMP LBB0_142 + +LBB0_482: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_491 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_491 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_485 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_487: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_487 + JMP LBB0_488 + +LBB0_309: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_318 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_318 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_312 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_314: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30f9 // movdqu xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_314 + JMP LBB0_315 + +LBB0_655: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_664 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_664 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_658 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_660: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_660 + JMP LBB0_661 + +LBB0_763: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_772 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_772 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_766 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_768: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_768 + JMP LBB0_769 + +LBB0_779: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_788 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_788 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_782 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_784: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_784 + JMP LBB0_785 + +LBB0_913: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_922 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_922 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_916 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_918: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_918 + JMP LBB0_919 + +LBB0_929: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_938 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_938 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_932 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_934: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_934 + JMP LBB0_935 + +LBB0_78: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_87 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_87 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_81 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_83: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_83 + JMP LBB0_84 + +LBB0_94: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_103 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_103 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_97 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_99: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_99 + JMP LBB0_100 + +LBB0_424: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_433 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_433 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_427 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_429: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_429 + JMP LBB0_430 + +LBB0_440: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_449 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_449 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_443 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_445: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_445 + JMP LBB0_446 + +LBB0_251: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_260 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_260 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_254 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_256: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_256 + JMP LBB0_257 + +LBB0_267: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_276 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_276 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_270 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_272: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3079 // movdqu xmm0, oword [rcx + 2*rdi + 48] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_272 + JMP LBB0_273 + +LBB0_597: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_606 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_606 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_600 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_602: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_602 + JMP LBB0_603 + +LBB0_613: + LONG $0x50348d4b // lea rsi, [r8 + 2*r10] + LONG $0x52048d4a // lea rax, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x51048d4a // lea rax, [rcx + 2*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_622 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_622 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_616 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_618: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0x546f0ff3; WORD $0x2079 // movdqu xmm2, oword [rcx + 2*rdi + 32] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_618 + JMP LBB0_619 + +LBB0_829: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_830: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xf8048949 // mov qword [r8 + 8*rdi], rax + LONG $0xf9448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdi + 8] + LONG $0x44af0f48; WORD $0x08fa // imul rax, qword [rdx + 8*rdi + 8] + LONG $0xf8448949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rax + LONG $0xf9448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rdi + 16] + LONG $0x44af0f48; WORD $0x10fa // imul rax, qword [rdx + 8*rdi + 16] + LONG $0xf8448949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rax + LONG $0xf9448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rdi + 24] + LONG $0x44af0f48; WORD $0x18fa // imul rax, qword [rdx + 8*rdi + 24] + LONG $0xf8448949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_830 + +LBB0_831: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_1013 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB0_833: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xfe048948 // mov qword [rsi + 8*rdi], rax + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB0_833 + JMP LBB0_1013 + +LBB0_837: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_846 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_846 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_840 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_842: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x30 // movups xmm0, oword [rcx + 4*rdi + 48] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x44110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_842 + JMP LBB0_843 + +LBB0_979: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_980: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xf8048949 // mov qword [r8 + 8*rdi], rax + LONG $0xf9448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdi + 8] + LONG $0x44af0f48; WORD $0x08fa // imul rax, qword [rdx + 8*rdi + 8] + LONG $0xf8448949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rax + LONG $0xf9448b48; BYTE $0x10 // mov rax, qword [rcx + 8*rdi + 16] + LONG $0x44af0f48; WORD $0x10fa // imul rax, qword [rdx + 8*rdi + 16] + LONG $0xf8448949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rax + LONG $0xf9448b48; BYTE $0x18 // mov rax, qword [rcx + 8*rdi + 24] + LONG $0x44af0f48; WORD $0x18fa // imul rax, qword [rdx + 8*rdi + 24] + LONG $0xf8448949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_980 + +LBB0_981: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB0_1013 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB0_983: + LONG $0xf9048b48 // mov rax, qword [rcx + 8*rdi] + LONG $0x04af0f48; BYTE $0xfa // imul rax, qword [rdx + 8*rdi] + LONG $0xfe048948 // mov qword [rsi + 8*rdi], rax + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB0_983 + +LBB0_1013: + RET + +LBB0_987: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_996 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_996 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_990 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_992: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x30 // movups xmm0, oword [rcx + 4*rdi + 48] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x44110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_992 + JMP LBB0_993 + +LBB0_152: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_161 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_161 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_155 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_157: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30f9 // movdqu xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_157 + JMP LBB0_158 + +LBB0_168: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_177 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_177 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_171 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_173: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x30 // movups xmm0, oword [rcx + 4*rdi + 48] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x44110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_173 + JMP LBB0_174 + +LBB0_498: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_507 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_507 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_501 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_503: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_503 + JMP LBB0_504 + +LBB0_514: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_523 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_523 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_517 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_519: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x10 // movups xmm2, oword [rcx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x04110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm0 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x30 // movups xmm2, oword [rcx + 4*rdi + 48] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x44110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm0 + LONG $0x4c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_519 + JMP LBB0_520 + +LBB0_325: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_334 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_334 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_328 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_330: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30f9 // movdqu xmm0, oword [rcx + 8*rdi + 48] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_330 + JMP LBB0_331 + +LBB0_341: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_350 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_350 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_344 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_346: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x30 // movups xmm0, oword [rcx + 4*rdi + 48] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x44110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_346 + JMP LBB0_347 + +LBB0_671: + LONG $0xd0348d4b // lea rsi, [r8 + 8*r10] + LONG $0xd2048d4a // lea rax, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0xd1048d4a // lea rax, [rcx + 8*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_680 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_680 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_674 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_676: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x546f0ff3; WORD $0x20f9 // movdqu xmm2, oword [rcx + 8*rdi + 32] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_676 + JMP LBB0_677 + +LBB0_687: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_696 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_696 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_690 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_692: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x10 // movups xmm2, oword [rcx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x04110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm0 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x30 // movups xmm2, oword [rcx + 4*rdi + 48] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x44110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm0 + LONG $0x4c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_692 + JMP LBB0_693 + +LBB0_734: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_743 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_743 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_737 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0x456f0f66; BYTE $0x00 // movdqa xmm0, oword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_739: + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x646f0ff3; WORD $0x1001 // movdqu xmm4, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0034 // movdqu oword [r8 + rax], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm3 + LONG $0x4c6f0ff3; WORD $0x2002 // movdqu xmm1, oword [rdx + rax + 32] + LONG $0x546f0ff3; WORD $0x3002 // movdqu xmm2, oword [rdx + rax + 48] + LONG $0x5c6f0ff3; WORD $0x2001 // movdqu xmm3, oword [rcx + rax + 32] + LONG $0x646f0ff3; WORD $0x3001 // movdqu xmm4, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0074; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm3 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB0_739 + JMP LBB0_740 + +LBB0_884: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd6970f40 // seta sil + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_893 + WORD $0x2040; BYTE $0xf0 // and al, sil + JNE LBB0_893 + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_887 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0x456f0f66; BYTE $0x00 // movdqa xmm0, oword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_889: + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x646f0ff3; WORD $0x1001 // movdqu xmm4, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0034 // movdqu oword [r8 + rax], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm3 + LONG $0x4c6f0ff3; WORD $0x2002 // movdqu xmm1, oword [rdx + rax + 32] + LONG $0x546f0ff3; WORD $0x3002 // movdqu xmm2, oword [rdx + rax + 48] + LONG $0x5c6f0ff3; WORD $0x2001 // movdqu xmm3, oword [rcx + rax + 32] + LONG $0x646f0ff3; WORD $0x3001 // movdqu xmm4, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xe9 // pmovzxbw xmm5, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xf3 // pmovzxbw xmm6, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xf5d50f66 // pmullw xmm6, xmm5 + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf3670f66 // packuswb xmm6, xmm3 + LONG $0x30380f66; BYTE $0xca // pmovzxbw xmm1, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xdc // pmovzxbw xmm3, xmm4 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0xe2d50f66 // pmullw xmm4, xmm2 + LONG $0xe0db0f66 // pand xmm4, xmm0 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0xd8db0f66 // pand xmm3, xmm0 + LONG $0xdc670f66 // packuswb xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x0074; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm6 + LONG $0x7f0f41f3; WORD $0x005c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm3 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB0_889 + JMP LBB0_890 + +LBB0_49: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_58 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_58 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_52 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_54: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3039 // movdqu xmm0, oword [rcx + rdi + 48] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_54 + JMP LBB0_55 + +LBB0_395: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_404 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_404 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_398 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_400: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_400 + JMP LBB0_401 + +LBB0_222: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_231 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_231 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_225 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_227: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x3039 // movdqu xmm0, oword [rcx + rdi + 48] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_227 + JMP LBB0_228 + +LBB0_568: + LONG $0x10348d4b // lea rsi, [r8 + r10] + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_577 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_577 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_571 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_573: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0x546f0ff3; WORD $0x2039 // movdqu xmm2, oword [rcx + rdi + 32] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_573 + JMP LBB0_574 + +LBB0_808: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_817 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_817 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_811 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_813: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_813 + JMP LBB0_814 + +LBB0_958: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_967 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_967 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_961 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_963: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_963 + JMP LBB0_964 + +LBB0_123: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_132 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_132 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_126 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_128: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_128 + JMP LBB0_129 + +LBB0_469: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_478 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_478 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_472 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_474: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_474 + JMP LBB0_475 + +LBB0_296: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_305 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_305 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_299 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_301: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x30b9 // movdqu xmm0, oword [rcx + 4*rdi + 48] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_301 + JMP LBB0_302 + +LBB0_642: + LONG $0x90348d4b // lea rsi, [r8 + 4*r10] + LONG $0x92048d4a // lea rax, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + LONG $0xd1970f41 // seta r9b + LONG $0x91048d4a // lea rax, [rcx + 4*r10] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + LONG $0xd3970f41 // seta r11b + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + LONG $0xd7970f40 // seta dil + WORD $0xf631 // xor esi, esi + WORD $0x8445; BYTE $0xd9 // test r9b, r11b + JNE LBB0_651 + WORD $0x2040; BYTE $0xf8 // and al, dil + JNE LBB0_651 + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_645 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_647: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x546f0ff3; WORD $0x20b9 // movdqu xmm2, oword [rcx + 4*rdi + 32] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_647 + JMP LBB0_648 + +LBB0_795: + WORD $0xff31 // xor edi, edi + +LBB0_798: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_800 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_800: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_801 + JMP LBB0_1013 + +LBB0_945: + WORD $0xff31 // xor edi, edi + +LBB0_948: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_950 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_950: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_951 + JMP LBB0_1013 + +LBB0_110: + WORD $0xff31 // xor edi, edi + +LBB0_113: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_115 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_115: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_116 + +LBB0_456: + WORD $0xff31 // xor edi, edi + +LBB0_459: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_461 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + +LBB0_461: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_462 + JMP LBB0_1013 + +LBB0_283: + WORD $0xff31 // xor edi, edi + +LBB0_286: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_288 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_288: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_289 + +LBB0_629: + WORD $0xff31 // xor edi, edi + +LBB0_632: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_634 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + +LBB0_634: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_635 + JMP LBB0_1013 + +LBB0_853: + WORD $0xff31 // xor edi, edi + +LBB0_856: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_858 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + +LBB0_858: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_859 + JMP LBB0_1013 + +LBB0_1003: + WORD $0xff31 // xor edi, edi + +LBB0_1006: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_1008 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0590f66 // mulpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1590f66 // mulpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + +LBB0_1008: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_1009 + JMP LBB0_1013 + +LBB0_184: + WORD $0xff31 // xor edi, edi + +LBB0_187: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_189 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + +LBB0_189: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_190 + +LBB0_530: + WORD $0xff31 // xor edi, edi + +LBB0_533: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_535 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x10f9 // movupd xmm2, oword [rcx + 8*rdi + 16] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf804 // movupd oword [r8 + 8*rdi], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + +LBB0_535: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_536 + JMP LBB0_1013 + +LBB0_357: + WORD $0xff31 // xor edi, edi + +LBB0_360: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_362 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xd0580f66 // addpd xmm2, xmm0 + LONG $0x44100f66; WORD $0x10f9 // movupd xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1580f66 // addpd xmm0, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf844; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm0 + +LBB0_362: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_363 + JMP LBB0_1013 + +LBB0_703: + WORD $0xff31 // xor edi, edi + +LBB0_706: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_708 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0xc25c0f66 // subpd xmm0, xmm2 + LONG $0x54100f66; WORD $0x10f9 // movupd xmm2, oword [rcx + 8*rdi + 16] + LONG $0xca5c0f66 // subpd xmm1, xmm2 + LONG $0x110f4166; WORD $0xf804 // movupd oword [r8 + 8*rdi], xmm0 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + +LBB0_708: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_709 + JMP LBB0_1013 + +LBB0_750: + WORD $0xc031 // xor eax, eax + +LBB0_753: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_755 + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x446f0ff3; WORD $0x1001 // movdqu xmm0, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe1 // pmovzxbw xmm4, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xeb // pmovzxbw xmm5, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0x4d6f0f66; BYTE $0x00 // movdqa xmm1, oword 0[rbp] /* [rip + .LCPI0_0] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0xecd50f66 // pmullw xmm5, xmm4 + LONG $0xe9db0f66 // pand xmm5, xmm1 + LONG $0xeb670f66 // packuswb xmm5, xmm3 + LONG $0x30380f66; BYTE $0xda // pmovzxbw xmm3, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xe0 // pmovzxbw xmm4, xmm0 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0xc2d50f66 // pmullw xmm0, xmm2 + LONG $0xc1db0f66 // pand xmm0, xmm1 + LONG $0xe3d50f66 // pmullw xmm4, xmm3 + LONG $0xe1db0f66 // pand xmm4, xmm1 + LONG $0xe0670f66 // packuswb xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB0_755: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JNE LBB0_756 + JMP LBB0_1013 + +LBB0_900: + WORD $0xc031 // xor eax, eax + +LBB0_903: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_905 + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x446f0ff3; WORD $0x1001 // movdqu xmm0, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe1 // pmovzxbw xmm4, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xeb // pmovzxbw xmm5, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0x4d6f0f66; BYTE $0x00 // movdqa xmm1, oword 0[rbp] /* [rip + .LCPI0_0] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0xecd50f66 // pmullw xmm5, xmm4 + LONG $0xe9db0f66 // pand xmm5, xmm1 + LONG $0xeb670f66 // packuswb xmm5, xmm3 + LONG $0x30380f66; BYTE $0xda // pmovzxbw xmm3, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xe0 // pmovzxbw xmm4, xmm0 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0xc2d50f66 // pmullw xmm0, xmm2 + LONG $0xc1db0f66 // pand xmm0, xmm1 + LONG $0xe3d50f66 // pmullw xmm4, xmm3 + LONG $0xe1db0f66 // pand xmm4, xmm1 + LONG $0xe0670f66 // packuswb xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB0_905: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JNE LBB0_906 + JMP LBB0_1013 + +LBB0_65: + WORD $0xff31 // xor edi, edi + +LBB0_68: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_70 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB0_70: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_71 + +LBB0_411: + WORD $0xff31 // xor edi, edi + +LBB0_414: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_416 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + +LBB0_416: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_417 + JMP LBB0_1013 + +LBB0_238: + WORD $0xff31 // xor edi, edi + +LBB0_241: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_243 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB0_243: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_244 + +LBB0_584: + WORD $0xff31 // xor edi, edi + +LBB0_587: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_589 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + +LBB0_589: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_590 + JMP LBB0_1013 + +LBB0_139: + WORD $0xff31 // xor edi, edi + +LBB0_142: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_144 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB0_144: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_145 + +LBB0_485: + WORD $0xff31 // xor edi, edi + +LBB0_488: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_490 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + +LBB0_490: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_491 + JMP LBB0_1013 + +LBB0_312: + WORD $0xff31 // xor edi, edi + +LBB0_315: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_317 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB0_317: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_318 + JMP LBB0_1013 + +LBB0_658: + WORD $0xff31 // xor edi, edi + +LBB0_661: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_663 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + +LBB0_663: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_664 + JMP LBB0_1013 + +LBB0_766: + WORD $0xff31 // xor edi, edi + +LBB0_769: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_771 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_771: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_772 + JMP LBB0_1013 + +LBB0_782: + WORD $0xff31 // xor edi, edi + +LBB0_785: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_787 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_787: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_788 + JMP LBB0_1013 + +LBB0_916: + WORD $0xff31 // xor edi, edi + +LBB0_919: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_921 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_921: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_922 + JMP LBB0_1013 + +LBB0_932: + WORD $0xff31 // xor edi, edi + +LBB0_935: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_937 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1d50f66 // pmullw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_937: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_938 + JMP LBB0_1013 + +LBB0_81: + WORD $0xff31 // xor edi, edi + +LBB0_84: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_86 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_86: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_87 + +LBB0_97: + WORD $0xff31 // xor edi, edi + +LBB0_100: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_102 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_102: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_103 + +LBB0_427: + WORD $0xff31 // xor edi, edi + +LBB0_430: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_432 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + +LBB0_432: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_433 + JMP LBB0_1013 + +LBB0_443: + WORD $0xff31 // xor edi, edi + +LBB0_446: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_448 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + +LBB0_448: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_449 + JMP LBB0_1013 + +LBB0_254: + WORD $0xff31 // xor edi, edi + +LBB0_257: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_259 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_259: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_260 + +LBB0_270: + WORD $0xff31 // xor edi, edi + +LBB0_273: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_275 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1079 // movdqu xmm0, oword [rcx + 2*rdi + 16] + LONG $0xc1fd0f66 // paddw xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7814 // movdqu oword [r8 + 2*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB0_275: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_276 + +LBB0_600: + WORD $0xff31 // xor edi, edi + +LBB0_603: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_605 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + +LBB0_605: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_606 + JMP LBB0_1013 + +LBB0_616: + WORD $0xff31 // xor edi, edi + +LBB0_619: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_621 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0x146f0ff3; BYTE $0x79 // movdqu xmm2, oword [rcx + 2*rdi] + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x7804 // movdqu oword [r8 + 2*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + +LBB0_621: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_622 + JMP LBB0_1013 + +LBB0_840: + WORD $0xff31 // xor edi, edi + +LBB0_843: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_845 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + +LBB0_845: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_846 + JMP LBB0_1013 + +LBB0_990: + WORD $0xff31 // xor edi, edi + +LBB0_993: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_995 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x590f; BYTE $0xd0 // mulps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xc1 // mulps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + +LBB0_995: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_996 + JMP LBB0_1013 + +LBB0_155: + WORD $0xff31 // xor edi, edi + +LBB0_158: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_160 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB0_160: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_161 + +LBB0_171: + WORD $0xff31 // xor edi, edi + +LBB0_174: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_176 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + +LBB0_176: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_177 + +LBB0_501: + WORD $0xff31 // xor edi, edi + +LBB0_504: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_506 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + +LBB0_506: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_507 + JMP LBB0_1013 + +LBB0_517: + WORD $0xff31 // xor edi, edi + +LBB0_520: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_522 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x10 // movups xmm2, oword [rcx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x04110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm0 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + +LBB0_522: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_523 + JMP LBB0_1013 + +LBB0_328: + WORD $0xff31 // xor edi, edi + +LBB0_331: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_333 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10f9 // movdqu xmm0, oword [rcx + 8*rdi + 16] + LONG $0xc1d40f66 // paddq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xf814 // movdqu oword [r8 + 8*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB0_333: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_334 + JMP LBB0_1013 + +LBB0_344: + WORD $0xff31 // xor edi, edi + +LBB0_347: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_349 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x580f; BYTE $0xd0 // addps xmm2, xmm0 + LONG $0xb944100f; BYTE $0x10 // movups xmm0, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xc1 // addps xmm0, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x44110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm0 + +LBB0_349: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_350 + JMP LBB0_1013 + +LBB0_674: + WORD $0xff31 // xor edi, edi + +LBB0_677: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_679 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x146f0ff3; BYTE $0xf9 // movdqu xmm2, oword [rcx + 8*rdi] + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf804 // movdqu oword [r8 + 8*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + +LBB0_679: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_680 + JMP LBB0_1013 + +LBB0_690: + WORD $0xff31 // xor edi, edi + +LBB0_693: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_695 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + WORD $0x5c0f; BYTE $0xc2 // subps xmm0, xmm2 + LONG $0xb954100f; BYTE $0x10 // movups xmm2, oword [rcx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xca // subps xmm1, xmm2 + LONG $0x04110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm0 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + +LBB0_695: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_696 + JMP LBB0_1013 + +LBB0_737: + WORD $0xc031 // xor eax, eax + +LBB0_740: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_742 + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x446f0ff3; WORD $0x1001 // movdqu xmm0, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe1 // pmovzxbw xmm4, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xeb // pmovzxbw xmm5, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0x4d6f0f66; BYTE $0x00 // movdqa xmm1, oword 0[rbp] /* [rip + .LCPI0_0] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0xecd50f66 // pmullw xmm5, xmm4 + LONG $0xe9db0f66 // pand xmm5, xmm1 + LONG $0xeb670f66 // packuswb xmm5, xmm3 + LONG $0x30380f66; BYTE $0xda // pmovzxbw xmm3, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xe0 // pmovzxbw xmm4, xmm0 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0xc2d50f66 // pmullw xmm0, xmm2 + LONG $0xc1db0f66 // pand xmm0, xmm1 + LONG $0xe3d50f66 // pmullw xmm4, xmm3 + LONG $0xe1db0f66 // pand xmm4, xmm1 + LONG $0xe0670f66 // packuswb xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB0_742: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JNE LBB0_743 + JMP LBB0_1013 + +LBB0_887: + WORD $0xc031 // xor eax, eax + +LBB0_890: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_892 + LONG $0x0c6f0ff3; BYTE $0x02 // movdqu xmm1, oword [rdx + rax] + LONG $0x546f0ff3; WORD $0x1002 // movdqu xmm2, oword [rdx + rax + 16] + LONG $0x1c6f0ff3; BYTE $0x01 // movdqu xmm3, oword [rcx + rax] + LONG $0x446f0ff3; WORD $0x1001 // movdqu xmm0, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xe1 // pmovzxbw xmm4, xmm1 + LONG $0xc9680f66 // punpckhbw xmm1, xmm1 + LONG $0x30380f66; BYTE $0xeb // pmovzxbw xmm5, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd9d50f66 // pmullw xmm3, xmm1 + LONG $0x4d6f0f66; BYTE $0x00 // movdqa xmm1, oword 0[rbp] /* [rip + .LCPI0_0] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0xecd50f66 // pmullw xmm5, xmm4 + LONG $0xe9db0f66 // pand xmm5, xmm1 + LONG $0xeb670f66 // packuswb xmm5, xmm3 + LONG $0x30380f66; BYTE $0xda // pmovzxbw xmm3, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x30380f66; BYTE $0xe0 // pmovzxbw xmm4, xmm0 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0xc2d50f66 // pmullw xmm0, xmm2 + LONG $0xc1db0f66 // pand xmm0, xmm1 + LONG $0xe3d50f66 // pmullw xmm4, xmm3 + LONG $0xe1db0f66 // pand xmm4, xmm1 + LONG $0xe0670f66 // packuswb xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB0_892: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JNE LBB0_893 + JMP LBB0_1013 + +LBB0_52: + WORD $0xff31 // xor edi, edi + +LBB0_55: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_57 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB0_57: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_58 + +LBB0_398: + WORD $0xff31 // xor edi, edi + +LBB0_401: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_403 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + +LBB0_403: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_404 + JMP LBB0_1013 + +LBB0_225: + WORD $0xff31 // xor edi, edi + +LBB0_228: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_230 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x1039 // movdqu xmm0, oword [rcx + rdi + 16] + LONG $0xc1fc0f66 // paddb xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3814 // movdqu oword [r8 + rdi], xmm2 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB0_230: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_231 + +LBB0_571: + WORD $0xff31 // xor edi, edi + +LBB0_574: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_576 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0x146f0ff3; BYTE $0x39 // movdqu xmm2, oword [rcx + rdi] + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x3804 // movdqu oword [r8 + rdi], xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + +LBB0_576: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_577 + JMP LBB0_1013 + +LBB0_811: + WORD $0xff31 // xor edi, edi + +LBB0_814: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_816 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_816: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_817 + JMP LBB0_1013 + +LBB0_961: + WORD $0xff31 // xor edi, edi + +LBB0_964: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_966 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc1 // pmulld xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_966: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_967 + JMP LBB0_1013 + +LBB0_126: + WORD $0xff31 // xor edi, edi + +LBB0_129: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_131 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_131: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_132 + +LBB0_472: + WORD $0xff31 // xor edi, edi + +LBB0_475: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_477 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + +LBB0_477: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_478 + JMP LBB0_1013 + +LBB0_299: + WORD $0xff31 // xor edi, edi + +LBB0_302: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_304 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x446f0ff3; WORD $0x10b9 // movdqu xmm0, oword [rcx + 4*rdi + 16] + LONG $0xc1fe0f66 // paddd xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb814 // movdqu oword [r8 + 4*rdi], xmm2 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB0_304: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB0_1013 + JMP LBB0_305 + +LBB0_645: + WORD $0xff31 // xor edi, edi + +LBB0_648: + LONG $0x01c1f641 // test r9b, 1 + JE LBB0_650 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x146f0ff3; BYTE $0xb9 // movdqu xmm2, oword [rcx + 4*rdi] + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb804 // movdqu oword [r8 + 4*rdi], xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + +LBB0_650: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JNE LBB0_651 + JMP LBB0_1013 + +DATA LCDATA2<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA2<>+0x008(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA2<>(SB), 8, $16 + +TEXT ·_arithmetic_arr_scalar_sse4(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA2<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB1_12 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB1_23 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB1_31 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB1_1069 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_55 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_97 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_157 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_160 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_11 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_453 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_453 + +LBB1_11: + WORD $0xf631 // xor esi, esi + +LBB1_625: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_627 + +LBB1_626: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_626 + +LBB1_627: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_628: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_628 + JMP LBB1_1069 + +LBB1_12: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB1_39 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB1_47 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB1_1069 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_62 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_102 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_163 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_166 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_22 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_456 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_456 + +LBB1_22: + WORD $0xf631 // xor esi, esi + +LBB1_633: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_635 + +LBB1_634: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_634 + +LBB1_635: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_636: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_636 + JMP LBB1_1069 + +LBB1_23: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_69 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_107 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_169 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_172 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_30 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_459 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_459 + +LBB1_30: + WORD $0xf631 // xor esi, esi + +LBB1_641: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_643 + +LBB1_642: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_642 + +LBB1_643: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_644: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_644 + JMP LBB1_1069 + +LBB1_31: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_76 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_112 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_175 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_178 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_38 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_462 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_462 + +LBB1_38: + WORD $0xf631 // xor esi, esi + +LBB1_649: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_651 + +LBB1_650: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_650 + +LBB1_651: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_652: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_652 + JMP LBB1_1069 + +LBB1_39: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_83 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_117 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_181 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_184 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_46 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_465 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_465 + +LBB1_46: + WORD $0xf631 // xor esi, esi + +LBB1_657: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_659 + +LBB1_658: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_658 + +LBB1_659: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_660: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_660 + JMP LBB1_1069 + +LBB1_47: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_90 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_122 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_187 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_190 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_54 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_468 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_468 + +LBB1_54: + WORD $0xf631 // xor esi, esi + +LBB1_665: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_667 + +LBB1_666: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_666 + +LBB1_667: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_668: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_668 + JMP LBB1_1069 + +LBB1_55: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_127 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_193 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_196 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_61 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_471 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_471 + +LBB1_61: + WORD $0xc931 // xor ecx, ecx + +LBB1_673: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_675 + +LBB1_674: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_674 + +LBB1_675: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_676: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_676 + JMP LBB1_1069 + +LBB1_62: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_132 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_199 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_202 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_68 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_474 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_474 + +LBB1_68: + WORD $0xc931 // xor ecx, ecx + +LBB1_681: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_683 + +LBB1_682: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_682 + +LBB1_683: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_684: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_684 + JMP LBB1_1069 + +LBB1_69: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_137 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_205 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_208 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_75 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_477 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_477 + +LBB1_75: + WORD $0xc931 // xor ecx, ecx + +LBB1_689: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_691 + +LBB1_690: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_690 + +LBB1_691: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_692: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_692 + JMP LBB1_1069 + +LBB1_76: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_142 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_211 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_214 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_82 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_480 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_480 + +LBB1_82: + WORD $0xc931 // xor ecx, ecx + +LBB1_697: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_699 + +LBB1_698: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_698 + +LBB1_699: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_700: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_700 + JMP LBB1_1069 + +LBB1_83: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_147 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_217 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_220 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_89 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_483 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_483 + +LBB1_89: + WORD $0xc931 // xor ecx, ecx + +LBB1_705: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_707 + +LBB1_706: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_706 + +LBB1_707: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_708: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_708 + JMP LBB1_1069 + +LBB1_90: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_152 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_223 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_226 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff2 // movsd xmm0, qword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_96 + LONG $0xc20c8d48 // lea rcx, [rdx + 8*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_486 + LONG $0xc00c8d49 // lea rcx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_486 + +LBB1_96: + WORD $0xc931 // xor ecx, ecx + +LBB1_713: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_715 + +LBB1_714: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_714 + +LBB1_715: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_716: + LONG $0x0c100ff2; BYTE $0xca // movsd xmm1, qword [rdx + 8*rcx] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc80c // movsd qword [r8 + 8*rcx], xmm1 + LONG $0x4c100ff2; WORD $0x08ca // movsd xmm1, qword [rdx + 8*rcx + 8] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x08 // movsd qword [r8 + 8*rcx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10ca // movsd xmm1, qword [rdx + 8*rcx + 16] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x10 // movsd qword [r8 + 8*rcx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18ca // movsd xmm1, qword [rdx + 8*rcx + 24] + LONG $0xc85c0ff2 // subsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xc84c; BYTE $0x18 // movsd qword [r8 + 8*rcx + 24], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_716 + JMP LBB1_1069 + +LBB1_97: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_229 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_101 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_489 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_489 + +LBB1_101: + WORD $0xff31 // xor edi, edi + +LBB1_721: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_723 + +LBB1_722: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_722 + +LBB1_723: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_724: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_724 + JMP LBB1_1069 + +LBB1_102: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_232 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_106 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_492 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_492 + +LBB1_106: + WORD $0xff31 // xor edi, edi + +LBB1_729: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_731 + +LBB1_730: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_730 + +LBB1_731: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_732: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_732 + JMP LBB1_1069 + +LBB1_107: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_235 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_111 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_495 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_495 + +LBB1_111: + WORD $0xf631 // xor esi, esi + +LBB1_737: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_739 + +LBB1_738: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_738 + +LBB1_739: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_740: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_740 + JMP LBB1_1069 + +LBB1_112: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_238 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_116 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_498 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_498 + +LBB1_116: + WORD $0xf631 // xor esi, esi + +LBB1_745: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_747 + +LBB1_746: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_746 + +LBB1_747: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_748: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_748 + JMP LBB1_1069 + +LBB1_117: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_241 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_121 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_501 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_501 + +LBB1_121: + WORD $0xf631 // xor esi, esi + +LBB1_753: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_755 + +LBB1_754: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_754 + +LBB1_755: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_756: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_756 + JMP LBB1_1069 + +LBB1_122: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_244 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_126 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_504 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_504 + +LBB1_126: + WORD $0xf631 // xor esi, esi + +LBB1_761: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_763 + +LBB1_762: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_762 + +LBB1_763: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_764: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_764 + JMP LBB1_1069 + +LBB1_127: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_247 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB1_319 + WORD $0xff31 // xor edi, edi + JMP LBB1_321 + +LBB1_132: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_250 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB1_324 + WORD $0xff31 // xor edi, edi + JMP LBB1_326 + +LBB1_137: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_253 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_141 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_507 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_507 + +LBB1_141: + WORD $0xf631 // xor esi, esi + +LBB1_769: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_771 + +LBB1_770: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_770 + +LBB1_771: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_772: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_772 + JMP LBB1_1069 + +LBB1_142: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_256 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_146 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_510 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_510 + +LBB1_146: + WORD $0xf631 // xor esi, esi + +LBB1_777: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_779 + +LBB1_778: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_778 + +LBB1_779: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_780: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_780 + JMP LBB1_1069 + +LBB1_147: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_259 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_151 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_513 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_513 + +LBB1_151: + WORD $0xf631 // xor esi, esi + +LBB1_785: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_787 + +LBB1_786: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_786 + +LBB1_787: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_788: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_788 + JMP LBB1_1069 + +LBB1_152: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_262 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_156 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_516 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_516 + +LBB1_156: + WORD $0xf631 // xor esi, esi + +LBB1_793: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_795 + +LBB1_794: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_794 + +LBB1_795: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_796: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_796 + JMP LBB1_1069 + +LBB1_157: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_159 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_519 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_519 + +LBB1_159: + WORD $0xf631 // xor esi, esi + +LBB1_801: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_803 + +LBB1_802: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_802 + +LBB1_803: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_804: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_804 + JMP LBB1_1069 + +LBB1_160: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_162 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_522 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_522 + +LBB1_162: + WORD $0xf631 // xor esi, esi + +LBB1_809: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_811 + +LBB1_810: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_810 + +LBB1_811: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_812: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_812 + JMP LBB1_1069 + +LBB1_163: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_165 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_525 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_525 + +LBB1_165: + WORD $0xf631 // xor esi, esi + +LBB1_817: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_819 + +LBB1_818: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_818 + +LBB1_819: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_820: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_820 + JMP LBB1_1069 + +LBB1_166: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_168 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_528 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_528 + +LBB1_168: + WORD $0xf631 // xor esi, esi + +LBB1_825: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_827 + +LBB1_826: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_826 + +LBB1_827: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_828: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + LONG $0xc8af0f66 // imul cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_828 + JMP LBB1_1069 + +LBB1_169: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_171 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_531 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_531 + +LBB1_171: + WORD $0xf631 // xor esi, esi + +LBB1_833: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_835 + +LBB1_834: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_834 + +LBB1_835: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_836: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_836 + JMP LBB1_1069 + +LBB1_172: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_174 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_534 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_534 + +LBB1_174: + WORD $0xf631 // xor esi, esi + +LBB1_841: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_843 + +LBB1_842: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_842 + +LBB1_843: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_844: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_844 + JMP LBB1_1069 + +LBB1_175: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_177 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_537 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_537 + +LBB1_177: + WORD $0xf631 // xor esi, esi + +LBB1_849: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_851 + +LBB1_850: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_850 + +LBB1_851: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_852: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_852 + JMP LBB1_1069 + +LBB1_178: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_180 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_540 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_540 + +LBB1_180: + WORD $0xf631 // xor esi, esi + +LBB1_857: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_859 + +LBB1_858: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_858 + +LBB1_859: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_860: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_860 + JMP LBB1_1069 + +LBB1_181: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_183 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_543 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_543 + +LBB1_183: + WORD $0xf631 // xor esi, esi + +LBB1_865: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_867 + +LBB1_866: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_866 + +LBB1_867: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_868: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_868 + JMP LBB1_1069 + +LBB1_184: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_186 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_546 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_546 + +LBB1_186: + WORD $0xf631 // xor esi, esi + +LBB1_873: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_875 + +LBB1_874: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_874 + +LBB1_875: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_876: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc1 // add cx, ax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_876 + JMP LBB1_1069 + +LBB1_187: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_189 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_549 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_549 + +LBB1_189: + WORD $0xf631 // xor esi, esi + +LBB1_881: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_883 + +LBB1_882: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_882 + +LBB1_883: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_884: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_884 + JMP LBB1_1069 + +LBB1_190: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0xb70f; BYTE $0x01 // movzx eax, word [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB1_192 + LONG $0x520c8d4a // lea rcx, [rdx + 2*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_552 + LONG $0x500c8d4b // lea rcx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_552 + +LBB1_192: + WORD $0xf631 // xor esi, esi + +LBB1_889: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_891 + +LBB1_890: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_890 + +LBB1_891: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_892: + LONG $0x720cb70f // movzx ecx, word [rdx + 2*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0x0c894166; BYTE $0x70 // mov word [r8 + 2*rsi], cx + LONG $0x724cb70f; BYTE $0x02 // movzx ecx, word [rdx + 2*rsi + 2] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], cx + LONG $0x724cb70f; BYTE $0x04 // movzx ecx, word [rdx + 2*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], cx + LONG $0x724cb70f; BYTE $0x06 // movzx ecx, word [rdx + 2*rsi + 6] + WORD $0xc129 // sub ecx, eax + LONG $0x4c894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], cx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_892 + JMP LBB1_1069 + +LBB1_193: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB1_377 + WORD $0xff31 // xor edi, edi + JMP LBB1_379 + +LBB1_196: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_198 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_555 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_555 + +LBB1_198: + WORD $0xc931 // xor ecx, ecx + +LBB1_897: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_899 + +LBB1_898: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_898 + +LBB1_899: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_900: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_900 + JMP LBB1_1069 + +LBB1_199: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB1_385 + WORD $0xff31 // xor edi, edi + JMP LBB1_387 + +LBB1_202: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_204 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_558 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_558 + +LBB1_204: + WORD $0xc931 // xor ecx, ecx + +LBB1_905: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_907 + +LBB1_906: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_906 + +LBB1_907: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_908: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_908 + JMP LBB1_1069 + +LBB1_205: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_207 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_561 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_561 + +LBB1_207: + WORD $0xf631 // xor esi, esi + +LBB1_913: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_915 + +LBB1_914: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_914 + +LBB1_915: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_916: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_916 + JMP LBB1_1069 + +LBB1_208: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_210 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_564 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_564 + +LBB1_210: + WORD $0xc931 // xor ecx, ecx + +LBB1_921: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_923 + +LBB1_922: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_922 + +LBB1_923: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_924: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_924 + JMP LBB1_1069 + +LBB1_211: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_213 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_567 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_567 + +LBB1_213: + WORD $0xf631 // xor esi, esi + +LBB1_929: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_931 + +LBB1_930: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_930 + +LBB1_931: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_932: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_932 + JMP LBB1_1069 + +LBB1_214: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_216 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_570 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_570 + +LBB1_216: + WORD $0xc931 // xor ecx, ecx + +LBB1_937: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_939 + +LBB1_938: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_938 + +LBB1_939: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_940: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_940 + JMP LBB1_1069 + +LBB1_217: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_219 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_573 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_573 + +LBB1_219: + WORD $0xf631 // xor esi, esi + +LBB1_945: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_947 + +LBB1_946: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_946 + +LBB1_947: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_948: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc1 // add rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_948 + JMP LBB1_1069 + +LBB1_220: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_222 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_576 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_576 + +LBB1_222: + WORD $0xc931 // xor ecx, ecx + +LBB1_953: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_955 + +LBB1_954: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_954 + +LBB1_955: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_956: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_956 + JMP LBB1_1069 + +LBB1_223: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x8b48; BYTE $0x01 // mov rax, qword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB1_225 + LONG $0xd20c8d4a // lea rcx, [rdx + 8*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_579 + LONG $0xd00c8d4b // lea rcx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_579 + +LBB1_225: + WORD $0xf631 // xor esi, esi + +LBB1_961: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_963 + +LBB1_962: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_962 + +LBB1_963: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_964: + LONG $0xf20c8b48 // mov rcx, qword [rdx + 8*rsi] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf00c8949 // mov qword [r8 + 8*rsi], rcx + LONG $0xf24c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rsi + 8] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rcx + LONG $0xf24c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rsi + 16] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rcx + LONG $0xf24c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rsi + 24] + WORD $0x2948; BYTE $0xc1 // sub rcx, rax + LONG $0xf04c8949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rcx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_964 + JMP LBB1_1069 + +LBB1_226: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + LONG $0x01100ff3 // movss xmm0, dword [rcx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_228 + LONG $0x820c8d48 // lea rcx, [rdx + 4*rax] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_582 + LONG $0x800c8d49 // lea rcx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_582 + +LBB1_228: + WORD $0xc931 // xor ecx, ecx + +LBB1_969: + WORD $0x8948; BYTE $0xce // mov rsi, rcx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB1_971 + +LBB1_970: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x01c18348 // add rcx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_970 + +LBB1_971: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB1_1069 + +LBB1_972: + LONG $0x0c100ff3; BYTE $0x8a // movss xmm1, dword [rdx + 4*rcx] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x880c // movss dword [r8 + 4*rcx], xmm1 + LONG $0x4c100ff3; WORD $0x048a // movss xmm1, dword [rdx + 4*rcx + 4] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x04 // movss dword [r8 + 4*rcx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x088a // movss xmm1, dword [rdx + 4*rcx + 8] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x08 // movss dword [r8 + 4*rcx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c8a // movss xmm1, dword [rdx + 4*rcx + 12] + LONG $0xc85c0ff3 // subss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x884c; BYTE $0x0c // movss dword [r8 + 4*rcx + 12], xmm1 + LONG $0x04c18348 // add rcx, 4 + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JNE LBB1_972 + JMP LBB1_1069 + +LBB1_229: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_231 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_585 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_585 + +LBB1_231: + WORD $0xff31 // xor edi, edi + +LBB1_977: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_979 + +LBB1_978: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_978 + +LBB1_979: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_980: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_980 + JMP LBB1_1069 + +LBB1_232: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x098a // mov cl, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_234 + LONG $0x12048d4a // lea rax, [rdx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB1_588 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB1_588 + +LBB1_234: + WORD $0xff31 // xor edi, edi + +LBB1_985: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB1_987 + +LBB1_986: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB1_986 + +LBB1_987: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_988: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0xe1f6 // mul cl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0xe1f6 // mul cl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB1_988 + JMP LBB1_1069 + +LBB1_235: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_237 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_591 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_591 + +LBB1_237: + WORD $0xf631 // xor esi, esi + +LBB1_993: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_995 + +LBB1_994: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_994 + +LBB1_995: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_996: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_996 + JMP LBB1_1069 + +LBB1_238: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_240 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_594 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_594 + +LBB1_240: + WORD $0xf631 // xor esi, esi + +LBB1_1001: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1003 + +LBB1_1002: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1002 + +LBB1_1003: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1004: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1004 + JMP LBB1_1069 + +LBB1_241: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_243 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_597 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_597 + +LBB1_243: + WORD $0xf631 // xor esi, esi + +LBB1_1009: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1011 + +LBB1_1010: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1010 + +LBB1_1011: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1012: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc100 // add cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc100 // add cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1012 + JMP LBB1_1069 + +LBB1_244: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018a // mov al, byte [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB1_246 + LONG $0x120c8d4a // lea rcx, [rdx + r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_600 + LONG $0x100c8d4b // lea rcx, [r8 + r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_600 + +LBB1_246: + WORD $0xf631 // xor esi, esi + +LBB1_1017: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1019 + +LBB1_1018: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1018 + +LBB1_1019: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1020: + LONG $0x320cb60f // movzx ecx, byte [rdx + rsi] + WORD $0xc128 // sub cl, al + LONG $0x300c8841 // mov byte [r8 + rsi], cl + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x01 // mov byte [r8 + rsi + 1], cl + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x02 // mov byte [r8 + rsi + 2], cl + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + WORD $0xc128 // sub cl, al + LONG $0x304c8841; BYTE $0x03 // mov byte [r8 + rsi + 3], cl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1020 + JMP LBB1_1069 + +LBB1_247: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_249 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_603 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_603 + +LBB1_249: + WORD $0xf631 // xor esi, esi + +LBB1_1025: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1027 + +LBB1_1026: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1026 + +LBB1_1027: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1028: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1028 + JMP LBB1_1069 + +LBB1_250: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_252 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_606 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_606 + +LBB1_252: + WORD $0xf631 // xor esi, esi + +LBB1_1033: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1035 + +LBB1_1034: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1034 + +LBB1_1035: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1036: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xc8 // imul ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1036 + JMP LBB1_1069 + +LBB1_253: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_255 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_609 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_609 + +LBB1_255: + WORD $0xf631 // xor esi, esi + +LBB1_1041: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1043 + +LBB1_1042: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1042 + +LBB1_1043: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1044: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1044 + JMP LBB1_1069 + +LBB1_256: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_258 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_612 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_612 + +LBB1_258: + WORD $0xf631 // xor esi, esi + +LBB1_1049: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1051 + +LBB1_1050: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1050 + +LBB1_1051: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1052: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1052 + JMP LBB1_1069 + +LBB1_259: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_261 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_615 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_615 + +LBB1_261: + WORD $0xf631 // xor esi, esi + +LBB1_1057: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1059 + +LBB1_1058: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1058 + +LBB1_1059: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1060: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc101 // add ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc101 // add ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1060 + JMP LBB1_1069 + +LBB1_262: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB1_1069 + WORD $0x018b // mov eax, dword [rcx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB1_264 + LONG $0x920c8d4a // lea rcx, [rdx + 4*r10] + WORD $0x394c; BYTE $0xc1 // cmp rcx, r8 + JBE LBB1_618 + LONG $0x900c8d4b // lea rcx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xd1 // cmp rcx, rdx + JBE LBB1_618 + +LBB1_264: + WORD $0xf631 // xor esi, esi + +LBB1_1065: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB1_1067 + +LBB1_1066: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB1_1066 + +LBB1_1067: + LONG $0x03f98349 // cmp r9, 3 + JB LBB1_1069 + +LBB1_1068: + WORD $0x0c8b; BYTE $0xb2 // mov ecx, dword [rdx + 4*rsi] + WORD $0xc129 // sub ecx, eax + LONG $0xb00c8941 // mov dword [r8 + 4*rsi], ecx + LONG $0x04b24c8b // mov ecx, dword [rdx + 4*rsi + 4] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], ecx + LONG $0x08b24c8b // mov ecx, dword [rdx + 4*rsi + 8] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], ecx + LONG $0x0cb24c8b // mov ecx, dword [rdx + 4*rsi + 12] + WORD $0xc129 // sub ecx, eax + LONG $0xb04c8941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], ecx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_1068 + JMP LBB1_1069 + +LBB1_319: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB1_320: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf80c8949 // mov qword [r8 + 8*rdi], rcx + LONG $0xfa4c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rdi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rcx + LONG $0xfa4c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rdi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rcx + LONG $0xfa4c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rdi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rcx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB1_320 + +LBB1_321: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB1_323: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xfe0c8948 // mov qword [rsi + 8*rdi], rcx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB1_323 + JMP LBB1_1069 + +LBB1_324: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB1_325: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf80c8949 // mov qword [r8 + 8*rdi], rcx + LONG $0xfa4c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rdi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rcx + LONG $0xfa4c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rdi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rcx + LONG $0xfa4c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rdi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rcx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB1_325 + +LBB1_326: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB1_328: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xfe0c8948 // mov qword [rsi + 8*rdi], rcx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB1_328 + JMP LBB1_1069 + +LBB1_377: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB1_378: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf80c8949 // mov qword [r8 + 8*rdi], rcx + LONG $0xfa4c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rdi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rcx + LONG $0xfa4c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rdi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rcx + LONG $0xfa4c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rdi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rcx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB1_378 + +LBB1_379: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB1_381: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xfe0c8948 // mov qword [rsi + 8*rdi], rcx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB1_381 + JMP LBB1_1069 + +LBB1_385: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB1_386: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf80c8949 // mov qword [r8 + 8*rdi], rcx + LONG $0xfa4c8b48; BYTE $0x08 // mov rcx, qword [rdx + 8*rdi + 8] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rcx + LONG $0xfa4c8b48; BYTE $0x10 // mov rcx, qword [rdx + 8*rdi + 16] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rcx + LONG $0xfa4c8b48; BYTE $0x18 // mov rcx, qword [rdx + 8*rdi + 24] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xf84c8949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rcx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB1_386 + +LBB1_387: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB1_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB1_389: + LONG $0xfa0c8b48 // mov rcx, qword [rdx + 8*rdi] + LONG $0xc8af0f48 // imul rcx, rax + LONG $0xfe0c8948 // mov qword [rsi + 8*rdi], rcx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB1_389 + +LBB1_1069: + RET + +LBB1_453: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_621 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_455: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_455 + JMP LBB1_622 + +LBB1_456: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_629 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_458: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_458 + JMP LBB1_630 + +LBB1_459: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_637 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_461: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_461 + JMP LBB1_638 + +LBB1_462: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_645 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_464: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_464 + JMP LBB1_646 + +LBB1_465: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_653 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_467: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_467 + JMP LBB1_654 + +LBB1_468: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_661 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_470: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_470 + JMP LBB1_662 + +LBB1_471: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_669 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_473: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_473 + JMP LBB1_670 + +LBB1_474: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_677 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_476: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_476 + JMP LBB1_678 + +LBB1_477: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_685 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_479: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_479 + JMP LBB1_686 + +LBB1_480: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_693 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_482: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_482 + JMP LBB1_694 + +LBB1_483: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_701 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_485: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_485 + JMP LBB1_702 + +LBB1_486: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xfc // and ecx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc718d48 // lea rsi, [rcx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_709 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_488: + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20fa // movupd xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30fa // movupd xmm3, oword [rdx + 8*rdi + 48] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_488 + JMP LBB1_710 + +LBB1_489: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc1 // movzx eax, cl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB1_717 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB1_491: + LONG $0x2c6f0ff3; BYTE $0x02 // movdqu xmm5, oword [rdx + rax] + LONG $0x746f0ff3; WORD $0x1002 // movdqu xmm6, oword [rdx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2002 // movdqu xmm5, oword [rdx + rax + 32] + LONG $0x746f0ff3; WORD $0x3002 // movdqu xmm6, oword [rdx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_491 + JMP LBB1_718 + +LBB1_492: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc1 // movzx eax, cl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB1_725 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB1_494: + LONG $0x2c6f0ff3; BYTE $0x02 // movdqu xmm5, oword [rdx + rax] + LONG $0x746f0ff3; WORD $0x1002 // movdqu xmm6, oword [rdx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2002 // movdqu xmm5, oword [rdx + rax + 32] + LONG $0x746f0ff3; WORD $0x3002 // movdqu xmm6, oword [rdx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_494 + JMP LBB1_726 + +LBB1_495: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_733 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_497: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_497 + JMP LBB1_734 + +LBB1_498: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_741 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_500: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_500 + JMP LBB1_742 + +LBB1_501: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_749 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_503: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_503 + JMP LBB1_750 + +LBB1_504: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_757 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_506: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_506 + JMP LBB1_758 + +LBB1_507: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_765 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_509: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_509 + JMP LBB1_766 + +LBB1_510: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_773 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_512: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_512 + JMP LBB1_774 + +LBB1_513: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_781 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_515: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_515 + JMP LBB1_782 + +LBB1_516: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_789 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_518: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_518 + JMP LBB1_790 + +LBB1_519: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_797 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_521: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_521 + JMP LBB1_798 + +LBB1_522: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_805 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_524: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_524 + JMP LBB1_806 + +LBB1_525: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_813 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_527: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_527 + JMP LBB1_814 + +LBB1_528: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_821 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_530: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_530 + JMP LBB1_822 + +LBB1_531: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_829 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_533: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_533 + JMP LBB1_830 + +LBB1_534: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_837 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_536: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_536 + JMP LBB1_838 + +LBB1_537: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_845 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_539: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_539 + JMP LBB1_846 + +LBB1_540: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_853 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_542: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_542 + JMP LBB1_854 + +LBB1_543: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_861 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_545: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_545 + JMP LBB1_862 + +LBB1_546: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_869 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_548: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_548 + JMP LBB1_870 + +LBB1_549: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_877 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_551: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_551 + JMP LBB1_878 + +LBB1_552: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf04e8d48 // lea rcx, [rsi - 16] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_885 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_554: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_554 + JMP LBB1_886 + +LBB1_555: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_893 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_557: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_557 + JMP LBB1_894 + +LBB1_558: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_901 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_560: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_560 + JMP LBB1_902 + +LBB1_561: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_909 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_563: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_563 + JMP LBB1_910 + +LBB1_564: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_917 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_566: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_566 + JMP LBB1_918 + +LBB1_567: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_925 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_569: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_569 + JMP LBB1_926 + +LBB1_570: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_933 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_572: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_572 + JMP LBB1_934 + +LBB1_573: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_941 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_575: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_575 + JMP LBB1_942 + +LBB1_576: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_949 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_578: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_578 + JMP LBB1_950 + +LBB1_579: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc4e8d48 // lea rcx, [rsi - 4] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_957 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_581: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_581 + JMP LBB1_958 + +LBB1_582: + WORD $0xc189 // mov ecx, eax + WORD $0xe183; BYTE $0xf8 // and ecx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8718d48 // lea rsi, [rcx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB1_965 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB1_584: + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xba54100f; BYTE $0x20 // movups xmm2, oword [rdx + 4*rdi + 32] + LONG $0xba5c100f; BYTE $0x30 // movups xmm3, oword [rdx + 4*rdi + 48] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_584 + JMP LBB1_966 + +LBB1_585: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc1 // movzx eax, cl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB1_973 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB1_587: + LONG $0x2c6f0ff3; BYTE $0x02 // movdqu xmm5, oword [rdx + rax] + LONG $0x746f0ff3; WORD $0x1002 // movdqu xmm6, oword [rdx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2002 // movdqu xmm5, oword [rdx + rax + 32] + LONG $0x746f0ff3; WORD $0x3002 // movdqu xmm6, oword [rdx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_587 + JMP LBB1_974 + +LBB1_588: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc1 // movzx eax, cl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB1_981 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB1_590: + LONG $0x2c6f0ff3; BYTE $0x02 // movdqu xmm5, oword [rdx + rax] + LONG $0x746f0ff3; WORD $0x1002 // movdqu xmm6, oword [rdx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2002 // movdqu xmm5, oword [rdx + rax + 32] + LONG $0x746f0ff3; WORD $0x3002 // movdqu xmm6, oword [rdx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB1_590 + JMP LBB1_982 + +LBB1_591: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_989 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_593: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_593 + JMP LBB1_990 + +LBB1_594: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_997 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_596: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_596 + JMP LBB1_998 + +LBB1_597: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1005 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_599: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_599 + JMP LBB1_1006 + +LBB1_600: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xc8 // movzx ecx, al + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe04e8d48 // lea rcx, [rsi - 32] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1013 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_602: + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x203a // movdqu xmm1, oword [rdx + rdi + 32] + LONG $0x546f0ff3; WORD $0x303a // movdqu xmm2, oword [rdx + rdi + 48] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_602 + JMP LBB1_1014 + +LBB1_603: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1021 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_605: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_605 + JMP LBB1_1022 + +LBB1_606: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1029 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_608: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_608 + JMP LBB1_1030 + +LBB1_609: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1037 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_611: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_611 + JMP LBB1_1038 + +LBB1_612: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1045 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_614: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_614 + JMP LBB1_1046 + +LBB1_615: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1053 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_617: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_617 + JMP LBB1_1054 + +LBB1_618: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf84e8d48 // lea rcx, [rsi - 8] + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc9 // test rcx, rcx + JE LBB1_1061 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0xfee18348 // and rcx, -2 + WORD $0xf748; BYTE $0xd9 // neg rcx + WORD $0xff31 // xor edi, edi + +LBB1_620: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c18348 // add rcx, 2 + JNE LBB1_620 + JMP LBB1_1062 + +LBB1_621: + WORD $0xff31 // xor edi, edi + +LBB1_622: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_624 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_624: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_625 + +LBB1_629: + WORD $0xff31 // xor edi, edi + +LBB1_630: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_632 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_632: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_633 + +LBB1_637: + WORD $0xff31 // xor edi, edi + +LBB1_638: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_640 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_640: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_641 + +LBB1_645: + WORD $0xff31 // xor edi, edi + +LBB1_646: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_648 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_648: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_649 + +LBB1_653: + WORD $0xff31 // xor edi, edi + +LBB1_654: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_656 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_656: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_657 + +LBB1_661: + WORD $0xff31 // xor edi, edi + +LBB1_662: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_664 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_664: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_665 + +LBB1_669: + WORD $0xff31 // xor edi, edi + +LBB1_670: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_672 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_672: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_673 + +LBB1_677: + WORD $0xff31 // xor edi, edi + +LBB1_678: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_680 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_680: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_681 + +LBB1_685: + WORD $0xff31 // xor edi, edi + +LBB1_686: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_688 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_688: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_689 + +LBB1_693: + WORD $0xff31 // xor edi, edi + +LBB1_694: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_696 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_696: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_697 + +LBB1_701: + WORD $0xff31 // xor edi, edi + +LBB1_702: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_704 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_704: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_705 + +LBB1_709: + WORD $0xff31 // xor edi, edi + +LBB1_710: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_712 + LONG $0x14100f66; BYTE $0xfa // movupd xmm2, oword [rdx + 8*rdi] + LONG $0x5c100f66; WORD $0x10fa // movupd xmm3, oword [rdx + 8*rdi + 16] + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xd95c0f66 // subpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB1_712: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_713 + +LBB1_717: + WORD $0xc031 // xor eax, eax + +LBB1_718: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_720 + LONG $0x146f0ff3; BYTE $0x02 // movdqu xmm2, oword [rdx + rax] + LONG $0x5c6f0ff3; WORD $0x1002 // movdqu xmm3, oword [rdx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB1_720: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1069 + JMP LBB1_721 + +LBB1_725: + WORD $0xc031 // xor eax, eax + +LBB1_726: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_728 + LONG $0x146f0ff3; BYTE $0x02 // movdqu xmm2, oword [rdx + rax] + LONG $0x5c6f0ff3; WORD $0x1002 // movdqu xmm3, oword [rdx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB1_728: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1069 + JMP LBB1_729 + +LBB1_733: + WORD $0xff31 // xor edi, edi + +LBB1_734: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_736 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_736: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_737 + +LBB1_741: + WORD $0xff31 // xor edi, edi + +LBB1_742: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_744 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_744: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_745 + +LBB1_749: + WORD $0xff31 // xor edi, edi + +LBB1_750: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_752 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_752: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_753 + +LBB1_757: + WORD $0xff31 // xor edi, edi + +LBB1_758: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_760 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_760: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_761 + +LBB1_765: + WORD $0xff31 // xor edi, edi + +LBB1_766: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_768 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_768: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_769 + +LBB1_773: + WORD $0xff31 // xor edi, edi + +LBB1_774: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_776 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_776: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_777 + +LBB1_781: + WORD $0xff31 // xor edi, edi + +LBB1_782: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_784 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_784: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_785 + +LBB1_789: + WORD $0xff31 // xor edi, edi + +LBB1_790: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_792 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_792: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_793 + +LBB1_797: + WORD $0xff31 // xor edi, edi + +LBB1_798: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_800 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_800: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_801 + +LBB1_805: + WORD $0xff31 // xor edi, edi + +LBB1_806: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_808 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_808: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_809 + +LBB1_813: + WORD $0xff31 // xor edi, edi + +LBB1_814: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_816 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_816: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_817 + +LBB1_821: + WORD $0xff31 // xor edi, edi + +LBB1_822: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_824 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_824: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_825 + +LBB1_829: + WORD $0xff31 // xor edi, edi + +LBB1_830: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_832 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_832: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_833 + +LBB1_837: + WORD $0xff31 // xor edi, edi + +LBB1_838: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_840 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_840: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_841 + +LBB1_845: + WORD $0xff31 // xor edi, edi + +LBB1_846: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_848 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_848: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_849 + +LBB1_853: + WORD $0xff31 // xor edi, edi + +LBB1_854: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_856 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_856: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_857 + +LBB1_861: + WORD $0xff31 // xor edi, edi + +LBB1_862: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_864 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_864: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_865 + +LBB1_869: + WORD $0xff31 // xor edi, edi + +LBB1_870: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_872 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_872: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_873 + +LBB1_877: + WORD $0xff31 // xor edi, edi + +LBB1_878: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_880 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_880: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_881 + +LBB1_885: + WORD $0xff31 // xor edi, edi + +LBB1_886: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_888 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xc8f90f66 // psubw xmm1, xmm0 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB1_888: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_889 + +LBB1_893: + WORD $0xff31 // xor edi, edi + +LBB1_894: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_896 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_896: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_897 + +LBB1_901: + WORD $0xff31 // xor edi, edi + +LBB1_902: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_904 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_904: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_905 + +LBB1_909: + WORD $0xff31 // xor edi, edi + +LBB1_910: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_912 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_912: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_913 + +LBB1_917: + WORD $0xff31 // xor edi, edi + +LBB1_918: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_920 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_920: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_921 + +LBB1_925: + WORD $0xff31 // xor edi, edi + +LBB1_926: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_928 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_928: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_929 + +LBB1_933: + WORD $0xff31 // xor edi, edi + +LBB1_934: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_936 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_936: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_937 + +LBB1_941: + WORD $0xff31 // xor edi, edi + +LBB1_942: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_944 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_944: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_945 + +LBB1_949: + WORD $0xff31 // xor edi, edi + +LBB1_950: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_952 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_952: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_953 + +LBB1_957: + WORD $0xff31 // xor edi, edi + +LBB1_958: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_960 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8fb0f66 // psubq xmm1, xmm0 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB1_960: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_961 + +LBB1_965: + WORD $0xff31 // xor edi, edi + +LBB1_966: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_968 + LONG $0xba14100f // movups xmm2, oword [rdx + 4*rdi] + LONG $0xba5c100f; BYTE $0x10 // movups xmm3, oword [rdx + 4*rdi + 16] + WORD $0x5c0f; BYTE $0xd1 // subps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB1_968: + WORD $0x3948; BYTE $0xc1 // cmp rcx, rax + JE LBB1_1069 + JMP LBB1_969 + +LBB1_973: + WORD $0xc031 // xor eax, eax + +LBB1_974: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_976 + LONG $0x146f0ff3; BYTE $0x02 // movdqu xmm2, oword [rdx + rax] + LONG $0x5c6f0ff3; WORD $0x1002 // movdqu xmm3, oword [rdx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB1_976: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1069 + JMP LBB1_977 + +LBB1_981: + WORD $0xc031 // xor eax, eax + +LBB1_982: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_984 + LONG $0x146f0ff3; BYTE $0x02 // movdqu xmm2, oword [rdx + rax] + LONG $0x5c6f0ff3; WORD $0x1002 // movdqu xmm3, oword [rdx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB1_984: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB1_1069 + JMP LBB1_985 + +LBB1_989: + WORD $0xff31 // xor edi, edi + +LBB1_990: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_992 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_992: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_993 + +LBB1_997: + WORD $0xff31 // xor edi, edi + +LBB1_998: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1000 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_1000: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1001 + +LBB1_1005: + WORD $0xff31 // xor edi, edi + +LBB1_1006: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1008 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_1008: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1009 + +LBB1_1013: + WORD $0xff31 // xor edi, edi + +LBB1_1014: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1016 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB1_1016: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1017 + +LBB1_1021: + WORD $0xff31 // xor edi, edi + +LBB1_1022: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1024 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1024: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1025 + +LBB1_1029: + WORD $0xff31 // xor edi, edi + +LBB1_1030: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1032 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1032: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1033 + +LBB1_1037: + WORD $0xff31 // xor edi, edi + +LBB1_1038: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1040 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1040: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1041 + +LBB1_1045: + WORD $0xff31 // xor edi, edi + +LBB1_1046: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1048 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1048: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1049 + +LBB1_1053: + WORD $0xff31 // xor edi, edi + +LBB1_1054: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1056 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1056: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1057 + +LBB1_1061: + WORD $0xff31 // xor edi, edi + +LBB1_1062: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_1064 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8fa0f66 // psubd xmm1, xmm0 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB1_1064: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB1_1069 + JMP LBB1_1065 + +DATA LCDATA3<>+0x000(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA3<>+0x008(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA3<>(SB), 8, $16 + +TEXT ·_arithmetic_scalar_arr_sse4(SB), $0-48 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ inLeft+16(FP), DX + MOVQ inRight+24(FP), CX + MOVQ out+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA3<>(SB), BP + + LONG $0x14fe8040 // cmp sil, 20 + JG LBB2_12 + WORD $0x8440; BYTE $0xf6 // test sil, sil + JE LBB2_23 + LONG $0x01fe8040 // cmp sil, 1 + JE LBB2_31 + LONG $0x02fe8040 // cmp sil, 2 + JNE LBB2_1069 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_55 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_97 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_157 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_160 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_11 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_453 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_453 + +LBB2_11: + WORD $0xf631 // xor esi, esi + +LBB2_625: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_627 + +LBB2_626: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_626 + +LBB2_627: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_628: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_628 + JMP LBB2_1069 + +LBB2_12: + LONG $0x15fe8040 // cmp sil, 21 + JE LBB2_39 + LONG $0x16fe8040 // cmp sil, 22 + JE LBB2_47 + LONG $0x17fe8040 // cmp sil, 23 + JNE LBB2_1069 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_62 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_102 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_163 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_166 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_22 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_456 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_456 + +LBB2_22: + WORD $0xf631 // xor esi, esi + +LBB2_633: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_635 + +LBB2_634: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_634 + +LBB2_635: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_636: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_636 + JMP LBB2_1069 + +LBB2_23: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_69 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_107 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_169 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_172 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_30 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_459 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_459 + +LBB2_30: + WORD $0xf631 // xor esi, esi + +LBB2_641: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_643 + +LBB2_642: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_642 + +LBB2_643: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_644: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_644 + JMP LBB2_1069 + +LBB2_31: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_76 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_112 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_175 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_178 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_38 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_462 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_462 + +LBB2_38: + WORD $0xf631 // xor esi, esi + +LBB2_649: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_651 + +LBB2_650: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_650 + +LBB2_651: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_652: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_652 + JMP LBB2_1069 + +LBB2_39: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_83 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_117 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_181 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_184 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_46 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_465 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_465 + +LBB2_46: + WORD $0xf631 // xor esi, esi + +LBB2_657: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_659 + +LBB2_658: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_658 + +LBB2_659: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_660: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_660 + JMP LBB2_1069 + +LBB2_47: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_90 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_122 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_187 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_190 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_54 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_468 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_468 + +LBB2_54: + WORD $0xf631 // xor esi, esi + +LBB2_665: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_667 + +LBB2_666: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_666 + +LBB2_667: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_668: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_668 + JMP LBB2_1069 + +LBB2_55: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_127 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_193 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_196 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_61 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_471 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_471 + +LBB2_61: + WORD $0xd231 // xor edx, edx + +LBB2_673: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_675 + +LBB2_674: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_674 + +LBB2_675: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_676: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c100ff2; WORD $0x08d1 // movsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10d1 // movsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18d1 // movsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_676 + JMP LBB2_1069 + +LBB2_62: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_132 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_199 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_202 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_68 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_474 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_474 + +LBB2_68: + WORD $0xd231 // xor edx, edx + +LBB2_681: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_683 + +LBB2_682: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_682 + +LBB2_683: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_684: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c100ff2; WORD $0x08d1 // movsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10d1 // movsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18d1 // movsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0xc8590ff2 // mulsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_684 + JMP LBB2_1069 + +LBB2_69: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_137 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_205 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_208 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_75 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_477 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_477 + +LBB2_75: + WORD $0xd231 // xor edx, edx + +LBB2_689: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_691 + +LBB2_690: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_690 + +LBB2_691: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_692: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c100ff2; WORD $0x08d1 // movsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10d1 // movsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18d1 // movsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_692 + JMP LBB2_1069 + +LBB2_76: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_142 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_211 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_214 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_82 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_480 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_480 + +LBB2_82: + WORD $0xd231 // xor edx, edx + +LBB2_697: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_699 + +LBB2_698: + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x0c5c0ff2; BYTE $0xd1 // subsd xmm1, qword [rcx + 8*rdx] + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_698 + +LBB2_699: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_700: + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x0c5c0ff2; BYTE $0xd1 // subsd xmm1, qword [rcx + 8*rdx] + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x08d1 // subsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x10d1 // subsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x18d1 // subsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_700 + JMP LBB2_1069 + +LBB2_83: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_147 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_217 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_220 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_89 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_483 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_483 + +LBB2_89: + WORD $0xd231 // xor edx, edx + +LBB2_705: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_707 + +LBB2_706: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_706 + +LBB2_707: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_708: + LONG $0x0c100ff2; BYTE $0xd1 // movsd xmm1, qword [rcx + 8*rdx] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x4c100ff2; WORD $0x08d1 // movsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10d1 // movsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18d1 // movsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0xc8580ff2 // addsd xmm1, xmm0 + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_708 + JMP LBB2_1069 + +LBB2_90: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_152 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_223 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_226 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_96 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_486 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_486 + +LBB2_96: + WORD $0xd231 // xor edx, edx + +LBB2_713: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_715 + +LBB2_714: + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x0c5c0ff2; BYTE $0xd1 // subsd xmm1, qword [rcx + 8*rdx] + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_714 + +LBB2_715: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_716: + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x0c5c0ff2; BYTE $0xd1 // subsd xmm1, qword [rcx + 8*rdx] + LONG $0x110f41f2; WORD $0xd00c // movsd qword [r8 + 8*rdx], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x08d1 // subsd xmm1, qword [rcx + 8*rdx + 8] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x08 // movsd qword [r8 + 8*rdx + 8], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x10d1 // subsd xmm1, qword [rcx + 8*rdx + 16] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x10 // movsd qword [r8 + 8*rdx + 16], xmm1 + LONG $0xc8280f66 // movapd xmm1, xmm0 + LONG $0x4c5c0ff2; WORD $0x18d1 // subsd xmm1, qword [rcx + 8*rdx + 24] + LONG $0x110f41f2; WORD $0xd04c; BYTE $0x18 // movsd qword [r8 + 8*rdx + 24], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_716 + JMP LBB2_1069 + +LBB2_97: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_229 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_101 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_489 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_489 + +LBB2_101: + WORD $0xff31 // xor edi, edi + +LBB2_721: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_723 + +LBB2_722: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_722 + +LBB2_723: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_724: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_724 + JMP LBB2_1069 + +LBB2_102: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_232 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_106 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_492 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_492 + +LBB2_106: + WORD $0xff31 // xor edi, edi + +LBB2_729: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_731 + +LBB2_730: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_730 + +LBB2_731: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_732: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_732 + JMP LBB2_1069 + +LBB2_107: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_235 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_111 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_495 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_495 + +LBB2_111: + WORD $0xf631 // xor esi, esi + +LBB2_737: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_739 + +LBB2_738: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_738 + +LBB2_739: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_740: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_740 + JMP LBB2_1069 + +LBB2_112: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_238 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_116 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_498 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_498 + +LBB2_116: + WORD $0xf631 // xor esi, esi + +LBB2_745: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_747 + +LBB2_746: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_746 + +LBB2_747: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_748: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_748 + JMP LBB2_1069 + +LBB2_117: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_241 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_121 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_501 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_501 + +LBB2_121: + WORD $0xf631 // xor esi, esi + +LBB2_753: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_755 + +LBB2_754: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_754 + +LBB2_755: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_756: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_756 + JMP LBB2_1069 + +LBB2_122: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_244 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_126 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_504 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_504 + +LBB2_126: + WORD $0xf631 // xor esi, esi + +LBB2_761: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_763 + +LBB2_762: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_762 + +LBB2_763: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_764: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_764 + JMP LBB2_1069 + +LBB2_127: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_247 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB2_319 + WORD $0xff31 // xor edi, edi + JMP LBB2_321 + +LBB2_132: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_250 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB2_324 + WORD $0xff31 // xor edi, edi + JMP LBB2_326 + +LBB2_137: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_253 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_141 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_507 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_507 + +LBB2_141: + WORD $0xf631 // xor esi, esi + +LBB2_769: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_771 + +LBB2_770: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_770 + +LBB2_771: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_772: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_772 + JMP LBB2_1069 + +LBB2_142: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_256 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_146 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_510 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_510 + +LBB2_146: + WORD $0xf631 // xor esi, esi + +LBB2_777: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_779 + +LBB2_778: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_778 + +LBB2_779: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_780: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_780 + JMP LBB2_1069 + +LBB2_147: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_259 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_151 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_513 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_513 + +LBB2_151: + WORD $0xf631 // xor esi, esi + +LBB2_785: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_787 + +LBB2_786: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_786 + +LBB2_787: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_788: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_788 + JMP LBB2_1069 + +LBB2_152: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_262 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_1069 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_156 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_516 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_516 + +LBB2_156: + WORD $0xf631 // xor esi, esi + +LBB2_793: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_795 + +LBB2_794: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_794 + +LBB2_795: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_796: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_796 + JMP LBB2_1069 + +LBB2_157: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_159 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_519 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_519 + +LBB2_159: + WORD $0xf631 // xor esi, esi + +LBB2_801: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_803 + +LBB2_802: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_802 + +LBB2_803: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_804: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_804 + JMP LBB2_1069 + +LBB2_160: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_162 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_522 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_522 + +LBB2_162: + WORD $0xf631 // xor esi, esi + +LBB2_809: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_811 + +LBB2_810: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_810 + +LBB2_811: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_812: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_812 + JMP LBB2_1069 + +LBB2_163: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_165 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_525 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_525 + +LBB2_165: + WORD $0xf631 // xor esi, esi + +LBB2_817: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_819 + +LBB2_818: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_818 + +LBB2_819: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_820: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_820 + JMP LBB2_1069 + +LBB2_166: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_168 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_528 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_528 + +LBB2_168: + WORD $0xf631 // xor esi, esi + +LBB2_825: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_827 + +LBB2_826: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_826 + +LBB2_827: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_828: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + LONG $0xd0af0f66 // imul dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_828 + JMP LBB2_1069 + +LBB2_169: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_171 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_531 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_531 + +LBB2_171: + WORD $0xf631 // xor esi, esi + +LBB2_833: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_835 + +LBB2_834: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_834 + +LBB2_835: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_836: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_836 + JMP LBB2_1069 + +LBB2_172: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_174 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_534 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_534 + +LBB2_174: + WORD $0xf631 // xor esi, esi + +LBB2_841: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_843 + +LBB2_842: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_842 + +LBB2_843: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_844: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_844 + JMP LBB2_1069 + +LBB2_175: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_177 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_537 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_537 + +LBB2_177: + WORD $0xf631 // xor esi, esi + +LBB2_849: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_851 + +LBB2_850: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_850 + +LBB2_851: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_852: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_852 + JMP LBB2_1069 + +LBB2_178: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_180 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_540 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_540 + +LBB2_180: + WORD $0xf631 // xor esi, esi + +LBB2_857: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_859 + +LBB2_858: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_858 + +LBB2_859: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_860: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_860 + JMP LBB2_1069 + +LBB2_181: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_183 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_543 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_543 + +LBB2_183: + WORD $0xf631 // xor esi, esi + +LBB2_865: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_867 + +LBB2_866: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_866 + +LBB2_867: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_868: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_868 + JMP LBB2_1069 + +LBB2_184: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_186 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_546 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_546 + +LBB2_186: + WORD $0xf631 // xor esi, esi + +LBB2_873: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_875 + +LBB2_874: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_874 + +LBB2_875: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_876: + LONG $0x7114b70f // movzx edx, word [rcx + 2*rsi] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x7154b70f; BYTE $0x02 // movzx edx, word [rcx + 2*rsi + 2] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + LONG $0x7154b70f; BYTE $0x04 // movzx edx, word [rcx + 2*rsi + 4] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + LONG $0x7154b70f; BYTE $0x06 // movzx edx, word [rcx + 2*rsi + 6] + WORD $0x0166; BYTE $0xc2 // add dx, ax + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_876 + JMP LBB2_1069 + +LBB2_187: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_189 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_549 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_549 + +LBB2_189: + WORD $0xf631 // xor esi, esi + +LBB2_881: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_883 + +LBB2_882: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_882 + +LBB2_883: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_884: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_884 + JMP LBB2_1069 + +LBB2_190: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB2_192 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_552 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_552 + +LBB2_192: + WORD $0xf631 // xor esi, esi + +LBB2_889: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_891 + +LBB2_890: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_890 + +LBB2_891: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_892: + WORD $0xc289 // mov edx, eax + LONG $0x71142b66 // sub dx, word [rcx + 2*rsi] + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x02 // sub dx, word [rcx + 2*rsi + 2] + LONG $0x54894166; WORD $0x0270 // mov word [r8 + 2*rsi + 2], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x04 // sub dx, word [rcx + 2*rsi + 4] + LONG $0x54894166; WORD $0x0470 // mov word [r8 + 2*rsi + 4], dx + WORD $0xc289 // mov edx, eax + LONG $0x71542b66; BYTE $0x06 // sub dx, word [rcx + 2*rsi + 6] + LONG $0x54894166; WORD $0x0670 // mov word [r8 + 2*rsi + 6], dx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_892 + JMP LBB2_1069 + +LBB2_193: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB2_377 + WORD $0xff31 // xor edi, edi + JMP LBB2_379 + +LBB2_196: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_198 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_555 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_555 + +LBB2_198: + WORD $0xd231 // xor edx, edx + +LBB2_897: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_899 + +LBB2_898: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_898 + +LBB2_899: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_900: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x4c100ff3; WORD $0x0491 // movss xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x0891 // movss xmm1, dword [rcx + 4*rdx + 8] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c91 // movss xmm1, dword [rcx + 4*rdx + 12] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_900 + JMP LBB2_1069 + +LBB2_199: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8944; BYTE $0xce // mov esi, r9d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf1 // mov r9d, esi + LONG $0x03e18341 // and r9d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB2_385 + WORD $0xff31 // xor edi, edi + JMP LBB2_387 + +LBB2_202: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_204 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_558 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_558 + +LBB2_204: + WORD $0xd231 // xor edx, edx + +LBB2_905: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_907 + +LBB2_906: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_906 + +LBB2_907: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_908: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x4c100ff3; WORD $0x0491 // movss xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x0891 // movss xmm1, dword [rcx + 4*rdx + 8] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c91 // movss xmm1, dword [rcx + 4*rdx + 12] + LONG $0xc8590ff3 // mulss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_908 + JMP LBB2_1069 + +LBB2_205: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_207 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_561 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_561 + +LBB2_207: + WORD $0xf631 // xor esi, esi + +LBB2_913: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_915 + +LBB2_914: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_914 + +LBB2_915: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_916: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_916 + JMP LBB2_1069 + +LBB2_208: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_210 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_564 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_564 + +LBB2_210: + WORD $0xd231 // xor edx, edx + +LBB2_921: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_923 + +LBB2_922: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_922 + +LBB2_923: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_924: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x4c100ff3; WORD $0x0491 // movss xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x0891 // movss xmm1, dword [rcx + 4*rdx + 8] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c91 // movss xmm1, dword [rcx + 4*rdx + 12] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_924 + JMP LBB2_1069 + +LBB2_211: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_213 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_567 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_567 + +LBB2_213: + WORD $0xf631 // xor esi, esi + +LBB2_929: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_931 + +LBB2_930: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_930 + +LBB2_931: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_932: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_932 + JMP LBB2_1069 + +LBB2_214: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_216 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_570 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_570 + +LBB2_216: + WORD $0xd231 // xor edx, edx + +LBB2_937: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_939 + +LBB2_938: + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x0c5c0ff3; BYTE $0x91 // subss xmm1, dword [rcx + 4*rdx] + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_938 + +LBB2_939: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_940: + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x0c5c0ff3; BYTE $0x91 // subss xmm1, dword [rcx + 4*rdx] + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0491 // subss xmm1, dword [rcx + 4*rdx + 4] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0891 // subss xmm1, dword [rcx + 4*rdx + 8] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0c91 // subss xmm1, dword [rcx + 4*rdx + 12] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_940 + JMP LBB2_1069 + +LBB2_217: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b48; BYTE $0x02 // mov rax, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_219 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_573 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_573 + +LBB2_219: + WORD $0xf631 // xor esi, esi + +LBB2_945: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_947 + +LBB2_946: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_946 + +LBB2_947: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_948: + LONG $0xf1148b48 // mov rdx, qword [rcx + 8*rsi] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0148949 // mov qword [r8 + 8*rsi], rdx + LONG $0xf1548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rsi + 8] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rdx + LONG $0xf1548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rsi + 16] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rdx + LONG $0xf1548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rsi + 24] + WORD $0x0148; BYTE $0xc2 // add rdx, rax + LONG $0xf0548949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rdx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_948 + JMP LBB2_1069 + +LBB2_220: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_222 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_576 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_576 + +LBB2_222: + WORD $0xd231 // xor edx, edx + +LBB2_953: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_955 + +LBB2_954: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_954 + +LBB2_955: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_956: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x4c100ff3; WORD $0x0491 // movss xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x4c100ff3; WORD $0x0891 // movss xmm1, dword [rcx + 4*rdx + 8] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0c91 // movss xmm1, dword [rcx + 4*rdx + 12] + LONG $0xc8580ff3 // addss xmm1, xmm0 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_956 + JMP LBB2_1069 + +LBB2_223: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b4c; BYTE $0x1a // mov r11, qword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB2_225 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_579 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_579 + +LBB2_225: + WORD $0xf631 // xor esi, esi + +LBB2_961: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_963 + +LBB2_962: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_962 + +LBB2_963: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_964: + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1042b48 // sub rax, qword [rcx + 8*rsi] + LONG $0xf0048949 // mov qword [r8 + 8*rsi], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x08 // sub rax, qword [rcx + 8*rsi + 8] + LONG $0xf0448949; BYTE $0x08 // mov qword [r8 + 8*rsi + 8], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x10 // sub rax, qword [rcx + 8*rsi + 16] + LONG $0xf0448949; BYTE $0x10 // mov qword [r8 + 8*rsi + 16], rax + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0xf1442b48; BYTE $0x18 // sub rax, qword [rcx + 8*rsi + 24] + LONG $0xf0448949; BYTE $0x18 // mov qword [r8 + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_964 + JMP LBB2_1069 + +LBB2_226: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_228 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_582 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_582 + +LBB2_228: + WORD $0xd231 // xor edx, edx + +LBB2_969: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB2_971 + +LBB2_970: + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x0c5c0ff3; BYTE $0x91 // subss xmm1, dword [rcx + 4*rdx] + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_970 + +LBB2_971: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB2_1069 + +LBB2_972: + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x0c5c0ff3; BYTE $0x91 // subss xmm1, dword [rcx + 4*rdx] + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0491 // subss xmm1, dword [rcx + 4*rdx + 4] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0891 // subss xmm1, dword [rcx + 4*rdx + 8] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x08 // movss dword [r8 + 4*rdx + 8], xmm1 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x4c5c0ff3; WORD $0x0c91 // subss xmm1, dword [rcx + 4*rdx + 12] + LONG $0x110f41f3; WORD $0x904c; BYTE $0x0c // movss dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB2_972 + JMP LBB2_1069 + +LBB2_229: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_231 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_585 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_585 + +LBB2_231: + WORD $0xff31 // xor edi, edi + +LBB2_977: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_979 + +LBB2_978: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_978 + +LBB2_979: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_980: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_980 + JMP LBB2_1069 + +LBB2_232: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x128a // mov dl, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_234 + LONG $0x11048d4a // lea rax, [rcx + r10] + WORD $0x394c; BYTE $0xc0 // cmp rax, r8 + JBE LBB2_588 + LONG $0x10048d4b // lea rax, [r8 + r10] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB2_588 + +LBB2_234: + WORD $0xff31 // xor edi, edi + +LBB2_985: + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x03e68348 // and rsi, 3 + JE LBB2_987 + +LBB2_986: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x01c78348 // add rdi, 1 + LONG $0xffc68348 // add rsi, -1 + JNE LBB2_986 + +LBB2_987: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_988: + LONG $0x3904b60f // movzx eax, byte [rcx + rdi] + WORD $0xe2f6 // mul dl + LONG $0x38048841 // mov byte [r8 + rdi], al + LONG $0x3944b60f; BYTE $0x01 // movzx eax, byte [rcx + rdi + 1] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x01 // mov byte [r8 + rdi + 1], al + LONG $0x3944b60f; BYTE $0x02 // movzx eax, byte [rcx + rdi + 2] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x02 // mov byte [r8 + rdi + 2], al + LONG $0x3944b60f; BYTE $0x03 // movzx eax, byte [rcx + rdi + 3] + WORD $0xe2f6 // mul dl + LONG $0x38448841; BYTE $0x03 // mov byte [r8 + rdi + 3], al + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_988 + JMP LBB2_1069 + +LBB2_235: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_237 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_591 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_591 + +LBB2_237: + WORD $0xf631 // xor esi, esi + +LBB2_993: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_995 + +LBB2_994: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_994 + +LBB2_995: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_996: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_996 + JMP LBB2_1069 + +LBB2_238: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_240 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_594 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_594 + +LBB2_240: + WORD $0xf631 // xor esi, esi + +LBB2_1001: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1003 + +LBB2_1002: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1002 + +LBB2_1003: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_1004: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1004 + JMP LBB2_1069 + +LBB2_241: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028a // mov al, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_243 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_597 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_597 + +LBB2_243: + WORD $0xf631 // xor esi, esi + +LBB2_1009: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1011 + +LBB2_1010: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1010 + +LBB2_1011: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_1012: + LONG $0x3114b60f // movzx edx, byte [rcx + rsi] + WORD $0xc200 // add dl, al + LONG $0x30148841 // mov byte [r8 + rsi], dl + LONG $0x3154b60f; BYTE $0x01 // movzx edx, byte [rcx + rsi + 1] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x01 // mov byte [r8 + rsi + 1], dl + LONG $0x3154b60f; BYTE $0x02 // movzx edx, byte [rcx + rsi + 2] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x02 // mov byte [r8 + rsi + 2], dl + LONG $0x3154b60f; BYTE $0x03 // movzx edx, byte [rcx + rsi + 3] + WORD $0xc200 // add dl, al + LONG $0x30548841; BYTE $0x03 // mov byte [r8 + rsi + 3], dl + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1012 + JMP LBB2_1069 + +LBB2_244: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB2_246 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_600 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_600 + +LBB2_246: + WORD $0xf631 // xor esi, esi + +LBB2_1017: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1019 + +LBB2_1018: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1018 + +LBB2_1019: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_1020: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042a; BYTE $0x31 // sub al, byte [rcx + rsi] + LONG $0x30048841 // mov byte [r8 + rsi], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0131442a // sub al, byte [rcx + rsi + 1] + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0231442a // sub al, byte [rcx + rsi + 2] + LONG $0x30448841; BYTE $0x02 // mov byte [r8 + rsi + 2], al + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0331442a // sub al, byte [rcx + rsi + 3] + LONG $0x30448841; BYTE $0x03 // mov byte [r8 + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1020 + JMP LBB2_1069 + +LBB2_247: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_249 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_603 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_603 + +LBB2_249: + WORD $0xf631 // xor esi, esi + +LBB2_1025: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1027 + +LBB2_1026: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1026 + +LBB2_1027: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_1028: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1028 + JMP LBB2_1069 + +LBB2_250: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_252 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_606 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_606 + +LBB2_252: + WORD $0xf631 // xor esi, esi + +LBB2_1033: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1035 + +LBB2_1034: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1034 + +LBB2_1035: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_1036: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xaf0f; BYTE $0xd0 // imul edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1036 + JMP LBB2_1069 + +LBB2_253: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_255 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_609 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_609 + +LBB2_255: + WORD $0xf631 // xor esi, esi + +LBB2_1041: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1043 + +LBB2_1042: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1042 + +LBB2_1043: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_1044: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1044 + JMP LBB2_1069 + +LBB2_256: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_258 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_612 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_612 + +LBB2_258: + WORD $0xf631 // xor esi, esi + +LBB2_1049: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1051 + +LBB2_1050: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1050 + +LBB2_1051: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_1052: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1052 + JMP LBB2_1069 + +LBB2_259: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x028b // mov eax, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_261 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_615 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_615 + +LBB2_261: + WORD $0xf631 // xor esi, esi + +LBB2_1057: + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xd1 // add r9, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1059 + +LBB2_1058: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1058 + +LBB2_1059: + LONG $0x03f98349 // cmp r9, 3 + JB LBB2_1069 + +LBB2_1060: + WORD $0x148b; BYTE $0xb1 // mov edx, dword [rcx + 4*rsi] + WORD $0xc201 // add edx, eax + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x04b1548b // mov edx, dword [rcx + 4*rsi + 4] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], edx + LONG $0x08b1548b // mov edx, dword [rcx + 4*rsi + 8] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], edx + LONG $0x0cb1548b // mov edx, dword [rcx + 4*rsi + 12] + WORD $0xc201 // add edx, eax + LONG $0xb0548941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], edx + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1060 + JMP LBB2_1069 + +LBB2_262: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB2_1069 + WORD $0x8b44; BYTE $0x1a // mov r11d, dword [rdx] + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB2_264 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB2_618 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB2_618 + +LBB2_264: + WORD $0xf631 // xor esi, esi + +LBB2_1065: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB2_1067 + +LBB2_1066: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB2_1066 + +LBB2_1067: + LONG $0x03fa8348 // cmp rdx, 3 + JB LBB2_1069 + +LBB2_1068: + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + WORD $0x042b; BYTE $0xb1 // sub eax, dword [rcx + 4*rsi] + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x04b1442b // sub eax, dword [rcx + 4*rsi + 4] + LONG $0xb0448941; BYTE $0x04 // mov dword [r8 + 4*rsi + 4], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x08b1442b // sub eax, dword [rcx + 4*rsi + 8] + LONG $0xb0448941; BYTE $0x08 // mov dword [r8 + 4*rsi + 8], eax + WORD $0x8944; BYTE $0xd8 // mov eax, r11d + LONG $0x0cb1442b // sub eax, dword [rcx + 4*rsi + 12] + LONG $0xb0448941; BYTE $0x0c // mov dword [r8 + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_1068 + JMP LBB2_1069 + +LBB2_319: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB2_320: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8148949 // mov qword [r8 + 8*rdi], rdx + LONG $0xf9548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rdi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rdx + LONG $0xf9548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rdi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rdx + LONG $0xf9548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rdi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rdx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB2_320 + +LBB2_321: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB2_323: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xfe148948 // mov qword [rsi + 8*rdi], rdx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB2_323 + JMP LBB2_1069 + +LBB2_324: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB2_325: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8148949 // mov qword [r8 + 8*rdi], rdx + LONG $0xf9548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rdi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rdx + LONG $0xf9548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rdi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rdx + LONG $0xf9548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rdi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rdx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB2_325 + +LBB2_326: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB2_328: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xfe148948 // mov qword [rsi + 8*rdi], rdx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB2_328 + JMP LBB2_1069 + +LBB2_377: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB2_378: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8148949 // mov qword [r8 + 8*rdi], rdx + LONG $0xf9548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rdi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rdx + LONG $0xf9548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rdi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rdx + LONG $0xf9548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rdi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rdx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB2_378 + +LBB2_379: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB2_381: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xfe148948 // mov qword [rsi + 8*rdi], rdx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB2_381 + JMP LBB2_1069 + +LBB2_385: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB2_386: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8148949 // mov qword [r8 + 8*rdi], rdx + LONG $0xf9548b48; BYTE $0x08 // mov rdx, qword [rcx + 8*rdi + 8] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x08 // mov qword [r8 + 8*rdi + 8], rdx + LONG $0xf9548b48; BYTE $0x10 // mov rdx, qword [rcx + 8*rdi + 16] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x10 // mov qword [r8 + 8*rdi + 16], rdx + LONG $0xf9548b48; BYTE $0x18 // mov rdx, qword [rcx + 8*rdi + 24] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xf8548949; BYTE $0x18 // mov qword [r8 + 8*rdi + 24], rdx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB2_386 + +LBB2_387: + WORD $0x854d; BYTE $0xc9 // test r9, r9 + JE LBB2_1069 + LONG $0xf8348d49 // lea rsi, [r8 + 8*rdi] + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0xff31 // xor edi, edi + +LBB2_389: + LONG $0xf9148b48 // mov rdx, qword [rcx + 8*rdi] + LONG $0xd0af0f48 // imul rdx, rax + LONG $0xfe148948 // mov qword [rsi + 8*rdi], rdx + LONG $0x01c78348 // add rdi, 1 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB2_389 + +LBB2_1069: + RET + +LBB2_453: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_621 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_455: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_455 + JMP LBB2_622 + +LBB2_456: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_629 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_458: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_458 + JMP LBB2_630 + +LBB2_459: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_637 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_461: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_461 + JMP LBB2_638 + +LBB2_462: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_645 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_464: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb85c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_464 + JMP LBB2_646 + +LBB2_465: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_653 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_467: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_467 + JMP LBB2_654 + +LBB2_468: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_661 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_470: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb85c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_470 + JMP LBB2_662 + +LBB2_471: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_669 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_473: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_473 + JMP LBB2_670 + +LBB2_474: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_677 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_476: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_476 + JMP LBB2_678 + +LBB2_477: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_685 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_479: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_479 + JMP LBB2_686 + +LBB2_480: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_693 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_482: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd35c0f66 // subpd xmm2, xmm3 + LONG $0x110f4166; WORD $0xf824 // movupd oword [r8 + 8*rdi], xmm4 + LONG $0x110f4166; WORD $0xf854; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm2 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd35c0f66 // subpd xmm2, xmm3 + LONG $0x110f4166; WORD $0xf864; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm4 + LONG $0x110f4166; WORD $0xf854; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_482 + JMP LBB2_694 + +LBB2_483: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_701 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_485: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf854; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_485 + JMP LBB2_702 + +LBB2_486: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xc8120ff2 // movddup xmm1, xmm0 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_709 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_488: + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd35c0f66 // subpd xmm2, xmm3 + LONG $0x110f4166; WORD $0xf824 // movupd oword [r8 + 8*rdi], xmm4 + LONG $0x110f4166; WORD $0xf854; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm2 + LONG $0x54100f66; WORD $0x20f9 // movupd xmm2, oword [rcx + 8*rdi + 32] + LONG $0x5c100f66; WORD $0x30f9 // movupd xmm3, oword [rcx + 8*rdi + 48] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd35c0f66 // subpd xmm2, xmm3 + LONG $0x110f4166; WORD $0xf864; BYTE $0x20 // movupd oword [r8 + 8*rdi + 32], xmm4 + LONG $0x110f4166; WORD $0xf854; BYTE $0x30 // movupd oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_488 + JMP LBB2_710 + +LBB2_489: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB2_717 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB2_491: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_491 + JMP LBB2_718 + +LBB2_492: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB2_725 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB2_494: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_494 + JMP LBB2_726 + +LBB2_495: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xd0 // movzx edx, al + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_733 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_497: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_497 + JMP LBB2_734 + +LBB2_498: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xd3b60f41 // movzx edx, r11b + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_741 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_500: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x385c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_500 + JMP LBB2_742 + +LBB2_501: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xd0 // movzx edx, al + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_749 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_503: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_503 + JMP LBB2_750 + +LBB2_504: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xd3b60f41 // movzx edx, r11b + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_757 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_506: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x385c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_506 + JMP LBB2_758 + +LBB2_507: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_765 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_509: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_509 + JMP LBB2_766 + +LBB2_510: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4966; BYTE $0xc3 // movq xmm0, r11 + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_773 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_512: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf85c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_512 + JMP LBB2_774 + +LBB2_513: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_781 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_515: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_515 + JMP LBB2_782 + +LBB2_516: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4966; BYTE $0xc3 // movq xmm0, r11 + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_789 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_518: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf85c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_518 + JMP LBB2_790 + +LBB2_519: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_797 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_521: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_521 + JMP LBB2_798 + +LBB2_522: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_805 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_524: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_524 + JMP LBB2_806 + +LBB2_525: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_813 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_527: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_527 + JMP LBB2_814 + +LBB2_528: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_821 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_530: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_530 + JMP LBB2_822 + +LBB2_531: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_829 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_533: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_533 + JMP LBB2_830 + +LBB2_534: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_837 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_536: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_536 + JMP LBB2_838 + +LBB2_537: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_845 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_539: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x785c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_539 + JMP LBB2_846 + +LBB2_540: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_853 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_542: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x785c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_542 + JMP LBB2_854 + +LBB2_543: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_861 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_545: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_545 + JMP LBB2_862 + +LBB2_546: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_869 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_548: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_548 + JMP LBB2_870 + +LBB2_549: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_877 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_551: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x785c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_551 + JMP LBB2_878 + +LBB2_552: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf0568d48 // lea rdx, [rsi - 16] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_885 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_554: + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2079 // movdqu xmm1, oword [rcx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x3079 // movdqu xmm2, oword [rcx + 2*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf90f66 // psubw xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x785c; BYTE $0x20 // movdqu oword [r8 + 2*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x784c; BYTE $0x30 // movdqu oword [r8 + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_554 + JMP LBB2_886 + +LBB2_555: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_893 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_557: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_557 + JMP LBB2_894 + +LBB2_558: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_901 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_560: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_560 + JMP LBB2_902 + +LBB2_561: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_909 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_563: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_563 + JMP LBB2_910 + +LBB2_564: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_917 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_566: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_566 + JMP LBB2_918 + +LBB2_567: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4966; BYTE $0xc3 // movq xmm0, r11 + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_925 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_569: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf85c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_569 + JMP LBB2_926 + +LBB2_570: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_933 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_572: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0x24110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm4 + LONG $0x54110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm2 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0x64110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm4 + LONG $0x54110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_572 + JMP LBB2_934 + +LBB2_573: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4866; BYTE $0xc0 // movq xmm0, rax + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_941 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_575: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_575 + JMP LBB2_942 + +LBB2_576: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_949 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_578: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x54110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm2 + LONG $0x5c110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_578 + JMP LBB2_950 + +LBB2_579: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0x6e0f4966; BYTE $0xc3 // movq xmm0, r11 + LONG $0xc0700f66; BYTE $0x44 // pshufd xmm0, xmm0, 68 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_957 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_581: + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20f9 // movdqu xmm1, oword [rcx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30f9 // movdqu xmm2, oword [rcx + 8*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafb0f66 // psubq xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xf85c; BYTE $0x20 // movdqu oword [r8 + 8*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf84c; BYTE $0x30 // movdqu oword [r8 + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_581 + JMP LBB2_958 + +LBB2_582: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB2_965 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xff31 // xor edi, edi + +LBB2_584: + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0x24110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm4 + LONG $0x54110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm2 + LONG $0xb954100f; BYTE $0x20 // movups xmm2, oword [rcx + 4*rdi + 32] + LONG $0xb95c100f; BYTE $0x30 // movups xmm3, oword [rcx + 4*rdi + 48] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0x64110f41; WORD $0x20b8 // movups oword [r8 + 4*rdi + 32], xmm4 + LONG $0x54110f41; WORD $0x30b8 // movups oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_584 + JMP LBB2_966 + +LBB2_585: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB2_973 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB2_587: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_587 + JMP LBB2_974 + +LBB2_588: + WORD $0x8944; BYTE $0xd7 // mov edi, r10d + WORD $0xe783; BYTE $0xe0 // and edi, -32 + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0478d48 // lea rax, [rdi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + LONG $0x30380f66; BYTE $0xc8 // pmovzxbw xmm1, xmm0 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB2_981 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0xfee68348 // and rsi, -2 + WORD $0xf748; BYTE $0xde // neg rsi + WORD $0xc031 // xor eax, eax + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0x5d6f0f66; BYTE $0x00 // movdqa xmm3, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + +LBB2_590: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0x30380f66; BYTE $0xfd // pmovzxbw xmm7, xmm5 + LONG $0xed680f66 // punpckhbw xmm5, xmm5 + LONG $0xead50f66 // pmullw xmm5, xmm2 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xf9d50f66 // pmullw xmm7, xmm1 + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfd670f66 // packuswb xmm7, xmm5 + LONG $0x30380f66; BYTE $0xee // pmovzxbw xmm5, xmm6 + LONG $0xf6680f66 // punpckhbw xmm6, xmm6 + LONG $0xf4d50f66 // pmullw xmm6, xmm4 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xee670f66 // packuswb xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c68348 // add rsi, 2 + JNE LBB2_590 + JMP LBB2_982 + +LBB2_591: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xd0 // movzx edx, al + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_989 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_593: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_593 + JMP LBB2_990 + +LBB2_594: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xd3b60f41 // movzx edx, r11b + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_997 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_596: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x385c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_596 + JMP LBB2_998 + +LBB2_597: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + WORD $0xb60f; BYTE $0xd0 // movzx edx, al + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1005 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_599: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm2 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_599 + JMP LBB2_1006 + +LBB2_600: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xd3b60f41 // movzx edx, r11b + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc1 // pshufb xmm0, xmm1 + LONG $0xe0568d48 // lea rdx, [rsi - 32] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1013 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_602: + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x2039 // movdqu xmm1, oword [rcx + rdi + 32] + LONG $0x546f0ff3; WORD $0x3039 // movdqu xmm2, oword [rcx + rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcaf80f66 // psubb xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0x385c; BYTE $0x20 // movdqu oword [r8 + rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x384c; BYTE $0x30 // movdqu oword [r8 + rdi + 48], xmm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_602 + JMP LBB2_1014 + +LBB2_603: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1021 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_605: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_605 + JMP LBB2_1022 + +LBB2_606: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1029 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_608: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_608 + JMP LBB2_1030 + +LBB2_609: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1037 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_611: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_611 + JMP LBB2_1038 + +LBB2_612: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1045 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_614: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb85c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_614 + JMP LBB2_1046 + +LBB2_615: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1053 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_617: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_617 + JMP LBB2_1054 + +LBB2_618: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB2_1061 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + +LBB2_620: + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm1 + LONG $0x4c6f0ff3; WORD $0x20b9 // movdqu xmm1, oword [rcx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30b9 // movdqu xmm2, oword [rcx + 4*rdi + 48] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcafa0f66 // psubd xmm1, xmm2 + LONG $0x7f0f41f3; WORD $0xb85c; BYTE $0x20 // movdqu oword [r8 + 4*rdi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb84c; BYTE $0x30 // movdqu oword [r8 + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB2_620 + JMP LBB2_1062 + +LBB2_621: + WORD $0xff31 // xor edi, edi + +LBB2_622: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_624 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_624: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_625 + +LBB2_629: + WORD $0xff31 // xor edi, edi + +LBB2_630: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_632 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_632: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_633 + +LBB2_637: + WORD $0xff31 // xor edi, edi + +LBB2_638: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_640 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_640: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_641 + +LBB2_645: + WORD $0xff31 // xor edi, edi + +LBB2_646: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_648 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB2_648: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_649 + +LBB2_653: + WORD $0xff31 // xor edi, edi + +LBB2_654: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_656 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_656: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_657 + +LBB2_661: + WORD $0xff31 // xor edi, edi + +LBB2_662: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_664 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB2_664: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_665 + +LBB2_669: + WORD $0xff31 // xor edi, edi + +LBB2_670: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_672 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB2_672: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_673 + +LBB2_677: + WORD $0xff31 // xor edi, edi + +LBB2_678: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_680 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1590f66 // mulpd xmm2, xmm1 + LONG $0xd9590f66 // mulpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB2_680: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_681 + +LBB2_685: + WORD $0xff31 // xor edi, edi + +LBB2_686: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_688 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB2_688: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_689 + +LBB2_693: + WORD $0xff31 // xor edi, edi + +LBB2_694: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_696 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xcb5c0f66 // subpd xmm1, xmm3 + LONG $0x110f4166; WORD $0xf824 // movupd oword [r8 + 8*rdi], xmm4 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + +LBB2_696: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_697 + +LBB2_701: + WORD $0xff31 // xor edi, edi + +LBB2_702: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_704 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xd1580f66 // addpd xmm2, xmm1 + LONG $0xd9580f66 // addpd xmm3, xmm1 + LONG $0x110f4166; WORD $0xf814 // movupd oword [r8 + 8*rdi], xmm2 + LONG $0x110f4166; WORD $0xf85c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm3 + +LBB2_704: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_705 + +LBB2_709: + WORD $0xff31 // xor edi, edi + +LBB2_710: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_712 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe1280f66 // movapd xmm4, xmm1 + LONG $0xe25c0f66 // subpd xmm4, xmm2 + LONG $0xcb5c0f66 // subpd xmm1, xmm3 + LONG $0x110f4166; WORD $0xf824 // movupd oword [r8 + 8*rdi], xmm4 + LONG $0x110f4166; WORD $0xf84c; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm1 + +LBB2_712: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_713 + +LBB2_717: + WORD $0xc031 // xor eax, eax + +LBB2_718: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_720 + LONG $0x146f0ff3; BYTE $0x01 // movdqu xmm2, oword [rcx + rax] + LONG $0x5c6f0ff3; WORD $0x1001 // movdqu xmm3, oword [rcx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB2_720: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1069 + JMP LBB2_721 + +LBB2_725: + WORD $0xc031 // xor eax, eax + +LBB2_726: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_728 + LONG $0x146f0ff3; BYTE $0x01 // movdqu xmm2, oword [rcx + rax] + LONG $0x5c6f0ff3; WORD $0x1001 // movdqu xmm3, oword [rcx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB2_728: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1069 + JMP LBB2_729 + +LBB2_733: + WORD $0xff31 // xor edi, edi + +LBB2_734: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_736 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB2_736: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_737 + +LBB2_741: + WORD $0xff31 // xor edi, edi + +LBB2_742: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_744 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB2_744: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_745 + +LBB2_749: + WORD $0xff31 // xor edi, edi + +LBB2_750: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_752 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB2_752: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_753 + +LBB2_757: + WORD $0xff31 // xor edi, edi + +LBB2_758: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_760 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB2_760: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_761 + +LBB2_765: + WORD $0xff31 // xor edi, edi + +LBB2_766: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_768 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB2_768: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_769 + +LBB2_773: + WORD $0xff31 // xor edi, edi + +LBB2_774: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_776 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB2_776: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_777 + +LBB2_781: + WORD $0xff31 // xor edi, edi + +LBB2_782: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_784 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB2_784: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_785 + +LBB2_789: + WORD $0xff31 // xor edi, edi + +LBB2_790: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_792 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB2_792: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_793 + +LBB2_797: + WORD $0xff31 // xor edi, edi + +LBB2_798: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_800 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_800: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_801 + +LBB2_805: + WORD $0xff31 // xor edi, edi + +LBB2_806: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_808 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_808: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_809 + +LBB2_813: + WORD $0xff31 // xor edi, edi + +LBB2_814: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_816 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_816: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_817 + +LBB2_821: + WORD $0xff31 // xor edi, edi + +LBB2_822: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_824 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8d50f66 // pmullw xmm1, xmm0 + LONG $0xd0d50f66 // pmullw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_824: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_825 + +LBB2_829: + WORD $0xff31 // xor edi, edi + +LBB2_830: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_832 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_832: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_833 + +LBB2_837: + WORD $0xff31 // xor edi, edi + +LBB2_838: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_840 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_840: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_841 + +LBB2_845: + WORD $0xff31 // xor edi, edi + +LBB2_846: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_848 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB2_848: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_849 + +LBB2_853: + WORD $0xff31 // xor edi, edi + +LBB2_854: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_856 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB2_856: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_857 + +LBB2_861: + WORD $0xff31 // xor edi, edi + +LBB2_862: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_864 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_864: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_865 + +LBB2_869: + WORD $0xff31 // xor edi, edi + +LBB2_870: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_872 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xc8fd0f66 // paddw xmm1, xmm0 + LONG $0xd0fd0f66 // paddw xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x780c // movdqu oword [r8 + 2*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x7854; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm2 + +LBB2_872: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_873 + +LBB2_877: + WORD $0xff31 // xor edi, edi + +LBB2_878: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_880 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB2_880: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_881 + +LBB2_885: + WORD $0xff31 // xor edi, edi + +LBB2_886: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_888 + LONG $0x0c6f0ff3; BYTE $0x79 // movdqu xmm1, oword [rcx + 2*rdi] + LONG $0x546f0ff3; WORD $0x1079 // movdqu xmm2, oword [rcx + 2*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f90f66 // psubw xmm3, xmm1 + LONG $0xc2f90f66 // psubw xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x781c // movdqu oword [r8 + 2*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x7844; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm0 + +LBB2_888: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_889 + +LBB2_893: + WORD $0xff31 // xor edi, edi + +LBB2_894: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_896 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB2_896: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_897 + +LBB2_901: + WORD $0xff31 // xor edi, edi + +LBB2_902: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_904 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x590f; BYTE $0xd1 // mulps xmm2, xmm1 + WORD $0x590f; BYTE $0xd9 // mulps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB2_904: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_905 + +LBB2_909: + WORD $0xff31 // xor edi, edi + +LBB2_910: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_912 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB2_912: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_913 + +LBB2_917: + WORD $0xff31 // xor edi, edi + +LBB2_918: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_920 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB2_920: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_921 + +LBB2_925: + WORD $0xff31 // xor edi, edi + +LBB2_926: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_928 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB2_928: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_929 + +LBB2_933: + WORD $0xff31 // xor edi, edi + +LBB2_934: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_936 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x5c0f; BYTE $0xcb // subps xmm1, xmm3 + LONG $0x24110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm4 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + +LBB2_936: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_937 + +LBB2_941: + WORD $0xff31 // xor edi, edi + +LBB2_942: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_944 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc8d40f66 // paddq xmm1, xmm0 + LONG $0xd0d40f66 // paddq xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xf80c // movdqu oword [r8 + 8*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xf854; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm2 + +LBB2_944: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_945 + +LBB2_949: + WORD $0xff31 // xor edi, edi + +LBB2_950: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_952 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x580f; BYTE $0xd1 // addps xmm2, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0x14110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm2 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + +LBB2_952: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_953 + +LBB2_957: + WORD $0xff31 // xor edi, edi + +LBB2_958: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_960 + LONG $0x0c6f0ff3; BYTE $0xf9 // movdqu xmm1, oword [rcx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10f9 // movdqu xmm2, oword [rcx + 8*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc2fb0f66 // psubq xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xf81c // movdqu oword [r8 + 8*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xf844; BYTE $0x10 // movdqu oword [r8 + 8*rdi + 16], xmm0 + +LBB2_960: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_961 + +LBB2_965: + WORD $0xff31 // xor edi, edi + +LBB2_966: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_968 + LONG $0xb914100f // movups xmm2, oword [rcx + 4*rdi] + LONG $0xb95c100f; BYTE $0x10 // movups xmm3, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x5c0f; BYTE $0xcb // subps xmm1, xmm3 + LONG $0x24110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm4 + LONG $0x4c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm1 + +LBB2_968: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB2_1069 + JMP LBB2_969 + +LBB2_973: + WORD $0xc031 // xor eax, eax + +LBB2_974: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_976 + LONG $0x146f0ff3; BYTE $0x01 // movdqu xmm2, oword [rcx + rax] + LONG $0x5c6f0ff3; WORD $0x1001 // movdqu xmm3, oword [rcx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB2_976: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1069 + JMP LBB2_977 + +LBB2_981: + WORD $0xc031 // xor eax, eax + +LBB2_982: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_984 + LONG $0x146f0ff3; BYTE $0x01 // movdqu xmm2, oword [rcx + rax] + LONG $0x5c6f0ff3; WORD $0x1001 // movdqu xmm3, oword [rcx + rax + 16] + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe4680f66 // punpckhbw xmm4, xmm4 + LONG $0x30380f66; BYTE $0xea // pmovzxbw xmm5, xmm2 + LONG $0xd2680f66 // punpckhbw xmm2, xmm2 + LONG $0xd4d50f66 // pmullw xmm2, xmm4 + LONG $0x656f0f66; BYTE $0x00 // movdqa xmm4, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xe9d50f66 // pmullw xmm5, xmm1 + LONG $0xecdb0f66 // pand xmm5, xmm4 + LONG $0xea670f66 // packuswb xmm5, xmm2 + LONG $0xc0680f66 // punpckhbw xmm0, xmm0 + LONG $0x30380f66; BYTE $0xd3 // pmovzxbw xmm2, xmm3 + LONG $0xdb680f66 // punpckhbw xmm3, xmm3 + LONG $0xd8d50f66 // pmullw xmm3, xmm0 + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xd1d50f66 // pmullw xmm2, xmm1 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xd3670f66 // packuswb xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x7f0f41f3; WORD $0x0054; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm2 + +LBB2_984: + WORD $0x394c; BYTE $0xd7 // cmp rdi, r10 + JE LBB2_1069 + JMP LBB2_985 + +LBB2_989: + WORD $0xff31 // xor edi, edi + +LBB2_990: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_992 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB2_992: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_993 + +LBB2_997: + WORD $0xff31 // xor edi, edi + +LBB2_998: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1000 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB2_1000: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1001 + +LBB2_1005: + WORD $0xff31 // xor edi, edi + +LBB2_1006: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1008 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xc8fc0f66 // paddb xmm1, xmm0 + LONG $0xd0fc0f66 // paddb xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0x380c // movdqu oword [r8 + rdi], xmm1 + LONG $0x7f0f41f3; WORD $0x3854; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm2 + +LBB2_1008: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1009 + +LBB2_1013: + WORD $0xff31 // xor edi, edi + +LBB2_1014: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1016 + LONG $0x0c6f0ff3; BYTE $0x39 // movdqu xmm1, oword [rcx + rdi] + LONG $0x546f0ff3; WORD $0x1039 // movdqu xmm2, oword [rcx + rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0xc2f80f66 // psubb xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0x381c // movdqu oword [r8 + rdi], xmm3 + LONG $0x7f0f41f3; WORD $0x3844; BYTE $0x10 // movdqu oword [r8 + rdi + 16], xmm0 + +LBB2_1016: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1017 + +LBB2_1021: + WORD $0xff31 // xor edi, edi + +LBB2_1022: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1024 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_1024: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1025 + +LBB2_1029: + WORD $0xff31 // xor edi, edi + +LBB2_1030: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1032 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_1032: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1033 + +LBB2_1037: + WORD $0xff31 // xor edi, edi + +LBB2_1038: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1040 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_1040: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1041 + +LBB2_1045: + WORD $0xff31 // xor edi, edi + +LBB2_1046: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1048 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB2_1048: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1049 + +LBB2_1053: + WORD $0xff31 // xor edi, edi + +LBB2_1054: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1056 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xc8fe0f66 // paddd xmm1, xmm0 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0x7f0f41f3; WORD $0xb80c // movdqu oword [r8 + 4*rdi], xmm1 + LONG $0x7f0f41f3; WORD $0xb854; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm2 + +LBB2_1056: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1057 + +LBB2_1061: + WORD $0xff31 // xor edi, edi + +LBB2_1062: + LONG $0x01c1f641 // test r9b, 1 + JE LBB2_1064 + LONG $0x0c6f0ff3; BYTE $0xb9 // movdqu xmm1, oword [rcx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10b9 // movdqu xmm2, oword [rcx + 4*rdi + 16] + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9fa0f66 // psubd xmm3, xmm1 + LONG $0xc2fa0f66 // psubd xmm0, xmm2 + LONG $0x7f0f41f3; WORD $0xb81c // movdqu oword [r8 + 4*rdi], xmm3 + LONG $0x7f0f41f3; WORD $0xb844; BYTE $0x10 // movdqu oword [r8 + 4*rdi + 16], xmm0 + +LBB2_1064: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB2_1069 + JMP LBB2_1065 + +DATA LCDATA4<>+0x000(SB)/8, $0x8000000000000000 +DATA LCDATA4<>+0x008(SB)/8, $0x8000000000000000 +DATA LCDATA4<>+0x010(SB)/8, $0x3ff0000000000000 +DATA LCDATA4<>+0x018(SB)/8, $0x3ff0000000000000 +DATA LCDATA4<>+0x020(SB)/8, $0x0000000100000001 +DATA LCDATA4<>+0x028(SB)/8, $0x0000000100000001 +DATA LCDATA4<>+0x030(SB)/8, $0x0000000000000001 +DATA LCDATA4<>+0x038(SB)/8, $0x0000000000000001 +DATA LCDATA4<>+0x040(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x048(SB)/8, $0x0001000100010001 +DATA LCDATA4<>+0x050(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x058(SB)/8, $0x0101010101010101 +DATA LCDATA4<>+0x060(SB)/8, $0x8000000080000000 +DATA LCDATA4<>+0x068(SB)/8, $0x8000000080000000 +DATA LCDATA4<>+0x070(SB)/8, $0x7fffffffffffffff +DATA LCDATA4<>+0x078(SB)/8, $0x7fffffffffffffff +DATA LCDATA4<>+0x080(SB)/8, $0x7fffffff7fffffff +DATA LCDATA4<>+0x088(SB)/8, $0x7fffffff7fffffff +DATA LCDATA4<>+0x090(SB)/8, $0x000000ff000000ff +DATA LCDATA4<>+0x098(SB)/8, $0x000000ff000000ff +DATA LCDATA4<>+0x0a0(SB)/8, $0x3ff0000000000000 +GLOBL LCDATA4<>(SB), 8, $168 + +TEXT ·_arithmetic_unary_same_types_sse4(SB), $0-40 + + MOVQ typ+0(FP), DI + MOVQ op+8(FP), SI + MOVQ input+16(FP), DX + MOVQ output+24(FP), CX + MOVQ len+32(FP), R8 + LEAQ LCDATA4<>(SB), BP + + LONG $0x13fe8040 // cmp sil, 19 + JLE LBB3_12 + LONG $0x14fe8040 // cmp sil, 20 + JE LBB3_22 + LONG $0x19fe8040 // cmp sil, 25 + JE LBB3_30 + LONG $0x1afe8040 // cmp sil, 26 + JNE LBB3_923 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_46 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_81 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_131 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_134 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB3_221 + WORD $0xd231 // xor edx, edx + JMP LBB3_373 + +LBB3_12: + LONG $0x04fe8040 // cmp sil, 4 + JE LBB3_38 + LONG $0x05fe8040 // cmp sil, 5 + JNE LBB3_923 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_53 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_86 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_137 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_140 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_21 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_374 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_374 + +LBB3_21: + WORD $0xf631 // xor esi, esi + +LBB3_614: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_616 + +LBB3_615: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_615 + +LBB3_616: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_617: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_617 + JMP LBB3_923 + +LBB3_22: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_60 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_91 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_143 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_146 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_29 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_377 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_377 + +LBB3_29: + WORD $0xf631 // xor esi, esi + +LBB3_622: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_624 + +LBB3_623: + WORD $0xc031 // xor eax, eax + LONG $0x00b23c83 // cmp dword [rdx + 4*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_623 + +LBB3_624: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_625: + WORD $0xc031 // xor eax, eax + LONG $0x00b23c83 // cmp dword [rdx + 4*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb27c83; BYTE $0x00 // cmp dword [rdx + 4*rsi + 12], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_625 + JMP LBB3_923 + +LBB3_30: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_67 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_96 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_149 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_152 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_37 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_380 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_380 + +LBB3_37: + WORD $0xf631 // xor esi, esi + +LBB3_536: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_538 + +LBB3_537: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_537 + +LBB3_538: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_539: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_539 + JMP LBB3_923 + +LBB3_38: + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_74 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_101 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_155 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_158 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_45 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_382 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_382 + +LBB3_45: + WORD $0xf631 // xor esi, esi + +LBB3_546: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_548 + +LBB3_547: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_547 + +LBB3_548: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_549: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_549 + JMP LBB3_923 + +LBB3_46: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_106 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_161 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_164 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_52 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_384 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_384 + +LBB3_52: + WORD $0xf631 // xor esi, esi + +LBB3_630: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_633 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_632: + LONG $0x0c100ff2; BYTE $0xf2 // movsd xmm1, qword [rdx + 8*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_632 + +LBB3_633: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_923 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_635: + LONG $0x0c100ff2; BYTE $0xf2 // movsd xmm1, qword [rdx + 8*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm1 + LONG $0x4c100ff2; WORD $0x08f2 // movsd xmm1, qword [rdx + 8*rsi + 8] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x08f1 // movlpd qword [rcx + 8*rsi + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10f2 // movsd xmm1, qword [rdx + 8*rsi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x10f1 // movlpd qword [rcx + 8*rsi + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18f2 // movsd xmm1, qword [rdx + 8*rsi + 24] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x18f1 // movlpd qword [rcx + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_635 + JMP LBB3_923 + +LBB3_53: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_111 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_167 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_170 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_59 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_387 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_387 + +LBB3_59: + WORD $0xf631 // xor esi, esi + +LBB3_640: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_643 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_642: + LONG $0x0c100ff2; BYTE $0xf2 // movsd xmm1, qword [rdx + 8*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_642 + +LBB3_643: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_923 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_645: + LONG $0x0c100ff2; BYTE $0xf2 // movsd xmm1, qword [rdx + 8*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm1 + LONG $0x4c100ff2; WORD $0x08f2 // movsd xmm1, qword [rdx + 8*rsi + 8] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x08f1 // movlpd qword [rcx + 8*rsi + 8], xmm1 + LONG $0x4c100ff2; WORD $0x10f2 // movsd xmm1, qword [rdx + 8*rsi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x10f1 // movlpd qword [rcx + 8*rsi + 16], xmm1 + LONG $0x4c100ff2; WORD $0x18f2 // movsd xmm1, qword [rdx + 8*rsi + 24] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c130f66; WORD $0x18f1 // movlpd qword [rcx + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_645 + JMP LBB3_923 + +LBB3_60: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_116 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_173 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_176 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_66 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_390 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_390 + +LBB3_66: + WORD $0xf631 // xor esi, esi + +LBB3_650: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_652 + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0xc8540f66 // andpd xmm1, xmm0 + QUAD $0x000000a095100ff2 // movsd xmm2, qword 160[rbp] /* [rip + .LCPI3_2] */ + LONG $0xd1560f66 // orpd xmm2, xmm1 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0xc8c20ff2; BYTE $0x00 // cmpeqsd xmm1, xmm0 + LONG $0xca550f66 // andnpd xmm1, xmm2 + LONG $0x0c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm1 + LONG $0x01ce8348 // or rsi, 1 + +LBB3_652: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + QUAD $0x000000a08d100ff2 // movsd xmm1, qword 160[rbp] /* [rip + .LCPI3_2] */ + LONG $0xd2570f66 // xorpd xmm2, xmm2 + +LBB3_654: + LONG $0x1c100ff2; BYTE $0xf2 // movsd xmm3, qword [rdx + 8*rsi] + LONG $0xe3280f66 // movapd xmm4, xmm3 + LONG $0xe0540f66 // andpd xmm4, xmm0 + LONG $0xe1560f66 // orpd xmm4, xmm1 + LONG $0xdac20ff2; BYTE $0x00 // cmpeqsd xmm3, xmm2 + LONG $0xdc550f66 // andnpd xmm3, xmm4 + LONG $0x1c130f66; BYTE $0xf1 // movlpd qword [rcx + 8*rsi], xmm3 + LONG $0x5c100ff2; WORD $0x08f2 // movsd xmm3, qword [rdx + 8*rsi + 8] + LONG $0xe3280f66 // movapd xmm4, xmm3 + LONG $0xe0540f66 // andpd xmm4, xmm0 + LONG $0xe1560f66 // orpd xmm4, xmm1 + LONG $0xdac20ff2; BYTE $0x00 // cmpeqsd xmm3, xmm2 + LONG $0xdc550f66 // andnpd xmm3, xmm4 + LONG $0x5c130f66; WORD $0x08f1 // movlpd qword [rcx + 8*rsi + 8], xmm3 + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_654 + JMP LBB3_923 + +LBB3_67: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_121 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_179 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_182 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_73 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_393 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_393 + +LBB3_73: + WORD $0xf631 // xor esi, esi + +LBB3_659: + QUAD $0xffffffffffffba49; WORD $0x7fff // mov r10, 9223372036854775807 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_661 + +LBB3_660: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd7 // and rdi, r10 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_660 + +LBB3_661: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_662: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_662 + JMP LBB3_923 + +LBB3_74: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_126 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_185 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_188 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_80 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_396 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_396 + +LBB3_80: + WORD $0xf631 // xor esi, esi + +LBB3_667: + QUAD $0xffffffffffffba49; WORD $0x7fff // mov r10, 9223372036854775807 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB3_669 + +LBB3_668: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd7 // and rdi, r10 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB3_668 + +LBB3_669: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_670: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + WORD $0x214c; BYTE $0xd0 // and rax, r10 + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_670 + JMP LBB3_923 + +LBB3_81: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_191 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_85 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_399 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_399 + +LBB3_85: + WORD $0xf631 // xor esi, esi + +LBB3_675: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_677 + +LBB3_676: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_676 + +LBB3_677: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_678: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_678 + JMP LBB3_923 + +LBB3_86: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_194 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_90 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_402 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_402 + +LBB3_90: + WORD $0xf631 // xor esi, esi + +LBB3_683: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_685 + +LBB3_684: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_684 + +LBB3_685: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_686: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_686 + JMP LBB3_923 + +LBB3_91: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_197 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_95 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_405 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_405 + +LBB3_95: + WORD $0xf631 // xor esi, esi + +LBB3_691: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_693 + LONG $0x323c8a40 // mov dil, byte [rdx + rsi] + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xd0950f41 // setne r8b + WORD $0xf641; BYTE $0xd8 // neg r8b + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xc0b60f45 // movzx r8d, r8b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf84e0f41 // cmovle edi, r8d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_693: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB3_695: + LONG $0x04b60f44; BYTE $0x32 // movzx r8d, byte [rdx + rsi] + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x44b60f44; WORD $0x0132 // movzx r8d, byte [rdx + rsi + 1] + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8445; BYTE $0xc0 // test r8b, r8b + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_695 + JMP LBB3_923 + +LBB3_96: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_200 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_100 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_408 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_408 + +LBB3_100: + WORD $0xf631 // xor esi, esi + +LBB3_700: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_702 + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x07f8c141 // sar r8d, 7 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_702: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_703: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_703 + JMP LBB3_923 + +LBB3_101: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_203 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_105 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_411 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_411 + +LBB3_105: + WORD $0xf631 // xor esi, esi + +LBB3_708: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_710 + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x07f8c141 // sar r8d, 7 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x313c8840 // mov byte [rcx + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB3_710: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_711: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x07 // sar edi, 7 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_711 + JMP LBB3_923 + +LBB3_106: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_206 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB3_265 + WORD $0xd231 // xor edx, edx + JMP LBB3_420 + +LBB3_111: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_209 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_115 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_421 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_421 + +LBB3_115: + WORD $0xf631 // xor esi, esi + +LBB3_716: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_718 + +LBB3_717: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_717 + +LBB3_718: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_719: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_719 + JMP LBB3_923 + +LBB3_116: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_212 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_120 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_424 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_424 + +LBB3_120: + WORD $0xf631 // xor esi, esi + +LBB3_724: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_726 + +LBB3_725: + WORD $0xc031 // xor eax, eax + LONG $0xf23c8348; BYTE $0x00 // cmp qword [rdx + 8*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_725 + +LBB3_726: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_727: + WORD $0xc031 // xor eax, eax + LONG $0xf23c8348; BYTE $0x00 // cmp qword [rdx + 8*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0008 // cmp qword [rdx + 8*rsi + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0010 // cmp qword [rdx + 8*rsi + 16], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf27c8348; WORD $0x0018 // cmp qword [rdx + 8*rsi + 24], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_727 + JMP LBB3_923 + +LBB3_121: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_215 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_125 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_427 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_427 + +LBB3_125: + WORD $0xf631 // xor esi, esi + +LBB3_556: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_558 + +LBB3_557: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_557 + +LBB3_558: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_559: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_559 + JMP LBB3_923 + +LBB3_126: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_218 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_923 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_130 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_429 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_429 + +LBB3_130: + WORD $0xf631 // xor esi, esi + +LBB3_566: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_568 + +LBB3_567: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_567 + +LBB3_568: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_569: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_569 + JMP LBB3_923 + +LBB3_131: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB3_279 + WORD $0xd231 // xor edx, edx + JMP LBB3_437 + +LBB3_134: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_136 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_438 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_438 + +LBB3_136: + WORD $0xf631 // xor esi, esi + +LBB3_732: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_734 + +LBB3_733: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_733 + +LBB3_734: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_735: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_735 + JMP LBB3_923 + +LBB3_137: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_139 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_441 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_441 + +LBB3_139: + WORD $0xf631 // xor esi, esi + +LBB3_740: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_742 + +LBB3_741: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_741 + +LBB3_742: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_743: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_743 + JMP LBB3_923 + +LBB3_140: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_142 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_444 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_444 + +LBB3_142: + WORD $0xf631 // xor esi, esi + +LBB3_748: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_750 + +LBB3_749: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_749 + +LBB3_750: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_751: + WORD $0xc031 // xor eax, eax + LONG $0x72042b66 // sub ax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x02 // sub ax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x04 // sub ax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x72442b66; BYTE $0x06 // sub ax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_751 + JMP LBB3_923 + +LBB3_143: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_145 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_447 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_447 + +LBB3_145: + WORD $0xf631 // xor esi, esi + +LBB3_756: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_758 + +LBB3_757: + WORD $0xc031 // xor eax, eax + LONG $0x723c8366; BYTE $0x00 // cmp word [rdx + 2*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_757 + +LBB3_758: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_759: + WORD $0xc031 // xor eax, eax + LONG $0x723c8366; BYTE $0x00 // cmp word [rdx + 2*rsi], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0002 // cmp word [rdx + 2*rsi + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0004 // cmp word [rdx + 2*rsi + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x727c8366; WORD $0x0006 // cmp word [rdx + 2*rsi + 6], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_759 + JMP LBB3_923 + +LBB3_146: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_148 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_450 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_450 + +LBB3_148: + WORD $0xf631 // xor esi, esi + +LBB3_764: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_766 + LONG $0x04b70f44; BYTE $0x72 // movzx r8d, word [rdx + 2*rsi] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc0854566 // test r8w, r8w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc0854566 // test r8w, r8w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_766: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_768: + LONG $0x723cb70f // movzx edi, word [rdx + 2*rsi] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc04f0f41 // cmovg eax, r8d + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xf84f0f41 // cmovg edi, r8d + LONG $0x717c8966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], di + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_768 + JMP LBB3_923 + +LBB3_149: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_151 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_453 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_453 + +LBB3_151: + WORD $0xf631 // xor esi, esi + +LBB3_576: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_578 + +LBB3_577: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_577 + +LBB3_578: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_579: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_579 + JMP LBB3_923 + +LBB3_152: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_154 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_455 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_455 + +LBB3_154: + WORD $0xf631 // xor esi, esi + +LBB3_773: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_775 + LONG $0x723cbf0f // movsx edi, word [rdx + 2*rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x0ff8c141 // sar r8d, 15 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_775: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_776: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244bf0f; BYTE $0x02 // movsx eax, word [rdx + 2*rsi + 2] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_776 + JMP LBB3_923 + +LBB3_155: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB3_157 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_458 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_458 + +LBB3_157: + WORD $0xf631 // xor esi, esi + +LBB3_586: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_588 + +LBB3_587: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_587 + +LBB3_588: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_589: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_589 + JMP LBB3_923 + +LBB3_158: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_160 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_460 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_460 + +LBB3_160: + WORD $0xf631 // xor esi, esi + +LBB3_781: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_783 + LONG $0x723cbf0f // movsx edi, word [rdx + 2*rsi] + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x0ff8c141 // sar r8d, 15 + WORD $0x0144; BYTE $0xc7 // add edi, r8d + WORD $0x3144; BYTE $0xc7 // xor edi, r8d + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01ce8348 // or rsi, 1 + +LBB3_783: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_784: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244bf0f; BYTE $0x02 // movsx eax, word [rdx + 2*rsi + 2] + WORD $0xc789 // mov edi, eax + WORD $0xffc1; BYTE $0x0f // sar edi, 15 + WORD $0xf801 // add eax, edi + WORD $0xf831 // xor eax, edi + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_784 + JMP LBB3_923 + +LBB3_161: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_163 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_463 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_463 + +LBB3_163: + WORD $0xf631 // xor esi, esi + +LBB3_789: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_791 + +LBB3_790: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_790 + +LBB3_791: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_792: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_792 + JMP LBB3_923 + +LBB3_164: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_166 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_466 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_466 + +LBB3_166: + WORD $0xf631 // xor esi, esi + +LBB3_797: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_800 + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_799: + LONG $0x0c100ff3; BYTE $0xb2 // movss xmm1, dword [rdx + 4*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_799 + +LBB3_800: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_923 + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_802: + LONG $0x0c100ff3; BYTE $0xb2 // movss xmm1, dword [rdx + 4*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm1 + LONG $0x4c100ff3; WORD $0x04b2 // movss xmm1, dword [rdx + 4*rsi + 4] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x04b1 // movss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x4c100ff3; WORD $0x08b2 // movss xmm1, dword [rdx + 4*rsi + 8] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x08b1 // movss dword [rcx + 4*rsi + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0cb2 // movss xmm1, dword [rdx + 4*rsi + 12] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x0cb1 // movss dword [rcx + 4*rsi + 12], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_802 + JMP LBB3_923 + +LBB3_167: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_169 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_469 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_469 + +LBB3_169: + WORD $0xf631 // xor esi, esi + +LBB3_807: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_809 + +LBB3_808: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_808 + +LBB3_809: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_810: + WORD $0xc031 // xor eax, eax + LONG $0xf2042b48 // sub rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x08 // sub rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x10 // sub rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xf2442b48; BYTE $0x18 // sub rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_810 + JMP LBB3_923 + +LBB3_170: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_172 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_472 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_472 + +LBB3_172: + WORD $0xf631 // xor esi, esi + +LBB3_815: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_818 + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_817: + LONG $0x0c100ff3; BYTE $0xb2 // movss xmm1, dword [rdx + 4*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_817 + +LBB3_818: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_923 + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_820: + LONG $0x0c100ff3; BYTE $0xb2 // movss xmm1, dword [rdx + 4*rsi] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x0c110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm1 + LONG $0x4c100ff3; WORD $0x04b2 // movss xmm1, dword [rdx + 4*rsi + 4] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x04b1 // movss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x4c100ff3; WORD $0x08b2 // movss xmm1, dword [rdx + 4*rsi + 8] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x08b1 // movss dword [rcx + 4*rsi + 8], xmm1 + LONG $0x4c100ff3; WORD $0x0cb2 // movss xmm1, dword [rdx + 4*rsi + 12] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0x4c110ff3; WORD $0x0cb1 // movss dword [rcx + 4*rsi + 12], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_820 + JMP LBB3_923 + +LBB3_173: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_175 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_475 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_475 + +LBB3_175: + WORD $0xf631 // xor esi, esi + +LBB3_825: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_827 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x854d; BYTE $0xc0 // test r8, r8 + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x854d; BYTE $0xc0 // test r8, r8 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_827: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_829: + LONG $0xf23c8b48 // mov rdi, qword [rdx + 8*rsi] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc04f0f49 // cmovg rax, r8 + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf84f0f49 // cmovg rdi, r8 + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_829 + JMP LBB3_923 + +LBB3_176: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8944; BYTE $0xc0 // mov eax, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_178 + LONG $0x82348d48 // lea rsi, [rdx + 4*rax] + WORD $0x3948; BYTE $0xce // cmp rsi, rcx + JBE LBB3_478 + LONG $0x81348d48 // lea rsi, [rcx + 4*rax] + WORD $0x3948; BYTE $0xd6 // cmp rsi, rdx + JBE LBB3_478 + +LBB3_178: + WORD $0xf631 // xor esi, esi + +LBB3_481: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x01a8 // test al, 1 + JE LBB3_483 + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + WORD $0x500f; BYTE $0xf8 // movmskps edi, xmm0 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xcf2a0ff3 // cvtsi2ss xmm1, edi + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd0c20ff3; BYTE $0x00 // cmpeqss xmm2, xmm0 + WORD $0x550f; BYTE $0xd1 // andnps xmm2, xmm1 + LONG $0x14110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm2 + LONG $0x01ce8348 // or rsi, 1 + +LBB3_483: + WORD $0x0149; BYTE $0xc0 // add r8, rax + JE LBB3_923 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + +LBB3_485: + LONG $0x0c100ff3; BYTE $0xb2 // movss xmm1, dword [rdx + 4*rsi] + WORD $0x500f; BYTE $0xf9 // movmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd72a0ff3 // cvtsi2ss xmm2, edi + LONG $0xc8c20ff3; BYTE $0x00 // cmpeqss xmm1, xmm0 + WORD $0x550f; BYTE $0xca // andnps xmm1, xmm2 + LONG $0x0c110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm1 + LONG $0x4c100ff3; WORD $0x04b2 // movss xmm1, dword [rdx + 4*rsi + 4] + WORD $0x500f; BYTE $0xf9 // movmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd72a0ff3 // cvtsi2ss xmm2, edi + LONG $0xc8c20ff3; BYTE $0x00 // cmpeqss xmm1, xmm0 + WORD $0x550f; BYTE $0xca // andnps xmm1, xmm2 + LONG $0x4c110ff3; WORD $0x04b1 // movss dword [rcx + 4*rsi + 4], xmm1 + LONG $0x02c68348 // add rsi, 2 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB3_485 + JMP LBB3_923 + +LBB3_179: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_181 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_486 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_486 + +LBB3_181: + WORD $0xf631 // xor esi, esi + +LBB3_834: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_836 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f49 // cmovl rdi, r8 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_836: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_837: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_837 + JMP LBB3_923 + +LBB3_182: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_184 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_489 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_489 + +LBB3_184: + WORD $0xf631 // xor esi, esi + +LBB3_842: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_845 + LONG $0xffffba41; WORD $0x7fff // mov r10d, 2147483647 + +LBB3_844: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x2144; BYTE $0xd0 // and eax, r10d + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_844 + +LBB3_845: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + LONG $0xffffffb8; BYTE $0x7f // mov eax, 2147483647 + +LBB3_847: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0xc721 // and edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b27c8b // mov edi, dword [rdx + 4*rsi + 4] + WORD $0xc721 // and edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x08b27c8b // mov edi, dword [rdx + 4*rsi + 8] + WORD $0xc721 // and edi, eax + LONG $0x08b17c89 // mov dword [rcx + 4*rsi + 8], edi + LONG $0x0cb27c8b // mov edi, dword [rdx + 4*rsi + 12] + WORD $0xc721 // and edi, eax + LONG $0x0cb17c89 // mov dword [rcx + 4*rsi + 12], edi + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_847 + JMP LBB3_923 + +LBB3_185: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB3_187 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_492 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_492 + +LBB3_187: + WORD $0xf631 // xor esi, esi + +LBB3_852: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_854 + LONG $0xf2048b4c // mov r8, qword [rdx + 8*rsi] + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f49 // cmovl rdi, r8 + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_854: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_855: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf13c8948 // mov qword [rcx + 8*rsi], rdi + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xf748; BYTE $0xdf // neg rdi + LONG $0xf84c0f48 // cmovl rdi, rax + LONG $0xf17c8948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rdi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_855 + JMP LBB3_923 + +LBB3_188: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_190 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_495 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_495 + +LBB3_190: + WORD $0xf631 // xor esi, esi + +LBB3_860: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_863 + LONG $0xffffba41; WORD $0x7fff // mov r10d, 2147483647 + +LBB3_862: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x2144; BYTE $0xd0 // and eax, r10d + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_862 + +LBB3_863: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + LONG $0xffffffb8; BYTE $0x7f // mov eax, 2147483647 + +LBB3_865: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0xc721 // and edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b27c8b // mov edi, dword [rdx + 4*rsi + 4] + WORD $0xc721 // and edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x08b27c8b // mov edi, dword [rdx + 4*rsi + 8] + WORD $0xc721 // and edi, eax + LONG $0x08b17c89 // mov dword [rcx + 4*rsi + 8], edi + LONG $0x0cb27c8b // mov edi, dword [rdx + 4*rsi + 12] + WORD $0xc721 // and edi, eax + LONG $0x0cb17c89 // mov dword [rcx + 4*rsi + 12], edi + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_865 + JMP LBB3_923 + +LBB3_191: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB3_338 + WORD $0xd231 // xor edx, edx + JMP LBB3_504 + +LBB3_194: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_196 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_505 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_505 + +LBB3_196: + WORD $0xf631 // xor esi, esi + +LBB3_870: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_872 + +LBB3_871: + LONG $0x14b60f44; BYTE $0x32 // movzx r10d, byte [rdx + rsi] + WORD $0xc031 // xor eax, eax + WORD $0x2844; BYTE $0xd0 // sub al, r10b + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_871 + +LBB3_872: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_873: + WORD $0xc031 // xor eax, eax + WORD $0x042a; BYTE $0x32 // sub al, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + WORD $0xc031 // xor eax, eax + LONG $0x0132442a // sub al, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + WORD $0xc031 // xor eax, eax + LONG $0x0232442a // sub al, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0xff31 // xor edi, edi + WORD $0x2840; BYTE $0xc7 // sub dil, al + LONG $0x317c8840; BYTE $0x03 // mov byte [rcx + rsi + 3], dil + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_873 + JMP LBB3_923 + +LBB3_197: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_199 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_508 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_508 + +LBB3_199: + WORD $0xf631 // xor esi, esi + +LBB3_878: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_880 + +LBB3_879: + LONG $0x00323c80 // cmp byte [rdx + rsi], 0 + LONG $0x3114950f // setne byte [rcx + rsi] + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_879 + +LBB3_880: + LONG $0x03f88348 // cmp rax, 3 + JB LBB3_923 + +LBB3_881: + LONG $0x00323c80 // cmp byte [rdx + rsi], 0 + LONG $0x3114950f // setne byte [rcx + rsi] + LONG $0x01327c80; BYTE $0x00 // cmp byte [rdx + rsi + 1], 0 + LONG $0x3154950f; BYTE $0x01 // setne byte [rcx + rsi + 1] + LONG $0x02327c80; BYTE $0x00 // cmp byte [rdx + rsi + 2], 0 + LONG $0x3154950f; BYTE $0x02 // setne byte [rcx + rsi + 2] + LONG $0x03327c80; BYTE $0x00 // cmp byte [rdx + rsi + 3], 0 + LONG $0x3154950f; BYTE $0x03 // setne byte [rcx + rsi + 3] + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_881 + JMP LBB3_923 + +LBB3_200: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_202 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_511 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_511 + +LBB3_202: + WORD $0xf631 // xor esi, esi + +LBB3_596: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_598 + +LBB3_597: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_597 + +LBB3_598: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_599: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_599 + JMP LBB3_923 + +LBB3_203: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB3_205 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_513 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_513 + +LBB3_205: + WORD $0xf631 // xor esi, esi + +LBB3_606: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_608 + +LBB3_607: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_607 + +LBB3_608: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_609: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_609 + JMP LBB3_923 + +LBB3_206: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_208 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_515 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_515 + +LBB3_208: + WORD $0xf631 // xor esi, esi + +LBB3_886: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_888 + +LBB3_887: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_887 + +LBB3_888: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_889: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_889 + JMP LBB3_923 + +LBB3_209: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_211 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_518 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_518 + +LBB3_211: + WORD $0xf631 // xor esi, esi + +LBB3_894: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB3_896 + +LBB3_895: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB3_895 + +LBB3_896: + LONG $0x03f88349 // cmp r8, 3 + JB LBB3_923 + +LBB3_897: + WORD $0xc031 // xor eax, eax + WORD $0x042b; BYTE $0xb2 // sub eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + WORD $0xc031 // xor eax, eax + LONG $0x04b2442b // sub eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08b2442b // sub eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0cb2442b // sub eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_897 + JMP LBB3_923 + +LBB3_212: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_214 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_521 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_521 + +LBB3_214: + WORD $0xf631 // xor esi, esi + +LBB3_902: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_904 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_904: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + LONG $0x0001b841; WORD $0x0000 // mov r8d, 1 + +LBB3_906: + WORD $0x3c8b; BYTE $0xb2 // mov edi, dword [rdx + 4*rsi] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + LONG $0xc04f0f41 // cmovg eax, r8d + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + LONG $0xf84f0f41 // cmovg edi, r8d + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_906 + JMP LBB3_923 + +LBB3_215: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_217 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_524 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_524 + +LBB3_217: + WORD $0xf631 // xor esi, esi + +LBB3_911: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_913 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x8944; BYTE $0xc7 // mov edi, r8d + WORD $0xdff7 // neg edi + LONG $0xf84c0f41 // cmovl edi, r8d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_913: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_914: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_914 + JMP LBB3_923 + +LBB3_218: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB3_923 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB3_220 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB3_527 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB3_527 + +LBB3_220: + WORD $0xf631 // xor esi, esi + +LBB3_919: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_921 + LONG $0xb2048b44 // mov r8d, dword [rdx + 4*rsi] + WORD $0x8944; BYTE $0xc7 // mov edi, r8d + WORD $0xdff7 // neg edi + LONG $0xf84c0f41 // cmovl edi, r8d + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01ce8348 // or rsi, 1 + +LBB3_921: + WORD $0x014c; BYTE $0xc8 // add rax, r9 + JE LBB3_923 + +LBB3_922: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + WORD $0xc789 // mov edi, eax + WORD $0xdff7 // neg edi + WORD $0x4c0f; BYTE $0xf8 // cmovl edi, eax + LONG $0x04b17c89 // mov dword [rcx + 4*rsi + 4], edi + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB3_922 + JMP LBB3_923 + +LBB3_221: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8428d48 // lea rax, [rdx - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x07 // and esi, 7 + LONG $0x38f88348 // cmp rax, 56 + JAE LBB3_367 + WORD $0xc031 // xor eax, eax + JMP LBB3_369 + +LBB3_265: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc428d48 // lea rax, [rdx - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x07 // and esi, 7 + LONG $0x1cf88348 // cmp rax, 28 + JAE LBB3_414 + WORD $0xc031 // xor eax, eax + JMP LBB3_416 + +LBB3_279: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0428d48 // lea rax, [rdx - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x07 // and esi, 7 + LONG $0x70f88348 // cmp rax, 112 + JAE LBB3_431 + WORD $0xc031 // xor eax, eax + JMP LBB3_433 + +LBB3_338: + WORD $0x8944; BYTE $0xca // mov edx, r9d + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0428d48 // lea rax, [rdx - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0xfe89 // mov esi, edi + WORD $0xe683; BYTE $0x07 // and esi, 7 + LONG $0x00e03d48; WORD $0x0000 // cmp rax, 224 + JAE LBB3_498 + WORD $0xc031 // xor eax, eax + JMP LBB3_500 + +LBB3_374: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_610 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_376: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_376 + JMP LBB3_611 + +LBB3_377: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_618 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x20 // movdqa xmm1, oword 32[rbp] /* [rip + .LCPI3_3] */ + +LBB3_379: + LONG $0x146f0ff3; BYTE $0xba // movdqu xmm2, oword [rdx + 4*rdi] + LONG $0x5c6f0ff3; WORD $0x10ba // movdqu xmm3, oword [rdx + 4*rdi + 16] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x147f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm2 + LONG $0x5c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20ba // movdqu xmm2, oword [rdx + 4*rdi + 32] + LONG $0x5c6f0ff3; WORD $0x30ba // movdqu xmm3, oword [rdx + 4*rdi + 48] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x547f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm3 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_379 + JMP LBB3_619 + +LBB3_380: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB3_530 + WORD $0xc031 // xor eax, eax + JMP LBB3_532 + +LBB3_382: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB3_540 + WORD $0xc031 // xor eax, eax + JMP LBB3_542 + +LBB3_384: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_626 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_386: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_386 + JMP LBB3_627 + +LBB3_387: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_636 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI3_0] */ + +LBB3_389: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_389 + JMP LBB3_637 + +LBB3_390: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_646 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI3_1] */ + +LBB3_392: + LONG $0x1c100f66; BYTE $0xfa // movupd xmm3, oword [rdx + 8*rdi] + LONG $0x64100f66; WORD $0x10fa // movupd xmm4, oword [rdx + 8*rdi + 16] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe6540f66 // andpd xmm4, xmm6 + LONG $0x1c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm3 + LONG $0x64110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm4 + LONG $0x5c100f66; WORD $0x20fa // movupd xmm3, oword [rdx + 8*rdi + 32] + LONG $0x64100f66; WORD $0x30fa // movupd xmm4, oword [rdx + 8*rdi + 48] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe6540f66 // andpd xmm4, xmm6 + LONG $0x5c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm3 + LONG $0x64110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm4 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_392 + JMP LBB3_647 + +LBB3_393: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_655 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x70 // movapd xmm0, oword 112[rbp] /* [rip + .LCPI3_8] */ + +LBB3_395: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_395 + JMP LBB3_656 + +LBB3_396: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_663 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x70 // movapd xmm0, oword 112[rbp] /* [rip + .LCPI3_8] */ + +LBB3_398: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_398 + JMP LBB3_664 + +LBB3_399: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_671 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_401: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2039 // movdqu oword [rcx + rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3039 // movdqu oword [rcx + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_401 + JMP LBB3_672 + +LBB3_402: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_679 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_404: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2039 // movdqu oword [rcx + rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3039 // movdqu oword [rcx + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_404 + JMP LBB3_680 + +LBB3_405: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_687 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI3_6] */ + +LBB3_407: + LONG $0x2c6f0ff3; BYTE $0x3a // movdqu xmm5, oword [rdx + rdi] + LONG $0x746f0ff3; WORD $0x103a // movdqu xmm6, oword [rdx + rdi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x3c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm7 + LONG $0x6c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x203a // movdqu xmm5, oword [rdx + rdi + 32] + LONG $0x746f0ff3; WORD $0x303a // movdqu xmm6, oword [rdx + rdi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7c7f0ff3; WORD $0x2039 // movdqu oword [rcx + rdi + 32], xmm7 + LONG $0x6c7f0ff3; WORD $0x3039 // movdqu oword [rcx + rdi + 48], xmm5 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_407 + JMP LBB3_688 + +LBB3_408: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_696 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000090856f0f4466; BYTE $0x00 // movdqa xmm8, oword 144[rbp] /* [rip + .LCPI3_10] */ + +LBB3_410: + LONG $0x21380f66; WORD $0x3a64; BYTE $0x0c // pmovsxbd xmm4, dword [rdx + rdi + 12] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbd xmm1, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x04 // pmovsxbd xmm3, dword [rdx + rdi + 4] + LONG $0x21380f66; WORD $0x3a14 // pmovsxbd xmm2, dword [rdx + rdi] + LONG $0xea6f0f66 // movdqa xmm5, xmm2 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf36f0f66 // movdqa xmm6, xmm3 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xe0720f66; BYTE $0x07 // psrad xmm0, 7 + LONG $0xe0fe0f66 // paddd xmm4, xmm0 + LONG $0xcffe0f66 // paddd xmm1, xmm7 + LONG $0xdefe0f66 // paddd xmm3, xmm6 + LONG $0xd5fe0f66 // paddd xmm2, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xdeef0f66 // pxor xmm3, xmm6 + LONG $0xcfef0f66 // pxor xmm1, xmm7 + LONG $0xe0ef0f66 // pxor xmm4, xmm0 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0x2b380f66; BYTE $0xcc // packusdw xmm1, xmm4 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0x2b380f66; BYTE $0xd3 // packusdw xmm2, xmm3 + LONG $0xd1670f66 // packuswb xmm2, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x21380f66; WORD $0x3a64; BYTE $0x1c // pmovsxbd xmm4, dword [rdx + rdi + 28] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbd xmm1, dword [rdx + rdi + 24] + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x14 // pmovsxbd xmm3, dword [rdx + rdi + 20] + LONG $0x21380f66; WORD $0x3a54; BYTE $0x10 // pmovsxbd xmm2, dword [rdx + rdi + 16] + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xe0720f66; BYTE $0x07 // psrad xmm0, 7 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf16f0f66 // movdqa xmm6, xmm1 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xe7fe0f66 // paddd xmm4, xmm7 + LONG $0xcefe0f66 // paddd xmm1, xmm6 + LONG $0xddfe0f66 // paddd xmm3, xmm5 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0xd0ef0f66 // pxor xmm2, xmm0 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xceef0f66 // pxor xmm1, xmm6 + LONG $0xe7ef0f66 // pxor xmm4, xmm7 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0x2b380f66; BYTE $0xcc // packusdw xmm1, xmm4 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0x2b380f66; BYTE $0xd3 // packusdw xmm2, xmm3 + LONG $0xd1670f66 // packuswb xmm2, xmm1 + LONG $0x547f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_410 + JMP LBB3_697 + +LBB3_411: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_704 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000090856f0f4466; BYTE $0x00 // movdqa xmm8, oword 144[rbp] /* [rip + .LCPI3_10] */ + +LBB3_413: + LONG $0x21380f66; WORD $0x3a64; BYTE $0x0c // pmovsxbd xmm4, dword [rdx + rdi + 12] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbd xmm1, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x04 // pmovsxbd xmm3, dword [rdx + rdi + 4] + LONG $0x21380f66; WORD $0x3a14 // pmovsxbd xmm2, dword [rdx + rdi] + LONG $0xea6f0f66 // movdqa xmm5, xmm2 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf36f0f66 // movdqa xmm6, xmm3 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xe0720f66; BYTE $0x07 // psrad xmm0, 7 + LONG $0xe0fe0f66 // paddd xmm4, xmm0 + LONG $0xcffe0f66 // paddd xmm1, xmm7 + LONG $0xdefe0f66 // paddd xmm3, xmm6 + LONG $0xd5fe0f66 // paddd xmm2, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xdeef0f66 // pxor xmm3, xmm6 + LONG $0xcfef0f66 // pxor xmm1, xmm7 + LONG $0xe0ef0f66 // pxor xmm4, xmm0 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0x2b380f66; BYTE $0xcc // packusdw xmm1, xmm4 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0x2b380f66; BYTE $0xd3 // packusdw xmm2, xmm3 + LONG $0xd1670f66 // packuswb xmm2, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x21380f66; WORD $0x3a64; BYTE $0x1c // pmovsxbd xmm4, dword [rdx + rdi + 28] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbd xmm1, dword [rdx + rdi + 24] + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x14 // pmovsxbd xmm3, dword [rdx + rdi + 20] + LONG $0x21380f66; WORD $0x3a54; BYTE $0x10 // pmovsxbd xmm2, dword [rdx + rdi + 16] + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xe0720f66; BYTE $0x07 // psrad xmm0, 7 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf16f0f66 // movdqa xmm6, xmm1 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xe7fe0f66 // paddd xmm4, xmm7 + LONG $0xcefe0f66 // paddd xmm1, xmm6 + LONG $0xddfe0f66 // paddd xmm3, xmm5 + LONG $0xd0fe0f66 // paddd xmm2, xmm0 + LONG $0xd0ef0f66 // pxor xmm2, xmm0 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xceef0f66 // pxor xmm1, xmm6 + LONG $0xe7ef0f66 // pxor xmm4, xmm7 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0x2b380f66; BYTE $0xcc // packusdw xmm1, xmm4 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0x2b380f66; BYTE $0xd3 // packusdw xmm2, xmm3 + LONG $0xd1670f66 // packuswb xmm2, xmm1 + LONG $0x547f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm2 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_413 + JMP LBB3_705 + +LBB3_421: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_712 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_423: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20f9 // movdqu oword [rcx + 8*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30f9 // movdqu oword [rcx + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_423 + JMP LBB3_713 + +LBB3_424: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_720 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x30 // movdqa xmm1, oword 48[rbp] /* [rip + .LCPI3_4] */ + +LBB3_426: + LONG $0x146f0ff3; BYTE $0xfa // movdqu xmm2, oword [rdx + 8*rdi] + LONG $0x5c6f0ff3; WORD $0x10fa // movdqu xmm3, oword [rdx + 8*rdi + 16] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x147f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm2 + LONG $0x5c7f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20fa // movdqu xmm2, oword [rdx + 8*rdi + 32] + LONG $0x5c6f0ff3; WORD $0x30fa // movdqu xmm3, oword [rdx + 8*rdi + 48] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x547f0ff3; WORD $0x20f9 // movdqu oword [rcx + 8*rdi + 32], xmm2 + LONG $0x5c7f0ff3; WORD $0x30f9 // movdqu oword [rcx + 8*rdi + 48], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_426 + JMP LBB3_721 + +LBB3_427: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB3_550 + WORD $0xc031 // xor eax, eax + JMP LBB3_552 + +LBB3_429: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB3_560 + WORD $0xc031 // xor eax, eax + JMP LBB3_562 + +LBB3_438: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_728 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_440: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_440 + JMP LBB3_729 + +LBB3_441: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_736 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_443: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_443 + JMP LBB3_737 + +LBB3_444: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_744 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_446: + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x207a // movdqu xmm0, oword [rdx + 2*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x307a // movdqu xmm1, oword [rdx + 2*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f90f66 // psubw xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f90f66 // psubw xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_446 + JMP LBB3_745 + +LBB3_447: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_752 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x40 // movdqa xmm1, oword 64[rbp] /* [rip + .LCPI3_5] */ + +LBB3_449: + LONG $0x146f0ff3; BYTE $0x7a // movdqu xmm2, oword [rdx + 2*rdi] + LONG $0x5c6f0ff3; WORD $0x107a // movdqu xmm3, oword [rdx + 2*rdi + 16] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x5c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x207a // movdqu xmm2, oword [rdx + 2*rdi + 32] + LONG $0x5c6f0ff3; WORD $0x307a // movdqu xmm3, oword [rdx + 2*rdi + 48] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x547f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_449 + JMP LBB3_753 + +LBB3_450: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_760 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x40 // movdqa xmm4, oword 64[rbp] /* [rip + .LCPI3_5] */ + +LBB3_452: + LONG $0x2c6f0ff3; BYTE $0x7a // movdqu xmm5, oword [rdx + 2*rdi] + LONG $0x746f0ff3; WORD $0x107a // movdqu xmm6, oword [rdx + 2*rdi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x3c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm7 + LONG $0x6c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x207a // movdqu xmm5, oword [rdx + 2*rdi + 32] + LONG $0x746f0ff3; WORD $0x307a // movdqu xmm6, oword [rdx + 2*rdi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7c7f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm7 + LONG $0x6c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_452 + JMP LBB3_761 + +LBB3_453: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB3_570 + WORD $0xc031 // xor eax, eax + JMP LBB3_572 + +LBB3_455: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_769 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + +LBB3_457: + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x23380f66; WORD $0x7a14 // pmovsxwd xmm2, qword [rdx + 2*rdi] + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x0f // psrad xmm4, 15 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xd3fe0f66 // paddd xmm2, xmm3 + LONG $0xd3ef0f66 // pxor xmm2, xmm3 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0x0e3a0f66; WORD $0xaac8 // pblendw xmm1, xmm0, 170 + LONG $0x0e3a0f66; WORD $0xaad0 // pblendw xmm2, xmm0, 170 + LONG $0x2b380f66; BYTE $0xd1 // packusdw xmm2, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x23380f66; WORD $0x7a54; BYTE $0x10 // pmovsxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x0f // psrad xmm4, 15 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xd3fe0f66 // paddd xmm2, xmm3 + LONG $0xd3ef0f66 // pxor xmm2, xmm3 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0x0e3a0f66; WORD $0xaac8 // pblendw xmm1, xmm0, 170 + LONG $0x0e3a0f66; WORD $0xaad0 // pblendw xmm2, xmm0, 170 + LONG $0x2b380f66; BYTE $0xd1 // packusdw xmm2, xmm1 + LONG $0x547f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_457 + JMP LBB3_770 + +LBB3_458: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB3_580 + WORD $0xc031 // xor eax, eax + JMP LBB3_582 + +LBB3_460: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_777 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + +LBB3_462: + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x23380f66; WORD $0x7a14 // pmovsxwd xmm2, qword [rdx + 2*rdi] + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x0f // psrad xmm4, 15 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xd3fe0f66 // paddd xmm2, xmm3 + LONG $0xd3ef0f66 // pxor xmm2, xmm3 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0x0e3a0f66; WORD $0xaac8 // pblendw xmm1, xmm0, 170 + LONG $0x0e3a0f66; WORD $0xaad0 // pblendw xmm2, xmm0, 170 + LONG $0x2b380f66; BYTE $0xd1 // packusdw xmm2, xmm1 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x23380f66; WORD $0x7a54; BYTE $0x10 // pmovsxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x0f // psrad xmm4, 15 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xd3fe0f66 // paddd xmm2, xmm3 + LONG $0xd3ef0f66 // pxor xmm2, xmm3 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0x0e3a0f66; WORD $0xaac8 // pblendw xmm1, xmm0, 170 + LONG $0x0e3a0f66; WORD $0xaad0 // pblendw xmm2, xmm0, 170 + LONG $0x2b380f66; BYTE $0xd1 // packusdw xmm2, xmm1 + LONG $0x547f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_462 + JMP LBB3_778 + +LBB3_463: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_785 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_465: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20f9 // movdqu oword [rcx + 8*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30f9 // movdqu oword [rcx + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_465 + JMP LBB3_786 + +LBB3_466: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_793 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_468: + LONG $0x0c100f66; BYTE $0xba // movupd xmm1, oword [rdx + 4*rdi] + LONG $0x54100f66; WORD $0x10ba // movupd xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm1 + LONG $0x54110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20ba // movupd xmm1, oword [rdx + 4*rdi + 32] + LONG $0x54100f66; WORD $0x30ba // movupd xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20b9 // movupd oword [rcx + 4*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30b9 // movupd oword [rcx + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_468 + JMP LBB3_794 + +LBB3_469: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_803 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_471: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fb0f66 // psubq xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fb0f66 // psubq xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20f9 // movdqu oword [rcx + 8*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30f9 // movdqu oword [rcx + 8*rdi + 48], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_471 + JMP LBB3_804 + +LBB3_472: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_811 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x45280f66; BYTE $0x60 // movapd xmm0, oword 96[rbp] /* [rip + .LCPI3_7] */ + +LBB3_474: + LONG $0x0c100f66; BYTE $0xba // movupd xmm1, oword [rdx + 4*rdi] + LONG $0x54100f66; WORD $0x10ba // movupd xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm1 + LONG $0x54110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20ba // movupd xmm1, oword [rdx + 4*rdi + 32] + LONG $0x54100f66; WORD $0x30ba // movupd xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8570f66 // xorpd xmm1, xmm0 + LONG $0xd0570f66 // xorpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20b9 // movupd oword [rcx + 4*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30b9 // movupd oword [rcx + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_474 + JMP LBB3_812 + +LBB3_475: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_821 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x30 // movdqa xmm4, oword 48[rbp] /* [rip + .LCPI3_4] */ + +LBB3_477: + LONG $0x2c6f0ff3; BYTE $0xfa // movdqu xmm5, oword [rdx + 8*rdi] + LONG $0x746f0ff3; WORD $0x10fa // movdqu xmm6, oword [rdx + 8*rdi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x3c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm7 + LONG $0x6c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20fa // movdqu xmm5, oword [rdx + 8*rdi + 32] + LONG $0x746f0ff3; WORD $0x30fa // movdqu xmm6, oword [rdx + 8*rdi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x7c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm7 + LONG $0x6c110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm5 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_477 + JMP LBB3_822 + +LBB3_478: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf8 // and esi, -8 + WORD $0xff31 // xor edi, edi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x20 // movdqa xmm1, oword 32[rbp] /* [rip + .LCPI3_3] */ + +LBB3_479: + LONG $0x146f0ff3; BYTE $0xba // movdqu xmm2, oword [rdx + 4*rdi] + LONG $0x5c6f0ff3; WORD $0x10ba // movdqu xmm3, oword [rdx + 4*rdi + 16] + LONG $0xe26f0f66 // movdqa xmm4, xmm2 + LONG $0xe4720f66; BYTE $0x1f // psrad xmm4, 31 + LONG $0xe1eb0f66 // por xmm4, xmm1 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xe5720f66; BYTE $0x1f // psrad xmm5, 31 + LONG $0xe9eb0f66 // por xmm5, xmm1 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0x04d0c20f // cmpneqps xmm2, xmm0 + WORD $0x540f; BYTE $0xd4 // andps xmm2, xmm4 + LONG $0x04d8c20f // cmpneqps xmm3, xmm0 + WORD $0x540f; BYTE $0xdd // andps xmm3, xmm5 + LONG $0xb914110f // movups oword [rcx + 4*rdi], xmm2 + LONG $0xb95c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm3 + LONG $0x08c78348 // add rdi, 8 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB3_479 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB3_923 + JMP LBB3_481 + +LBB3_486: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_830 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_488: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcb // blendvpd xmm1, xmm3, xmm0 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcb // blendvpd xmm1, xmm3, xmm0 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_488 + JMP LBB3_831 + +LBB3_489: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_838 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x0000008085280f66 // movapd xmm0, oword 128[rbp] /* [rip + .LCPI3_9] */ + +LBB3_491: + LONG $0x0c100f66; BYTE $0xba // movupd xmm1, oword [rdx + 4*rdi] + LONG $0x54100f66; WORD $0x10ba // movupd xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm1 + LONG $0x54110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20ba // movupd xmm1, oword [rdx + 4*rdi + 32] + LONG $0x54100f66; WORD $0x30ba // movupd xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20b9 // movupd oword [rcx + 4*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30b9 // movupd oword [rcx + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_491 + JMP LBB3_839 + +LBB3_492: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_848 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_494: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcb // blendvpd xmm1, xmm3, xmm0 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd9fb0f66 // psubq xmm3, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcb // blendvpd xmm1, xmm3, xmm0 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x4c110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_494 + JMP LBB3_849 + +LBB3_495: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_856 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x0000008085280f66 // movapd xmm0, oword 128[rbp] /* [rip + .LCPI3_9] */ + +LBB3_497: + LONG $0x0c100f66; BYTE $0xba // movupd xmm1, oword [rdx + 4*rdi] + LONG $0x54100f66; WORD $0x10ba // movupd xmm2, oword [rdx + 4*rdi + 16] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x0c110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm1 + LONG $0x54110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm2 + LONG $0x4c100f66; WORD $0x20ba // movupd xmm1, oword [rdx + 4*rdi + 32] + LONG $0x54100f66; WORD $0x30ba // movupd xmm2, oword [rdx + 4*rdi + 48] + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0xd0540f66 // andpd xmm2, xmm0 + LONG $0x4c110f66; WORD $0x20b9 // movupd oword [rcx + 4*rdi + 32], xmm1 + LONG $0x54110f66; WORD $0x30b9 // movupd oword [rcx + 4*rdi + 48], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_497 + JMP LBB3_857 + +LBB3_505: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_866 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_507: + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x447f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x203a // movdqu xmm0, oword [rdx + rdi + 32] + LONG $0x4c6f0ff3; WORD $0x303a // movdqu xmm1, oword [rdx + rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0f80f66 // psubb xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1f80f66 // psubb xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x2039 // movdqu oword [rcx + rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x3039 // movdqu oword [rcx + rdi + 48], xmm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_507 + JMP LBB3_867 + +LBB3_508: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_874 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI3_6] */ + +LBB3_510: + LONG $0x146f0ff3; BYTE $0x3a // movdqu xmm2, oword [rdx + rdi] + LONG $0x5c6f0ff3; WORD $0x103a // movdqu xmm3, oword [rdx + rdi + 16] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x5c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x203a // movdqu xmm2, oword [rdx + rdi + 32] + LONG $0x5c6f0ff3; WORD $0x303a // movdqu xmm3, oword [rdx + rdi + 48] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x547f0ff3; WORD $0x2039 // movdqu oword [rcx + rdi + 32], xmm2 + LONG $0x5c7f0ff3; WORD $0x3039 // movdqu oword [rcx + rdi + 48], xmm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_510 + JMP LBB3_875 + +LBB3_511: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB3_590 + WORD $0xc031 // xor eax, eax + JMP LBB3_592 + +LBB3_513: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB3_600 + WORD $0xc031 // xor eax, eax + JMP LBB3_602 + +LBB3_515: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_882 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_517: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_517 + JMP LBB3_883 + +LBB3_518: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_890 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_520: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x147f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm2 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd0fa0f66 // psubd xmm2, xmm0 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc1fa0f66 // psubd xmm0, xmm1 + LONG $0x547f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm2 + LONG $0x447f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_520 + JMP LBB3_891 + +LBB3_521: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_898 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x20 // movdqa xmm4, oword 32[rbp] /* [rip + .LCPI3_3] */ + +LBB3_523: + LONG $0x2c6f0ff3; BYTE $0xba // movdqu xmm5, oword [rdx + 4*rdi] + LONG $0x746f0ff3; WORD $0x10ba // movdqu xmm6, oword [rdx + 4*rdi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0xb93c110f // movups oword [rcx + 4*rdi], xmm7 + LONG $0xb96c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20ba // movdqu xmm5, oword [rdx + 4*rdi + 32] + LONG $0x746f0ff3; WORD $0x30ba // movdqu xmm6, oword [rdx + 4*rdi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0xb97c110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm7 + LONG $0xb96c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm5 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_523 + JMP LBB3_899 + +LBB3_524: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_907 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_526: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_526 + JMP LBB3_908 + +LBB3_527: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB3_915 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB3_529: + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x446f0ff3; WORD $0x20ba // movdqu xmm0, oword [rdx + 4*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30ba // movdqu xmm1, oword [rdx + 4*rdi + 48] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB3_529 + JMP LBB3_916 + +LBB3_367: + LONG $0xf8e78348 // and rdi, -8 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_368: + LONG $0x04110f66; BYTE $0x81 // movupd oword [rcx + 4*rax], xmm0 + LONG $0x44110f66; WORD $0x1081 // movupd oword [rcx + 4*rax + 16], xmm0 + LONG $0x44110f66; WORD $0x2081 // movupd oword [rcx + 4*rax + 32], xmm0 + LONG $0x44110f66; WORD $0x3081 // movupd oword [rcx + 4*rax + 48], xmm0 + LONG $0x44110f66; WORD $0x4081 // movupd oword [rcx + 4*rax + 64], xmm0 + LONG $0x44110f66; WORD $0x5081 // movupd oword [rcx + 4*rax + 80], xmm0 + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x44110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm0 + QUAD $0x0000808184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 128], xmm0 + QUAD $0x0000908184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 144], xmm0 + QUAD $0x0000a08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 160], xmm0 + QUAD $0x0000b08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 176], xmm0 + QUAD $0x0000c08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 192], xmm0 + QUAD $0x0000d08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 208], xmm0 + QUAD $0x0000e08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 224], xmm0 + QUAD $0x0000f08184110f66; BYTE $0x00 // movupd oword [rcx + 4*rax + 240], xmm0 + LONG $0x40c08348 // add rax, 64 + LONG $0x08c78348 // add rdi, 8 + JNE LBB3_368 + +LBB3_369: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_372 + LONG $0x81048d48 // lea rax, [rcx + 4*rax] + LONG $0x10c08348 // add rax, 16 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_371: + LONG $0x40110f66; BYTE $0xf0 // movupd oword [rax - 16], xmm0 + LONG $0x00110f66 // movupd oword [rax], xmm0 + LONG $0x20c08348 // add rax, 32 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_371 + +LBB3_372: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_923 + +LBB3_373: + LONG $0x009104c7; WORD $0x0000; BYTE $0x00 // mov dword [rcx + 4*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_373 + JMP LBB3_923 + +LBB3_414: + LONG $0xf8e78348 // and rdi, -8 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_415: + LONG $0x04110f66; BYTE $0xc1 // movupd oword [rcx + 8*rax], xmm0 + LONG $0x44110f66; WORD $0x10c1 // movupd oword [rcx + 8*rax + 16], xmm0 + LONG $0x44110f66; WORD $0x20c1 // movupd oword [rcx + 8*rax + 32], xmm0 + LONG $0x44110f66; WORD $0x30c1 // movupd oword [rcx + 8*rax + 48], xmm0 + LONG $0x44110f66; WORD $0x40c1 // movupd oword [rcx + 8*rax + 64], xmm0 + LONG $0x44110f66; WORD $0x50c1 // movupd oword [rcx + 8*rax + 80], xmm0 + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x44110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm0 + QUAD $0x000080c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 128], xmm0 + QUAD $0x000090c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 144], xmm0 + QUAD $0x0000a0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 160], xmm0 + QUAD $0x0000b0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 176], xmm0 + QUAD $0x0000c0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 192], xmm0 + QUAD $0x0000d0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 208], xmm0 + QUAD $0x0000e0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 224], xmm0 + QUAD $0x0000f0c184110f66; BYTE $0x00 // movupd oword [rcx + 8*rax + 240], xmm0 + LONG $0x20c08348 // add rax, 32 + LONG $0x08c78348 // add rdi, 8 + JNE LBB3_415 + +LBB3_416: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_419 + LONG $0xc1048d48 // lea rax, [rcx + 8*rax] + LONG $0x10c08348 // add rax, 16 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_418: + LONG $0x40110f66; BYTE $0xf0 // movupd oword [rax - 16], xmm0 + LONG $0x00110f66 // movupd oword [rax], xmm0 + LONG $0x20c08348 // add rax, 32 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_418 + +LBB3_419: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_923 + +LBB3_420: + QUAD $0x00000000d104c748 // mov qword [rcx + 8*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_420 + JMP LBB3_923 + +LBB3_431: + LONG $0xf8e78348 // and rdi, -8 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_432: + LONG $0x04110f66; BYTE $0x41 // movupd oword [rcx + 2*rax], xmm0 + LONG $0x44110f66; WORD $0x1041 // movupd oword [rcx + 2*rax + 16], xmm0 + LONG $0x44110f66; WORD $0x2041 // movupd oword [rcx + 2*rax + 32], xmm0 + LONG $0x44110f66; WORD $0x3041 // movupd oword [rcx + 2*rax + 48], xmm0 + LONG $0x44110f66; WORD $0x4041 // movupd oword [rcx + 2*rax + 64], xmm0 + LONG $0x44110f66; WORD $0x5041 // movupd oword [rcx + 2*rax + 80], xmm0 + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x44110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm0 + QUAD $0x0000804184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 128], xmm0 + QUAD $0x0000904184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 144], xmm0 + QUAD $0x0000a04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 160], xmm0 + QUAD $0x0000b04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 176], xmm0 + QUAD $0x0000c04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 192], xmm0 + QUAD $0x0000d04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 208], xmm0 + QUAD $0x0000e04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 224], xmm0 + QUAD $0x0000f04184110f66; BYTE $0x00 // movupd oword [rcx + 2*rax + 240], xmm0 + LONG $0x80e88348 // sub rax, -128 + LONG $0x08c78348 // add rdi, 8 + JNE LBB3_432 + +LBB3_433: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_436 + LONG $0x41048d48 // lea rax, [rcx + 2*rax] + LONG $0x10c08348 // add rax, 16 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_435: + LONG $0x40110f66; BYTE $0xf0 // movupd oword [rax - 16], xmm0 + LONG $0x00110f66 // movupd oword [rax], xmm0 + LONG $0x20c08348 // add rax, 32 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_435 + +LBB3_436: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_923 + +LBB3_437: + LONG $0x5104c766; WORD $0x0000 // mov word [rcx + 2*rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_437 + JMP LBB3_923 + +LBB3_498: + LONG $0xf8e78348 // and rdi, -8 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_499: + LONG $0x04110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm0 + LONG $0x44110f66; WORD $0x1001 // movupd oword [rcx + rax + 16], xmm0 + LONG $0x44110f66; WORD $0x2001 // movupd oword [rcx + rax + 32], xmm0 + LONG $0x44110f66; WORD $0x3001 // movupd oword [rcx + rax + 48], xmm0 + LONG $0x44110f66; WORD $0x4001 // movupd oword [rcx + rax + 64], xmm0 + LONG $0x44110f66; WORD $0x5001 // movupd oword [rcx + rax + 80], xmm0 + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x44110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm0 + QUAD $0x0000800184110f66; BYTE $0x00 // movupd oword [rcx + rax + 128], xmm0 + QUAD $0x0000900184110f66; BYTE $0x00 // movupd oword [rcx + rax + 144], xmm0 + QUAD $0x0000a00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 160], xmm0 + QUAD $0x0000b00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 176], xmm0 + QUAD $0x0000c00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 192], xmm0 + QUAD $0x0000d00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 208], xmm0 + QUAD $0x0000e00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 224], xmm0 + QUAD $0x0000f00184110f66; BYTE $0x00 // movupd oword [rcx + rax + 240], xmm0 + LONG $0x01000548; WORD $0x0000 // add rax, 256 + LONG $0x08c78348 // add rdi, 8 + JNE LBB3_499 + +LBB3_500: + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB3_503 + WORD $0x0148; BYTE $0xc8 // add rax, rcx + LONG $0x10c08348 // add rax, 16 + WORD $0xf748; BYTE $0xde // neg rsi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + +LBB3_502: + LONG $0x40110f66; BYTE $0xf0 // movupd oword [rax - 16], xmm0 + LONG $0x00110f66 // movupd oword [rax], xmm0 + LONG $0x20c08348 // add rax, 32 + WORD $0xff48; BYTE $0xc6 // inc rsi + JNE LBB3_502 + +LBB3_503: + WORD $0x394c; BYTE $0xca // cmp rdx, r9 + JE LBB3_923 + +LBB3_504: + LONG $0x001104c6 // mov byte [rcx + rdx], 0 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd1 // cmp r9, rdx + JNE LBB3_504 + +LBB3_923: + RET + +LBB3_530: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_531: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_531 + +LBB3_532: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_535 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_534: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_534 + +LBB3_535: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_536 + +LBB3_540: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_541: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_541 + +LBB3_542: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_545 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_544: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_544 + +LBB3_545: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_546 + +LBB3_550: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_551: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_551 + +LBB3_552: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_555 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_554: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_554 + +LBB3_555: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_556 + +LBB3_560: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_561: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_561 + +LBB3_562: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_565 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_564: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_564 + +LBB3_565: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_566 + +LBB3_570: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_571: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_571 + +LBB3_572: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_575 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_574: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_574 + +LBB3_575: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_576 + +LBB3_580: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_581: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_581 + +LBB3_582: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_585 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_584: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_584 + +LBB3_585: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_586 + +LBB3_590: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_591: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_591 + +LBB3_592: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_595 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_594: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_594 + +LBB3_595: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_596 + +LBB3_600: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB3_601: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB3_601 + +LBB3_602: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB3_605 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB3_604: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB3_604 + +LBB3_605: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_606 + +LBB3_610: + WORD $0xff31 // xor edi, edi + +LBB3_611: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_613 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fa0f66 // psubd xmm3, xmm0 + LONG $0xd1fa0f66 // psubd xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm2 + +LBB3_613: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_614 + +LBB3_618: + WORD $0xff31 // xor edi, edi + +LBB3_619: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_621 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x20 // movdqa xmm3, oword 32[rbp] /* [rip + .LCPI3_3] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB3_621: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_622 + +LBB3_626: + WORD $0xff31 // xor edi, edi + +LBB3_627: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_629 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x55280f66; BYTE $0x00 // movapd xmm2, oword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0xc2570f66 // xorpd xmm0, xmm2 + LONG $0xca570f66 // xorpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB3_629: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_630 + +LBB3_636: + WORD $0xff31 // xor edi, edi + +LBB3_637: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_639 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x55280f66; BYTE $0x00 // movapd xmm2, oword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0xc2570f66 // xorpd xmm0, xmm2 + LONG $0xca570f66 // xorpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB3_639: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_640 + +LBB3_646: + WORD $0xff31 // xor edi, edi + +LBB3_647: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_649 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI3_0] */ + LONG $0xe0280f66 // movapd xmm4, xmm0 + LONG $0xe3540f66 // andpd xmm4, xmm3 + LONG $0x6d280f66; BYTE $0x10 // movapd xmm5, oword 16[rbp] /* [rip + .LCPI3_1] */ + LONG $0xe5560f66 // orpd xmm4, xmm5 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xdd560f66 // orpd xmm3, xmm5 + LONG $0xc2c20f66; BYTE $0x04 // cmpneqpd xmm0, xmm2 + LONG $0xc4540f66 // andpd xmm0, xmm4 + LONG $0xcac20f66; BYTE $0x04 // cmpneqpd xmm1, xmm2 + LONG $0xcb540f66 // andpd xmm1, xmm3 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB3_649: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_650 + +LBB3_655: + WORD $0xff31 // xor edi, edi + +LBB3_656: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_658 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x55280f66; BYTE $0x70 // movapd xmm2, oword 112[rbp] /* [rip + .LCPI3_8] */ + LONG $0xc2540f66 // andpd xmm0, xmm2 + LONG $0xca540f66 // andpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB3_658: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_659 + +LBB3_663: + WORD $0xff31 // xor edi, edi + +LBB3_664: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_666 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x55280f66; BYTE $0x70 // movapd xmm2, oword 112[rbp] /* [rip + .LCPI3_8] */ + LONG $0xc2540f66 // andpd xmm0, xmm2 + LONG $0xca540f66 // andpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB3_666: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_667 + +LBB3_671: + WORD $0xff31 // xor edi, edi + +LBB3_672: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_674 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm2 + +LBB3_674: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_675 + +LBB3_679: + WORD $0xff31 // xor edi, edi + +LBB3_680: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_682 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm2 + +LBB3_682: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_683 + +LBB3_687: + WORD $0xff31 // xor edi, edi + +LBB3_688: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_690 + LONG $0x0c6f0ff3; BYTE $0x3a // movdqu xmm1, oword [rdx + rdi] + LONG $0x546f0ff3; WORD $0x103a // movdqu xmm2, oword [rdx + rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI3_6] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1640f66 // pcmpgtb xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb740f66 // pcmpeqb xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda740f66 // pcmpeqb xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x147f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm2 + LONG $0x647f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm4 + +LBB3_690: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_691 + +LBB3_696: + WORD $0xff31 // xor edi, edi + +LBB3_697: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_699 + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x0c // pmovsxbd xmm3, dword [rdx + rdi + 12] + LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd xmm0, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a54; BYTE $0x04 // pmovsxbd xmm2, dword [rdx + rdi + 4] + LONG $0x21380f66; WORD $0x3a0c // pmovsxbd xmm1, dword [rdx + rdi] + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x07 // psrad xmm4, 7 + LONG $0xea6f0f66 // movdqa xmm5, xmm2 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xfb6f0f66 // movdqa xmm7, xmm3 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xdffe0f66 // paddd xmm3, xmm7 + LONG $0xc6fe0f66 // paddd xmm0, xmm6 + LONG $0xd5fe0f66 // paddd xmm2, xmm5 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xc6ef0f66 // pxor xmm0, xmm6 + LONG $0xdfef0f66 // pxor xmm3, xmm7 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI3_10] */ + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x2b380f66; BYTE $0xc3 // packusdw xmm0, xmm3 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x2b380f66; BYTE $0xca // packusdw xmm1, xmm2 + LONG $0xc8670f66 // packuswb xmm1, xmm0 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + +LBB3_699: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_700 + +LBB3_704: + WORD $0xff31 // xor edi, edi + +LBB3_705: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_707 + LONG $0x21380f66; WORD $0x3a5c; BYTE $0x0c // pmovsxbd xmm3, dword [rdx + rdi + 12] + LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd xmm0, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a54; BYTE $0x04 // pmovsxbd xmm2, dword [rdx + rdi + 4] + LONG $0x21380f66; WORD $0x3a0c // pmovsxbd xmm1, dword [rdx + rdi] + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe4720f66; BYTE $0x07 // psrad xmm4, 7 + LONG $0xea6f0f66 // movdqa xmm5, xmm2 + LONG $0xe5720f66; BYTE $0x07 // psrad xmm5, 7 + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0xe6720f66; BYTE $0x07 // psrad xmm6, 7 + LONG $0xfb6f0f66 // movdqa xmm7, xmm3 + LONG $0xe7720f66; BYTE $0x07 // psrad xmm7, 7 + LONG $0xdffe0f66 // paddd xmm3, xmm7 + LONG $0xc6fe0f66 // paddd xmm0, xmm6 + LONG $0xd5fe0f66 // paddd xmm2, xmm5 + LONG $0xccfe0f66 // paddd xmm1, xmm4 + LONG $0xccef0f66 // pxor xmm1, xmm4 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xc6ef0f66 // pxor xmm0, xmm6 + LONG $0xdfef0f66 // pxor xmm3, xmm7 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI3_10] */ + LONG $0xdcdb0f66 // pand xmm3, xmm4 + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x2b380f66; BYTE $0xc3 // packusdw xmm0, xmm3 + LONG $0xd4db0f66 // pand xmm2, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x2b380f66; BYTE $0xca // packusdw xmm1, xmm2 + LONG $0xc8670f66 // packuswb xmm1, xmm0 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + +LBB3_707: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_708 + +LBB3_712: + WORD $0xff31 // xor edi, edi + +LBB3_713: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_715 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fb0f66 // psubq xmm3, xmm0 + LONG $0xd1fb0f66 // psubq xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm2 + +LBB3_715: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_716 + +LBB3_720: + WORD $0xff31 // xor edi, edi + +LBB3_721: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_723 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x30 // movdqa xmm3, oword 48[rbp] /* [rip + .LCPI3_4] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x047f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm1 + +LBB3_723: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_724 + +LBB3_728: + WORD $0xff31 // xor edi, edi + +LBB3_729: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_731 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f90f66 // psubw xmm3, xmm0 + LONG $0xd1f90f66 // psubw xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm2 + +LBB3_731: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_732 + +LBB3_736: + WORD $0xff31 // xor edi, edi + +LBB3_737: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_739 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f90f66 // psubw xmm3, xmm0 + LONG $0xd1f90f66 // psubw xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm2 + +LBB3_739: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_740 + +LBB3_744: + WORD $0xff31 // xor edi, edi + +LBB3_745: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_747 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f90f66 // psubw xmm3, xmm0 + LONG $0xd1f90f66 // psubw xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm2 + +LBB3_747: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_748 + +LBB3_752: + WORD $0xff31 // xor edi, edi + +LBB3_753: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_755 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x40 // movdqa xmm3, oword 64[rbp] /* [rip + .LCPI3_5] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + +LBB3_755: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_756 + +LBB3_760: + WORD $0xff31 // xor edi, edi + +LBB3_761: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_763 + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x40 // movdqa xmm4, oword 64[rbp] /* [rip + .LCPI3_5] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1650f66 // pcmpgtw xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb750f66 // pcmpeqw xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda750f66 // pcmpeqw xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x147f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm2 + LONG $0x647f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm4 + +LBB3_763: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_764 + +LBB3_769: + WORD $0xff31 // xor edi, edi + +LBB3_770: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_772 + LONG $0x23380f66; WORD $0x7a44; BYTE $0x08 // pmovsxwd xmm0, qword [rdx + 2*rdi + 8] + LONG $0x23380f66; WORD $0x7a0c // pmovsxwd xmm1, qword [rdx + 2*rdi] + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xe2720f66; BYTE $0x0f // psrad xmm2, 15 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xc3fe0f66 // paddd xmm0, xmm3 + LONG $0xcafe0f66 // paddd xmm1, xmm2 + LONG $0xcaef0f66 // pxor xmm1, xmm2 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x0e3a0f66; WORD $0xaac2 // pblendw xmm0, xmm2, 170 + LONG $0x0e3a0f66; WORD $0xaaca // pblendw xmm1, xmm2, 170 + LONG $0x2b380f66; BYTE $0xc8 // packusdw xmm1, xmm0 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + +LBB3_772: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_773 + +LBB3_777: + WORD $0xff31 // xor edi, edi + +LBB3_778: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_780 + LONG $0x23380f66; WORD $0x7a44; BYTE $0x08 // pmovsxwd xmm0, qword [rdx + 2*rdi + 8] + LONG $0x23380f66; WORD $0x7a0c // pmovsxwd xmm1, qword [rdx + 2*rdi] + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xe2720f66; BYTE $0x0f // psrad xmm2, 15 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xe3720f66; BYTE $0x0f // psrad xmm3, 15 + LONG $0xc3fe0f66 // paddd xmm0, xmm3 + LONG $0xcafe0f66 // paddd xmm1, xmm2 + LONG $0xcaef0f66 // pxor xmm1, xmm2 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x0e3a0f66; WORD $0xaac2 // pblendw xmm0, xmm2, 170 + LONG $0x0e3a0f66; WORD $0xaaca // pblendw xmm1, xmm2, 170 + LONG $0x2b380f66; BYTE $0xc8 // packusdw xmm1, xmm0 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + +LBB3_780: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_781 + +LBB3_785: + WORD $0xff31 // xor edi, edi + +LBB3_786: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_788 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fb0f66 // psubq xmm3, xmm0 + LONG $0xd1fb0f66 // psubq xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm2 + +LBB3_788: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_789 + +LBB3_793: + WORD $0xff31 // xor edi, edi + +LBB3_794: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_796 + LONG $0x04100f66; BYTE $0xba // movupd xmm0, oword [rdx + 4*rdi] + LONG $0x4c100f66; WORD $0x10ba // movupd xmm1, oword [rdx + 4*rdi + 16] + LONG $0x55280f66; BYTE $0x60 // movapd xmm2, oword 96[rbp] /* [rip + .LCPI3_7] */ + LONG $0xc2570f66 // xorpd xmm0, xmm2 + LONG $0xca570f66 // xorpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm1 + +LBB3_796: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_797 + +LBB3_803: + WORD $0xff31 // xor edi, edi + +LBB3_804: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_806 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fb0f66 // psubq xmm3, xmm0 + LONG $0xd1fb0f66 // psubq xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xf9 // movdqu oword [rcx + 8*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10f9 // movdqu oword [rcx + 8*rdi + 16], xmm2 + +LBB3_806: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_807 + +LBB3_811: + WORD $0xff31 // xor edi, edi + +LBB3_812: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_814 + LONG $0x04100f66; BYTE $0xba // movupd xmm0, oword [rdx + 4*rdi] + LONG $0x4c100f66; WORD $0x10ba // movupd xmm1, oword [rdx + 4*rdi + 16] + LONG $0x55280f66; BYTE $0x60 // movapd xmm2, oword 96[rbp] /* [rip + .LCPI3_7] */ + LONG $0xc2570f66 // xorpd xmm0, xmm2 + LONG $0xca570f66 // xorpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm1 + +LBB3_814: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_815 + +LBB3_821: + WORD $0xff31 // xor edi, edi + +LBB3_822: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_824 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x30 // movdqa xmm4, oword 48[rbp] /* [rip + .LCPI3_4] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc1 // pcmpgtq xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0x29380f66; BYTE $0xeb // pcmpeqq xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0x29380f66; BYTE $0xda // pcmpeqq xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x15380f66; BYTE $0xd5 // blendvpd xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xe3 // blendvpd xmm4, xmm3, xmm0 + LONG $0x14110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm2 + LONG $0x64110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm4 + +LBB3_824: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_825 + +LBB3_830: + WORD $0xff31 // xor edi, edi + +LBB3_831: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_833 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xe1fb0f66 // psubq xmm4, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcc // blendvpd xmm1, xmm4, xmm0 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + +LBB3_833: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_834 + +LBB3_838: + WORD $0xff31 // xor edi, edi + +LBB3_839: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_841 + LONG $0x04100f66; BYTE $0xba // movupd xmm0, oword [rdx + 4*rdi] + LONG $0x4c100f66; WORD $0x10ba // movupd xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x0000008095280f66 // movapd xmm2, oword 128[rbp] /* [rip + .LCPI3_9] */ + LONG $0xc2540f66 // andpd xmm0, xmm2 + LONG $0xca540f66 // andpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm1 + +LBB3_841: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_842 + +LBB3_848: + WORD $0xff31 // xor edi, edi + +LBB3_849: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_851 + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xe1fb0f66 // psubq xmm4, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcc // blendvpd xmm1, xmm4, xmm0 + LONG $0xdafb0f66 // psubq xmm3, xmm2 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x15380f66; BYTE $0xd3 // blendvpd xmm2, xmm3, xmm0 + LONG $0x0c110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm1 + LONG $0x54110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm2 + +LBB3_851: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_852 + +LBB3_856: + WORD $0xff31 // xor edi, edi + +LBB3_857: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_859 + LONG $0x04100f66; BYTE $0xba // movupd xmm0, oword [rdx + 4*rdi] + LONG $0x4c100f66; WORD $0x10ba // movupd xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x0000008095280f66 // movapd xmm2, oword 128[rbp] /* [rip + .LCPI3_9] */ + LONG $0xc2540f66 // andpd xmm0, xmm2 + LONG $0xca540f66 // andpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm1 + +LBB3_859: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_860 + +LBB3_866: + WORD $0xff31 // xor edi, edi + +LBB3_867: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_869 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm3 + LONG $0x547f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm2 + +LBB3_869: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_870 + +LBB3_874: + WORD $0xff31 // xor edi, edi + +LBB3_875: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_877 + LONG $0x046f0ff3; BYTE $0x3a // movdqu xmm0, oword [rdx + rdi] + LONG $0x4c6f0ff3; WORD $0x103a // movdqu xmm1, oword [rdx + rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI3_6] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x047f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm1 + +LBB3_877: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_878 + +LBB3_882: + WORD $0xff31 // xor edi, edi + +LBB3_883: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_885 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fa0f66 // psubd xmm3, xmm0 + LONG $0xd1fa0f66 // psubd xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm2 + +LBB3_885: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_886 + +LBB3_890: + WORD $0xff31 // xor edi, edi + +LBB3_891: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_893 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0xd8fa0f66 // psubd xmm3, xmm0 + LONG $0xd1fa0f66 // psubd xmm2, xmm1 + LONG $0x1c7f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm3 + LONG $0x547f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm2 + +LBB3_893: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_894 + +LBB3_898: + WORD $0xff31 // xor edi, edi + +LBB3_899: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_901 + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x20 // movdqa xmm4, oword 32[rbp] /* [rip + .LCPI3_3] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1660f66 // pcmpgtd xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb760f66 // pcmpeqd xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda760f66 // pcmpeqd xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x14380f66; BYTE $0xd5 // blendvps xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xe3 // blendvps xmm4, xmm3, xmm0 + LONG $0xb914110f // movups oword [rcx + 4*rdi], xmm2 + LONG $0xb964110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm4 + +LBB3_901: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_902 + +LBB3_907: + WORD $0xff31 // xor edi, edi + +LBB3_908: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_910 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB3_910: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_911 + +LBB3_915: + WORD $0xff31 // xor edi, edi + +LBB3_916: + LONG $0x01c0f641 // test r8b, 1 + JE LBB3_918 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + LONG $0x1e380f66; BYTE $0xc0 // pabsd xmm0, xmm0 + LONG $0x1e380f66; BYTE $0xc9 // pabsd xmm1, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB3_918: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB3_923 + JMP LBB3_919 + +DATA LCDATA5<>+0x000(SB)/8, $0x8000000000000000 +DATA LCDATA5<>+0x008(SB)/8, $0x8000000000000000 +DATA LCDATA5<>+0x010(SB)/8, $0x3ff0000000000000 +DATA LCDATA5<>+0x018(SB)/8, $0x3ff0000000000000 +DATA LCDATA5<>+0x020(SB)/8, $0x7fffffff7fffffff +DATA LCDATA5<>+0x028(SB)/8, $0x7fffffff7fffffff +DATA LCDATA5<>+0x030(SB)/8, $0x8000000080000000 +DATA LCDATA5<>+0x038(SB)/8, $0x8000000080000000 +DATA LCDATA5<>+0x040(SB)/8, $0x0000000000000400 +DATA LCDATA5<>+0x048(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x050(SB)/8, $0x0000000100000001 +DATA LCDATA5<>+0x058(SB)/8, $0x0000000100000001 +DATA LCDATA5<>+0x060(SB)/8, $0x4f0000004f000000 +DATA LCDATA5<>+0x068(SB)/8, $0x4f0000004f000000 +DATA LCDATA5<>+0x070(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x078(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x080(SB)/8, $0x0000000001010101 +DATA LCDATA5<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x090(SB)/8, $0x0000000000000001 +DATA LCDATA5<>+0x098(SB)/8, $0x0000000000000001 +DATA LCDATA5<>+0x0a0(SB)/8, $0x0000000100000001 +DATA LCDATA5<>+0x0a8(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0b0(SB)/8, $0x0000000000010001 +DATA LCDATA5<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0c0(SB)/8, $0x0000000000000101 +DATA LCDATA5<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0d0(SB)/8, $0x3f8000003f800000 +DATA LCDATA5<>+0x0d8(SB)/8, $0x3f8000003f800000 +DATA LCDATA5<>+0x0e0(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0e8(SB)/8, $0x0001000100010001 +DATA LCDATA5<>+0x0f0(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0f8(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x100(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x108(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x110(SB)/8, $0x3ff0000000000000 +DATA LCDATA5<>+0x118(SB)/8, $0x43e0000000000000 +DATA LCDATA5<>+0x120(SB)/8, $0xbff0000000000000 +DATA LCDATA5<>+0x128(SB)/8, $0x5f0000003f800000 +DATA LCDATA5<>+0x130(SB)/8, $0x00000000bf800000 +GLOBL LCDATA5<>(SB), 8, $312 + +TEXT ·_arithmetic_unary_diff_type_sse4(SB), $0-48 + + MOVQ itype+0(FP), DI + MOVQ otype+8(FP), SI + MOVQ op+16(FP), DX + MOVQ input+24(FP), CX + MOVQ output+32(FP), R8 + MOVQ len+40(FP), R9 + LEAQ LCDATA5<>(SB), BP + + WORD $0xfa80; BYTE $0x14 // cmp dl, 20 + JNE LBB4_1655 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB4_14 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB4_26 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB4_46 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB4_54 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB4_1655 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_94 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_200 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_303 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_306 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_13 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_496 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_496 + +LBB4_13: + WORD $0xd231 // xor edx, edx + +LBB4_1232: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1234 + +LBB4_1233: + WORD $0xc031 // xor eax, eax + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1233 + +LBB4_1234: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1235: + WORD $0xc031 // xor eax, eax + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + WORD $0xc031 // xor eax, eax + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], eax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1235 + JMP LBB4_1655 + +LBB4_14: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB4_36 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB4_62 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB4_70 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB4_1655 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_106 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_205 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_309 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_312 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_499 + WORD $0xf631 // xor esi, esi + JMP LBB4_1110 + +LBB4_26: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB4_78 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB4_1655 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_113 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_210 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_315 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_318 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_35 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_504 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_504 + +LBB4_35: + WORD $0xd231 // xor edx, edx + +LBB4_1240: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1242 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + WORD $0x4e0f; BYTE $0xc7 // cmovle eax, edi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1242: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1244: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1244 + JMP LBB4_1655 + +LBB4_36: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB4_86 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB4_1655 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_123 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_215 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_321 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_324 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_507 + WORD $0xd231 // xor edx, edx + JMP LBB4_998 + +LBB4_46: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_135 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_220 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_327 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_330 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_510 + WORD $0xd231 // xor edx, edx + JMP LBB4_1116 + +LBB4_54: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_147 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_225 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_333 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_336 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_513 + WORD $0xd231 // xor edx, edx + JMP LBB4_1121 + +LBB4_62: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_157 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_230 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_339 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_342 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_516 + WORD $0xd231 // xor edx, edx + JMP LBB4_1127 + +LBB4_70: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_167 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_235 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_345 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_348 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_519 + WORD $0xd231 // xor edx, edx + JMP LBB4_1133 + +LBB4_78: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_178 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_240 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_351 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_354 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_85 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_524 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_524 + +LBB4_85: + WORD $0xd231 // xor edx, edx + +LBB4_1249: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1251 + +LBB4_1250: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1250 + +LBB4_1251: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1252: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], eax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1252 + JMP LBB4_1655 + +LBB4_86: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB4_190 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB4_245 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB4_357 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB4_360 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_93 + LONG $0x99148d4a // lea rdx, [rcx + 4*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_529 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_529 + +LBB4_93: + WORD $0xd231 // xor edx, edx + +LBB4_1257: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1259 + LONG $0x910c8b44 // mov r9d, dword [rcx + 4*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1259: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1261: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x0491448b // mov eax, dword [rcx + 4*rdx + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1261 + JMP LBB4_1655 + +LBB4_94: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_250 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_363 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_366 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0xff728d48 // lea rsi, [rdx - 1] + WORD $0xd089 // mov eax, edx + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03fe8348 // cmp rsi, 3 + JAE LBB4_532 + WORD $0xf631 // xor esi, esi + +LBB4_101: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1655 + LONG $0xf0148d49 // lea rdx, [r8 + 8*rsi] + LONG $0xb10c8d48 // lea rcx, [rcx + 4*rsi] + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_104 + +LBB4_103: + LONG $0x0c110ff2; BYTE $0xf2 // movsd qword [rdx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JE LBB4_1655 + +LBB4_104: + LONG $0x00b13c83 // cmp dword [rcx + 4*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_103 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_103 + +LBB4_106: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_255 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_369 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_372 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_112 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_544 + LONG $0xc0148d49 // lea rdx, [r8 + 8*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_544 + +LBB4_112: + WORD $0xd231 // xor edx, edx + +LBB4_1266: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1268 + LONG $0x04100ff2; BYTE $0xd1 // movsd xmm0, qword [rcx + 8*rdx] + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xc8540f66 // andpd xmm1, xmm0 + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + LONG $0xd1560f66 // orpd xmm2, xmm1 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0xc8c20ff2; BYTE $0x00 // cmpeqsd xmm1, xmm0 + LONG $0xca550f66 // andnpd xmm1, xmm2 + LONG $0x130f4166; WORD $0xd00c // movlpd qword [r8 + 8*rdx], xmm1 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1268: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1655 + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + LONG $0xd2570f66 // xorpd xmm2, xmm2 + +LBB4_1270: + LONG $0x1c100ff2; BYTE $0xd1 // movsd xmm3, qword [rcx + 8*rdx] + LONG $0xe3280f66 // movapd xmm4, xmm3 + LONG $0xe0540f66 // andpd xmm4, xmm0 + LONG $0xe1560f66 // orpd xmm4, xmm1 + LONG $0xdac20ff2; BYTE $0x00 // cmpeqsd xmm3, xmm2 + LONG $0xdc550f66 // andnpd xmm3, xmm4 + LONG $0x130f4166; WORD $0xd01c // movlpd qword [r8 + 8*rdx], xmm3 + LONG $0x5c100ff2; WORD $0x08d1 // movsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xe3280f66 // movapd xmm4, xmm3 + LONG $0xe0540f66 // andpd xmm4, xmm0 + LONG $0xe1560f66 // orpd xmm4, xmm1 + LONG $0xdac20ff2; BYTE $0x00 // cmpeqsd xmm3, xmm2 + LONG $0xdc550f66 // andnpd xmm3, xmm4 + LONG $0x130f4166; WORD $0xd05c; BYTE $0x08 // movlpd qword [r8 + 8*rdx + 8], xmm3 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1270 + JMP LBB4_1655 + +LBB4_113: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_260 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_375 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_378 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_547 + WORD $0xc031 // xor eax, eax + +LBB4_120: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0x00013c80 // cmp byte [rcx + rax], 0 + JNE LBB4_982 + +LBB4_122: + LONG $0xc0570f66 // xorpd xmm0, xmm0 + JMP LBB4_983 + +LBB4_123: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_265 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_381 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_384 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0xff728d48 // lea rsi, [rdx - 1] + WORD $0xd089 // mov eax, edx + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03fe8348 // cmp rsi, 3 + JAE LBB4_557 + WORD $0xf631 // xor esi, esi + +LBB4_130: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1655 + LONG $0xf0148d49 // lea rdx, [r8 + 8*rsi] + LONG $0xf10c8d48 // lea rcx, [rcx + 8*rsi] + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_133 + +LBB4_132: + LONG $0x0c110ff2; BYTE $0xf2 // movsd qword [rdx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JE LBB4_1655 + +LBB4_133: + LONG $0xf13c8348; BYTE $0x00 // cmp qword [rcx + 8*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_132 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_132 + +LBB4_135: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_270 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_392 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_395 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0xff728d48 // lea rsi, [rdx - 1] + WORD $0xd089 // mov eax, edx + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03fe8348 // cmp rsi, 3 + JAE LBB4_567 + WORD $0xf631 // xor esi, esi + +LBB4_142: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1655 + LONG $0xf0148d49 // lea rdx, [r8 + 8*rsi] + LONG $0x710c8d48 // lea rcx, [rcx + 2*rsi] + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_145 + +LBB4_144: + LONG $0x0c110ff2; BYTE $0xf2 // movsd qword [rdx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JE LBB4_1655 + +LBB4_145: + LONG $0x713c8366; BYTE $0x00 // cmp word [rcx + 2*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_144 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_144 + +LBB4_147: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_275 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_398 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_401 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_577 + WORD $0xc031 // xor eax, eax + +LBB4_154: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0x413c8366; BYTE $0x00 // cmp word [rcx + 2*rax], 0 + JE LBB4_122 + +LBB4_982: + QUAD $0x0000012085100ff2 // movsd xmm0, qword 288[rbp] /* [rip + .LCPI4_13] */ + +LBB4_983: + JLE LBB4_985 + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_985: + LONG $0x110f41f2; WORD $0xc004 // movsd qword [r8 + 8*rax], xmm0 + JMP LBB4_1655 + +LBB4_157: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_280 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_404 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_407 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_587 + WORD $0xc031 // xor eax, eax + +LBB4_164: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0xc13c8348; BYTE $0x00 // cmp qword [rcx + 8*rax], 0 + JE LBB4_122 + JMP LBB4_982 + +LBB4_167: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_285 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_413 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_419 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_597 + WORD $0xc031 // xor eax, eax + +LBB4_174: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0x0c100ff3; BYTE $0x81 // movss xmm1, dword [rcx + 4*rax] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + WORD $0x2e0f; BYTE $0xd1 // ucomiss xmm2, xmm1 + JE LBB4_177 + WORD $0x500f; BYTE $0xc9 // movmskps ecx, xmm1 + WORD $0xe183; BYTE $0x01 // and ecx, 1 + WORD $0xd9f7 // neg ecx + WORD $0xc983; BYTE $0x01 // or ecx, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc12a0ff3 // cvtsi2ss xmm0, ecx + LONG $0xc05a0ff3 // cvtss2sd xmm0, xmm0 + +LBB4_177: + LONG $0x110f41f2; WORD $0xc004 // movsd qword [r8 + 8*rax], xmm0 + JMP LBB4_1655 + +LBB4_178: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_293 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_422 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_425 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0xff728d48 // lea rsi, [rdx - 1] + WORD $0xd089 // mov eax, edx + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03fe8348 // cmp rsi, 3 + JAE LBB4_603 + WORD $0xf631 // xor esi, esi + +LBB4_185: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1655 + LONG $0xf0148d49 // lea rdx, [r8 + 8*rsi] + WORD $0x0148; BYTE $0xf1 // add rcx, rsi + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_188 + +LBB4_187: + LONG $0x0c110ff2; BYTE $0xf2 // movsd qword [rdx + 8*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JE LBB4_1655 + +LBB4_188: + LONG $0x00313c80 // cmp byte [rcx + rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_187 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_187 + +LBB4_190: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB4_298 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB4_428 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB4_431 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_613 + WORD $0xc031 // xor eax, eax + +LBB4_197: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0x00813c83 // cmp dword [rcx + 4*rax], 0 + JE LBB4_122 + JMP LBB4_982 + +LBB4_200: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_434 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_204 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_625 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_625 + +LBB4_204: + WORD $0xd231 // xor edx, edx + +LBB4_1275: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1277 + +LBB4_1276: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1276 + +LBB4_1277: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1278: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1278 + JMP LBB4_1655 + +LBB4_205: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_437 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_209 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_630 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_630 + +LBB4_209: + WORD $0xd231 // xor edx, edx + +LBB4_1283: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1285 + LONG $0x04100ff2; BYTE $0xd1 // movsd xmm0, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0xc82e0f66 // ucomisd xmm1, xmm0 + LONG $0x45540f66; BYTE $0x00 // andpd xmm0, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + LONG $0xc8560f66 // orpd xmm1, xmm0 + LONG $0xf92c0ff2 // cvttsd2si edi, xmm1 + LONG $0xf9440f41 // cmove edi, r9d + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1285: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1655 + WORD $0xf631 // xor esi, esi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1287: + LONG $0x1c100ff2; BYTE $0xd1 // movsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xfb2c0ff2 // cvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x5c100ff2; WORD $0x08d1 // movsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xfb2c0ff2 // cvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x107c8841; BYTE $0x01 // mov byte [r8 + rdx + 1], dil + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1287 + JMP LBB4_1655 + +LBB4_210: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_440 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_214 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_635 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_635 + +LBB4_214: + WORD $0xf631 // xor esi, esi + +LBB4_1292: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1294 + LONG $0x313c8a40 // mov dil, byte [rcx + rsi] + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1294: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB4_1296: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1296 + JMP LBB4_1655 + +LBB4_215: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_443 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_219 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_640 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_640 + +LBB4_219: + WORD $0xd231 // xor edx, edx + +LBB4_1301: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1303 + +LBB4_1302: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1302 + +LBB4_1303: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1304: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1304 + JMP LBB4_1655 + +LBB4_220: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_446 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_224 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_645 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_645 + +LBB4_224: + WORD $0xd231 // xor edx, edx + +LBB4_1309: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1311 + +LBB4_1310: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1310 + +LBB4_1311: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1312: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1312 + JMP LBB4_1655 + +LBB4_225: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_449 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_229 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_650 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_650 + +LBB4_229: + WORD $0xf631 // xor esi, esi + +LBB4_1317: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1319 + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1319: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x0001b941; WORD $0x0000 // mov r9d, 1 + +LBB4_1321: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8566; BYTE $0xff // test di, di + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1321 + JMP LBB4_1655 + +LBB4_230: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_452 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_234 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_655 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_655 + +LBB4_234: + WORD $0xf631 // xor esi, esi + +LBB4_1326: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1328 + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0x4e0f; BYTE $0xf8 // cmovle edi, eax + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1328: + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + JE LBB4_1655 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB4_1330: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1330 + JMP LBB4_1655 + +LBB4_235: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_455 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_239 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_660 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_660 + +LBB4_239: + WORD $0xd231 // xor edx, edx + +LBB4_1335: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1337 + LONG $0x046e0f66; BYTE $0x91 // movd xmm0, dword [rcx + 4*rdx] + LONG $0xc77e0f66 // movd edi, xmm0 + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0xff31 // xor edi, edi + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + WORD $0x2e0f; BYTE $0xc8 // ucomiss xmm1, xmm0 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc7 // cmove eax, edi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1337: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + +LBB4_1339: + LONG $0x0c6e0f66; BYTE $0x91 // movd xmm1, dword [rcx + 4*rdx] + LONG $0xc87e0f66 // movd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x4c6e0f66; WORD $0x0491 // movd xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc87e0f66 // movd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10448841; BYTE $0x01 // mov byte [r8 + rdx + 1], al + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1339 + JMP LBB4_1655 + +LBB4_240: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_458 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_244 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_665 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_665 + +LBB4_244: + WORD $0xd231 // xor edx, edx + +LBB4_1344: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1346 + +LBB4_1345: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1345 + +LBB4_1346: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1347: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1347 + JMP LBB4_1655 + +LBB4_245: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB4_461 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_249 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_670 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_670 + +LBB4_249: + WORD $0xf631 // xor esi, esi + +LBB4_1352: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1354 + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0xff85 // test edi, edi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0xff85 // test edi, edi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1354: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x0001b941; WORD $0x0000 // mov r9d, 1 + +LBB4_1356: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xff85 // test edi, edi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + WORD $0xc085 // test eax, eax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc085 // test eax, eax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1356 + JMP LBB4_1655 + +LBB4_250: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_464 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_673 + WORD $0xd231 // xor edx, edx + JMP LBB4_1003 + +LBB4_255: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_467 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + QUAD $0x000000000000bb49; WORD $0x8000 // mov r11, -9223372036854775808 + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_676 + WORD $0xf631 // xor esi, esi + JMP LBB4_1008 + +LBB4_260: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_470 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_264 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_681 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_681 + +LBB4_264: + WORD $0xd231 // xor edx, edx + +LBB4_1361: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1363 + WORD $0x048a; BYTE $0x11 // mov al, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + LONG $0xc74e0f48 // cmovle rax, rdi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1363: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1365: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1365 + JMP LBB4_1655 + +LBB4_265: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_473 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_269 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_686 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_686 + +LBB4_269: + WORD $0xd231 // xor edx, edx + +LBB4_1370: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1372 + +LBB4_1371: + WORD $0xc031 // xor eax, eax + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1371 + +LBB4_1372: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1373: + WORD $0xc031 // xor eax, eax + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1373 + JMP LBB4_1655 + +LBB4_270: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_476 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_689 + WORD $0xd231 // xor edx, edx + JMP LBB4_1014 + +LBB4_275: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_479 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_692 + WORD $0xd231 // xor edx, edx + JMP LBB4_1019 + +LBB4_280: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_482 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_284 + LONG $0xd9148d4a // lea rdx, [rcx + 8*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_697 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_697 + +LBB4_284: + WORD $0xd231 // xor edx, edx + +LBB4_1378: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1380 + LONG $0xd10c8b4c // mov r9, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1380: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1382: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0xd1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdx + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1382 + JMP LBB4_1655 + +LBB4_285: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_485 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_700 + WORD $0xc031 // xor eax, eax + JMP LBB4_290 + +LBB4_293: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_488 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_297 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_710 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_710 + +LBB4_297: + WORD $0xd231 // xor edx, edx + +LBB4_1387: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1389 + +LBB4_1388: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1388 + +LBB4_1389: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1390: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1390 + JMP LBB4_1655 + +LBB4_298: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB4_491 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB4_1655 + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_713 + WORD $0xd231 // xor edx, edx + JMP LBB4_1025 + +LBB4_303: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_716 + WORD $0xd231 // xor edx, edx + JMP LBB4_1141 + +LBB4_306: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_719 + WORD $0xd231 // xor edx, edx + JMP LBB4_1146 + +LBB4_309: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_722 + WORD $0xf631 // xor esi, esi + JMP LBB4_1151 + +LBB4_312: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_725 + WORD $0xf631 // xor esi, esi + JMP LBB4_1157 + +LBB4_315: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_317 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_730 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_730 + +LBB4_317: + WORD $0xd231 // xor edx, edx + +LBB4_1395: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1397 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + WORD $0x4e0f; BYTE $0xc7 // cmovle eax, edi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1397: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1399: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1399 + JMP LBB4_1655 + +LBB4_318: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_320 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_735 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_735 + +LBB4_320: + WORD $0xd231 // xor edx, edx + +LBB4_1404: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1406 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + WORD $0x4e0f; BYTE $0xc7 // cmovle eax, edi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1406: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1408: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1408 + JMP LBB4_1655 + +LBB4_321: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_738 + WORD $0xd231 // xor edx, edx + JMP LBB4_1031 + +LBB4_324: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_741 + WORD $0xd231 // xor edx, edx + JMP LBB4_1036 + +LBB4_327: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_329 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_746 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_746 + +LBB4_329: + WORD $0xd231 // xor edx, edx + +LBB4_1413: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1415 + +LBB4_1414: + WORD $0xc031 // xor eax, eax + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1414 + +LBB4_1415: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1416: + WORD $0xc031 // xor eax, eax + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], ax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1416 + JMP LBB4_1655 + +LBB4_330: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_332 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_751 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_751 + +LBB4_332: + WORD $0xd231 // xor edx, edx + +LBB4_1421: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1423 + +LBB4_1422: + WORD $0xc031 // xor eax, eax + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1422 + +LBB4_1423: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1424: + WORD $0xc031 // xor eax, eax + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], ax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1424 + JMP LBB4_1655 + +LBB4_333: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_335 + LONG $0x59148d4a // lea rdx, [rcx + 2*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_756 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_756 + +LBB4_335: + WORD $0xd231 // xor edx, edx + +LBB4_1429: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1431 + LONG $0x0cb70f44; BYTE $0x51 // movzx r9d, word [rcx + 2*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1431: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1433: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x5144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rdx + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1433 + JMP LBB4_1655 + +LBB4_336: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_338 + LONG $0x59148d4a // lea rdx, [rcx + 2*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_761 + LONG $0x58148d4b // lea rdx, [r8 + 2*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_761 + +LBB4_338: + WORD $0xd231 // xor edx, edx + +LBB4_1438: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1440 + LONG $0x0cb70f44; BYTE $0x51 // movzx r9d, word [rcx + 2*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + LONG $0xc9854566 // test r9w, r9w + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x3c894166; BYTE $0x50 // mov word [r8 + 2*rdx], di + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1440: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1442: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x5144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rdx + 2] + WORD $0xff31 // xor edi, edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x7c894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], di + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1442 + JMP LBB4_1655 + +LBB4_339: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_764 + WORD $0xd231 // xor edx, edx + JMP LBB4_1041 + +LBB4_342: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_767 + WORD $0xd231 // xor edx, edx + JMP LBB4_1163 + +LBB4_345: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_770 + WORD $0xf631 // xor esi, esi + JMP LBB4_1169 + +LBB4_348: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_773 + WORD $0xf631 // xor esi, esi + JMP LBB4_1175 + +LBB4_351: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_353 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_778 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_778 + +LBB4_353: + WORD $0xd231 // xor edx, edx + +LBB4_1447: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1449 + +LBB4_1448: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1448 + +LBB4_1449: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1450: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], ax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1450 + JMP LBB4_1655 + +LBB4_354: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_356 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_783 + LONG $0x50148d4b // lea rdx, [r8 + 2*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_783 + +LBB4_356: + WORD $0xd231 // xor edx, edx + +LBB4_1455: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1457 + +LBB4_1456: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1456 + +LBB4_1457: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1458: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0250 // mov word [r8 + 2*rdx + 2], ax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0450 // mov word [r8 + 2*rdx + 4], ax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x44894166; WORD $0x0650 // mov word [r8 + 2*rdx + 6], ax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1458 + JMP LBB4_1655 + +LBB4_357: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_786 + WORD $0xd231 // xor edx, edx + JMP LBB4_1047 + +LBB4_360: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_789 + WORD $0xd231 // xor edx, edx + JMP LBB4_1053 + +LBB4_363: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_792 + WORD $0xd231 // xor edx, edx + JMP LBB4_1181 + +LBB4_366: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_795 + WORD $0xd231 // xor edx, edx + JMP LBB4_1186 + +LBB4_369: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_798 + WORD $0xd231 // xor edx, edx + JMP LBB4_1194 + +LBB4_372: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_801 + WORD $0xd231 // xor edx, edx + JMP LBB4_1200 + +LBB4_375: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_377 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_806 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_806 + +LBB4_377: + WORD $0xd231 // xor edx, edx + +LBB4_1463: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1465 + WORD $0x048a; BYTE $0x11 // mov al, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + LONG $0xc74e0f48 // cmovle rax, rdi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1465: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1467: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc084 // test al, al + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1467 + JMP LBB4_1655 + +LBB4_378: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_380 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_811 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_811 + +LBB4_380: + WORD $0xd231 // xor edx, edx + +LBB4_1472: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1479 + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + JNE LBB4_1475 + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + JMP LBB4_1476 + +LBB4_381: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_383 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_816 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_816 + +LBB4_383: + WORD $0xd231 // xor edx, edx + +LBB4_1494: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1496 + +LBB4_1495: + WORD $0xc031 // xor eax, eax + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1495 + +LBB4_1496: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1497: + WORD $0xc031 // xor eax, eax + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1497 + JMP LBB4_1655 + +LBB4_384: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0xff728d48 // lea rsi, [rdx - 1] + WORD $0xd089 // mov eax, edx + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03fe8348 // cmp rsi, 3 + JAE LBB4_819 + WORD $0xf631 // xor esi, esi + +LBB4_387: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1655 + LONG $0xb0148d49 // lea rdx, [r8 + 4*rsi] + LONG $0xf10c8d48 // lea rcx, [rcx + 8*rsi] + WORD $0xf631 // xor esi, esi + QUAD $0x0000012885100ff3 // movss xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_390 + +LBB4_389: + LONG $0x0c110ff3; BYTE $0xb2 // movss dword [rdx + 4*rsi], xmm1 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JE LBB4_1655 + +LBB4_390: + LONG $0xf13c8348; BYTE $0x00 // cmp qword [rcx + 8*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_389 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_389 + +LBB4_392: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_829 + WORD $0xd231 // xor edx, edx + JMP LBB4_1059 + +LBB4_395: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_832 + WORD $0xd231 // xor edx, edx + JMP LBB4_1208 + +LBB4_398: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_835 + WORD $0xd231 // xor edx, edx + JMP LBB4_1216 + +LBB4_401: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_838 + WORD $0xd231 // xor edx, edx + JMP LBB4_1222 + +LBB4_404: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_406 + LONG $0xd9148d4a // lea rdx, [rcx + 8*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_843 + LONG $0xd8148d4b // lea rdx, [r8 + 8*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_843 + +LBB4_406: + WORD $0xd231 // xor edx, edx + +LBB4_1502: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1504 + LONG $0xd10c8b4c // mov r9, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0xd2950f41 // setne r10b + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0x854d; BYTE $0xc9 // test r9, r9 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f49 // cmovle rdi, r10 + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1504: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1506: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8548; BYTE $0xff // test rdi, rdi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0xd1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rdx + 8] + WORD $0xff31 // xor edi, edi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd7950f40 // setne dil + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xfe4f0f48 // cmovg rdi, rsi + LONG $0xd07c8949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rdi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1506 + JMP LBB4_1655 + +LBB4_407: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_846 + WORD $0xc031 // xor eax, eax + +LBB4_410: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0xc13c8348; BYTE $0x00 // cmp qword [rcx + 8*rax], 0 + JNE LBB4_989 + LONG $0xc0570f66 // xorpd xmm0, xmm0 + JMP LBB4_990 + +LBB4_413: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xca // mov edx, r9d + LONG $0x01f98341 // cmp r9d, 1 + JNE LBB4_856 + WORD $0xc031 // xor eax, eax + JMP LBB4_416 + +LBB4_419: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_421 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_866 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_866 + +LBB4_421: + WORD $0xd231 // xor edx, edx + +LBB4_869: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_871 + LONG $0x04100ff3; BYTE $0x91 // movss xmm0, dword [rcx + 4*rdx] + WORD $0x500f; BYTE $0xf8 // movmskps edi, xmm0 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xcf2a0ff3 // cvtsi2ss xmm1, edi + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd0c20ff3; BYTE $0x00 // cmpeqss xmm2, xmm0 + WORD $0x550f; BYTE $0xd1 // andnps xmm2, xmm1 + LONG $0x110f41f3; WORD $0x9014 // movss dword [r8 + 4*rdx], xmm2 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_871: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1655 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + +LBB4_873: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + WORD $0x500f; BYTE $0xf1 // movmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd62a0ff3 // cvtsi2ss xmm2, esi + LONG $0xc8c20ff3; BYTE $0x00 // cmpeqss xmm1, xmm0 + WORD $0x550f; BYTE $0xca // andnps xmm1, xmm2 + LONG $0x110f41f3; WORD $0x900c // movss dword [r8 + 4*rdx], xmm1 + LONG $0x4c100ff3; WORD $0x0491 // movss xmm1, dword [rcx + 4*rdx + 4] + WORD $0x500f; BYTE $0xf1 // movmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd62a0ff3 // cvtsi2ss xmm2, esi + LONG $0xc8c20ff3; BYTE $0x00 // cmpeqss xmm1, xmm0 + WORD $0x550f; BYTE $0xca // andnps xmm1, xmm2 + LONG $0x110f41f3; WORD $0x904c; BYTE $0x04 // movss dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_873 + JMP LBB4_1655 + +LBB4_422: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_424 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_876 + LONG $0xd0148d4b // lea rdx, [r8 + 8*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_876 + +LBB4_424: + WORD $0xd231 // xor edx, edx + +LBB4_1511: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1513 + +LBB4_1512: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1512 + +LBB4_1513: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1514: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x08 // mov qword [r8 + 8*rdx + 8], rax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x10 // mov qword [r8 + 8*rdx + 16], rax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0xd0448949; BYTE $0x18 // mov qword [r8 + 8*rdx + 24], rax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1514 + JMP LBB4_1655 + +LBB4_425: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_427 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_881 + LONG $0x80148d49 // lea rdx, [r8 + 4*rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_881 + +LBB4_427: + WORD $0xd231 // xor edx, edx + +LBB4_1519: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1524 + QUAD $0x00000128856e0f66 // movd xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1522 + +LBB4_1521: + LONG $0x7e0f4166; WORD $0x900c // movd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JE LBB4_1524 + +LBB4_1522: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1521 + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + JMP LBB4_1521 + +LBB4_428: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_884 + WORD $0xd231 // xor edx, edx + JMP LBB4_1064 + +LBB4_431: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_887 + WORD $0xd231 // xor edx, edx + JMP LBB4_1070 + +LBB4_434: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_436 + LONG $0x81148d48 // lea rdx, [rcx + 4*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_892 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_892 + +LBB4_436: + WORD $0xd231 // xor edx, edx + +LBB4_1539: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1541 + +LBB4_1540: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1540 + +LBB4_1541: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1542: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1542 + JMP LBB4_1655 + +LBB4_437: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_439 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_897 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_897 + +LBB4_439: + WORD $0xd231 // xor edx, edx + +LBB4_1547: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x01a8 // test al, 1 + JE LBB4_1549 + LONG $0x04100ff2; BYTE $0xd1 // movsd xmm0, qword [rcx + 8*rdx] + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0xc82e0f66 // ucomisd xmm1, xmm0 + LONG $0x45540f66; BYTE $0x00 // andpd xmm0, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + LONG $0xc8560f66 // orpd xmm1, xmm0 + LONG $0xf92c0ff2 // cvttsd2si edi, xmm1 + LONG $0xf9440f41 // cmove edi, r9d + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1549: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1655 + WORD $0xf631 // xor esi, esi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1551: + LONG $0x1c100ff2; BYTE $0xd1 // movsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xfb2c0ff2 // cvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x103c8841 // mov byte [r8 + rdx], dil + LONG $0x5c100ff2; WORD $0x08d1 // movsd xmm3, qword [rcx + 8*rdx + 8] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xfb2c0ff2 // cvttsd2si edi, xmm3 + WORD $0x440f; BYTE $0xfe // cmove edi, esi + LONG $0x107c8841; BYTE $0x01 // mov byte [r8 + rdx + 1], dil + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1551 + JMP LBB4_1655 + +LBB4_440: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_442 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_902 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_902 + +LBB4_442: + WORD $0xf631 // xor esi, esi + +LBB4_1556: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1558 + LONG $0x313c8a40 // mov dil, byte [rcx + rsi] + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8440; BYTE $0xff // test dil, dil + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1558: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB4_1560: + LONG $0x3104b60f // movzx eax, byte [rcx + rsi] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x3144b60f; BYTE $0x01 // movzx eax, byte [rcx + rsi + 1] + WORD $0xc084 // test al, al + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc084 // test al, al + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1560 + JMP LBB4_1655 + +LBB4_443: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_445 + LONG $0xc1148d48 // lea rdx, [rcx + 8*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_907 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_907 + +LBB4_445: + WORD $0xd231 // xor edx, edx + +LBB4_1565: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1567 + +LBB4_1566: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1566 + +LBB4_1567: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1568: + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0xd17c8348; WORD $0x0008 // cmp qword [rcx + 8*rdx + 8], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0xd17c8348; WORD $0x0010 // cmp qword [rcx + 8*rdx + 16], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0xd17c8348; WORD $0x0018 // cmp qword [rcx + 8*rdx + 24], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1568 + JMP LBB4_1655 + +LBB4_446: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_448 + LONG $0x41148d48 // lea rdx, [rcx + 2*rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_912 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_912 + +LBB4_448: + WORD $0xd231 // xor edx, edx + +LBB4_1573: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1575 + +LBB4_1574: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1574 + +LBB4_1575: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1576: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x517c8366; WORD $0x0002 // cmp word [rcx + 2*rdx + 2], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x517c8366; WORD $0x0004 // cmp word [rcx + 2*rdx + 4], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x517c8366; WORD $0x0006 // cmp word [rcx + 2*rdx + 6], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1576 + JMP LBB4_1655 + +LBB4_449: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x10f98341 // cmp r9d, 16 + JB LBB4_451 + LONG $0x51148d4a // lea rdx, [rcx + 2*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_917 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_917 + +LBB4_451: + WORD $0xf631 // xor esi, esi + +LBB4_1581: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1583 + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1583: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x0001b941; WORD $0x0000 // mov r9d, 1 + +LBB4_1585: + LONG $0x713cb70f // movzx edi, word [rcx + 2*rsi] + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8566; BYTE $0xff // test di, di + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x7144b70f; BYTE $0x02 // movzx eax, word [rcx + 2*rsi + 2] + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8566; BYTE $0xc0 // test ax, ax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1585 + JMP LBB4_1655 + +LBB4_452: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JB LBB4_454 + LONG $0xd1148d4a // lea rdx, [rcx + 8*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_922 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_922 + +LBB4_454: + WORD $0xf631 // xor esi, esi + +LBB4_1590: + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + WORD $0xf748; BYTE $0xd2 // not rdx + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1592 + LONG $0xf13c8b48 // mov rdi, qword [rcx + 8*rsi] + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0x4e0f; BYTE $0xf8 // cmovle edi, eax + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1592: + WORD $0x014c; BYTE $0xd2 // add rdx, r10 + JE LBB4_1655 + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + +LBB4_1594: + LONG $0xf1048b48 // mov rax, qword [rcx + 8*rsi] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0xf1448b48; BYTE $0x08 // mov rax, qword [rcx + 8*rsi + 8] + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8548; BYTE $0xc0 // test rax, rax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + WORD $0x4f0f; BYTE $0xc7 // cmovg eax, edi + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1594 + JMP LBB4_1655 + +LBB4_455: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_457 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_927 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_927 + +LBB4_457: + WORD $0xd231 // xor edx, edx + +LBB4_1599: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1601 + LONG $0x046e0f66; BYTE $0x91 // movd xmm0, dword [rcx + 4*rdx] + LONG $0xc77e0f66 // movd edi, xmm0 + WORD $0xff85 // test edi, edi + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0xff31 // xor edi, edi + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + WORD $0x2e0f; BYTE $0xc8 // ucomiss xmm1, xmm0 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc7 // cmove eax, edi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1601: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + +LBB4_1603: + LONG $0x0c6e0f66; BYTE $0x91 // movd xmm1, dword [rcx + 4*rdx] + LONG $0xc87e0f66 // movd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10048841 // mov byte [r8 + rdx], al + LONG $0x4c6e0f66; WORD $0x0491 // movd xmm1, dword [rcx + 4*rdx + 4] + LONG $0xc87e0f66 // movd eax, xmm1 + WORD $0xc085 // test eax, eax + WORD $0x990f; BYTE $0xd0 // setns al + WORD $0xc000 // add al, al + WORD $0xff04 // add al, -1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + WORD $0x440f; BYTE $0xc6 // cmove eax, esi + LONG $0x10448841; BYTE $0x01 // mov byte [r8 + rdx + 1], al + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1603 + JMP LBB4_1655 + +LBB4_458: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x20f98341 // cmp r9d, 32 + JB LBB4_460 + LONG $0x01148d48 // lea rdx, [rcx + rax] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_932 + LONG $0x00148d49 // lea rdx, [r8 + rax] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_932 + +LBB4_460: + WORD $0xd231 // xor edx, edx + +LBB4_1608: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x0148; BYTE $0xc6 // add rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1610 + +LBB4_1609: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1609 + +LBB4_1610: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1611: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0x14950f41; BYTE $0x10 // setne byte [r8 + rdx] + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0x54950f41; WORD $0x0110 // setne byte [r8 + rdx + 1] + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0x54950f41; WORD $0x0210 // setne byte [r8 + rdx + 2] + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0x54950f41; WORD $0x0310 // setne byte [r8 + rdx + 3] + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1611 + JMP LBB4_1655 + +LBB4_461: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_463 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_937 + LONG $0x10148d4b // lea rdx, [r8 + r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_937 + +LBB4_463: + WORD $0xf631 // xor esi, esi + +LBB4_1616: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1618 + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0xff85 // test edi, edi + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0xff85 // test edi, edi + LONG $0xc9b60f45 // movzx r9d, r9b + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xf94e0f41 // cmovle edi, r9d + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01ce8348 // or rsi, 1 + +LBB4_1618: + WORD $0x014c; BYTE $0xd0 // add rax, r10 + JE LBB4_1655 + LONG $0x0001b941; WORD $0x0000 // mov r9d, 1 + +LBB4_1620: + WORD $0x3c8b; BYTE $0xb1 // mov edi, dword [rcx + 4*rsi] + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xff85 // test edi, edi + WORD $0xb60f; BYTE $0xc0 // movzx eax, al + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30048841 // mov byte [r8 + rsi], al + LONG $0x04b1448b // mov eax, dword [rcx + 4*rsi + 4] + WORD $0xc085 // test eax, eax + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xc085 // test eax, eax + WORD $0xb60f; BYTE $0xc2 // movzx eax, dl + LONG $0xc14f0f41 // cmovg eax, r9d + LONG $0x30448841; BYTE $0x01 // mov byte [r8 + rsi + 1], al + LONG $0x02c68348 // add rsi, 2 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1620 + JMP LBB4_1655 + +LBB4_464: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_466 + LONG $0x91148d4a // lea rdx, [rcx + 4*r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_942 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_942 + +LBB4_466: + WORD $0xd231 // xor edx, edx + +LBB4_1625: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1627 + +LBB4_1626: + WORD $0xc031 // xor eax, eax + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1626 + +LBB4_1627: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1628: + WORD $0xc031 // xor eax, eax + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + WORD $0xc031 // xor eax, eax + LONG $0x04917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 4], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x08917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 8], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x0c917c83; BYTE $0x00 // cmp dword [rcx + 4*rdx + 12], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], eax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1628 + JMP LBB4_1655 + +LBB4_467: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_945 + WORD $0xf631 // xor esi, esi + JMP LBB4_1080 + +LBB4_470: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_472 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_950 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_950 + +LBB4_472: + WORD $0xd231 // xor edx, edx + +LBB4_1633: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1635 + LONG $0x110c8a44 // mov r9b, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0x8445; BYTE $0xc9 // test r9b, r9b + LONG $0x000001b8; BYTE $0x00 // mov eax, 1 + WORD $0x4e0f; BYTE $0xc7 // cmovle eax, edi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1635: + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1637: + LONG $0x1104b60f // movzx eax, byte [rcx + rdx] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x1144b60f; BYTE $0x01 // movzx eax, byte [rcx + rdx + 1] + WORD $0xff31 // xor edi, edi + WORD $0xc084 // test al, al + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc084 // test al, al + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1637 + JMP LBB4_1655 + +LBB4_473: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_953 + WORD $0xd231 // xor edx, edx + JMP LBB4_1086 + +LBB4_476: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_956 + WORD $0xd231 // xor edx, edx + JMP LBB4_1091 + +LBB4_479: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_959 + WORD $0xd231 // xor edx, edx + JMP LBB4_1096 + +LBB4_482: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x04f98341 // cmp r9d, 4 + JAE LBB4_962 + WORD $0xd231 // xor edx, edx + JMP LBB4_1102 + +LBB4_485: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8944; BYTE $0xc8 // mov eax, r9d + LONG $0x08f98341 // cmp r9d, 8 + JAE LBB4_965 + WORD $0xd231 // xor edx, edx + JMP LBB4_968 + +LBB4_488: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_490 + LONG $0x11148d4a // lea rdx, [rcx + r10] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_974 + LONG $0x90148d4b // lea rdx, [r8 + 4*r10] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_974 + +LBB4_490: + WORD $0xd231 // xor edx, edx + +LBB4_1642: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + WORD $0x014c; BYTE $0xd6 // add rsi, r10 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x03e78348 // and rdi, 3 + JE LBB4_1644 + +LBB4_1643: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB4_1643 + +LBB4_1644: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + +LBB4_1645: + WORD $0xc031 // xor eax, eax + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + WORD $0xc031 // xor eax, eax + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], eax + WORD $0xc031 // xor eax, eax + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x08 // mov dword [r8 + 4*rdx + 8], eax + WORD $0xc031 // xor eax, eax + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x90448941; BYTE $0x0c // mov dword [r8 + 4*rdx + 12], eax + LONG $0x04c28348 // add rdx, 4 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1645 + JMP LBB4_1655 + +LBB4_491: + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + JLE LBB4_1655 + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0x08f98341 // cmp r9d, 8 + JB LBB4_493 + LONG $0x99148d4a // lea rdx, [rcx + 4*r11] + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JBE LBB4_979 + LONG $0x98148d4b // lea rdx, [r8 + 4*r11] + WORD $0x3948; BYTE $0xca // cmp rdx, rcx + JBE LBB4_979 + +LBB4_493: + WORD $0xd231 // xor edx, edx + +LBB4_1650: + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0xf748; BYTE $0xd6 // not rsi + LONG $0x01c3f641 // test r11b, 1 + JE LBB4_1652 + LONG $0x910c8b44 // mov r9d, dword [rcx + 4*rdx] + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xd2950f41 // setne r10b + WORD $0xf741; BYTE $0xda // neg r10d + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + LONG $0xfa4e0f41 // cmovle edi, r10d + LONG $0x903c8941 // mov dword [r8 + 4*rdx], edi + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1652: + WORD $0x014c; BYTE $0xde // add rsi, r11 + JE LBB4_1655 + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1654: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x0491448b // mov eax, dword [rcx + 4*rdx + 4] + WORD $0xff31 // xor edi, edi + WORD $0xc085 // test eax, eax + LONG $0xd7950f40 // setne dil + WORD $0xdff7 // neg edi + WORD $0xc085 // test eax, eax + WORD $0x4f0f; BYTE $0xfe // cmovg edi, esi + LONG $0x907c8941; BYTE $0x04 // mov dword [r8 + 4*rdx + 4], edi + LONG $0x02c28348 // add rdx, 2 + WORD $0x3949; BYTE $0xd3 // cmp r11, rdx + JNE LBB4_1654 + JMP LBB4_1655 + +LBB4_1524: + LONG $0x03fe8348 // cmp rsi, 3 + JB LBB4_1655 + QUAD $0x00000128856e0f66 // movd xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1527 + +LBB4_1526: + LONG $0x7e0f4166; WORD $0x904c; BYTE $0x0c // movd dword [r8 + 4*rdx + 12], xmm1 + LONG $0x04c28348 // add rdx, 4 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1527: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1528 + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x7e0f4166; WORD $0x900c // movd dword [r8 + 4*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JE LBB4_1532 + +LBB4_1529: + LONG $0x7e0f4166; WORD $0x904c; BYTE $0x04 // movd dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1530 + +LBB4_1533: + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x7e0f4166; WORD $0x904c; BYTE $0x08 // movd dword [r8 + 4*rdx + 8], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1526 + JMP LBB4_1534 + +LBB4_1528: + LONG $0x7e0f4166; WORD $0x900c // movd dword [r8 + 4*rdx], xmm1 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1529 + +LBB4_1532: + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + LONG $0x7e0f4166; WORD $0x904c; BYTE $0x04 // movd dword [r8 + 4*rdx + 4], xmm1 + LONG $0x02117c80; BYTE $0x00 // cmp byte [rcx + rdx + 2], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JE LBB4_1533 + +LBB4_1530: + LONG $0x7e0f4166; WORD $0x904c; BYTE $0x08 // movd dword [r8 + 4*rdx + 8], xmm1 + LONG $0x03117c80; BYTE $0x00 // cmp byte [rcx + rdx + 3], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1526 + +LBB4_1534: + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + JMP LBB4_1526 + +LBB4_499: + WORD $0x8944; BYTE $0xde // mov esi, r11d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1106 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_501: + LONG $0x2c100f66; BYTE $0xf9 // movupd xmm5, oword [rcx + 8*rdi] + LONG $0x74100f66; WORD $0x10f9 // movupd xmm6, oword [rcx + 8*rdi + 16] + LONG $0xdd280f66 // movapd xmm3, xmm5 + LONG $0xd8c20f66; BYTE $0x00 // cmpeqpd xmm3, xmm0 + LONG $0xe8dbc60f // shufps xmm3, xmm3, 232 + LONG $0xe6280f66 // movapd xmm4, xmm6 + LONG $0xe0c20f66; BYTE $0x00 // cmpeqpd xmm4, xmm0 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0xfd700f66; BYTE $0xee // pshufd xmm7, xmm5, 238 + LONG $0x2c0f48f2; BYTE $0xc7 // cvttsd2si rax, xmm7 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0xeb6e0f66 // movd xmm5, ebx + LONG $0x223a0f66; WORD $0x01e8 // pinsrd xmm5, eax, 1 + LONG $0xfe700f66; BYTE $0xee // pshufd xmm7, xmm6, 238 + LONG $0x2c0f48f2; BYTE $0xc7 // cvttsd2si rax, xmm7 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0xe8e4c60f // shufps xmm4, xmm4, 232 + LONG $0xf36e0f66 // movd xmm6, ebx + LONG $0x223a0f66; WORD $0x01f0 // pinsrd xmm6, eax, 1 + WORD $0x550f; BYTE $0xdd // andnps xmm3, xmm5 + WORD $0x550f; BYTE $0xe6 // andnps xmm4, xmm6 + WORD $0x160f; BYTE $0xdc // movlhps xmm3, xmm4 + LONG $0x1c110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm3 + LONG $0x6c100f66; WORD $0x20f9 // movupd xmm5, oword [rcx + 8*rdi + 32] + LONG $0x74100f66; WORD $0x30f9 // movupd xmm6, oword [rcx + 8*rdi + 48] + LONG $0xdd280f66 // movapd xmm3, xmm5 + LONG $0xd8c20f66; BYTE $0x00 // cmpeqpd xmm3, xmm0 + LONG $0xe8dbc60f // shufps xmm3, xmm3, 232 + LONG $0xe6280f66 // movapd xmm4, xmm6 + LONG $0xe0c20f66; BYTE $0x00 // cmpeqpd xmm4, xmm0 + LONG $0xe8e4c60f // shufps xmm4, xmm4, 232 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xfd700f66; BYTE $0xee // pshufd xmm7, xmm5, 238 + LONG $0x2c0f48f2; BYTE $0xc7 // cvttsd2si rax, xmm7 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0xeb6e0f66 // movd xmm5, ebx + LONG $0x223a0f66; WORD $0x01e8 // pinsrd xmm5, eax, 1 + WORD $0x550f; BYTE $0xdd // andnps xmm3, xmm5 + LONG $0xee700f66; BYTE $0xee // pshufd xmm5, xmm6, 238 + LONG $0x2c0f48f2; BYTE $0xc5 // cvttsd2si rax, xmm5 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0xeb6e0f66 // movd xmm5, ebx + LONG $0x223a0f66; WORD $0x01e8 // pinsrd xmm5, eax, 1 + WORD $0x550f; BYTE $0xe5 // andnps xmm4, xmm5 + WORD $0x160f; BYTE $0xdc // movlhps xmm3, xmm4 + LONG $0x5c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_501 + JMP LBB4_1107 + +LBB4_507: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_994 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000a08d6f0f66 // movdqa xmm1, oword 160[rbp] /* [rip + .LCPI4_16] */ + +LBB4_509: + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0xb014 // movdqu oword [r8 + 4*rsi], xmm2 + LONG $0x546f0ff3; WORD $0x20f1 // movdqu xmm2, oword [rcx + 8*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30f1 // movdqu xmm3, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0xb054; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm2 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_509 + JMP LBB4_995 + +LBB4_510: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1112 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_512: + LONG $0x1c7e0ff3; BYTE $0x71 // movq xmm3, qword [rcx + 2*rsi] + LONG $0x647e0ff3; WORD $0x0871 // movq xmm4, qword [rcx + 2*rsi + 8] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb01c // movdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x1071 // movq xmm3, qword [rcx + 2*rsi + 16] + LONG $0x647e0ff3; WORD $0x1871 // movq xmm4, qword [rcx + 2*rsi + 24] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_512 + JMP LBB4_1113 + +LBB4_513: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1117 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_515: + LONG $0x2c7e0ff3; BYTE $0x71 // movq xmm5, qword [rcx + 2*rsi] + LONG $0x747e0ff3; WORD $0x0871 // movq xmm6, qword [rcx + 2*rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x1071 // movq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747e0ff3; WORD $0x1871 // movq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_515 + JMP LBB4_1118 + +LBB4_516: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1123 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xa0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 160[rbp] /* [rip + .LCPI4_16] */ + +LBB4_518: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xed700f66; BYTE $0xe8 // pshufd xmm5, xmm5, 232 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf6700f66; BYTE $0xe8 // pshufd xmm6, xmm6, 232 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xed700f66; BYTE $0xe8 // pshufd xmm5, xmm5, 232 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf6700f66; BYTE $0xe8 // pshufd xmm6, xmm6, 232 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x6c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm5 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_518 + JMP LBB4_1124 + +LBB4_519: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1129 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0x605d280f // movaps xmm3, oword 96[rbp] /* [rip + .LCPI4_10] */ + LONG $0x3065280f // movaps xmm4, oword 48[rbp] /* [rip + .LCPI4_4] */ + +LBB4_521: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xe0720f66; BYTE $0x1f // psrad xmm0, 31 + LONG $0xc2eb0f66 // por xmm0, xmm2 + WORD $0x5b0f; BYTE $0xf0 // cvtdq2ps xmm6, xmm0 + WORD $0x280f; BYTE $0xc6 // movaps xmm0, xmm6 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xfe5b0ff3 // cvttps2dq xmm7, xmm6 + WORD $0x5c0f; BYTE $0xf3 // subps xmm6, xmm3 + LONG $0xf65b0ff3 // cvttps2dq xmm6, xmm6 + WORD $0x570f; BYTE $0xf4 // xorps xmm6, xmm4 + LONG $0x14380f66; BYTE $0xf7 // blendvps xmm6, xmm7, xmm0 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + WORD $0x540f; BYTE $0xee // andps xmm5, xmm6 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x6c6f0ff3; WORD $0x10b1 // movdqu xmm5, oword [rcx + 4*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xe0720f66; BYTE $0x1f // psrad xmm0, 31 + LONG $0xc2eb0f66 // por xmm0, xmm2 + WORD $0x5b0f; BYTE $0xf0 // cvtdq2ps xmm6, xmm0 + WORD $0x280f; BYTE $0xc6 // movaps xmm0, xmm6 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xfe5b0ff3 // cvttps2dq xmm7, xmm6 + WORD $0x5c0f; BYTE $0xf3 // subps xmm6, xmm3 + LONG $0xf65b0ff3 // cvttps2dq xmm6, xmm6 + WORD $0x570f; BYTE $0xf4 // xorps xmm6, xmm4 + LONG $0x14380f66; BYTE $0xf7 // blendvps xmm6, xmm7, xmm0 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + WORD $0x540f; BYTE $0xee // andps xmm5, xmm6 + LONG $0x6c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm5 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_521 + JMP LBB4_1130 + +LBB4_532: + WORD $0xe283; BYTE $0xfc // and edx, -4 + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_534 + +LBB4_533: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JE LBB4_101 + +LBB4_534: + LONG $0x00b13c83 // cmp dword [rcx + 4*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_535 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x04b17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 4], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_539 + +LBB4_536: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x08b17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_537 + +LBB4_540: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x0cb17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 12], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_533 + JMP LBB4_541 + +LBB4_535: + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x04b17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 4], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_536 + +LBB4_539: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x08b17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_540 + +LBB4_537: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x0cb17c83; BYTE $0x00 // cmp dword [rcx + 4*rsi + 12], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_533 + +LBB4_541: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_533 + +LBB4_547: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000012085100ff2 // movsd xmm0, qword 288[rbp] /* [rip + .LCPI4_13] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_549 + +LBB4_548: + LONG $0x110f41f2; WORD $0xc05c; BYTE $0x08 // movsd qword [r8 + 8*rax + 8], xmm3 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_120 + +LBB4_549: + LONG $0x00013c80 // cmp byte [rcx + rax], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_550 + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JLE LBB4_554 + +LBB4_551: + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x01017c80; BYTE $0x00 // cmp byte [rcx + rax + 1], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_552 + +LBB4_555: + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_548 + JMP LBB4_556 + +LBB4_550: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_551 + +LBB4_554: + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x01017c80; BYTE $0x00 // cmp byte [rcx + rax + 1], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JE LBB4_555 + +LBB4_552: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_548 + +LBB4_556: + LONG $0xda280f66 // movapd xmm3, xmm2 + JMP LBB4_548 + +LBB4_557: + WORD $0xe283; BYTE $0xfc // and edx, -4 + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_559 + +LBB4_558: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JE LBB4_130 + +LBB4_559: + LONG $0xf13c8348; BYTE $0x00 // cmp qword [rcx + 8*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_560 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0xf17c8348; WORD $0x0008 // cmp qword [rcx + 8*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_564 + +LBB4_561: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0xf17c8348; WORD $0x0010 // cmp qword [rcx + 8*rsi + 16], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_562 + +LBB4_565: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0xf17c8348; WORD $0x0018 // cmp qword [rcx + 8*rsi + 24], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_558 + JMP LBB4_566 + +LBB4_560: + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0xf17c8348; WORD $0x0008 // cmp qword [rcx + 8*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_561 + +LBB4_564: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0xf17c8348; WORD $0x0010 // cmp qword [rcx + 8*rsi + 16], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_565 + +LBB4_562: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0xf17c8348; WORD $0x0018 // cmp qword [rcx + 8*rsi + 24], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_558 + +LBB4_566: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_558 + +LBB4_567: + WORD $0xe283; BYTE $0xfc // and edx, -4 + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_569 + +LBB4_568: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JE LBB4_142 + +LBB4_569: + LONG $0x713c8366; BYTE $0x00 // cmp word [rcx + 2*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_570 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x717c8366; WORD $0x0002 // cmp word [rcx + 2*rsi + 2], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_574 + +LBB4_571: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x717c8366; WORD $0x0004 // cmp word [rcx + 2*rsi + 4], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_572 + +LBB4_575: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x717c8366; WORD $0x0006 // cmp word [rcx + 2*rsi + 6], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_568 + JMP LBB4_576 + +LBB4_570: + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x717c8366; WORD $0x0002 // cmp word [rcx + 2*rsi + 2], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_571 + +LBB4_574: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x717c8366; WORD $0x0004 // cmp word [rcx + 2*rsi + 4], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_575 + +LBB4_572: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x717c8366; WORD $0x0006 // cmp word [rcx + 2*rsi + 6], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_568 + +LBB4_576: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_568 + +LBB4_577: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000012085100ff2 // movsd xmm0, qword 288[rbp] /* [rip + .LCPI4_13] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_579 + +LBB4_578: + LONG $0x110f41f2; WORD $0xc05c; BYTE $0x08 // movsd qword [r8 + 8*rax + 8], xmm3 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_154 + +LBB4_579: + LONG $0x413c8366; BYTE $0x00 // cmp word [rcx + 2*rax], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_580 + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JLE LBB4_584 + +LBB4_581: + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x417c8366; WORD $0x0002 // cmp word [rcx + 2*rax + 2], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_582 + +LBB4_585: + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_578 + JMP LBB4_586 + +LBB4_580: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_581 + +LBB4_584: + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x417c8366; WORD $0x0002 // cmp word [rcx + 2*rax + 2], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JE LBB4_585 + +LBB4_582: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_578 + +LBB4_586: + LONG $0xda280f66 // movapd xmm3, xmm2 + JMP LBB4_578 + +LBB4_587: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000012085100ff2 // movsd xmm0, qword 288[rbp] /* [rip + .LCPI4_13] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_589 + +LBB4_588: + LONG $0x110f41f2; WORD $0xc05c; BYTE $0x08 // movsd qword [r8 + 8*rax + 8], xmm3 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_164 + +LBB4_589: + LONG $0xc13c8348; BYTE $0x00 // cmp qword [rcx + 8*rax], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_590 + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JLE LBB4_594 + +LBB4_591: + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0xc17c8348; WORD $0x0008 // cmp qword [rcx + 8*rax + 8], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_592 + +LBB4_595: + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_588 + JMP LBB4_596 + +LBB4_590: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_591 + +LBB4_594: + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0xc17c8348; WORD $0x0008 // cmp qword [rcx + 8*rax + 8], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JE LBB4_595 + +LBB4_592: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_588 + +LBB4_596: + LONG $0xda280f66 // movapd xmm3, xmm2 + JMP LBB4_588 + +LBB4_597: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + JMP LBB4_599 + +LBB4_598: + LONG $0x110f41f2; WORD $0xc04c; BYTE $0x08 // movsd qword [r8 + 8*rax + 8], xmm1 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_174 + +LBB4_599: + LONG $0x14100ff3; BYTE $0x81 // movss xmm2, dword [rcx + 4*rax] + LONG $0xc9570f66 // xorpd xmm1, xmm1 + WORD $0x2e0f; BYTE $0xc2 // ucomiss xmm0, xmm2 + LONG $0xdb570f66 // xorpd xmm3, xmm3 + JE LBB4_601 + WORD $0x500f; BYTE $0xfa // movmskps edi, xmm2 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd72a0ff3 // cvtsi2ss xmm2, edi + WORD $0x570f; BYTE $0xdb // xorps xmm3, xmm3 + LONG $0xda5a0ff3 // cvtss2sd xmm3, xmm2 + +LBB4_601: + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x54100ff3; WORD $0x0481 // movss xmm2, dword [rcx + 4*rax + 4] + WORD $0x2e0f; BYTE $0xc2 // ucomiss xmm0, xmm2 + JE LBB4_598 + WORD $0x500f; BYTE $0xfa // movmskps edi, xmm2 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xcf2a0ff3 // cvtsi2ss xmm1, edi + LONG $0xc95a0ff3 // cvtss2sd xmm1, xmm1 + JMP LBB4_598 + +LBB4_603: + WORD $0xe283; BYTE $0xfc // and edx, -4 + WORD $0xf631 // xor esi, esi + QUAD $0x0000011085100ff2 // movsd xmm0, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_605 + +LBB4_604: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x18 // movsd qword [r8 + 8*rsi + 24], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JE LBB4_185 + +LBB4_605: + LONG $0x00313c80 // cmp byte [rcx + rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_606 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x01317c80; BYTE $0x00 // cmp byte [rcx + rsi + 1], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_610 + +LBB4_607: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x02317c80; BYTE $0x00 // cmp byte [rcx + rsi + 2], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_608 + +LBB4_611: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x03317c80; BYTE $0x00 // cmp byte [rcx + rsi + 3], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_604 + JMP LBB4_612 + +LBB4_606: + LONG $0x110f41f2; WORD $0xf00c // movsd qword [r8 + 8*rsi], xmm1 + LONG $0x01317c80; BYTE $0x00 // cmp byte [rcx + rsi + 1], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_607 + +LBB4_610: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x08 // movsd qword [r8 + 8*rsi + 8], xmm1 + LONG $0x02317c80; BYTE $0x00 // cmp byte [rcx + rsi + 2], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_611 + +LBB4_608: + LONG $0x110f41f2; WORD $0xf04c; BYTE $0x10 // movsd qword [r8 + 8*rsi + 16], xmm1 + LONG $0x03317c80; BYTE $0x00 // cmp byte [rcx + rsi + 3], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_604 + +LBB4_612: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_604 + +LBB4_613: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000012085100ff2 // movsd xmm0, qword 288[rbp] /* [rip + .LCPI4_13] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + JMP LBB4_615 + +LBB4_614: + LONG $0x110f41f2; WORD $0xc05c; BYTE $0x08 // movsd qword [r8 + 8*rax + 8], xmm3 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_197 + +LBB4_615: + LONG $0x00813c83 // cmp dword [rcx + 4*rax], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_616 + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JLE LBB4_620 + +LBB4_617: + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x04817c83; BYTE $0x00 // cmp dword [rcx + 4*rax + 4], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_618 + +LBB4_621: + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_614 + JMP LBB4_622 + +LBB4_616: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_617 + +LBB4_620: + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0x110f41f2; WORD $0xc01c // movsd qword [r8 + 8*rax], xmm3 + LONG $0x04817c83; BYTE $0x00 // cmp dword [rcx + 4*rax + 4], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JE LBB4_621 + +LBB4_618: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_614 + +LBB4_622: + LONG $0xda280f66 // movapd xmm3, xmm2 + JMP LBB4_614 + +LBB4_673: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_999 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_675: + LONG $0x1c7e0ff3; BYTE $0xb1 // movq xmm3, qword [rcx + 4*rsi] + LONG $0x647e0ff3; WORD $0x08b1 // movq xmm4, qword [rcx + 4*rsi + 8] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x35380f66; BYTE $0xdb // pmovzxdq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x35380f66; BYTE $0xe4 // pmovzxdq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x10b1 // movq xmm3, qword [rcx + 4*rsi + 16] + LONG $0x647e0ff3; WORD $0x18b1 // movq xmm4, qword [rcx + 4*rsi + 24] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x35380f66; BYTE $0xdb // pmovzxdq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x35380f66; BYTE $0xe4 // pmovzxdq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_675 + JMP LBB4_1000 + +LBB4_676: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfe // and esi, -2 + LONG $0xfe468d48 // lea rax, [rsi - 2] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0xd149; BYTE $0xe9 // shr r9, 1 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1004 + WORD $0x894d; BYTE $0xce // mov r14, r9 + LONG $0xfee68349 // and r14, -2 + WORD $0xf749; BYTE $0xde // neg r14 + WORD $0xff31 // xor edi, edi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI4_1] */ + QUAD $0x000001189d100ff2 // movsd xmm3, qword 280[rbp] /* [rip + .LCPI4_6] */ + +LBB4_678: + LONG $0x24100f66; BYTE $0xf9 // movupd xmm4, oword [rcx + 8*rdi] + LONG $0xec280f66 // movapd xmm5, xmm4 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf5280f66 // movapd xmm6, xmm5 + LONG $0xf35c0ff2 // subsd xmm6, xmm3 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2c0f48f2; BYTE $0xd5 // cvttsd2si rdx, xmm5 + LONG $0xeb2e0f66 // ucomisd xmm5, xmm3 + LONG $0xd3430f48 // cmovae rdx, rbx + LONG $0xed700f66; BYTE $0xee // pshufd xmm5, xmm5, 238 + LONG $0xf56f0f66 // movdqa xmm6, xmm5 + LONG $0xf35c0ff2 // subsd xmm6, xmm3 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2c0f48f2; BYTE $0xc5 // cvttsd2si rax, xmm5 + LONG $0xeb2e0f66 // ucomisd xmm5, xmm3 + LONG $0xc3430f48 // cmovae rax, rbx + LONG $0x6e0f4866; BYTE $0xea // movq xmm5, rdx + LONG $0x6e0f4866; BYTE $0xf0 // movq xmm6, rax + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0x110f4166; WORD $0xf824 // movupd oword [r8 + 8*rdi], xmm4 + LONG $0x64100f66; WORD $0x10f9 // movupd xmm4, oword [rcx + 8*rdi + 16] + LONG $0xec280f66 // movapd xmm5, xmm4 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf5280f66 // movapd xmm6, xmm5 + LONG $0xf35c0ff2 // subsd xmm6, xmm3 + LONG $0x2c0f48f2; BYTE $0xc6 // cvttsd2si rax, xmm6 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2c0f48f2; BYTE $0xd5 // cvttsd2si rdx, xmm5 + LONG $0xeb2e0f66 // ucomisd xmm5, xmm3 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0xed700f66; BYTE $0xee // pshufd xmm5, xmm5, 238 + LONG $0xf56f0f66 // movdqa xmm6, xmm5 + LONG $0xf35c0ff2 // subsd xmm6, xmm3 + LONG $0x2c0f48f2; BYTE $0xc6 // cvttsd2si rax, xmm6 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0xeb2e0f66 // ucomisd xmm5, xmm3 + LONG $0xd8430f48 // cmovae rbx, rax + LONG $0x6e0f4866; BYTE $0xea // movq xmm5, rdx + LONG $0x6e0f4866; BYTE $0xf3 // movq xmm6, rbx + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0x110f4166; WORD $0xf864; BYTE $0x10 // movupd oword [r8 + 8*rdi + 16], xmm4 + LONG $0x04c78348 // add rdi, 4 + LONG $0x02c68349 // add r14, 2 + JNE LBB4_678 + JMP LBB4_1005 + +LBB4_689: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1010 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_691: + LONG $0x1c6e0f66; BYTE $0x71 // movd xmm3, dword [rcx + 2*rsi] + LONG $0x646e0f66; WORD $0x0471 // movd xmm4, dword [rcx + 2*rsi + 4] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x34380f66; BYTE $0xdb // pmovzxwq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x34380f66; BYTE $0xe4 // pmovzxwq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c6e0f66; WORD $0x0871 // movd xmm3, dword [rcx + 2*rsi + 8] + LONG $0x646e0f66; WORD $0x0c71 // movd xmm4, dword [rcx + 2*rsi + 12] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x34380f66; BYTE $0xdb // pmovzxwq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x34380f66; BYTE $0xe4 // pmovzxwq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_691 + JMP LBB4_1011 + +LBB4_692: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1015 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_694: + LONG $0x2c6e0f66; BYTE $0x71 // movd xmm5, dword [rcx + 2*rsi] + LONG $0x746e0f66; WORD $0x0471 // movd xmm6, dword [rcx + 2*rsi + 4] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x24380f66; BYTE $0xed // pmovsxwq xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x24380f66; BYTE $0xf6 // pmovsxwq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x6c6e0f66; WORD $0x0871 // movd xmm5, dword [rcx + 2*rsi + 8] + LONG $0x746e0f66; WORD $0x0c71 // movd xmm6, dword [rcx + 2*rsi + 12] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x24380f66; BYTE $0xed // pmovsxwq xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x24380f66; BYTE $0xf6 // pmovsxwq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_694 + JMP LBB4_1016 + +LBB4_700: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + QUAD $0x0000012c8d100ff3 // movss xmm1, dword 300[rbp] /* [rip + .LCPI4_9] */ + QUAD $0x000000000000b949; WORD $0x8000 // mov r9, -9223372036854775808 + JMP LBB4_703 + +LBB4_701: + WORD $0x500f; BYTE $0xd2 // movmskps edx, xmm2 + WORD $0xe283; BYTE $0x01 // and edx, 1 + WORD $0xdaf7 // neg edx + WORD $0xca83; BYTE $0x01 // or edx, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd22a0ff3 // cvtsi2ss xmm2, edx + WORD $0x280f; BYTE $0xda // movaps xmm3, xmm2 + LONG $0xd95c0ff3 // subss xmm3, xmm1 + LONG $0x2c0f48f3; BYTE $0xfb // cvttss2si rdi, xmm3 + WORD $0x314c; BYTE $0xcf // xor rdi, r9 + LONG $0x2c0f48f3; BYTE $0xd2 // cvttss2si rdx, xmm2 + WORD $0x2e0f; BYTE $0xd1 // ucomiss xmm2, xmm1 + LONG $0xd7430f48 // cmovae rdx, rdi + LONG $0xc0548949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdx + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_290 + +LBB4_703: + LONG $0x14100ff3; BYTE $0x81 // movss xmm2, dword [rcx + 4*rax] + WORD $0x2e0f; BYTE $0xc2 // ucomiss xmm0, xmm2 + JNE LBB4_705 + WORD $0xd231 // xor edx, edx + JMP LBB4_706 + +LBB4_705: + WORD $0x500f; BYTE $0xd2 // movmskps edx, xmm2 + WORD $0xe283; BYTE $0x01 // and edx, 1 + WORD $0xdaf7 // neg edx + WORD $0xca83; BYTE $0x01 // or edx, 1 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd22a0ff3 // cvtsi2ss xmm2, edx + WORD $0x280f; BYTE $0xda // movaps xmm3, xmm2 + LONG $0xd95c0ff3 // subss xmm3, xmm1 + LONG $0x2c0f48f3; BYTE $0xfb // cvttss2si rdi, xmm3 + WORD $0x314c; BYTE $0xcf // xor rdi, r9 + LONG $0x2c0f48f3; BYTE $0xd2 // cvttss2si rdx, xmm2 + WORD $0x2e0f; BYTE $0xd1 // ucomiss xmm2, xmm1 + LONG $0xd7430f48 // cmovae rdx, rdi + +LBB4_706: + LONG $0xc0148949 // mov qword [r8 + 8*rax], rdx + LONG $0x54100ff3; WORD $0x0481 // movss xmm2, dword [rcx + 4*rax + 4] + WORD $0x2e0f; BYTE $0xc2 // ucomiss xmm0, xmm2 + JNE LBB4_701 + WORD $0xd231 // xor edx, edx + LONG $0xc0548949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdx + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JNE LBB4_703 + +LBB4_290: + LONG $0x01c2f641 // test r10b, 1 + JE LBB4_1655 + LONG $0x04100ff3; BYTE $0x81 // movss xmm0, dword [rcx + 4*rax] + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + WORD $0x2e0f; BYTE $0xc8 // ucomiss xmm1, xmm0 + JNE LBB4_993 + WORD $0xc931 // xor ecx, ecx + LONG $0xc00c8949 // mov qword [r8 + 8*rax], rcx + JMP LBB4_1655 + +LBB4_713: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1021 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_715: + LONG $0x2c7e0ff3; BYTE $0xb1 // movq xmm5, qword [rcx + 4*rsi] + LONG $0x747e0ff3; WORD $0x08b1 // movq xmm6, qword [rcx + 4*rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x25380f66; BYTE $0xed // pmovsxdq xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x25380f66; BYTE $0xf6 // pmovsxdq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x10b1 // movq xmm5, qword [rcx + 4*rsi + 16] + LONG $0x747e0ff3; WORD $0x18b1 // movq xmm6, qword [rcx + 4*rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x25380f66; BYTE $0xed // pmovsxdq xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x25380f66; BYTE $0xf6 // pmovsxdq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_715 + JMP LBB4_1022 + +LBB4_716: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1137 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x70 // movdqa xmm2, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_718: + LONG $0x1c6f0ff3; BYTE $0xb1 // movdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646f0ff3; WORD $0x10b1 // movdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x701c // movdqu oword [r8 + 2*rsi], xmm3 + LONG $0x5c6f0ff3; WORD $0x20b1 // movdqu xmm3, oword [rcx + 4*rsi + 32] + LONG $0x646f0ff3; WORD $0x30b1 // movdqu xmm4, oword [rcx + 4*rsi + 48] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_718 + JMP LBB4_1138 + +LBB4_719: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1142 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x70 // movdqa xmm2, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_721: + LONG $0x1c6f0ff3; BYTE $0xb1 // movdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646f0ff3; WORD $0x10b1 // movdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x701c // movdqu oword [r8 + 2*rsi], xmm3 + LONG $0x5c6f0ff3; WORD $0x20b1 // movdqu xmm3, oword [rcx + 4*rsi + 32] + LONG $0x646f0ff3; WORD $0x30b1 // movdqu xmm4, oword [rcx + 4*rsi + 48] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_721 + JMP LBB4_1143 + +LBB4_722: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1147 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x65280f66; BYTE $0x10 // movapd xmm4, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_724: + LONG $0x2c100f66; BYTE $0xf9 // movupd xmm5, oword [rcx + 8*rdi] + LONG $0x74100f66; WORD $0x10f9 // movupd xmm6, oword [rcx + 8*rdi + 16] + LONG $0xc5280f66 // movapd xmm0, xmm5 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce280f66 // movapd xmm1, xmm6 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xeb540f66 // andpd xmm5, xmm3 + LONG $0xec560f66 // orpd xmm5, xmm4 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xede60f66 // cvttpd2dq xmm5, xmm5 + LONG $0xed700ff2; BYTE $0xe8 // pshuflw xmm5, xmm5, 232 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0xf6700ff2; BYTE $0xe8 // pshuflw xmm6, xmm6, 232 + LONG $0x10380f66; BYTE $0xea // pblendvb xmm5, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0x7e0f4166; WORD $0x782c // movd dword [r8 + 2*rdi], xmm5 + LONG $0x7e0f4166; WORD $0x7874; BYTE $0x04 // movd dword [r8 + 2*rdi + 4], xmm6 + LONG $0x6c100f66; WORD $0x20f9 // movupd xmm5, oword [rcx + 8*rdi + 32] + LONG $0x74100f66; WORD $0x30f9 // movupd xmm6, oword [rcx + 8*rdi + 48] + LONG $0xc5280f66 // movapd xmm0, xmm5 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce280f66 // movapd xmm1, xmm6 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xeb540f66 // andpd xmm5, xmm3 + LONG $0xec560f66 // orpd xmm5, xmm4 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xede60f66 // cvttpd2dq xmm5, xmm5 + LONG $0xed700ff2; BYTE $0xe8 // pshuflw xmm5, xmm5, 232 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0xf6700ff2; BYTE $0xe8 // pshuflw xmm6, xmm6, 232 + LONG $0x10380f66; BYTE $0xea // pblendvb xmm5, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0x7e0f4166; WORD $0x786c; BYTE $0x08 // movd dword [r8 + 2*rdi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x7874; BYTE $0x0c // movd dword [r8 + 2*rdi + 12], xmm6 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_724 + JMP LBB4_1148 + +LBB4_725: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1153 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x65280f66; BYTE $0x10 // movapd xmm4, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_727: + LONG $0x2c100f66; BYTE $0xf9 // movupd xmm5, oword [rcx + 8*rdi] + LONG $0x74100f66; WORD $0x10f9 // movupd xmm6, oword [rcx + 8*rdi + 16] + LONG $0xc5280f66 // movapd xmm0, xmm5 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce280f66 // movapd xmm1, xmm6 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xeb540f66 // andpd xmm5, xmm3 + LONG $0xec560f66 // orpd xmm5, xmm4 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xede60f66 // cvttpd2dq xmm5, xmm5 + LONG $0xed700ff2; BYTE $0xe8 // pshuflw xmm5, xmm5, 232 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0xf6700ff2; BYTE $0xe8 // pshuflw xmm6, xmm6, 232 + LONG $0x10380f66; BYTE $0xea // pblendvb xmm5, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0x7e0f4166; WORD $0x782c // movd dword [r8 + 2*rdi], xmm5 + LONG $0x7e0f4166; WORD $0x7874; BYTE $0x04 // movd dword [r8 + 2*rdi + 4], xmm6 + LONG $0x6c100f66; WORD $0x20f9 // movupd xmm5, oword [rcx + 8*rdi + 32] + LONG $0x74100f66; WORD $0x30f9 // movupd xmm6, oword [rcx + 8*rdi + 48] + LONG $0xc5280f66 // movapd xmm0, xmm5 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce280f66 // movapd xmm1, xmm6 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xeb540f66 // andpd xmm5, xmm3 + LONG $0xec560f66 // orpd xmm5, xmm4 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xede60f66 // cvttpd2dq xmm5, xmm5 + LONG $0xed700ff2; BYTE $0xe8 // pshuflw xmm5, xmm5, 232 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0xf6700ff2; BYTE $0xe8 // pshuflw xmm6, xmm6, 232 + LONG $0x10380f66; BYTE $0xea // pblendvb xmm5, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0x7e0f4166; WORD $0x786c; BYTE $0x08 // movd dword [r8 + 2*rdi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x7874; BYTE $0x0c // movd dword [r8 + 2*rdi + 12], xmm6 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_727 + JMP LBB4_1154 + +LBB4_738: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1027 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI4_17] */ + +LBB4_740: + LONG $0x1c6f0ff3; BYTE $0xf1 // movdqu xmm3, oword [rcx + 8*rsi] + LONG $0x646f0ff3; WORD $0x10f1 // movdqu xmm4, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x701c // movd dword [r8 + 2*rsi], xmm3 + LONG $0x7e0f4166; WORD $0x7064; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm4 + LONG $0x5c6f0ff3; WORD $0x20f1 // movdqu xmm3, oword [rcx + 8*rsi + 32] + LONG $0x646f0ff3; WORD $0x30f1 // movdqu xmm4, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x705c; BYTE $0x08 // movd dword [r8 + 2*rsi + 8], xmm3 + LONG $0x7e0f4166; WORD $0x7064; BYTE $0x0c // movd dword [r8 + 2*rsi + 12], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_740 + JMP LBB4_1028 + +LBB4_741: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1032 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI4_17] */ + +LBB4_743: + LONG $0x1c6f0ff3; BYTE $0xf1 // movdqu xmm3, oword [rcx + 8*rsi] + LONG $0x646f0ff3; WORD $0x10f1 // movdqu xmm4, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x701c // movd dword [r8 + 2*rsi], xmm3 + LONG $0x7e0f4166; WORD $0x7064; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm4 + LONG $0x5c6f0ff3; WORD $0x20f1 // movdqu xmm3, oword [rcx + 8*rsi + 32] + LONG $0x646f0ff3; WORD $0x30f1 // movdqu xmm4, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x705c; BYTE $0x08 // movd dword [r8 + 2*rsi + 8], xmm3 + LONG $0x7e0f4166; WORD $0x7064; BYTE $0x0c // movd dword [r8 + 2*rsi + 12], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_743 + JMP LBB4_1033 + +LBB4_764: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1037 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + +LBB4_766: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x702c // movd dword [r8 + 2*rsi], xmm5 + LONG $0x7e0f4166; WORD $0x7074; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm6 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x706c; BYTE $0x08 // movd dword [r8 + 2*rsi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x7074; BYTE $0x0c // movd dword [r8 + 2*rsi + 12], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_766 + JMP LBB4_1038 + +LBB4_767: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1159 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + +LBB4_769: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x702c // movd dword [r8 + 2*rsi], xmm5 + LONG $0x7e0f4166; WORD $0x7074; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm6 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x706c; BYTE $0x08 // movd dword [r8 + 2*rsi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x7074; BYTE $0x0c // movd dword [r8 + 2*rsi + 12], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_769 + JMP LBB4_1160 + +LBB4_770: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1165 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x760f4566; BYTE $0xc0 // pcmpeqd xmm8, xmm8 + LONG $0x756f0f66; BYTE $0x70 // movdqa xmm6, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_772: + LONG $0xb904100f // movups xmm0, oword [rcx + 4*rdi] + LONG $0xb94c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x7f0f41f3; WORD $0x783c // movdqu oword [r8 + 2*rdi], xmm7 + LONG $0xb944100f; BYTE $0x20 // movups xmm0, oword [rcx + 4*rdi + 32] + LONG $0xb94c100f; BYTE $0x30 // movups xmm1, oword [rcx + 4*rdi + 48] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xef6c0f66 // punpcklqdq xmm5, xmm7 + LONG $0x7f0f41f3; WORD $0x786c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm5 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_772 + JMP LBB4_1166 + +LBB4_773: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8568d48 // lea rdx, [rsi - 8] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1171 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x760f4566; BYTE $0xc0 // pcmpeqd xmm8, xmm8 + LONG $0x756f0f66; BYTE $0x70 // movdqa xmm6, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_775: + LONG $0xb904100f // movups xmm0, oword [rcx + 4*rdi] + LONG $0xb94c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rdi + 16] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x7f0f41f3; WORD $0x783c // movdqu oword [r8 + 2*rdi], xmm7 + LONG $0xb944100f; BYTE $0x20 // movups xmm0, oword [rcx + 4*rdi + 32] + LONG $0xb94c100f; BYTE $0x30 // movups xmm1, oword [rcx + 4*rdi + 48] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xef6c0f66 // punpcklqdq xmm5, xmm7 + LONG $0x7f0f41f3; WORD $0x786c; BYTE $0x10 // movdqu oword [r8 + 2*rdi + 16], xmm5 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_775 + JMP LBB4_1172 + +LBB4_786: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1043 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_788: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0x746f0ff3; WORD $0x10b1 // movdqu xmm6, oword [rcx + 4*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x702c // movdqu oword [r8 + 2*rsi], xmm5 + LONG $0x6c6f0ff3; WORD $0x20b1 // movdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746f0ff3; WORD $0x30b1 // movdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm5 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_788 + JMP LBB4_1044 + +LBB4_789: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1049 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + +LBB4_791: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0x746f0ff3; WORD $0x10b1 // movdqu xmm6, oword [rcx + 4*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x702c // movdqu oword [r8 + 2*rsi], xmm5 + LONG $0x6c6f0ff3; WORD $0x20b1 // movdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746f0ff3; WORD $0x30b1 // movdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm5 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_791 + JMP LBB4_1050 + +LBB4_792: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1177 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_794: + LONG $0x1c7e0ff3; BYTE $0xb1 // movq xmm3, qword [rcx + 4*rsi] + LONG $0x647e0ff3; WORD $0x08b1 // movq xmm4, qword [rcx + 4*rsi + 8] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x35380f66; BYTE $0xdb // pmovzxdq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x35380f66; BYTE $0xe4 // pmovzxdq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x10b1 // movq xmm3, qword [rcx + 4*rsi + 16] + LONG $0x647e0ff3; WORD $0x18b1 // movq xmm4, qword [rcx + 4*rsi + 24] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x35380f66; BYTE $0xdb // pmovzxdq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x35380f66; BYTE $0xe4 // pmovzxdq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_794 + JMP LBB4_1178 + +LBB4_795: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1182 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI4_19] */ + +LBB4_797: + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb014 // movdqu oword [r8 + 4*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20b1 // movdqu xmm2, oword [rcx + 4*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30b1 // movdqu xmm3, oword [rcx + 4*rsi + 48] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb054; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm3 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_797 + JMP LBB4_1183 + +LBB4_798: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1190 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_800: + LONG $0x1c100f66; BYTE $0xf1 // movupd xmm3, oword [rcx + 8*rsi] + LONG $0x64100f66; WORD $0x10f1 // movupd xmm4, oword [rcx + 8*rsi + 16] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0x6e0f4866; BYTE $0xfb // movq xmm7, rbx + LONG $0xed700f66; BYTE $0xee // pshufd xmm5, xmm5, 238 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0x6e0f4866; BYTE $0xeb // movq xmm5, rbx + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0x6e0f4866; BYTE $0xeb // movq xmm5, rbx + LONG $0xf6700f66; BYTE $0xee // pshufd xmm6, xmm6, 238 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0x6e0f4866; BYTE $0xf3 // movq xmm6, rbx + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdf540f66 // andpd xmm3, xmm7 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0x110f4166; WORD $0xf01c // movupd oword [r8 + 8*rsi], xmm3 + LONG $0x110f4166; WORD $0xf064; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c100f66; WORD $0x20f1 // movupd xmm3, oword [rcx + 8*rsi + 32] + LONG $0x64100f66; WORD $0x30f1 // movupd xmm4, oword [rcx + 8*rsi + 48] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0x6e0f4866; BYTE $0xfb // movq xmm7, rbx + LONG $0xed700f66; BYTE $0xee // pshufd xmm5, xmm5, 238 + LONG $0x2c0f48f2; BYTE $0xdd // cvttsd2si rbx, xmm5 + LONG $0x6e0f4866; BYTE $0xeb // movq xmm5, rbx + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0x6e0f4866; BYTE $0xeb // movq xmm5, rbx + LONG $0xf6700f66; BYTE $0xee // pshufd xmm6, xmm6, 238 + LONG $0x2c0f48f2; BYTE $0xde // cvttsd2si rbx, xmm6 + LONG $0x6e0f4866; BYTE $0xf3 // movq xmm6, rbx + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdf540f66 // andpd xmm3, xmm7 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm3 + LONG $0x110f4166; WORD $0xf064; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_800 + JMP LBB4_1191 + +LBB4_801: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1196 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0x570f4566; BYTE $0xc0 // xorpd xmm8, xmm8 + LONG $0x4d5a0f66; BYTE $0x10 // cvtpd2ps xmm1, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0x4d280f44; BYTE $0x20 // movaps xmm9, oword 32[rbp] /* [rip + .LCPI4_3] */ + LONG $0xd9160ff3 // movshdup xmm3, xmm1 + LONG $0xd9540f41 // andps xmm3, xmm9 + LONG $0xc9540f41 // andps xmm1, xmm9 + +LBB4_803: + LONG $0x24100f66; BYTE $0xf1 // movupd xmm4, oword [rcx + 8*rsi] + LONG $0x74100f66; WORD $0x10f1 // movupd xmm6, oword [rcx + 8*rsi + 16] + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0xec5a0ff2 // cvtsd2ss xmm5, xmm4 + LONG $0xc20f4166; WORD $0x00e0 // cmpeqpd xmm4, xmm8 + LONG $0xe8e4c60f // shufps xmm4, xmm4, 232 + WORD $0x570f; BYTE $0xff // xorps xmm7, xmm7 + LONG $0xfe5a0ff2 // cvtsd2ss xmm7, xmm6 + LONG $0xc20f4166; WORD $0x00f0 // cmpeqpd xmm6, xmm8 + LONG $0xe8f6c60f // shufps xmm6, xmm6, 232 + LONG $0x44100ff2; WORD $0x08f1 // movsd xmm0, qword [rcx + 8*rsi + 8] + LONG $0xc05a0ff2 // cvtsd2ss xmm0, xmm0 + LONG $0xd1280f41 // movaps xmm2, xmm9 + WORD $0x550f; BYTE $0xd0 // andnps xmm2, xmm0 + WORD $0x560f; BYTE $0xd3 // orps xmm2, xmm3 + LONG $0xc1280f41 // movaps xmm0, xmm9 + WORD $0x550f; BYTE $0xc5 // andnps xmm0, xmm5 + WORD $0x560f; BYTE $0xc1 // orps xmm0, xmm1 + WORD $0x140f; BYTE $0xc2 // unpcklps xmm0, xmm2 + WORD $0x550f; BYTE $0xe0 // andnps xmm4, xmm0 + LONG $0x44100ff2; WORD $0x18f1 // movsd xmm0, qword [rcx + 8*rsi + 24] + LONG $0xc05a0ff2 // cvtsd2ss xmm0, xmm0 + LONG $0xd1280f41 // movaps xmm2, xmm9 + WORD $0x550f; BYTE $0xd0 // andnps xmm2, xmm0 + WORD $0x560f; BYTE $0xd3 // orps xmm2, xmm3 + LONG $0xc1280f41 // movaps xmm0, xmm9 + WORD $0x550f; BYTE $0xc7 // andnps xmm0, xmm7 + WORD $0x560f; BYTE $0xc1 // orps xmm0, xmm1 + WORD $0x140f; BYTE $0xc2 // unpcklps xmm0, xmm2 + WORD $0x550f; BYTE $0xf0 // andnps xmm6, xmm0 + WORD $0x160f; BYTE $0xe6 // movlhps xmm4, xmm6 + LONG $0x24110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm4 + LONG $0x64100f66; WORD $0x20f1 // movupd xmm4, oword [rcx + 8*rsi + 32] + LONG $0x44100f66; WORD $0x30f1 // movupd xmm0, oword [rcx + 8*rsi + 48] + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0xd45a0ff2 // cvtsd2ss xmm2, xmm4 + LONG $0xc20f4166; WORD $0x00e0 // cmpeqpd xmm4, xmm8 + LONG $0xe8e4c60f // shufps xmm4, xmm4, 232 + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0xe85a0ff2 // cvtsd2ss xmm5, xmm0 + LONG $0xc20f4166; WORD $0x00c0 // cmpeqpd xmm0, xmm8 + LONG $0x74100ff2; WORD $0x28f1 // movsd xmm6, qword [rcx + 8*rsi + 40] + LONG $0xf65a0ff2 // cvtsd2ss xmm6, xmm6 + LONG $0xe8c0c60f // shufps xmm0, xmm0, 232 + LONG $0xf9280f41 // movaps xmm7, xmm9 + WORD $0x550f; BYTE $0xfe // andnps xmm7, xmm6 + WORD $0x560f; BYTE $0xfb // orps xmm7, xmm3 + LONG $0xf1280f41 // movaps xmm6, xmm9 + WORD $0x550f; BYTE $0xf2 // andnps xmm6, xmm2 + WORD $0x560f; BYTE $0xf1 // orps xmm6, xmm1 + WORD $0x140f; BYTE $0xf7 // unpcklps xmm6, xmm7 + WORD $0x550f; BYTE $0xe6 // andnps xmm4, xmm6 + LONG $0x54100ff2; WORD $0x38f1 // movsd xmm2, qword [rcx + 8*rsi + 56] + LONG $0xd25a0ff2 // cvtsd2ss xmm2, xmm2 + LONG $0xf1280f41 // movaps xmm6, xmm9 + WORD $0x550f; BYTE $0xf2 // andnps xmm6, xmm2 + WORD $0x560f; BYTE $0xf3 // orps xmm6, xmm3 + LONG $0xd1280f41 // movaps xmm2, xmm9 + WORD $0x550f; BYTE $0xd5 // andnps xmm2, xmm5 + WORD $0x560f; BYTE $0xd1 // orps xmm2, xmm1 + WORD $0x140f; BYTE $0xd6 // unpcklps xmm2, xmm6 + WORD $0x550f; BYTE $0xc2 // andnps xmm0, xmm2 + WORD $0x160f; BYTE $0xe0 // movlhps xmm4, xmm0 + LONG $0x64110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_803 + JMP LBB4_1197 + +LBB4_819: + WORD $0xe283; BYTE $0xfc // and edx, -4 + WORD $0xf631 // xor esi, esi + QUAD $0x0000012885100ff3 // movss xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_821 + +LBB4_820: + LONG $0x110f41f3; WORD $0xb04c; BYTE $0x0c // movss dword [r8 + 4*rsi + 12], xmm1 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JE LBB4_387 + +LBB4_821: + LONG $0xf13c8348; BYTE $0x00 // cmp qword [rcx + 8*rsi], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_822 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f3; WORD $0xb00c // movss dword [r8 + 4*rsi], xmm1 + LONG $0xf17c8348; WORD $0x0008 // cmp qword [rcx + 8*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_826 + +LBB4_823: + LONG $0x110f41f3; WORD $0xb04c; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm1 + LONG $0xf17c8348; WORD $0x0010 // cmp qword [rcx + 8*rsi + 16], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_824 + +LBB4_827: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f3; WORD $0xb04c; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm1 + LONG $0xf17c8348; WORD $0x0018 // cmp qword [rcx + 8*rsi + 24], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_820 + JMP LBB4_828 + +LBB4_822: + LONG $0x110f41f3; WORD $0xb00c // movss dword [r8 + 4*rsi], xmm1 + LONG $0xf17c8348; WORD $0x0008 // cmp qword [rcx + 8*rsi + 8], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_823 + +LBB4_826: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0x110f41f3; WORD $0xb04c; BYTE $0x04 // movss dword [r8 + 4*rsi + 4], xmm1 + LONG $0xf17c8348; WORD $0x0010 // cmp qword [rcx + 8*rsi + 16], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JE LBB4_827 + +LBB4_824: + LONG $0x110f41f3; WORD $0xb04c; BYTE $0x08 // movss dword [r8 + 4*rsi + 8], xmm1 + LONG $0xf17c8348; WORD $0x0018 // cmp qword [rcx + 8*rsi + 24], 0 + LONG $0xc8280f66 // movapd xmm1, xmm0 + JNE LBB4_820 + +LBB4_828: + LONG $0xc9570f66 // xorpd xmm1, xmm1 + JMP LBB4_820 + +LBB4_829: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1055 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_831: + LONG $0x1c6e0f66; BYTE $0x71 // movd xmm3, dword [rcx + 2*rsi] + LONG $0x646e0f66; WORD $0x0471 // movd xmm4, dword [rcx + 2*rsi + 4] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x34380f66; BYTE $0xdb // pmovzxwq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x34380f66; BYTE $0xe4 // pmovzxwq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c6e0f66; WORD $0x0871 // movd xmm3, dword [rcx + 2*rsi + 8] + LONG $0x646e0f66; WORD $0x0c71 // movd xmm4, dword [rcx + 2*rsi + 12] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x34380f66; BYTE $0xdb // pmovzxwq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x34380f66; BYTE $0xe4 // pmovzxwq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_831 + JMP LBB4_1056 + +LBB4_832: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1204 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_834: + LONG $0x1c7e0ff3; BYTE $0x71 // movq xmm3, qword [rcx + 2*rsi] + LONG $0x647e0ff3; WORD $0x0871 // movq xmm4, qword [rcx + 2*rsi + 8] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + LONG $0x1c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm3 + LONG $0x64110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x1071 // movq xmm3, qword [rcx + 2*rsi + 16] + LONG $0x647e0ff3; WORD $0x1871 // movq xmm4, qword [rcx + 2*rsi + 24] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + LONG $0x5c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm3 + LONG $0x64110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_834 + JMP LBB4_1205 + +LBB4_835: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1212 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_837: + LONG $0x2c6e0f66; BYTE $0x71 // movd xmm5, dword [rcx + 2*rsi] + LONG $0x746e0f66; WORD $0x0471 // movd xmm6, dword [rcx + 2*rsi + 4] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x24380f66; BYTE $0xed // pmovsxwq xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x24380f66; BYTE $0xf6 // pmovsxwq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x6c6e0f66; WORD $0x0871 // movd xmm5, dword [rcx + 2*rsi + 8] + LONG $0x746e0f66; WORD $0x0c71 // movd xmm6, dword [rcx + 2*rsi + 12] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x24380f66; BYTE $0xed // pmovsxwq xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x24380f66; BYTE $0xf6 // pmovsxwq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_837 + JMP LBB4_1213 + +LBB4_838: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1218 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + +LBB4_840: + LONG $0x2c7e0ff3; BYTE $0x71 // movq xmm5, qword [rcx + 2*rsi] + LONG $0x747e0ff3; WORD $0x0871 // movq xmm6, qword [rcx + 2*rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x1071 // movq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747e0ff3; WORD $0x1871 // movq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_840 + JMP LBB4_1219 + +LBB4_846: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000013085100ff3 // movss xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000001288d100ff3 // movss xmm1, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_848 + +LBB4_847: + LONG $0x110f41f3; WORD $0x805c; BYTE $0x04 // movss dword [r8 + 4*rax + 4], xmm3 + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_410 + +LBB4_848: + LONG $0xc13c8348; BYTE $0x00 // cmp qword [rcx + 8*rax], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_849 + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JLE LBB4_853 + +LBB4_850: + LONG $0x110f41f3; WORD $0x801c // movss dword [r8 + 4*rax], xmm3 + LONG $0xc17c8348; WORD $0x0008 // cmp qword [rcx + 8*rax + 8], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JNE LBB4_851 + +LBB4_854: + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_847 + JMP LBB4_855 + +LBB4_849: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_850 + +LBB4_853: + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0x110f41f3; WORD $0x801c // movss dword [r8 + 4*rax], xmm3 + LONG $0xc17c8348; WORD $0x0008 // cmp qword [rcx + 8*rax + 8], 0 + LONG $0xd0280f66 // movapd xmm2, xmm0 + JE LBB4_854 + +LBB4_851: + LONG $0xd9280f66 // movapd xmm3, xmm1 + JG LBB4_847 + +LBB4_855: + LONG $0xda280f66 // movapd xmm3, xmm2 + JMP LBB4_847 + +LBB4_856: + WORD $0xd689 // mov esi, edx + WORD $0xe683; BYTE $0xfe // and esi, -2 + WORD $0xc031 // xor eax, eax + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + JMP LBB4_859 + +LBB4_857: + WORD $0x500f; BYTE $0xf9 // movmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xcf2a0ff3 // cvtsi2ss xmm1, edi + LONG $0x2c0f48f3; BYTE $0xf9 // cvttss2si rdi, xmm1 + LONG $0xc07c8949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdi + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_416 + +LBB4_859: + LONG $0x0c100ff3; BYTE $0x81 // movss xmm1, dword [rcx + 4*rax] + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + JNE LBB4_861 + WORD $0xff31 // xor edi, edi + JMP LBB4_862 + +LBB4_861: + WORD $0x500f; BYTE $0xf9 // movmskps edi, xmm1 + WORD $0xe783; BYTE $0x01 // and edi, 1 + WORD $0xdff7 // neg edi + WORD $0xcf83; BYTE $0x01 // or edi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xcf2a0ff3 // cvtsi2ss xmm1, edi + LONG $0x2c0f48f3; BYTE $0xf9 // cvttss2si rdi, xmm1 + +LBB4_862: + LONG $0xc03c8949 // mov qword [r8 + 8*rax], rdi + LONG $0x4c100ff3; WORD $0x0481 // movss xmm1, dword [rcx + 4*rax + 4] + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + JNE LBB4_857 + WORD $0xff31 // xor edi, edi + LONG $0xc07c8949; BYTE $0x08 // mov qword [r8 + 8*rax + 8], rdi + LONG $0x02c08348 // add rax, 2 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JNE LBB4_859 + +LBB4_416: + WORD $0xc2f6; BYTE $0x01 // test dl, 1 + JE LBB4_1655 + LONG $0x04100ff3; BYTE $0x81 // movss xmm0, dword [rcx + 4*rax] + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + WORD $0x2e0f; BYTE $0xc8 // ucomiss xmm1, xmm0 + JNE LBB4_1104 + WORD $0xc931 // xor ecx, ecx + JMP LBB4_1105 + +LBB4_884: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1060 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_886: + LONG $0x2c7e0ff3; BYTE $0xb1 // movq xmm5, qword [rcx + 4*rsi] + LONG $0x747e0ff3; WORD $0x08b1 // movq xmm6, qword [rcx + 4*rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x25380f66; BYTE $0xed // pmovsxdq xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x25380f66; BYTE $0xf6 // pmovsxdq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x10b1 // movq xmm5, qword [rcx + 4*rsi + 16] + LONG $0x747e0ff3; WORD $0x18b1 // movq xmm6, qword [rcx + 4*rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x25380f66; BYTE $0xed // pmovsxdq xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x25380f66; BYTE $0xf6 // pmovsxdq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_886 + JMP LBB4_1061 + +LBB4_887: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1066 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + +LBB4_889: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0x746f0ff3; WORD $0x10b1 // movdqu xmm6, oword [rcx + 4*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c6f0ff3; WORD $0x20b1 // movdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746f0ff3; WORD $0x30b1 // movdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_889 + JMP LBB4_1067 + +LBB4_945: + WORD $0xc689 // mov esi, eax + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc568d48 // lea rdx, [rsi - 4] + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xd2 // test rdx, rdx + JE LBB4_1076 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0xfee28348 // and rdx, -2 + WORD $0xf748; BYTE $0xda // neg rdx + WORD $0xff31 // xor edi, edi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_947: + LONG $0x1c100f66; BYTE $0xf9 // movupd xmm3, oword [rcx + 8*rdi] + LONG $0x64100f66; WORD $0x10f9 // movupd xmm4, oword [rcx + 8*rdi + 16] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe8c20f66; BYTE $0x00 // cmpeqpd xmm5, xmm0 + LONG $0xe8edc60f // shufps xmm5, xmm5, 232 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf0c20f66; BYTE $0x00 // cmpeqpd xmm6, xmm0 + LONG $0xe8f6c60f // shufps xmm6, xmm6, 232 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xe1540f66 // andpd xmm4, xmm1 + LONG $0xe2560f66 // orpd xmm4, xmm2 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + LONG $0xe4e60f66 // cvttpd2dq xmm4, xmm4 + WORD $0x550f; BYTE $0xeb // andnps xmm5, xmm3 + WORD $0x550f; BYTE $0xf4 // andnps xmm6, xmm4 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x2c110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm5 + LONG $0x5c100f66; WORD $0x20f9 // movupd xmm3, oword [rcx + 8*rdi + 32] + LONG $0x64100f66; WORD $0x30f9 // movupd xmm4, oword [rcx + 8*rdi + 48] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe8c20f66; BYTE $0x00 // cmpeqpd xmm5, xmm0 + LONG $0xe8edc60f // shufps xmm5, xmm5, 232 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf0c20f66; BYTE $0x00 // cmpeqpd xmm6, xmm0 + LONG $0xe8f6c60f // shufps xmm6, xmm6, 232 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xe1540f66 // andpd xmm4, xmm1 + LONG $0xe2560f66 // orpd xmm4, xmm2 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + WORD $0x550f; BYTE $0xeb // andnps xmm5, xmm3 + LONG $0xdce60f66 // cvttpd2dq xmm3, xmm4 + WORD $0x550f; BYTE $0xf3 // andnps xmm6, xmm3 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x6c110f41; WORD $0x10b8 // movups oword [r8 + 4*rdi + 16], xmm5 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28348 // add rdx, 2 + JNE LBB4_947 + JMP LBB4_1077 + +LBB4_953: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1082 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000a08d6f0f66 // movdqa xmm1, oword 160[rbp] /* [rip + .LCPI4_16] */ + +LBB4_955: + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0xb014 // movdqu oword [r8 + 4*rsi], xmm2 + LONG $0x546f0ff3; WORD $0x20f1 // movdqu xmm2, oword [rcx + 8*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30f1 // movdqu xmm3, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0xb054; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm2 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_955 + JMP LBB4_1083 + +LBB4_956: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1087 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_958: + LONG $0x1c7e0ff3; BYTE $0x71 // movq xmm3, qword [rcx + 2*rsi] + LONG $0x647e0ff3; WORD $0x0871 // movq xmm4, qword [rcx + 2*rsi + 8] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb01c // movdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x1071 // movq xmm3, qword [rcx + 2*rsi + 16] + LONG $0x647e0ff3; WORD $0x1871 // movq xmm4, qword [rcx + 2*rsi + 24] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x33380f66; BYTE $0xdb // pmovzxwd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x33380f66; BYTE $0xe4 // pmovzxwd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_958 + JMP LBB4_1088 + +LBB4_959: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1092 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_961: + LONG $0x2c7e0ff3; BYTE $0x71 // movq xmm5, qword [rcx + 2*rsi] + LONG $0x747e0ff3; WORD $0x0871 // movq xmm6, qword [rcx + 2*rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x1071 // movq xmm5, qword [rcx + 2*rsi + 16] + LONG $0x747e0ff3; WORD $0x1871 // movq xmm6, qword [rcx + 2*rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x23380f66; BYTE $0xed // pmovsxwd xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x23380f66; BYTE $0xf6 // pmovsxwd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_961 + JMP LBB4_1093 + +LBB4_962: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1098 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xa0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 160[rbp] /* [rip + .LCPI4_16] */ + +LBB4_964: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xed700f66; BYTE $0xe8 // pshufd xmm5, xmm5, 232 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf6700f66; BYTE $0xe8 // pshufd xmm6, xmm6, 232 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xed700f66; BYTE $0xe8 // pshufd xmm5, xmm5, 232 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf6700f66; BYTE $0xe8 // pshufd xmm6, xmm6, 232 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + WORD $0x160f; BYTE $0xee // movlhps xmm5, xmm6 + LONG $0x6c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm5 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_964 + JMP LBB4_1099 + +LBB4_965: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_966: + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xe26f0f66 // movdqa xmm4, xmm2 + LONG $0xe4720f66; BYTE $0x1f // psrad xmm4, 31 + LONG $0xe1eb0f66 // por xmm4, xmm1 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xe5720f66; BYTE $0x1f // psrad xmm5, 31 + LONG $0xe9eb0f66 // por xmm5, xmm1 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xe45b0ff3 // cvttps2dq xmm4, xmm4 + LONG $0xed5b0ff3 // cvttps2dq xmm5, xmm5 + LONG $0x04d0c20f // cmpneqps xmm2, xmm0 + WORD $0x540f; BYTE $0xd4 // andps xmm2, xmm4 + LONG $0x04d8c20f // cmpneqps xmm3, xmm0 + WORD $0x540f; BYTE $0xdd // andps xmm3, xmm5 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + LONG $0x08c68348 // add rsi, 8 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_966 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_968: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + JMP LBB4_970 + +LBB4_969: + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_970: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + WORD $0xf631 // xor esi, esi + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + JE LBB4_969 + WORD $0x500f; BYTE $0xf1 // movmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xce2a0ff3 // cvtsi2ss xmm1, esi + LONG $0xf12c0ff3 // cvttss2si esi, xmm1 + JMP LBB4_969 + +LBB4_496: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1228 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_498: + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb014 // movdqu oword [r8 + 4*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20b1 // movdqu xmm2, oword [rcx + 4*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30b1 // movdqu xmm3, oword [rcx + 4*rsi + 48] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb054; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm3 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_498 + JMP LBB4_1229 + +LBB4_504: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1236 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_506: + LONG $0x2c6e0f66; BYTE $0x31 // movd xmm5, dword [rcx + rsi] + LONG $0x746e0f66; WORD $0x0431 // movd xmm6, dword [rcx + rsi + 4] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c6e0f66; WORD $0x0831 // movd xmm5, dword [rcx + rsi + 8] + LONG $0x746e0f66; WORD $0x0c31 // movd xmm6, dword [rcx + rsi + 12] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_506 + JMP LBB4_1237 + +LBB4_524: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1245 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_526: + LONG $0x1c6e0f66; BYTE $0x31 // movd xmm3, dword [rcx + rsi] + LONG $0x646e0f66; WORD $0x0431 // movd xmm4, dword [rcx + rsi + 4] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb01c // movdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c6e0f66; WORD $0x0831 // movd xmm3, dword [rcx + rsi + 8] + LONG $0x646e0f66; WORD $0x0c31 // movd xmm4, dword [rcx + rsi + 12] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_526 + JMP LBB4_1246 + +LBB4_529: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1253 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_531: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0x746f0ff3; WORD $0x10b1 // movdqu xmm6, oword [rcx + 4*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0x3c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm7 + LONG $0x6c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20b1 // movdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746f0ff3; WORD $0x30b1 // movdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0x7c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm7 + LONG $0x6c110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm5 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_531 + JMP LBB4_1254 + +LBB4_544: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1262 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x55280f66; BYTE $0x10 // movapd xmm2, oword 16[rbp] /* [rip + .LCPI4_1] */ + +LBB4_546: + LONG $0x1c100f66; BYTE $0xf1 // movupd xmm3, oword [rcx + 8*rsi] + LONG $0x64100f66; WORD $0x10f1 // movupd xmm4, oword [rcx + 8*rsi + 16] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe6540f66 // andpd xmm4, xmm6 + LONG $0x110f4166; WORD $0xf01c // movupd oword [r8 + 8*rsi], xmm3 + LONG $0x110f4166; WORD $0xf064; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm4 + LONG $0x5c100f66; WORD $0x20f1 // movupd xmm3, oword [rcx + 8*rsi + 32] + LONG $0x64100f66; WORD $0x30f1 // movupd xmm4, oword [rcx + 8*rsi + 48] + LONG $0xeb280f66 // movapd xmm5, xmm3 + LONG $0xe9540f66 // andpd xmm5, xmm1 + LONG $0xea560f66 // orpd xmm5, xmm2 + LONG $0xf4280f66 // movapd xmm6, xmm4 + LONG $0xf1540f66 // andpd xmm6, xmm1 + LONG $0xf2560f66 // orpd xmm6, xmm2 + LONG $0xd8c20f66; BYTE $0x04 // cmpneqpd xmm3, xmm0 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xe0c20f66; BYTE $0x04 // cmpneqpd xmm4, xmm0 + LONG $0xe6540f66 // andpd xmm4, xmm6 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm3 + LONG $0x110f4166; WORD $0xf064; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_546 + JMP LBB4_1263 + +LBB4_625: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1271 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000080956f0f66 // movdqa xmm2, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_627: + LONG $0x1c6f0ff3; BYTE $0xb1 // movdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646f0ff3; WORD $0x10b1 // movdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x301c // movd dword [r8 + rsi], xmm3 + LONG $0x7e0f4166; WORD $0x3064; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm4 + LONG $0x5c6f0ff3; WORD $0x20b1 // movdqu xmm3, oword [rcx + 4*rsi + 32] + LONG $0x646f0ff3; WORD $0x30b1 // movdqu xmm4, oword [rcx + 4*rsi + 48] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x305c; BYTE $0x08 // movd dword [r8 + rsi + 8], xmm3 + LONG $0x7e0f4166; WORD $0x3064; BYTE $0x0c // movd dword [r8 + rsi + 12], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_627 + JMP LBB4_1272 + +LBB4_630: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1279 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x65280f66; BYTE $0x10 // movapd xmm4, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0x6d6f0f66; BYTE $0x40 // movdqa xmm5, oword 64[rbp] /* [rip + .LCPI4_7] */ + +LBB4_632: + LONG $0x34100f66; BYTE $0xf1 // movupd xmm6, oword [rcx + 8*rsi] + LONG $0x7c100f66; WORD $0x10f1 // movupd xmm7, oword [rcx + 8*rsi + 16] + LONG $0xc6280f66 // movapd xmm0, xmm6 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcf280f66 // movapd xmm1, xmm7 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xfb540f66 // andpd xmm7, xmm3 + LONG $0xfc560f66 // orpd xmm7, xmm4 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0x00380f66; BYTE $0xf5 // pshufb xmm6, xmm5 + LONG $0xffe60f66 // cvttpd2dq xmm7, xmm7 + LONG $0x00380f66; BYTE $0xfd // pshufb xmm7, xmm5 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfa // pblendvb xmm7, xmm2, xmm0 + QUAD $0x003034153a0f4166 // pextrw word [r8 + rsi], xmm6, 0 + QUAD $0x02307c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm7, 0 + LONG $0x74100f66; WORD $0x20f1 // movupd xmm6, oword [rcx + 8*rsi + 32] + LONG $0x7c100f66; WORD $0x30f1 // movupd xmm7, oword [rcx + 8*rsi + 48] + LONG $0xc6280f66 // movapd xmm0, xmm6 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcf280f66 // movapd xmm1, xmm7 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xfb540f66 // andpd xmm7, xmm3 + LONG $0xfc560f66 // orpd xmm7, xmm4 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0x00380f66; BYTE $0xf5 // pshufb xmm6, xmm5 + LONG $0xffe60f66 // cvttpd2dq xmm7, xmm7 + LONG $0x00380f66; BYTE $0xfd // pshufb xmm7, xmm5 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfa // pblendvb xmm7, xmm2, xmm0 + QUAD $0x043074153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 4], xmm6, 0 + QUAD $0x06307c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 6], xmm7, 0 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_632 + JMP LBB4_1280 + +LBB4_635: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1288 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000100a56f0f66 // movdqa xmm4, oword 256[rbp] /* [rip + .LCPI4_22] */ + +LBB4_637: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_637 + JMP LBB4_1289 + +LBB4_640: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1297 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_642: + LONG $0x1c6f0ff3; BYTE $0xf1 // movdqu xmm3, oword [rcx + 8*rsi] + LONG $0x646f0ff3; WORD $0x10f1 // movdqu xmm4, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x00301c153a0f4166 // pextrw word [r8 + rsi], xmm3, 0 + LONG $0xe2db0f66 // pand xmm4, xmm2 + QUAD $0x023064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm4, 0 + LONG $0x5c6f0ff3; WORD $0x20f1 // movdqu xmm3, oword [rcx + 8*rsi + 32] + LONG $0x646f0ff3; WORD $0x30f1 // movdqu xmm4, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x04305c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 4], xmm3, 0 + LONG $0xe2db0f66 // pand xmm4, xmm2 + QUAD $0x063064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 6], xmm4, 0 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_642 + JMP LBB4_1298 + +LBB4_645: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1305 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000f0956f0f66 // movdqa xmm2, oword 240[rbp] /* [rip + .LCPI4_21] */ + +LBB4_647: + LONG $0x1c6f0ff3; BYTE $0x71 // movdqu xmm3, oword [rcx + 2*rsi] + LONG $0x646f0ff3; WORD $0x1071 // movdqu xmm4, oword [rcx + 2*rsi + 16] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x301c // movdqu oword [r8 + rsi], xmm3 + LONG $0x5c6f0ff3; WORD $0x2071 // movdqu xmm3, oword [rcx + 2*rsi + 32] + LONG $0x646f0ff3; WORD $0x3071 // movdqu xmm4, oword [rcx + 2*rsi + 48] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm3 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_647 + JMP LBB4_1306 + +LBB4_650: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1313 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + +LBB4_652: + LONG $0x2c6f0ff3; BYTE $0x41 // movdqu xmm5, oword [rcx + 2*rax] + LONG $0x746f0ff3; WORD $0x1041 // movdqu xmm6, oword [rcx + 2*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x6c6f0ff3; WORD $0x2041 // movdqu xmm5, oword [rcx + 2*rax + 32] + LONG $0x746f0ff3; WORD $0x3041 // movdqu xmm6, oword [rcx + 2*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x20c08348 // add rax, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_652 + JMP LBB4_1314 + +LBB4_655: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1322 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_657: + LONG $0x2c6f0ff3; BYTE $0xc1 // movdqu xmm5, oword [rcx + 8*rax] + LONG $0x746f0ff3; WORD $0x10c1 // movdqu xmm6, oword [rcx + 8*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + QUAD $0x00002c153a0f4166 // pextrw word [r8 + rax], xmm5, 0 + QUAD $0x020074153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 2], xmm6, 0 + LONG $0x6c6f0ff3; WORD $0x20c1 // movdqu xmm5, oword [rcx + 8*rax + 32] + LONG $0x746f0ff3; WORD $0x30c1 // movdqu xmm6, oword [rcx + 8*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + QUAD $0x04006c153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 4], xmm5, 0 + QUAD $0x060074153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 6], xmm6, 0 + LONG $0x08c08348 // add rax, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_657 + JMP LBB4_1323 + +LBB4_660: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1331 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x760f4566; BYTE $0xc0 // pcmpeqd xmm8, xmm8 + QUAD $0x00000080b56f0f66 // movdqa xmm6, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_662: + LONG $0xb104100f // movups xmm0, oword [rcx + 4*rsi] + LONG $0xb14c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rsi + 16] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x303c // movd dword [r8 + rsi], xmm7 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm5 + LONG $0xb144100f; BYTE $0x20 // movups xmm0, oword [rcx + 4*rsi + 32] + LONG $0xb14c100f; BYTE $0x30 // movups xmm1, oword [rcx + 4*rsi + 48] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x08 // movd dword [r8 + rsi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x307c; BYTE $0x0c // movd dword [r8 + rsi + 12], xmm7 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_662 + JMP LBB4_1332 + +LBB4_665: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1340 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000001008d6f0f66 // movdqa xmm1, oword 256[rbp] /* [rip + .LCPI4_22] */ + +LBB4_667: + LONG $0x146f0ff3; BYTE $0x31 // movdqu xmm2, oword [rcx + rsi] + LONG $0x5c6f0ff3; WORD $0x1031 // movdqu xmm3, oword [rcx + rsi + 16] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x3014 // movdqu oword [r8 + rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x2031 // movdqu xmm2, oword [rcx + rsi + 32] + LONG $0x5c6f0ff3; WORD $0x3031 // movdqu xmm3, oword [rcx + rsi + 48] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x3054; BYTE $0x20 // movdqu oword [r8 + rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x30 // movdqu oword [r8 + rsi + 48], xmm3 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_667 + JMP LBB4_1341 + +LBB4_670: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1348 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_672: + LONG $0x2c6f0ff3; BYTE $0x81 // movdqu xmm5, oword [rcx + 4*rax] + LONG $0x746f0ff3; WORD $0x1081 // movdqu xmm6, oword [rcx + 4*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x002c // movd dword [r8 + rax], xmm5 + LONG $0x7e0f4166; WORD $0x0074; BYTE $0x04 // movd dword [r8 + rax + 4], xmm6 + LONG $0x6c6f0ff3; WORD $0x2081 // movdqu xmm5, oword [rcx + 4*rax + 32] + LONG $0x746f0ff3; WORD $0x3081 // movdqu xmm6, oword [rcx + 4*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x006c; BYTE $0x08 // movd dword [r8 + rax + 8], xmm5 + LONG $0x7e0f4166; WORD $0x0074; BYTE $0x0c // movd dword [r8 + rax + 12], xmm6 + LONG $0x10c08348 // add rax, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_672 + JMP LBB4_1349 + +LBB4_681: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1357 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_683: + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x22380f66; BYTE $0xed // pmovsxbq xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x22380f66; BYTE $0xf6 // pmovsxbq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x3144b70f; BYTE $0x04 // movzx eax, word [rcx + rsi + 4] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x3144b70f; BYTE $0x06 // movzx eax, word [rcx + rsi + 6] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x22380f66; BYTE $0xed // pmovsxbq xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x22380f66; BYTE $0xf6 // pmovsxbq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_683 + JMP LBB4_1358 + +LBB4_686: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1366 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000908d6f0f66 // movdqa xmm1, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_688: + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xf014 // movdqu oword [r8 + 8*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20f1 // movdqu xmm2, oword [rcx + 8*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30f1 // movdqu xmm3, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xf054; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm3 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_688 + JMP LBB4_1367 + +LBB4_697: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1374 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_699: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x110f4166; WORD $0xf03c // movupd oword [r8 + 8*rsi], xmm7 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x110f4166; WORD $0xf07c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm7 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm5 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_699 + JMP LBB4_1375 + +LBB4_710: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1383 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_712: + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x32380f66; BYTE $0xdb // pmovzxbq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x32380f66; BYTE $0xe4 // pmovzxbq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x3144b70f; BYTE $0x04 // movzx eax, word [rcx + rsi + 4] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x3144b70f; BYTE $0x06 // movzx eax, word [rcx + rsi + 6] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x32380f66; BYTE $0xdb // pmovzxbq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x32380f66; BYTE $0xe4 // pmovzxbq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_712 + JMP LBB4_1384 + +LBB4_730: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1391 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_732: + LONG $0x2c7e0ff3; BYTE $0x31 // movq xmm5, qword [rcx + rsi] + LONG $0x747e0ff3; WORD $0x0831 // movq xmm6, qword [rcx + rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x20380f66; BYTE $0xed // pmovsxbw xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x20380f66; BYTE $0xf6 // pmovsxbw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x702c // movdqu oword [r8 + 2*rsi], xmm5 + LONG $0x7f0f41f3; WORD $0x7074; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x1031 // movq xmm5, qword [rcx + rsi + 16] + LONG $0x747e0ff3; WORD $0x1831 // movq xmm6, qword [rcx + rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x20380f66; BYTE $0xed // pmovsxbw xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x20380f66; BYTE $0xf6 // pmovsxbw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm5 + LONG $0x7f0f41f3; WORD $0x7074; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm6 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_732 + JMP LBB4_1392 + +LBB4_735: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1400 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_737: + LONG $0x2c7e0ff3; BYTE $0x31 // movq xmm5, qword [rcx + rsi] + LONG $0x747e0ff3; WORD $0x0831 // movq xmm6, qword [rcx + rsi + 8] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x20380f66; BYTE $0xed // pmovsxbw xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x20380f66; BYTE $0xf6 // pmovsxbw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x702c // movdqu oword [r8 + 2*rsi], xmm5 + LONG $0x7f0f41f3; WORD $0x7074; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm6 + LONG $0x6c7e0ff3; WORD $0x1031 // movq xmm5, qword [rcx + rsi + 16] + LONG $0x747e0ff3; WORD $0x1831 // movq xmm6, qword [rcx + rsi + 24] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x20380f66; BYTE $0xed // pmovsxbw xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x20380f66; BYTE $0xf6 // pmovsxbw xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm5 + LONG $0x7f0f41f3; WORD $0x7074; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm6 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_737 + JMP LBB4_1401 + +LBB4_746: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1409 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000e08d6f0f66 // movdqa xmm1, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_748: + LONG $0x146f0ff3; BYTE $0x71 // movdqu xmm2, oword [rcx + 2*rsi] + LONG $0x5c6f0ff3; WORD $0x1071 // movdqu xmm3, oword [rcx + 2*rsi + 16] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x2071 // movdqu xmm2, oword [rcx + 2*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x3071 // movdqu xmm3, oword [rcx + 2*rsi + 48] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x7054; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm3 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_748 + JMP LBB4_1410 + +LBB4_751: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1417 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000e08d6f0f66 // movdqa xmm1, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_753: + LONG $0x146f0ff3; BYTE $0x71 // movdqu xmm2, oword [rcx + 2*rsi] + LONG $0x5c6f0ff3; WORD $0x1071 // movdqu xmm3, oword [rcx + 2*rsi + 16] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x2071 // movdqu xmm2, oword [rcx + 2*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x3071 // movdqu xmm3, oword [rcx + 2*rsi + 48] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x7054; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm3 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_753 + JMP LBB4_1418 + +LBB4_756: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1425 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_758: + LONG $0x2c6f0ff3; BYTE $0x71 // movdqu xmm5, oword [rcx + 2*rsi] + LONG $0x746f0ff3; WORD $0x1071 // movdqu xmm6, oword [rcx + 2*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x703c // movdqu oword [r8 + 2*rsi], xmm7 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2071 // movdqu xmm5, oword [rcx + 2*rsi + 32] + LONG $0x746f0ff3; WORD $0x3071 // movdqu xmm6, oword [rcx + 2*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x707c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm5 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_758 + JMP LBB4_1426 + +LBB4_761: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1434 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_763: + LONG $0x2c6f0ff3; BYTE $0x71 // movdqu xmm5, oword [rcx + 2*rsi] + LONG $0x746f0ff3; WORD $0x1071 // movdqu xmm6, oword [rcx + 2*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x703c // movdqu oword [r8 + 2*rsi], xmm7 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2071 // movdqu xmm5, oword [rcx + 2*rsi + 32] + LONG $0x746f0ff3; WORD $0x3071 // movdqu xmm6, oword [rcx + 2*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x707c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x706c; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm5 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_763 + JMP LBB4_1435 + +LBB4_778: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1443 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_780: + LONG $0x1c7e0ff3; BYTE $0x31 // movq xmm3, qword [rcx + rsi] + LONG $0x647e0ff3; WORD $0x0831 // movq xmm4, qword [rcx + rsi + 8] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x30380f66; BYTE $0xdb // pmovzxbw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x30380f66; BYTE $0xe4 // pmovzxbw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0x701c // movdqu oword [r8 + 2*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x1031 // movq xmm3, qword [rcx + rsi + 16] + LONG $0x647e0ff3; WORD $0x1831 // movq xmm4, qword [rcx + rsi + 24] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x30380f66; BYTE $0xdb // pmovzxbw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x30380f66; BYTE $0xe4 // pmovzxbw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm4 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_780 + JMP LBB4_1444 + +LBB4_783: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1451 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI4_20] */ + +LBB4_785: + LONG $0x1c7e0ff3; BYTE $0x31 // movq xmm3, qword [rcx + rsi] + LONG $0x647e0ff3; WORD $0x0831 // movq xmm4, qword [rcx + rsi + 8] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x30380f66; BYTE $0xdb // pmovzxbw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x30380f66; BYTE $0xe4 // pmovzxbw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0x701c // movdqu oword [r8 + 2*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm4 + LONG $0x5c7e0ff3; WORD $0x1031 // movq xmm3, qword [rcx + rsi + 16] + LONG $0x647e0ff3; WORD $0x1831 // movq xmm4, qword [rcx + rsi + 24] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x30380f66; BYTE $0xdb // pmovzxbw xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x30380f66; BYTE $0xe4 // pmovzxbw xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x20 // movdqu oword [r8 + 2*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x30 // movdqu oword [r8 + 2*rsi + 48], xmm4 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_785 + JMP LBB4_1452 + +LBB4_806: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1459 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_808: + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x22380f66; BYTE $0xed // pmovsxbq xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x22380f66; BYTE $0xf6 // pmovsxbq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf02c // movupd oword [r8 + 8*rsi], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm6 + LONG $0x3144b70f; BYTE $0x04 // movzx eax, word [rcx + rsi + 4] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x3144b70f; BYTE $0x06 // movzx eax, word [rcx + rsi + 6] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x22380f66; BYTE $0xed // pmovsxbq xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x22380f66; BYTE $0xf6 // pmovsxbq xmm6, xmm6 + LONG $0x15380f66; BYTE $0xec // blendvpd xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xf4 // blendvpd xmm6, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm5 + LONG $0x110f4166; WORD $0xf074; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm6 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_808 + JMP LBB4_1460 + +LBB4_811: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1468 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + +LBB4_813: + LONG $0x2c6e0f66; BYTE $0x31 // movd xmm5, dword [rcx + rsi] + LONG $0x746e0f66; WORD $0x0431 // movd xmm6, dword [rcx + rsi + 4] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c6e0f66; WORD $0x0831 // movd xmm5, dword [rcx + rsi + 8] + LONG $0x746e0f66; WORD $0x0c31 // movd xmm6, dword [rcx + rsi + 12] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + WORD $0x5b0f; BYTE $0xf6 // cvtdq2ps xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_813 + JMP LBB4_1469 + +LBB4_816: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1490 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000000908d6f0f66 // movdqa xmm1, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_818: + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xf014 // movdqu oword [r8 + 8*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20f1 // movdqu xmm2, oword [rcx + 8*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30f1 // movdqu xmm3, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd0 // pcmpeqq xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xf054; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm3 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_818 + JMP LBB4_1491 + +LBB4_843: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1498 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_845: + LONG $0x2c6f0ff3; BYTE $0xf1 // movdqu xmm5, oword [rcx + 8*rsi] + LONG $0x746f0ff3; WORD $0x10f1 // movdqu xmm6, oword [rcx + 8*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x110f4166; WORD $0xf03c // movupd oword [r8 + 8*rsi], xmm7 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20f1 // movdqu xmm5, oword [rcx + 8*rsi + 32] + LONG $0x746f0ff3; WORD $0x30f1 // movdqu xmm6, oword [rcx + 8*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc5 // pcmpgtq xmm0, xmm5 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xce // pcmpgtq xmm1, xmm6 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x15380f66; BYTE $0xfd // blendvpd xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xee // blendvpd xmm5, xmm6, xmm0 + LONG $0x110f4166; WORD $0xf07c; BYTE $0x20 // movupd oword [r8 + 8*rsi + 32], xmm7 + LONG $0x110f4166; WORD $0xf06c; BYTE $0x30 // movupd oword [r8 + 8*rsi + 48], xmm5 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_845 + JMP LBB4_1499 + +LBB4_989: + QUAD $0x0000013085100ff3 // movss xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + +LBB4_990: + JLE LBB4_992 + QUAD $0x0000012885100ff3 // movss xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + +LBB4_992: + LONG $0x110f41f3; WORD $0x8004 // movss dword [r8 + 4*rax], xmm0 + JMP LBB4_1655 + +LBB4_866: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_867: + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xe26f0f66 // movdqa xmm4, xmm2 + LONG $0xe4720f66; BYTE $0x1f // psrad xmm4, 31 + LONG $0xe1eb0f66 // por xmm4, xmm1 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xe5720f66; BYTE $0x1f // psrad xmm5, 31 + LONG $0xe9eb0f66 // por xmm5, xmm1 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + WORD $0x5b0f; BYTE $0xed // cvtdq2ps xmm5, xmm5 + LONG $0x04d0c20f // cmpneqps xmm2, xmm0 + WORD $0x540f; BYTE $0xd4 // andps xmm2, xmm4 + LONG $0x04d8c20f // cmpneqps xmm3, xmm0 + WORD $0x540f; BYTE $0xdd // andps xmm3, xmm5 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + LONG $0x08c68348 // add rsi, 8 + WORD $0x3948; BYTE $0xf2 // cmp rdx, rsi + JNE LBB4_867 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_869 + +LBB4_876: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1507 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000090956f0f66 // movdqa xmm2, oword 144[rbp] /* [rip + .LCPI4_15] */ + +LBB4_878: + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x32380f66; BYTE $0xdb // pmovzxbq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x32380f66; BYTE $0xe4 // pmovzxbq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf01c // movdqu oword [r8 + 8*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm4 + LONG $0x3144b70f; BYTE $0x04 // movzx eax, word [rcx + rsi + 4] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x3144b70f; BYTE $0x06 // movzx eax, word [rcx + rsi + 6] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x32380f66; BYTE $0xdb // pmovzxbq xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x32380f66; BYTE $0xe4 // pmovzxbq xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xf05c; BYTE $0x20 // movdqu oword [r8 + 8*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xf064; BYTE $0x30 // movdqu oword [r8 + 8*rsi + 48], xmm4 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_878 + JMP LBB4_1508 + +LBB4_881: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1515 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_883: + LONG $0x1c6e0f66; BYTE $0x31 // movd xmm3, dword [rcx + rsi] + LONG $0x646e0f66; WORD $0x0431 // movd xmm4, dword [rcx + rsi + 4] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + LONG $0x1c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm3 + LONG $0x64110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c6e0f66; WORD $0x0831 // movd xmm3, dword [rcx + rsi + 8] + LONG $0x646e0f66; WORD $0x0c31 // movd xmm4, dword [rcx + rsi + 12] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + WORD $0x5b0f; BYTE $0xe4 // cvtdq2ps xmm4, xmm4 + LONG $0x5c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm3 + LONG $0x64110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_883 + JMP LBB4_1516 + +LBB4_892: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1535 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x00000080956f0f66 // movdqa xmm2, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_894: + LONG $0x1c6f0ff3; BYTE $0xb1 // movdqu xmm3, oword [rcx + 4*rsi] + LONG $0x646f0ff3; WORD $0x10b1 // movdqu xmm4, oword [rcx + 4*rsi + 16] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x301c // movd dword [r8 + rsi], xmm3 + LONG $0x7e0f4166; WORD $0x3064; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm4 + LONG $0x5c6f0ff3; WORD $0x20b1 // movdqu xmm3, oword [rcx + 4*rsi + 32] + LONG $0x646f0ff3; WORD $0x30b1 // movdqu xmm4, oword [rcx + 4*rsi + 48] + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0760f66 // pcmpeqd xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7e0f4166; WORD $0x305c; BYTE $0x08 // movd dword [r8 + rsi + 8], xmm3 + LONG $0x7e0f4166; WORD $0x3064; BYTE $0x0c // movd dword [r8 + rsi + 12], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_894 + JMP LBB4_1536 + +LBB4_897: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1543 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x65280f66; BYTE $0x10 // movapd xmm4, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0x6d6f0f66; BYTE $0x40 // movdqa xmm5, oword 64[rbp] /* [rip + .LCPI4_7] */ + +LBB4_899: + LONG $0x34100f66; BYTE $0xf1 // movupd xmm6, oword [rcx + 8*rsi] + LONG $0x7c100f66; WORD $0x10f1 // movupd xmm7, oword [rcx + 8*rsi + 16] + LONG $0xc6280f66 // movapd xmm0, xmm6 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcf280f66 // movapd xmm1, xmm7 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xfb540f66 // andpd xmm7, xmm3 + LONG $0xfc560f66 // orpd xmm7, xmm4 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0x00380f66; BYTE $0xf5 // pshufb xmm6, xmm5 + LONG $0xffe60f66 // cvttpd2dq xmm7, xmm7 + LONG $0x00380f66; BYTE $0xfd // pshufb xmm7, xmm5 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfa // pblendvb xmm7, xmm2, xmm0 + QUAD $0x003034153a0f4166 // pextrw word [r8 + rsi], xmm6, 0 + QUAD $0x02307c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm7, 0 + LONG $0x74100f66; WORD $0x20f1 // movupd xmm6, oword [rcx + 8*rsi + 32] + LONG $0x7c100f66; WORD $0x30f1 // movupd xmm7, oword [rcx + 8*rsi + 48] + LONG $0xc6280f66 // movapd xmm0, xmm6 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcf280f66 // movapd xmm1, xmm7 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf3540f66 // andpd xmm6, xmm3 + LONG $0xf4560f66 // orpd xmm6, xmm4 + LONG $0xfb540f66 // andpd xmm7, xmm3 + LONG $0xfc560f66 // orpd xmm7, xmm4 + LONG $0xf6e60f66 // cvttpd2dq xmm6, xmm6 + LONG $0x00380f66; BYTE $0xf5 // pshufb xmm6, xmm5 + LONG $0xffe60f66 // cvttpd2dq xmm7, xmm7 + LONG $0x00380f66; BYTE $0xfd // pshufb xmm7, xmm5 + LONG $0x10380f66; BYTE $0xf2 // pblendvb xmm6, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfa // pblendvb xmm7, xmm2, xmm0 + QUAD $0x043074153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 4], xmm6, 0 + QUAD $0x06307c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 6], xmm7, 0 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_899 + JMP LBB4_1544 + +LBB4_902: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1552 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000100a56f0f66 // movdqa xmm4, oword 256[rbp] /* [rip + .LCPI4_22] */ + +LBB4_904: + LONG $0x2c6f0ff3; BYTE $0x01 // movdqu xmm5, oword [rcx + rax] + LONG $0x746f0ff3; WORD $0x1001 // movdqu xmm6, oword [rcx + rax + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x003c // movdqu oword [r8 + rax], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x2001 // movdqu xmm5, oword [rcx + rax + 32] + LONG $0x746f0ff3; WORD $0x3001 // movdqu xmm6, oword [rcx + rax + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce640f66 // pcmpgtb xmm1, xmm6 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x10380f66; BYTE $0xfd // pblendvb xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0x7f0f41f3; WORD $0x007c; BYTE $0x20 // movdqu oword [r8 + rax + 32], xmm7 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x30 // movdqu oword [r8 + rax + 48], xmm5 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_904 + JMP LBB4_1553 + +LBB4_907: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xfc // and edx, -4 + LONG $0xfc728d48 // lea rsi, [rdx - 4] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1561 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_909: + LONG $0x1c6f0ff3; BYTE $0xf1 // movdqu xmm3, oword [rcx + 8*rsi] + LONG $0x646f0ff3; WORD $0x10f1 // movdqu xmm4, oword [rcx + 8*rsi + 16] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x00301c153a0f4166 // pextrw word [r8 + rsi], xmm3, 0 + LONG $0xe2db0f66 // pand xmm4, xmm2 + QUAD $0x023064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm4, 0 + LONG $0x5c6f0ff3; WORD $0x20f1 // movdqu xmm3, oword [rcx + 8*rsi + 32] + LONG $0x646f0ff3; WORD $0x30f1 // movdqu xmm4, oword [rcx + 8*rsi + 48] + LONG $0x29380f66; BYTE $0xd8 // pcmpeqq xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0x29380f66; BYTE $0xe0 // pcmpeqq xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x04305c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 4], xmm3, 0 + LONG $0xe2db0f66 // pand xmm4, xmm2 + QUAD $0x063064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 6], xmm4, 0 + LONG $0x08c68348 // add rsi, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_909 + JMP LBB4_1562 + +LBB4_912: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0xf0728d48 // lea rsi, [rdx - 16] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1569 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + QUAD $0x000000f0956f0f66 // movdqa xmm2, oword 240[rbp] /* [rip + .LCPI4_21] */ + +LBB4_914: + LONG $0x1c6f0ff3; BYTE $0x71 // movdqu xmm3, oword [rcx + 2*rsi] + LONG $0x646f0ff3; WORD $0x1071 // movdqu xmm4, oword [rcx + 2*rsi + 16] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x301c // movdqu oword [r8 + rsi], xmm3 + LONG $0x5c6f0ff3; WORD $0x2071 // movdqu xmm3, oword [rcx + 2*rsi + 32] + LONG $0x646f0ff3; WORD $0x3071 // movdqu xmm4, oword [rcx + 2*rsi + 48] + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0xdc6c0f66 // punpcklqdq xmm3, xmm4 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm3 + LONG $0x20c68348 // add rsi, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_914 + JMP LBB4_1570 + +LBB4_917: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1577 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + +LBB4_919: + LONG $0x2c6f0ff3; BYTE $0x41 // movdqu xmm5, oword [rcx + 2*rax] + LONG $0x746f0ff3; WORD $0x1041 // movdqu xmm6, oword [rcx + 2*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x002c // movdqu oword [r8 + rax], xmm5 + LONG $0x6c6f0ff3; WORD $0x2041 // movdqu xmm5, oword [rcx + 2*rax + 32] + LONG $0x746f0ff3; WORD $0x3041 // movdqu xmm6, oword [rcx + 2*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea750f66 // pcmpeqw xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2750f66 // pcmpeqw xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + LONG $0x7f0f41f3; WORD $0x006c; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm5 + LONG $0x20c08348 // add rax, 32 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_919 + JMP LBB4_1578 + +LBB4_922: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x02e9c149 // shr r9, 2 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1586 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + +LBB4_924: + LONG $0x2c6f0ff3; BYTE $0xc1 // movdqu xmm5, oword [rcx + 8*rax] + LONG $0x746f0ff3; WORD $0x10c1 // movdqu xmm6, oword [rcx + 8*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + QUAD $0x00002c153a0f4166 // pextrw word [r8 + rax], xmm5, 0 + QUAD $0x020074153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 2], xmm6, 0 + LONG $0x6c6f0ff3; WORD $0x20c1 // movdqu xmm5, oword [rcx + 8*rax + 32] + LONG $0x746f0ff3; WORD $0x30c1 // movdqu xmm6, oword [rcx + 8*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x37380f66; BYTE $0xc2 // pcmpgtq xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xea // pcmpeqq xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x29380f66; BYTE $0xf2 // pcmpeqq xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + QUAD $0x04006c153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 4], xmm5, 0 + QUAD $0x060074153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 6], xmm6, 0 + LONG $0x08c08348 // add rax, 8 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_924 + JMP LBB4_1587 + +LBB4_927: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1595 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x760f4566; BYTE $0xc0 // pcmpeqd xmm8, xmm8 + QUAD $0x00000080b56f0f66 // movdqa xmm6, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_929: + LONG $0xb104100f // movups xmm0, oword [rcx + 4*rsi] + LONG $0xb14c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rsi + 16] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x303c // movd dword [r8 + rsi], xmm7 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm5 + LONG $0xb144100f; BYTE $0x20 // movups xmm0, oword [rcx + 4*rsi + 32] + LONG $0xb14c100f; BYTE $0x30 // movups xmm1, oword [rcx + 4*rsi + 48] + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x660f4166; BYTE $0xc0 // pcmpgtd xmm0, xmm8 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x660f4166; BYTE $0xc8 // pcmpgtd xmm1, xmm8 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x08 // movd dword [r8 + rsi + 8], xmm5 + LONG $0x7e0f4166; WORD $0x307c; BYTE $0x0c // movd dword [r8 + rsi + 12], xmm7 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_929 + JMP LBB4_1596 + +LBB4_932: + WORD $0xc289 // mov edx, eax + WORD $0xe283; BYTE $0xe0 // and edx, -32 + LONG $0xe0728d48 // lea rsi, [rdx - 32] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x05e9c149 // shr r9, 5 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1604 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + QUAD $0x000001008d6f0f66 // movdqa xmm1, oword 256[rbp] /* [rip + .LCPI4_22] */ + +LBB4_934: + LONG $0x146f0ff3; BYTE $0x31 // movdqu xmm2, oword [rcx + rsi] + LONG $0x5c6f0ff3; WORD $0x1031 // movdqu xmm3, oword [rcx + rsi + 16] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x3014 // movdqu oword [r8 + rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x2031 // movdqu xmm2, oword [rcx + rsi + 32] + LONG $0x5c6f0ff3; WORD $0x3031 // movdqu xmm3, oword [rcx + rsi + 48] + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0x3054; BYTE $0x20 // movdqu oword [r8 + rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0x305c; BYTE $0x30 // movdqu oword [r8 + rsi + 48], xmm3 + LONG $0x40c68348 // add rsi, 64 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_934 + JMP LBB4_1605 + +LBB4_937: + WORD $0x8944; BYTE $0xd6 // mov esi, r10d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB4_1612 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + +LBB4_939: + LONG $0x2c6f0ff3; BYTE $0x81 // movdqu xmm5, oword [rcx + 4*rax] + LONG $0x746f0ff3; WORD $0x1081 // movdqu xmm6, oword [rcx + 4*rax + 16] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x002c // movd dword [r8 + rax], xmm5 + LONG $0x7e0f4166; WORD $0x0074; BYTE $0x04 // movd dword [r8 + rax + 4], xmm6 + LONG $0x6c6f0ff3; WORD $0x2081 // movdqu xmm5, oword [rcx + 4*rax + 32] + LONG $0x746f0ff3; WORD $0x3081 // movdqu xmm6, oword [rcx + 4*rax + 48] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2660f66 // pcmpgtd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xf4 // pblendvb xmm6, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x006c; BYTE $0x08 // movd dword [r8 + rax + 8], xmm5 + LONG $0x7e0f4166; WORD $0x0074; BYTE $0x0c // movd dword [r8 + rax + 12], xmm6 + LONG $0x10c08348 // add rax, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_939 + JMP LBB4_1613 + +LBB4_942: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1621 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_944: + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb014 // movdqu oword [r8 + 4*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm3 + LONG $0x546f0ff3; WORD $0x20b1 // movdqu xmm2, oword [rcx + 4*rsi + 32] + LONG $0x5c6f0ff3; WORD $0x30b1 // movdqu xmm3, oword [rcx + 4*rsi + 48] + LONG $0xd0760f66 // pcmpeqd xmm2, xmm0 + LONG $0xd1df0f66 // pandn xmm2, xmm1 + LONG $0xd8760f66 // pcmpeqd xmm3, xmm0 + LONG $0xd9df0f66 // pandn xmm3, xmm1 + LONG $0x7f0f41f3; WORD $0xb054; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm3 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_944 + JMP LBB4_1622 + +LBB4_950: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1629 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_952: + LONG $0x2c6e0f66; BYTE $0x31 // movd xmm5, dword [rcx + rsi] + LONG $0x746e0f66; WORD $0x0431 // movd xmm6, dword [rcx + rsi + 4] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x2c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm5 + LONG $0x74110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm6 + LONG $0x6c6e0f66; WORD $0x0831 // movd xmm5, dword [rcx + rsi + 8] + LONG $0x746e0f66; WORD $0x0c31 // movd xmm6, dword [rcx + rsi + 12] + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2640f66 // pcmpgtb xmm0, xmm2 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xea740f66 // pcmpeqb xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0x21380f66; BYTE $0xed // pmovsxbd xmm5, xmm5 + LONG $0xf2740f66 // pcmpeqb xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0x21380f66; BYTE $0xf6 // pmovsxbd xmm6, xmm6 + LONG $0x14380f66; BYTE $0xec // blendvps xmm5, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xf4 // blendvps xmm6, xmm4, xmm0 + LONG $0x6c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm5 + LONG $0x74110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm6 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_952 + JMP LBB4_1630 + +LBB4_974: + WORD $0x8944; BYTE $0xd2 // mov edx, r10d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1638 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0x556f0f66; BYTE $0x50 // movdqa xmm2, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_976: + LONG $0x1c6e0f66; BYTE $0x31 // movd xmm3, dword [rcx + rsi] + LONG $0x646e0f66; WORD $0x0431 // movd xmm4, dword [rcx + rsi + 4] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb01c // movdqu oword [r8 + 4*rsi], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm4 + LONG $0x5c6e0f66; WORD $0x0831 // movd xmm3, dword [rcx + rsi + 8] + LONG $0x646e0f66; WORD $0x0c31 // movd xmm4, dword [rcx + rsi + 12] + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0x31380f66; BYTE $0xdb // pmovzxbd xmm3, xmm3 + LONG $0xdadb0f66 // pand xmm3, xmm2 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0xe1ef0f66 // pxor xmm4, xmm1 + LONG $0x31380f66; BYTE $0xe4 // pmovzxbd xmm4, xmm4 + LONG $0xe2db0f66 // pand xmm4, xmm2 + LONG $0x7f0f41f3; WORD $0xb05c; BYTE $0x20 // movdqu oword [r8 + 4*rsi + 32], xmm3 + LONG $0x7f0f41f3; WORD $0xb064; BYTE $0x30 // movdqu oword [r8 + 4*rsi + 48], xmm4 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_976 + JMP LBB4_1639 + +LBB4_979: + WORD $0x8944; BYTE $0xda // mov edx, r11d + WORD $0xe283; BYTE $0xf8 // and edx, -8 + LONG $0xf8728d48 // lea rsi, [rdx - 8] + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x03e9c149 // shr r9, 3 + LONG $0x01c18349 // add r9, 1 + WORD $0x8548; BYTE $0xf6 // test rsi, rsi + JE LBB4_1646 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xfee78348 // and rdi, -2 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xf631 // xor esi, esi + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + +LBB4_981: + LONG $0x2c6f0ff3; BYTE $0xb1 // movdqu xmm5, oword [rcx + 4*rsi] + LONG $0x746f0ff3; WORD $0x10b1 // movdqu xmm6, oword [rcx + 4*rsi + 16] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0x3c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm7 + LONG $0x6c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm5 + LONG $0x6c6f0ff3; WORD $0x20b1 // movdqu xmm5, oword [rcx + 4*rsi + 32] + LONG $0x746f0ff3; WORD $0x30b1 // movdqu xmm6, oword [rcx + 4*rsi + 48] + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xea760f66 // pcmpeqd xmm5, xmm2 + LONG $0xebef0f66 // pxor xmm5, xmm3 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xce660f66 // pcmpgtd xmm1, xmm6 + LONG $0xf2760f66 // pcmpeqd xmm6, xmm2 + LONG $0xf3ef0f66 // pxor xmm6, xmm3 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x14380f66; BYTE $0xfd // blendvps xmm7, xmm5, xmm0 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xee // blendvps xmm5, xmm6, xmm0 + LONG $0x7c110f41; WORD $0x20b0 // movups oword [r8 + 4*rsi + 32], xmm7 + LONG $0x6c110f41; WORD $0x30b0 // movups oword [r8 + 4*rsi + 48], xmm5 + LONG $0x10c68348 // add rsi, 16 + LONG $0x02c78348 // add rdi, 2 + JNE LBB4_981 + JMP LBB4_1647 + +LBB4_1475: + QUAD $0x00000130856e0f66 // movd xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + +LBB4_1476: + JLE LBB4_1478 + QUAD $0x00000128856e0f66 // movd xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + +LBB4_1478: + LONG $0x7e0f4166; WORD $0x9004 // movd dword [r8 + 4*rdx], xmm0 + LONG $0x01ca8348 // or rdx, 1 + +LBB4_1479: + WORD $0x0148; BYTE $0xc6 // add rsi, rax + JE LBB4_1655 + QUAD $0x00000130856e0f66 // movd xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000001288d6e0f66 // movd xmm1, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1482 + +LBB4_1481: + LONG $0x7e0f4166; WORD $0x905c; BYTE $0x04 // movd dword [r8 + 4*rdx + 4], xmm3 + LONG $0x02c28348 // add rdx, 2 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1482: + LONG $0x00113c80 // cmp byte [rcx + rdx], 0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + JNE LBB4_1483 + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JLE LBB4_1487 + +LBB4_1484: + LONG $0x7e0f4166; WORD $0x901c // movd dword [r8 + 4*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + JNE LBB4_1485 + +LBB4_1488: + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JG LBB4_1481 + JMP LBB4_1489 + +LBB4_1483: + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JG LBB4_1484 + +LBB4_1487: + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0x7e0f4166; WORD $0x901c // movd dword [r8 + 4*rdx], xmm3 + LONG $0x01117c80; BYTE $0x00 // cmp byte [rcx + rdx + 1], 0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + JE LBB4_1488 + +LBB4_1485: + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JG LBB4_1481 + +LBB4_1489: + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + JMP LBB4_1481 + +LBB4_994: + WORD $0xf631 // xor esi, esi + +LBB4_995: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_997 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI4_16] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + +LBB4_997: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_998: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_998 + JMP LBB4_1655 + +LBB4_999: + WORD $0xf631 // xor esi, esi + +LBB4_1000: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1002 + LONG $0x047e0ff3; BYTE $0xb1 // movq xmm0, qword [rcx + 4*rsi] + LONG $0x4c7e0ff3; WORD $0x08b1 // movq xmm1, qword [rcx + 4*rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x35380f66; BYTE $0xc0 // pmovzxdq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x35380f66; BYTE $0xc9 // pmovzxdq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1002: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1003: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1003 + JMP LBB4_1655 + +LBB4_1004: + WORD $0xff31 // xor edi, edi + +LBB4_1005: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1007 + LONG $0x04100f66; BYTE $0xf9 // movupd xmm0, oword [rcx + 8*rdi] + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xc8540f66 // andpd xmm1, xmm0 + LONG $0x4d560f66; BYTE $0x10 // orpd xmm1, oword 16[rbp] /* [rip + .LCPI4_1] */ + QUAD $0x0000011895100ff2 // movsd xmm2, qword 280[rbp] /* [rip + .LCPI4_6] */ + LONG $0xd9280f66 // movapd xmm3, xmm1 + LONG $0xda5c0ff2 // subsd xmm3, xmm2 + LONG $0x2c0f48f2; BYTE $0xc3 // cvttsd2si rax, xmm3 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2c0f48f2; BYTE $0xd1 // cvttsd2si rdx, xmm1 + LONG $0xca2e0f66 // ucomisd xmm1, xmm2 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6e0f4866; BYTE $0xda // movq xmm3, rdx + LONG $0xc9700f66; BYTE $0xee // pshufd xmm1, xmm1, 238 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xe25c0ff2 // subsd xmm4, xmm2 + LONG $0x2c0f48f2; BYTE $0xc4 // cvttsd2si rax, xmm4 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2c0f48f2; BYTE $0xd1 // cvttsd2si rdx, xmm1 + LONG $0xca2e0f66 // ucomisd xmm1, xmm2 + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0xd0430f48 // cmovae rdx, rax + LONG $0x6e0f4866; BYTE $0xd2 // movq xmm2, rdx + LONG $0xda6c0f66 // punpcklqdq xmm3, xmm2 + LONG $0xc8c20f66; BYTE $0x04 // cmpneqpd xmm1, xmm0 + LONG $0xcb540f66 // andpd xmm1, xmm3 + LONG $0x110f4166; WORD $0xf80c // movupd oword [r8 + 8*rdi], xmm1 + +LBB4_1007: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + +LBB4_1008: + LONG $0x45280f66; BYTE $0x00 // movapd xmm0, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x000001108d100ff2 // movsd xmm1, qword 272[rbp] /* [rip + .LCPI4_2] */ + QUAD $0x0000011895100ff2 // movsd xmm2, qword 280[rbp] /* [rip + .LCPI4_6] */ + WORD $0xc031 // xor eax, eax + LONG $0xdb570f66 // xorpd xmm3, xmm3 + +LBB4_1009: + LONG $0x24100ff2; BYTE $0xf1 // movsd xmm4, qword [rcx + 8*rsi] + LONG $0xec280f66 // movapd xmm5, xmm4 + LONG $0xe8540f66 // andpd xmm5, xmm0 + LONG $0xe9560f66 // orpd xmm5, xmm1 + LONG $0xf5280f66 // movapd xmm6, xmm5 + LONG $0xf25c0ff2 // subsd xmm6, xmm2 + LONG $0x2c0f48f2; BYTE $0xd6 // cvttsd2si rdx, xmm6 + WORD $0x314c; BYTE $0xda // xor rdx, r11 + LONG $0x2c0f48f2; BYTE $0xfd // cvttsd2si rdi, xmm5 + LONG $0xea2e0f66 // ucomisd xmm5, xmm2 + LONG $0xfa430f48 // cmovae rdi, rdx + LONG $0xdc2e0f66 // ucomisd xmm3, xmm4 + LONG $0xf8440f48 // cmove rdi, rax + LONG $0xf03c8949 // mov qword [r8 + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_1009 + JMP LBB4_1655 + +LBB4_1010: + WORD $0xf631 // xor esi, esi + +LBB4_1011: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1013 + LONG $0x046e0f66; BYTE $0x71 // movd xmm0, dword [rcx + 2*rsi] + LONG $0x4c6e0f66; WORD $0x0471 // movd xmm1, dword [rcx + 2*rsi + 4] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x34380f66; BYTE $0xc0 // pmovzxwq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x34380f66; BYTE $0xc9 // pmovzxwq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1013: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1014: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1014 + JMP LBB4_1655 + +LBB4_1015: + WORD $0xf631 // xor esi, esi + +LBB4_1016: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1018 + LONG $0x146e0f66; BYTE $0x71 // movd xmm2, dword [rcx + 2*rsi] + LONG $0x5c6e0f66; WORD $0x0471 // movd xmm3, dword [rcx + 2*rsi + 4] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x24380f66; BYTE $0xd2 // pmovsxwq xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x24380f66; BYTE $0xdb // pmovsxwq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1018: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1019: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1020: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1020 + JMP LBB4_1655 + +LBB4_993: + WORD $0x500f; BYTE $0xc8 // movmskps ecx, xmm0 + WORD $0xe183; BYTE $0x01 // and ecx, 1 + WORD $0xd9f7 // neg ecx + WORD $0xc983; BYTE $0x01 // or ecx, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc12a0ff3 // cvtsi2ss xmm0, ecx + QUAD $0x0000012c8d100ff3 // movss xmm1, dword 300[rbp] /* [rip + .LCPI4_9] */ + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0xd15c0ff3 // subss xmm2, xmm1 + LONG $0x2c0f48f3; BYTE $0xca // cvttss2si rcx, xmm2 + QUAD $0x000000000000ba48; WORD $0x8000 // mov rdx, -9223372036854775808 + WORD $0x3148; BYTE $0xca // xor rdx, rcx + LONG $0x2c0f48f3; BYTE $0xc8 // cvttss2si rcx, xmm0 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xca430f48 // cmovae rcx, rdx + LONG $0xc00c8949 // mov qword [r8 + 8*rax], rcx + JMP LBB4_1655 + +LBB4_1021: + WORD $0xf631 // xor esi, esi + +LBB4_1022: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1024 + LONG $0x147e0ff3; BYTE $0xb1 // movq xmm2, qword [rcx + 4*rsi] + LONG $0x5c7e0ff3; WORD $0x08b1 // movq xmm3, qword [rcx + 4*rsi + 8] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x25380f66; BYTE $0xd2 // pmovsxdq xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x25380f66; BYTE $0xdb // pmovsxdq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1024: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1025: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1026: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff85 // test edi, edi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1026 + JMP LBB4_1655 + +LBB4_1027: + WORD $0xf631 // xor esi, esi + +LBB4_1028: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1030 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7e0f4166; WORD $0x7004 // movd dword [r8 + 2*rsi], xmm0 + LONG $0x7e0f4166; WORD $0x704c; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm1 + +LBB4_1030: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1031: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1031 + JMP LBB4_1655 + +LBB4_1032: + WORD $0xf631 // xor esi, esi + +LBB4_1033: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1035 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7e0f4166; WORD $0x7004 // movd dword [r8 + 2*rsi], xmm0 + LONG $0x7e0f4166; WORD $0x704c; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm1 + +LBB4_1035: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1036: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1036 + JMP LBB4_1655 + +LBB4_1037: + WORD $0xf631 // xor esi, esi + +LBB4_1038: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1040 + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x7014 // movd dword [r8 + 2*rsi], xmm2 + LONG $0x7e0f4166; WORD $0x705c; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm3 + +LBB4_1040: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1041: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1042: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1042 + JMP LBB4_1655 + +LBB4_1043: + WORD $0xf631 // xor esi, esi + +LBB4_1044: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1046 + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + +LBB4_1046: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1047: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1048: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1048 + JMP LBB4_1655 + +LBB4_1049: + WORD $0xf631 // xor esi, esi + +LBB4_1050: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1052 + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + +LBB4_1052: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1053: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1054: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0xff85 // test edi, edi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1054 + JMP LBB4_1655 + +LBB4_1055: + WORD $0xf631 // xor esi, esi + +LBB4_1056: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1058 + LONG $0x046e0f66; BYTE $0x71 // movd xmm0, dword [rcx + 2*rsi] + LONG $0x4c6e0f66; WORD $0x0471 // movd xmm1, dword [rcx + 2*rsi + 4] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x34380f66; BYTE $0xc0 // pmovzxwq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x34380f66; BYTE $0xc9 // pmovzxwq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1058: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1059: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1059 + JMP LBB4_1655 + +LBB4_1060: + WORD $0xf631 // xor esi, esi + +LBB4_1061: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1063 + LONG $0x147e0ff3; BYTE $0xb1 // movq xmm2, qword [rcx + 4*rsi] + LONG $0x5c7e0ff3; WORD $0x08b1 // movq xmm3, qword [rcx + 4*rsi + 8] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0x25380f66; BYTE $0xc0 // pmovsxdq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0x25380f66; BYTE $0xc9 // pmovsxdq xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x25380f66; BYTE $0xd2 // pmovsxdq xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x25380f66; BYTE $0xdb // pmovsxdq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1063: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1064: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1065: + WORD $0x3c8b; BYTE $0x91 // mov edi, dword [rcx + 4*rdx] + WORD $0xc031 // xor eax, eax + WORD $0xff85 // test edi, edi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff85 // test edi, edi + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1065 + JMP LBB4_1655 + +LBB4_1066: + WORD $0xf631 // xor esi, esi + +LBB4_1067: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1069 + LONG $0x146f0ff3; BYTE $0xb1 // movdqu xmm2, oword [rcx + 4*rsi] + LONG $0x5c6f0ff3; WORD $0x10b1 // movdqu xmm3, oword [rcx + 4*rsi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + WORD $0x5b0f; BYTE $0xd2 // cvtdq2ps xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1069: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1070: + QUAD $0x00000130856e0f66 // movd xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000001288d6e0f66 // movd xmm1, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1072 + +LBB4_1071: + LONG $0x7e0f4166; WORD $0x901c // movd dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1072: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + JNE LBB4_1074 + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + +LBB4_1074: + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JG LBB4_1071 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + JMP LBB4_1071 + +LBB4_1076: + WORD $0xff31 // xor edi, edi + +LBB4_1077: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1079 + LONG $0x04100f66; BYTE $0xf9 // movupd xmm0, oword [rcx + 8*rdi] + LONG $0x4c100f66; WORD $0x10f9 // movupd xmm1, oword [rcx + 8*rdi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xd8280f66 // movapd xmm3, xmm0 + LONG $0xdac20f66; BYTE $0x00 // cmpeqpd xmm3, xmm2 + LONG $0xe8dbc60f // shufps xmm3, xmm3, 232 + LONG $0xd1c20f66; BYTE $0x00 // cmpeqpd xmm2, xmm1 + LONG $0xe8d2c60f // shufps xmm2, xmm2, 232 + LONG $0x65280f66; BYTE $0x00 // movapd xmm4, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xc4540f66 // andpd xmm0, xmm4 + LONG $0x6d280f66; BYTE $0x10 // movapd xmm5, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc5560f66 // orpd xmm0, xmm5 + LONG $0xcc540f66 // andpd xmm1, xmm4 + LONG $0xcd560f66 // orpd xmm1, xmm5 + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + WORD $0x550f; BYTE $0xd8 // andnps xmm3, xmm0 + WORD $0x550f; BYTE $0xd1 // andnps xmm2, xmm1 + WORD $0x160f; BYTE $0xda // movlhps xmm3, xmm2 + LONG $0x1c110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm3 + +LBB4_1079: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1655 + +LBB4_1080: + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1081: + LONG $0x1c100ff2; BYTE $0xf1 // movsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xd32c0ff2 // cvttsd2si edx, xmm3 + LONG $0xd2440f41 // cmove edx, r10d + LONG $0xb0148941 // mov dword [r8 + 4*rsi], edx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1081 + JMP LBB4_1655 + +LBB4_1082: + WORD $0xf631 // xor esi, esi + +LBB4_1083: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1085 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI4_16] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + +LBB4_1085: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1086: + WORD $0xf631 // xor esi, esi + LONG $0xd13c8348; BYTE $0x00 // cmp qword [rcx + 8*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1086 + JMP LBB4_1655 + +LBB4_1087: + WORD $0xf631 // xor esi, esi + +LBB4_1088: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1090 + LONG $0x047e0ff3; BYTE $0x71 // movq xmm0, qword [rcx + 2*rsi] + LONG $0x4c7e0ff3; WORD $0x0871 // movq xmm1, qword [rcx + 2*rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x33380f66; BYTE $0xc0 // pmovzxwd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x33380f66; BYTE $0xc9 // pmovzxwd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1090: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1091: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1091 + JMP LBB4_1655 + +LBB4_1092: + WORD $0xf631 // xor esi, esi + +LBB4_1093: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1095 + LONG $0x147e0ff3; BYTE $0x71 // movq xmm2, qword [rcx + 2*rsi] + LONG $0x5c7e0ff3; WORD $0x0871 // movq xmm3, qword [rcx + 2*rsi + 8] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x23380f66; BYTE $0xd2 // pmovsxwd xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x23380f66; BYTE $0xdb // pmovsxwd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1095: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1096: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1097: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1097 + JMP LBB4_1655 + +LBB4_1098: + WORD $0xf631 // xor esi, esi + +LBB4_1099: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1101 + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xa0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 160[rbp] /* [rip + .LCPI4_16] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + WORD $0x160f; BYTE $0xd3 // movlhps xmm2, xmm3 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + +LBB4_1101: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1102: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1103: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1103 + JMP LBB4_1655 + +LBB4_1106: + WORD $0xff31 // xor edi, edi + +LBB4_1107: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1109 + LONG $0x1c100f66; BYTE $0xf9 // movupd xmm3, oword [rcx + 8*rdi] + LONG $0x54100f66; WORD $0x10f9 // movupd xmm2, oword [rcx + 8*rdi + 16] + LONG $0xc9570f66 // xorpd xmm1, xmm1 + LONG $0xc3280f66 // movapd xmm0, xmm3 + LONG $0xc1c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm1 + LONG $0xe8c0c60f // shufps xmm0, xmm0, 232 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0x65280f66; BYTE $0x00 // movapd xmm4, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xdc540f66 // andpd xmm3, xmm4 + LONG $0x6d280f66; BYTE $0x10 // movapd xmm5, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xdd560f66 // orpd xmm3, xmm5 + LONG $0xd4540f66 // andpd xmm2, xmm4 + LONG $0xd5560f66 // orpd xmm2, xmm5 + LONG $0xe3700f66; BYTE $0xee // pshufd xmm4, xmm3, 238 + LONG $0x2c0f48f2; BYTE $0xc4 // cvttsd2si rax, xmm4 + LONG $0x2c0f48f2; BYTE $0xd3 // cvttsd2si rdx, xmm3 + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x223a0f66; WORD $0x01d8 // pinsrd xmm3, eax, 1 + LONG $0xe2700f66; BYTE $0xee // pshufd xmm4, xmm2, 238 + LONG $0x2c0f48f2; BYTE $0xc4 // cvttsd2si rax, xmm4 + LONG $0x2c0f48f2; BYTE $0xd2 // cvttsd2si rdx, xmm2 + LONG $0xe8c9c60f // shufps xmm1, xmm1, 232 + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x223a0f66; WORD $0x01d0 // pinsrd xmm2, eax, 1 + WORD $0x550f; BYTE $0xc3 // andnps xmm0, xmm3 + WORD $0x550f; BYTE $0xca // andnps xmm1, xmm2 + WORD $0x160f; BYTE $0xc1 // movlhps xmm0, xmm1 + LONG $0x04110f41; BYTE $0xb8 // movups oword [r8 + 4*rdi], xmm0 + +LBB4_1109: + WORD $0x394c; BYTE $0xde // cmp rsi, r11 + JE LBB4_1655 + +LBB4_1110: + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1111: + LONG $0x1c100ff2; BYTE $0xf1 // movsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0x2c0f48f2; BYTE $0xc3 // cvttsd2si rax, xmm3 + LONG $0xc2440f41 // cmove eax, r10d + LONG $0xb0048941 // mov dword [r8 + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf3 // cmp r11, rsi + JNE LBB4_1111 + JMP LBB4_1655 + +LBB4_1112: + WORD $0xf631 // xor esi, esi + +LBB4_1113: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1115 + LONG $0x047e0ff3; BYTE $0x71 // movq xmm0, qword [rcx + 2*rsi] + LONG $0x4c7e0ff3; WORD $0x0871 // movq xmm1, qword [rcx + 2*rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x33380f66; BYTE $0xc0 // pmovzxwd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x33380f66; BYTE $0xc9 // pmovzxwd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1115: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1116: + WORD $0xf631 // xor esi, esi + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1116 + JMP LBB4_1655 + +LBB4_1117: + WORD $0xf631 // xor esi, esi + +LBB4_1118: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1120 + LONG $0x147e0ff3; BYTE $0x71 // movq xmm2, qword [rcx + 2*rsi] + LONG $0x5c7e0ff3; WORD $0x0871 // movq xmm3, qword [rcx + 2*rsi + 8] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x23380f66; BYTE $0xd2 // pmovsxwd xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x23380f66; BYTE $0xdb // pmovsxwd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1120: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1121: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1122: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1122 + JMP LBB4_1655 + +LBB4_1123: + WORD $0xf631 // xor esi, esi + +LBB4_1124: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1126 + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xd2700f66; BYTE $0xe8 // pshufd xmm2, xmm2, 232 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xdb700f66; BYTE $0xe8 // pshufd xmm3, xmm3, 232 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xa0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 160[rbp] /* [rip + .LCPI4_16] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + WORD $0x160f; BYTE $0xd3 // movlhps xmm2, xmm3 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + +LBB4_1126: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1127: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1128: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x90048941 // mov dword [r8 + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1128 + JMP LBB4_1655 + +LBB4_1129: + WORD $0xf631 // xor esi, esi + +LBB4_1130: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1132 + LONG $0xb104100f // movups xmm0, oword [rcx + 4*rsi] + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x04c8c20f // cmpneqps xmm1, xmm0 + LONG $0xe0720f66; BYTE $0x1f // psrad xmm0, 31 + LONG $0x45eb0f66; BYTE $0x50 // por xmm0, oword 80[rbp] /* [rip + .LCPI4_8] */ + WORD $0x5b0f; BYTE $0xd0 // cvtdq2ps xmm2, xmm0 + LONG $0x605d280f // movaps xmm3, oword 96[rbp] /* [rip + .LCPI4_10] */ + WORD $0x280f; BYTE $0xc2 // movaps xmm0, xmm2 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xe25b0ff3 // cvttps2dq xmm4, xmm2 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0xd25b0ff3 // cvttps2dq xmm2, xmm2 + LONG $0x3055570f // xorps xmm2, oword 48[rbp] /* [rip + .LCPI4_4] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + WORD $0x540f; BYTE $0xca // andps xmm1, xmm2 + LONG $0x0c110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm1 + +LBB4_1132: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1133: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + JMP LBB4_1135 + +LBB4_1134: + LONG $0x90348941 // mov dword [r8 + 4*rdx], esi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1135: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + WORD $0xf631 // xor esi, esi + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + JE LBB4_1134 + WORD $0x500f; BYTE $0xf1 // movmskps esi, xmm1 + WORD $0xe683; BYTE $0x01 // and esi, 1 + WORD $0xdef7 // neg esi + WORD $0xce83; BYTE $0x01 // or esi, 1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0xce2a0ff3 // cvtsi2ss xmm1, esi + LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si rsi, xmm1 + JMP LBB4_1134 + +LBB4_1137: + WORD $0xf631 // xor esi, esi + +LBB4_1138: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1140 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + +LBB4_1140: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1141: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1141 + JMP LBB4_1655 + +LBB4_1142: + WORD $0xf631 // xor esi, esi + +LBB4_1143: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1145 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x70 // movdqa xmm4, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + +LBB4_1145: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1146: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0x34894166; BYTE $0x50 // mov word [r8 + 2*rdx], si + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1146 + JMP LBB4_1655 + +LBB4_1147: + WORD $0xff31 // xor edi, edi + +LBB4_1148: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1150 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc2280f66 // movapd xmm0, xmm2 + LONG $0xc4c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb280f66 // movapd xmm1, xmm3 + LONG $0xccc20f66; BYTE $0x00 // cmpeqpd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x6d280f66; BYTE $0x00 // movapd xmm5, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xd5540f66 // andpd xmm2, xmm5 + LONG $0x75280f66; BYTE $0x10 // movapd xmm6, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd6560f66 // orpd xmm2, xmm6 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xde560f66 // orpd xmm3, xmm6 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + LONG $0xd2700ff2; BYTE $0xe8 // pshuflw xmm2, xmm2, 232 + LONG $0xdb700ff2; BYTE $0xe8 // pshuflw xmm3, xmm3, 232 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x7814 // movd dword [r8 + 2*rdi], xmm2 + LONG $0x7e0f4166; WORD $0x785c; BYTE $0x04 // movd dword [r8 + 2*rdi + 4], xmm3 + +LBB4_1150: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1655 + +LBB4_1151: + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1152: + LONG $0x1c100ff2; BYTE $0xf1 // movsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xd32c0ff2 // cvttsd2si edx, xmm3 + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1152 + JMP LBB4_1655 + +LBB4_1153: + WORD $0xff31 // xor edi, edi + +LBB4_1154: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1156 + LONG $0x14100f66; BYTE $0xf9 // movupd xmm2, oword [rcx + 8*rdi] + LONG $0x5c100f66; WORD $0x10f9 // movupd xmm3, oword [rcx + 8*rdi + 16] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc2280f66 // movapd xmm0, xmm2 + LONG $0xc4c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb280f66 // movapd xmm1, xmm3 + LONG $0xccc20f66; BYTE $0x00 // cmpeqpd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x6d280f66; BYTE $0x00 // movapd xmm5, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xd5540f66 // andpd xmm2, xmm5 + LONG $0x75280f66; BYTE $0x10 // movapd xmm6, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xd6560f66 // orpd xmm2, xmm6 + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0xde560f66 // orpd xmm3, xmm6 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + LONG $0xd2700ff2; BYTE $0xe8 // pshuflw xmm2, xmm2, 232 + LONG $0xdb700ff2; BYTE $0xe8 // pshuflw xmm3, xmm3, 232 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x7814 // movd dword [r8 + 2*rdi], xmm2 + LONG $0x7e0f4166; WORD $0x785c; BYTE $0x04 // movd dword [r8 + 2*rdi + 4], xmm3 + +LBB4_1156: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1655 + +LBB4_1157: + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1158: + LONG $0x1c100ff2; BYTE $0xf1 // movsd xmm3, qword [rcx + 8*rsi] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0xd32c0ff2 // cvttsd2si edx, xmm3 + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1158 + JMP LBB4_1655 + +LBB4_1159: + WORD $0xf631 // xor esi, esi + +LBB4_1160: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1162 + LONG $0x146f0ff3; BYTE $0xf1 // movdqu xmm2, oword [rcx + 8*rsi] + LONG $0x5c6f0ff3; WORD $0x10f1 // movdqu xmm3, oword [rcx + 8*rsi + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_17] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x7014 // movd dword [r8 + 2*rsi], xmm2 + LONG $0x7e0f4166; WORD $0x705c; BYTE $0x04 // movd dword [r8 + 2*rsi + 4], xmm3 + +LBB4_1162: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1163: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1164: + LONG $0xd13c8b48 // mov rdi, qword [rcx + 8*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f7 // neg eax + WORD $0x8548; BYTE $0xff // test rdi, rdi + WORD $0x4f0f; BYTE $0xc6 // cmovg eax, esi + LONG $0x04894166; BYTE $0x50 // mov word [r8 + 2*rdx], ax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1164 + JMP LBB4_1655 + +LBB4_1165: + WORD $0xff31 // xor edi, edi + +LBB4_1166: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1168 + LONG $0xb904100f // movups xmm0, oword [rcx + 4*rdi] + LONG $0xb94c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rdi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcd660f66 // pcmpgtd xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x756f0f66; BYTE $0x70 // movdqa xmm6, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x7f0f41f3; WORD $0x783c // movdqu oword [r8 + 2*rdi], xmm7 + +LBB4_1168: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1655 + +LBB4_1169: + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + +LBB4_1170: + LONG $0x0c6e0f66; BYTE $0xb1 // movd xmm1, dword [rcx + 4*rsi] + LONG $0xca7e0f66 // movd edx, xmm1 + WORD $0xff31 // xor edi, edi + WORD $0xd285 // test edx, edx + LONG $0xd7990f40 // setns dil + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xff3f548d // lea edx, [rdi + rdi - 1] + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1170 + JMP LBB4_1655 + +LBB4_1171: + WORD $0xff31 // xor edi, edi + +LBB4_1172: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1174 + LONG $0xb904100f // movups xmm0, oword [rcx + 4*rdi] + LONG $0xb94c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rdi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xcd660f66 // pcmpgtd xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0x756f0f66; BYTE $0x70 // movdqa xmm6, oword 112[rbp] /* [rip + .LCPI4_11] */ + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0xfd6c0f66 // punpcklqdq xmm7, xmm5 + LONG $0x7f0f41f3; WORD $0x783c // movdqu oword [r8 + 2*rdi], xmm7 + +LBB4_1174: + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JE LBB4_1655 + +LBB4_1175: + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + +LBB4_1176: + LONG $0x0c6e0f66; BYTE $0xb1 // movd xmm1, dword [rcx + 4*rsi] + LONG $0xca7e0f66 // movd edx, xmm1 + WORD $0xff31 // xor edi, edi + WORD $0xd285 // test edx, edx + LONG $0xd7990f40 // setns dil + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xff3f548d // lea edx, [rdi + rdi - 1] + LONG $0xd2440f41 // cmove edx, r10d + LONG $0x14894166; BYTE $0x70 // mov word [r8 + 2*rsi], dx + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB4_1176 + JMP LBB4_1655 + +LBB4_1177: + WORD $0xf631 // xor esi, esi + +LBB4_1178: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1180 + LONG $0x047e0ff3; BYTE $0xb1 // movq xmm0, qword [rcx + 4*rsi] + LONG $0x4c7e0ff3; WORD $0x08b1 // movq xmm1, qword [rcx + 4*rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x35380f66; BYTE $0xc0 // pmovzxdq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x35380f66; BYTE $0xc9 // pmovzxdq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1180: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1181: + WORD $0xf631 // xor esi, esi + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xd6950f40 // setne sil + LONG $0xd0348949 // mov qword [r8 + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1181 + JMP LBB4_1655 + +LBB4_1182: + WORD $0xf631 // xor esi, esi + +LBB4_1183: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1185 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + QUAD $0x000000d09d6f0f66 // movdqa xmm3, oword 208[rbp] /* [rip + .LCPI4_19] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1185: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1186: + QUAD $0x00000128856e0f66 // movd xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1188 + +LBB4_1187: + LONG $0x7e0f4166; WORD $0x900c // movd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1188: + LONG $0x00913c83 // cmp dword [rcx + 4*rdx], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1187 + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + JMP LBB4_1187 + +LBB4_1190: + WORD $0xf631 // xor esi, esi + +LBB4_1191: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1193 + LONG $0x04100f66; BYTE $0xf1 // movupd xmm0, oword [rcx + 8*rsi] + LONG $0x4c100f66; WORD $0x10f1 // movupd xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xe0280f66 // movapd xmm4, xmm0 + LONG $0xe3540f66 // andpd xmm4, xmm3 + LONG $0x6d280f66; BYTE $0x10 // movapd xmm5, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xe5560f66 // orpd xmm4, xmm5 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xdd560f66 // orpd xmm3, xmm5 + LONG $0x2c0f48f2; BYTE $0xfc // cvttsd2si rdi, xmm4 + LONG $0x6e0f4866; BYTE $0xef // movq xmm5, rdi + LONG $0xe4700f66; BYTE $0xee // pshufd xmm4, xmm4, 238 + LONG $0x2c0f48f2; BYTE $0xfc // cvttsd2si rdi, xmm4 + LONG $0x6e0f4866; BYTE $0xe7 // movq xmm4, rdi + LONG $0xec6c0f66 // punpcklqdq xmm5, xmm4 + LONG $0x2c0f48f2; BYTE $0xfb // cvttsd2si rdi, xmm3 + LONG $0x6e0f4866; BYTE $0xe7 // movq xmm4, rdi + LONG $0xdb700f66; BYTE $0xee // pshufd xmm3, xmm3, 238 + LONG $0x2c0f48f2; BYTE $0xfb // cvttsd2si rdi, xmm3 + LONG $0x6e0f4866; BYTE $0xdf // movq xmm3, rdi + LONG $0xe36c0f66 // punpcklqdq xmm4, xmm3 + LONG $0xc2c20f66; BYTE $0x04 // cmpneqpd xmm0, xmm2 + LONG $0xc5540f66 // andpd xmm0, xmm5 + LONG $0xcac20f66; BYTE $0x04 // cmpneqpd xmm1, xmm2 + LONG $0xcc540f66 // andpd xmm1, xmm4 + LONG $0x110f4166; WORD $0xf004 // movupd oword [r8 + 8*rsi], xmm0 + LONG $0x110f4166; WORD $0xf04c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1193: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1194: + WORD $0xf631 // xor esi, esi + LONG $0xc0570f66 // xorpd xmm0, xmm0 + LONG $0x4d280f66; BYTE $0x00 // movapd xmm1, oword 0[rbp] /* [rip + .LCPI4_0] */ + QUAD $0x0000011095100ff2 // movsd xmm2, qword 272[rbp] /* [rip + .LCPI4_2] */ + +LBB4_1195: + LONG $0x1c100ff2; BYTE $0xd1 // movsd xmm3, qword [rcx + 8*rdx] + LONG $0xc32e0f66 // ucomisd xmm0, xmm3 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xda560f66 // orpd xmm3, xmm2 + LONG $0x2c0f48f2; BYTE $0xfb // cvttsd2si rdi, xmm3 + LONG $0xfe440f48 // cmove rdi, rsi + LONG $0xd03c8949 // mov qword [r8 + 8*rdx], rdi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JNE LBB4_1195 + JMP LBB4_1655 + +LBB4_1196: + WORD $0xf631 // xor esi, esi + +LBB4_1197: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1199 + LONG $0x14100f66; BYTE $0xf1 // movupd xmm2, oword [rcx + 8*rsi] + LONG $0x100f4466; WORD $0xf144; BYTE $0x10 // movupd xmm8, oword [rcx + 8*rsi + 16] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xda5a0ff2 // cvtsd2ss xmm3, xmm2 + LONG $0xd0c20f66; BYTE $0x00 // cmpeqpd xmm2, xmm0 + LONG $0xe8d2c60f // shufps xmm2, xmm2, 232 + LONG $0x655a0f66; BYTE $0x10 // cvtpd2ps xmm4, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xc20f4166; WORD $0x00c0 // cmpeqpd xmm0, xmm8 + LONG $0x6c100ff2; WORD $0x08f1 // movsd xmm5, qword [rcx + 8*rsi + 8] + LONG $0xed5a0ff2 // cvtsd2ss xmm5, xmm5 + LONG $0xe8c0c60f // shufps xmm0, xmm0, 232 + LONG $0x2075280f // movaps xmm6, oword 32[rbp] /* [rip + .LCPI4_3] */ + WORD $0x280f; BYTE $0xfe // movaps xmm7, xmm6 + WORD $0x550f; BYTE $0xfd // andnps xmm7, xmm5 + LONG $0xec160ff3 // movshdup xmm5, xmm4 + WORD $0x540f; BYTE $0xee // andps xmm5, xmm6 + WORD $0x560f; BYTE $0xfd // orps xmm7, xmm5 + WORD $0x280f; BYTE $0xce // movaps xmm1, xmm6 + WORD $0x550f; BYTE $0xcb // andnps xmm1, xmm3 + WORD $0x540f; BYTE $0xe6 // andps xmm4, xmm6 + WORD $0x560f; BYTE $0xcc // orps xmm1, xmm4 + WORD $0x140f; BYTE $0xcf // unpcklps xmm1, xmm7 + WORD $0x550f; BYTE $0xd1 // andnps xmm2, xmm1 + LONG $0x4c100ff2; WORD $0x18f1 // movsd xmm1, qword [rcx + 8*rsi + 24] + LONG $0xc95a0ff2 // cvtsd2ss xmm1, xmm1 + WORD $0x280f; BYTE $0xde // movaps xmm3, xmm6 + WORD $0x550f; BYTE $0xd9 // andnps xmm3, xmm1 + WORD $0x560f; BYTE $0xdd // orps xmm3, xmm5 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x5a0f41f2; BYTE $0xc8 // cvtsd2ss xmm1, xmm8 + WORD $0x550f; BYTE $0xf1 // andnps xmm6, xmm1 + WORD $0x560f; BYTE $0xf4 // orps xmm6, xmm4 + WORD $0x140f; BYTE $0xf3 // unpcklps xmm6, xmm3 + WORD $0x550f; BYTE $0xc6 // andnps xmm0, xmm6 + WORD $0x160f; BYTE $0xd0 // movlhps xmm2, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + +LBB4_1199: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1200: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x304d280f // movaps xmm1, oword 48[rbp] /* [rip + .LCPI4_4] */ + QUAD $0x0000012895100ff3 // movss xmm2, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1202 + +LBB4_1201: + LONG $0x110f41f3; WORD $0x901c // movss dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1202: + LONG $0x24100ff2; BYTE $0xd1 // movsd xmm4, qword [rcx + 8*rdx] + LONG $0xc42e0f66 // ucomisd xmm0, xmm4 + WORD $0x570f; BYTE $0xdb // xorps xmm3, xmm3 + JE LBB4_1201 + WORD $0x570f; BYTE $0xdb // xorps xmm3, xmm3 + LONG $0xdc5a0ff2 // cvtsd2ss xmm3, xmm4 + WORD $0x540f; BYTE $0xd9 // andps xmm3, xmm1 + WORD $0x560f; BYTE $0xda // orps xmm3, xmm2 + JMP LBB4_1201 + +LBB4_1204: + WORD $0xf631 // xor esi, esi + +LBB4_1205: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1207 + LONG $0x047e0ff3; BYTE $0x71 // movq xmm0, qword [rcx + 2*rsi] + LONG $0x4c7e0ff3; WORD $0x0871 // movq xmm1, qword [rcx + 2*rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x33380f66; BYTE $0xc0 // pmovzxwd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x33380f66; BYTE $0xc9 // pmovzxwd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0x04110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm0 + LONG $0x4c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1207: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1208: + QUAD $0x00000128856e0f66 // movd xmm0, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1210 + +LBB4_1209: + LONG $0x7e0f4166; WORD $0x900c // movd dword [r8 + 4*rdx], xmm1 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1210: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + JNE LBB4_1209 + LONG $0xc9ef0f66 // pxor xmm1, xmm1 + JMP LBB4_1209 + +LBB4_1212: + WORD $0xf631 // xor esi, esi + +LBB4_1213: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1215 + LONG $0x146e0f66; BYTE $0x71 // movd xmm2, dword [rcx + 2*rsi] + LONG $0x5c6e0f66; WORD $0x0471 // movd xmm3, dword [rcx + 2*rsi + 4] + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0x24380f66; BYTE $0xc0 // pmovsxwq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x24380f66; BYTE $0xc9 // pmovsxwq xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x24380f66; BYTE $0xd2 // pmovsxwq xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x24380f66; BYTE $0xdb // pmovsxwq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1215: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + +LBB4_1216: + LONG $0x000001be; BYTE $0x00 // mov esi, 1 + +LBB4_1217: + LONG $0x513cb70f // movzx edi, word [rcx + 2*rdx] + WORD $0xc031 // xor eax, eax + WORD $0x8566; BYTE $0xff // test di, di + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0x8566; BYTE $0xff // test di, di + LONG $0xc64f0f48 // cmovg rax, rsi + LONG $0xd0048949 // mov qword [r8 + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd2 // cmp r10, rdx + JNE LBB4_1217 + JMP LBB4_1655 + +LBB4_1218: + WORD $0xf631 // xor esi, esi + +LBB4_1219: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1221 + LONG $0x147e0ff3; BYTE $0x71 // movq xmm2, qword [rcx + 2*rsi] + LONG $0x5c7e0ff3; WORD $0x0871 // movq xmm3, qword [rcx + 2*rsi + 8] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0x23380f66; BYTE $0xc0 // pmovsxwd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x23380f66; BYTE $0xc9 // pmovsxwd xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x23380f66; BYTE $0xd2 // pmovsxwd xmm2, xmm2 + WORD $0x5b0f; BYTE $0xd2 // cvtdq2ps xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x23380f66; BYTE $0xdb // pmovsxwd xmm3, xmm3 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1221: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + +LBB4_1222: + QUAD $0x00000130856e0f66 // movd xmm0, dword 304[rbp] /* [rip + .LCPI4_14] */ + QUAD $0x000001288d6e0f66 // movd xmm1, dword 296[rbp] /* [rip + .LCPI4_5] */ + JMP LBB4_1224 + +LBB4_1223: + LONG $0x7e0f4166; WORD $0x901c // movd dword [r8 + 4*rdx], xmm3 + LONG $0x01c28348 // add rdx, 1 + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JE LBB4_1655 + +LBB4_1224: + LONG $0x513c8366; BYTE $0x00 // cmp word [rcx + 2*rdx], 0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + JNE LBB4_1226 + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + +LBB4_1226: + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + JG LBB4_1223 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + JMP LBB4_1223 + +LBB4_1104: + WORD $0x500f; BYTE $0xc8 // movmskps ecx, xmm0 + WORD $0xe183; BYTE $0x01 // and ecx, 1 + WORD $0xd9f7 // neg ecx + WORD $0xc983; BYTE $0x01 // or ecx, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc12a0ff3 // cvtsi2ss xmm0, ecx + LONG $0x2c0f48f3; BYTE $0xc8 // cvttss2si rcx, xmm0 + +LBB4_1105: + LONG $0xc00c8949 // mov qword [r8 + 8*rax], rcx + +LBB4_1655: + RET + +LBB4_1228: + WORD $0xf631 // xor esi, esi + +LBB4_1229: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1231 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1231: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1232 + +LBB4_1236: + WORD $0xf631 // xor esi, esi + +LBB4_1237: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1239 + LONG $0x146e0f66; BYTE $0x31 // movd xmm2, dword [rcx + rsi] + LONG $0x5c6e0f66; WORD $0x0431 // movd xmm3, dword [rcx + rsi + 4] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x21380f66; BYTE $0xd2 // pmovsxbd xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x21380f66; BYTE $0xdb // pmovsxbd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1239: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1240 + +LBB4_1245: + WORD $0xf631 // xor esi, esi + +LBB4_1246: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1248 + LONG $0x046e0f66; BYTE $0x31 // movd xmm0, dword [rcx + rsi] + LONG $0x4c6e0f66; WORD $0x0431 // movd xmm1, dword [rcx + rsi + 4] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x31380f66; BYTE $0xc0 // pmovzxbd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x31380f66; BYTE $0xc9 // pmovzxbd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1248: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1249 + +LBB4_1253: + WORD $0xf631 // xor esi, esi + +LBB4_1254: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1256 + LONG $0x0c6f0ff3; BYTE $0xb1 // movdqu xmm1, oword [rcx + 4*rsi] + LONG $0x546f0ff3; WORD $0x10b1 // movdqu xmm2, oword [rcx + 4*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1660f66 // pcmpgtd xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb760f66 // pcmpeqd xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda760f66 // pcmpeqd xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x14380f66; BYTE $0xd5 // blendvps xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xe3 // blendvps xmm4, xmm3, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x64110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm4 + +LBB4_1256: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1257 + +LBB4_1262: + WORD $0xf631 // xor esi, esi + +LBB4_1263: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1265 + LONG $0x04100f66; BYTE $0xf1 // movupd xmm0, oword [rcx + 8*rsi] + LONG $0x4c100f66; WORD $0x10f1 // movupd xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0x5d280f66; BYTE $0x00 // movapd xmm3, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xe0280f66 // movapd xmm4, xmm0 + LONG $0xe3540f66 // andpd xmm4, xmm3 + LONG $0x6d280f66; BYTE $0x10 // movapd xmm5, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xe5560f66 // orpd xmm4, xmm5 + LONG $0xd9540f66 // andpd xmm3, xmm1 + LONG $0xdd560f66 // orpd xmm3, xmm5 + LONG $0xc2c20f66; BYTE $0x04 // cmpneqpd xmm0, xmm2 + LONG $0xc4540f66 // andpd xmm0, xmm4 + LONG $0xcac20f66; BYTE $0x04 // cmpneqpd xmm1, xmm2 + LONG $0xcb540f66 // andpd xmm1, xmm3 + LONG $0x110f4166; WORD $0xf004 // movupd oword [r8 + 8*rsi], xmm0 + LONG $0x110f4166; WORD $0xf04c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1265: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1266 + +LBB4_1271: + WORD $0xf631 // xor esi, esi + +LBB4_1272: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1274 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7e0f4166; WORD $0x3004 // movd dword [r8 + rsi], xmm0 + LONG $0x7e0f4166; WORD $0x304c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm1 + +LBB4_1274: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1275 + +LBB4_1279: + WORD $0xf631 // xor esi, esi + +LBB4_1280: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1282 + LONG $0x1c100f66; BYTE $0xf1 // movupd xmm3, oword [rcx + 8*rsi] + LONG $0x64100f66; WORD $0x10f1 // movupd xmm4, oword [rcx + 8*rsi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xc3280f66 // movapd xmm0, xmm3 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcc280f66 // movapd xmm1, xmm4 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x6d280f66; BYTE $0x00 // movapd xmm5, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0x75280f66; BYTE $0x10 // movapd xmm6, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xde560f66 // orpd xmm3, xmm6 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0xe6560f66 // orpd xmm4, xmm6 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + LONG $0x6d6f0f66; BYTE $0x40 // movdqa xmm5, oword 64[rbp] /* [rip + .LCPI4_7] */ + LONG $0x00380f66; BYTE $0xdd // pshufb xmm3, xmm5 + LONG $0xe4e60f66 // cvttpd2dq xmm4, xmm4 + LONG $0x00380f66; BYTE $0xe5 // pshufb xmm4, xmm5 + LONG $0x10380f66; BYTE $0xda // pblendvb xmm3, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe2 // pblendvb xmm4, xmm2, xmm0 + QUAD $0x00301c153a0f4166 // pextrw word [r8 + rsi], xmm3, 0 + QUAD $0x023064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm4, 0 + +LBB4_1282: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1283 + +LBB4_1288: + WORD $0xc031 // xor eax, eax + +LBB4_1289: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1291 + LONG $0x0c6f0ff3; BYTE $0x01 // movdqu xmm1, oword [rcx + rax] + LONG $0x546f0ff3; WORD $0x1001 // movdqu xmm2, oword [rcx + rax + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x00000100a56f0f66 // movdqa xmm4, oword 256[rbp] /* [rip + .LCPI4_22] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1640f66 // pcmpgtb xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb740f66 // pcmpeqb xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda740f66 // pcmpeqb xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x7f0f41f3; WORD $0x0014 // movdqu oword [r8 + rax], xmm2 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB4_1291: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1292 + +LBB4_1297: + WORD $0xf631 // xor esi, esi + +LBB4_1298: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1300 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x003004153a0f4166 // pextrw word [r8 + rsi], xmm0, 0 + LONG $0xccdb0f66 // pand xmm1, xmm4 + QUAD $0x02304c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm1, 0 + +LBB4_1300: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1301 + +LBB4_1305: + WORD $0xf631 // xor esi, esi + +LBB4_1306: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1308 + LONG $0x046f0ff3; BYTE $0x71 // movdqu xmm0, oword [rcx + 2*rsi] + LONG $0x4c6f0ff3; WORD $0x1071 // movdqu xmm1, oword [rcx + 2*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3004 // movdqu oword [r8 + rsi], xmm0 + +LBB4_1308: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1309 + +LBB4_1313: + WORD $0xc031 // xor eax, eax + +LBB4_1314: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1316 + LONG $0x146f0ff3; BYTE $0x41 // movdqu xmm2, oword [rcx + 2*rax] + LONG $0x5c6f0ff3; WORD $0x1041 // movdqu xmm3, oword [rcx + 2*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x0014 // movdqu oword [r8 + rax], xmm2 + +LBB4_1316: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1317 + +LBB4_1322: + WORD $0xc031 // xor eax, eax + +LBB4_1323: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1325 + LONG $0x146f0ff3; BYTE $0xc1 // movdqu xmm2, oword [rcx + 8*rax] + LONG $0x5c6f0ff3; WORD $0x10c1 // movdqu xmm3, oword [rcx + 8*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + QUAD $0x000014153a0f4166 // pextrw word [r8 + rax], xmm2, 0 + QUAD $0x02005c153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 2], xmm3, 0 + +LBB4_1325: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1326 + +LBB4_1331: + WORD $0xf631 // xor esi, esi + +LBB4_1332: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1334 + LONG $0xb104100f // movups xmm0, oword [rcx + 4*rsi] + LONG $0xb14c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rsi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcd660f66 // pcmpgtd xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x00000080b56f0f66 // movdqa xmm6, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x303c // movd dword [r8 + rsi], xmm7 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm5 + +LBB4_1334: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1335 + +LBB4_1340: + WORD $0xf631 // xor esi, esi + +LBB4_1341: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1343 + LONG $0x046f0ff3; BYTE $0x31 // movdqu xmm0, oword [rcx + rsi] + LONG $0x4c6f0ff3; WORD $0x1031 // movdqu xmm1, oword [rcx + rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + QUAD $0x000001009d6f0f66 // movdqa xmm3, oword 256[rbp] /* [rip + .LCPI4_22] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0x3004 // movdqu oword [r8 + rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x304c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm1 + +LBB4_1343: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1344 + +LBB4_1348: + WORD $0xc031 // xor eax, eax + +LBB4_1349: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1351 + LONG $0x146f0ff3; BYTE $0x81 // movdqu xmm2, oword [rcx + 4*rax] + LONG $0x5c6f0ff3; WORD $0x1081 // movdqu xmm3, oword [rcx + 4*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x0014 // movd dword [r8 + rax], xmm2 + LONG $0x7e0f4166; WORD $0x005c; BYTE $0x04 // movd dword [r8 + rax + 4], xmm3 + +LBB4_1351: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1352 + +LBB4_1357: + WORD $0xf631 // xor esi, esi + +LBB4_1358: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1360 + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x22380f66; BYTE $0xd2 // pmovsxbq xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x22380f66; BYTE $0xdb // pmovsxbq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1360: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1361 + +LBB4_1366: + WORD $0xf631 // xor esi, esi + +LBB4_1367: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1369 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + QUAD $0x000000909d6f0f66 // movdqa xmm3, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1369: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1370 + +LBB4_1374: + WORD $0xf631 // xor esi, esi + +LBB4_1375: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1377 + LONG $0x0c6f0ff3; BYTE $0xf1 // movdqu xmm1, oword [rcx + 8*rsi] + LONG $0x546f0ff3; WORD $0x10f1 // movdqu xmm2, oword [rcx + 8*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc1 // pcmpgtq xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0x29380f66; BYTE $0xeb // pcmpeqq xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0x29380f66; BYTE $0xda // pcmpeqq xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x15380f66; BYTE $0xd5 // blendvpd xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xe3 // blendvpd xmm4, xmm3, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf064; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm4 + +LBB4_1377: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1378 + +LBB4_1383: + WORD $0xf631 // xor esi, esi + +LBB4_1384: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1386 + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x32380f66; BYTE $0xc0 // pmovzxbq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x32380f66; BYTE $0xc9 // pmovzxbq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1386: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1387 + +LBB4_1391: + WORD $0xf631 // xor esi, esi + +LBB4_1392: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1394 + LONG $0x147e0ff3; BYTE $0x31 // movq xmm2, qword [rcx + rsi] + LONG $0x5c7e0ff3; WORD $0x0831 // movq xmm3, qword [rcx + rsi + 8] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x20380f66; BYTE $0xd2 // pmovsxbw xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x20380f66; BYTE $0xdb // pmovsxbw xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + +LBB4_1394: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1395 + +LBB4_1400: + WORD $0xf631 // xor esi, esi + +LBB4_1401: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1403 + LONG $0x147e0ff3; BYTE $0x31 // movq xmm2, qword [rcx + rsi] + LONG $0x5c7e0ff3; WORD $0x0831 // movq xmm3, qword [rcx + rsi + 8] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x20380f66; BYTE $0xc0 // pmovsxbw xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x20380f66; BYTE $0xc9 // pmovsxbw xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x20380f66; BYTE $0xd2 // pmovsxbw xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x20380f66; BYTE $0xdb // pmovsxbw xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x705c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm3 + +LBB4_1403: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1404 + +LBB4_1409: + WORD $0xf631 // xor esi, esi + +LBB4_1410: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1412 + LONG $0x046f0ff3; BYTE $0x71 // movdqu xmm0, oword [rcx + 2*rsi] + LONG $0x4c6f0ff3; WORD $0x1071 // movdqu xmm1, oword [rcx + 2*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + QUAD $0x000000e09d6f0f66 // movdqa xmm3, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x704c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm1 + +LBB4_1412: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1413 + +LBB4_1417: + WORD $0xf631 // xor esi, esi + +LBB4_1418: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1420 + LONG $0x046f0ff3; BYTE $0x71 // movdqu xmm0, oword [rcx + 2*rsi] + LONG $0x4c6f0ff3; WORD $0x1071 // movdqu xmm1, oword [rcx + 2*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + QUAD $0x000000e09d6f0f66 // movdqa xmm3, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x704c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm1 + +LBB4_1420: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1421 + +LBB4_1425: + WORD $0xf631 // xor esi, esi + +LBB4_1426: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1428 + LONG $0x0c6f0ff3; BYTE $0x71 // movdqu xmm1, oword [rcx + 2*rsi] + LONG $0x546f0ff3; WORD $0x1071 // movdqu xmm2, oword [rcx + 2*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1650f66 // pcmpgtw xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb750f66 // pcmpeqw xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda750f66 // pcmpeqw xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm4 + +LBB4_1428: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1429 + +LBB4_1434: + WORD $0xf631 // xor esi, esi + +LBB4_1435: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1437 + LONG $0x0c6f0ff3; BYTE $0x71 // movdqu xmm1, oword [rcx + 2*rsi] + LONG $0x546f0ff3; WORD $0x1071 // movdqu xmm2, oword [rcx + 2*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1650f66 // pcmpgtw xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb750f66 // pcmpeqw xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda750f66 // pcmpeqw xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x7f0f41f3; WORD $0x7014 // movdqu oword [r8 + 2*rsi], xmm2 + LONG $0x7f0f41f3; WORD $0x7064; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm4 + +LBB4_1437: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1438 + +LBB4_1443: + WORD $0xf631 // xor esi, esi + +LBB4_1444: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1446 + LONG $0x047e0ff3; BYTE $0x31 // movq xmm0, qword [rcx + rsi] + LONG $0x4c7e0ff3; WORD $0x0831 // movq xmm1, qword [rcx + rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x30380f66; BYTE $0xc0 // pmovzxbw xmm0, xmm0 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x30380f66; BYTE $0xc9 // pmovzxbw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x704c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm1 + +LBB4_1446: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1447 + +LBB4_1451: + WORD $0xf631 // xor esi, esi + +LBB4_1452: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1454 + LONG $0x047e0ff3; BYTE $0x31 // movq xmm0, qword [rcx + rsi] + LONG $0x4c7e0ff3; WORD $0x0831 // movq xmm1, qword [rcx + rsi + 8] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x30380f66; BYTE $0xc0 // pmovzxbw xmm0, xmm0 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI4_20] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x30380f66; BYTE $0xc9 // pmovzxbw xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0x7004 // movdqu oword [r8 + 2*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x704c; BYTE $0x10 // movdqu oword [r8 + 2*rsi + 16], xmm1 + +LBB4_1454: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1455 + +LBB4_1459: + WORD $0xf631 // xor esi, esi + +LBB4_1460: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1462 + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0xe4570f66 // xorpd xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x22380f66; BYTE $0xc0 // pmovsxbq xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x22380f66; BYTE $0xc9 // pmovsxbq xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x22380f66; BYTE $0xd2 // pmovsxbq xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x22380f66; BYTE $0xdb // pmovsxbq xmm3, xmm3 + QUAD $0x00000090a5280f66 // movapd xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0x15380f66; BYTE $0xd4 // blendvpd xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xdc // blendvpd xmm3, xmm4, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf05c; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm3 + +LBB4_1462: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1463 + +LBB4_1468: + WORD $0xf631 // xor esi, esi + +LBB4_1469: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1471 + LONG $0x146e0f66; BYTE $0x31 // movd xmm2, dword [rcx + rsi] + LONG $0x5c6e0f66; WORD $0x0431 // movd xmm3, dword [rcx + rsi + 4] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x21380f66; BYTE $0xd2 // pmovsxbd xmm2, xmm2 + WORD $0x5b0f; BYTE $0xd2 // cvtdq2ps xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x21380f66; BYTE $0xdb // pmovsxbd xmm3, xmm3 + WORD $0x5b0f; BYTE $0xdb // cvtdq2ps xmm3, xmm3 + LONG $0xd0a5280f; WORD $0x0000; BYTE $0x00 // movaps xmm4, oword 208[rbp] /* [rip + .LCPI4_19] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1471: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1472 + +LBB4_1490: + WORD $0xf631 // xor esi, esi + +LBB4_1491: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1493 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + QUAD $0x000000909d6f0f66 // movdqa xmm3, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1493: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1494 + +LBB4_1498: + WORD $0xf631 // xor esi, esi + +LBB4_1499: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1501 + LONG $0x0c6f0ff3; BYTE $0xf1 // movdqu xmm1, oword [rcx + 8*rsi] + LONG $0x546f0ff3; WORD $0x10f1 // movdqu xmm2, oword [rcx + 8*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x37380f66; BYTE $0xc1 // pcmpgtq xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0x29380f66; BYTE $0xeb // pcmpeqq xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0x29380f66; BYTE $0xda // pcmpeqq xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0x37380f66; BYTE $0xca // pcmpgtq xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x15380f66; BYTE $0xd5 // blendvpd xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xe3 // blendvpd xmm4, xmm3, xmm0 + LONG $0x110f4166; WORD $0xf014 // movupd oword [r8 + 8*rsi], xmm2 + LONG $0x110f4166; WORD $0xf064; BYTE $0x10 // movupd oword [r8 + 8*rsi + 16], xmm4 + +LBB4_1501: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1502 + +LBB4_1507: + WORD $0xf631 // xor esi, esi + +LBB4_1508: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1510 + LONG $0x3104b70f // movzx eax, word [rcx + rsi] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x3144b70f; BYTE $0x02 // movzx eax, word [rcx + rsi + 2] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x32380f66; BYTE $0xc0 // pmovzxbq xmm0, xmm0 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI4_15] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x32380f66; BYTE $0xc9 // pmovzxbq xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xf004 // movdqu oword [r8 + 8*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xf04c; BYTE $0x10 // movdqu oword [r8 + 8*rsi + 16], xmm1 + +LBB4_1510: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1511 + +LBB4_1515: + WORD $0xf631 // xor esi, esi + +LBB4_1516: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1518 + LONG $0x046e0f66; BYTE $0x31 // movd xmm0, dword [rcx + rsi] + LONG $0x4c6e0f66; WORD $0x0431 // movd xmm1, dword [rcx + rsi + 4] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x31380f66; BYTE $0xc0 // pmovzxbd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x31380f66; BYTE $0xc9 // pmovzxbd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0x04110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm0 + LONG $0x4c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1518: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1519 + +LBB4_1535: + WORD $0xf631 // xor esi, esi + +LBB4_1536: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1538 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7e0f4166; WORD $0x3004 // movd dword [r8 + rsi], xmm0 + LONG $0x7e0f4166; WORD $0x304c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm1 + +LBB4_1538: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1539 + +LBB4_1543: + WORD $0xf631 // xor esi, esi + +LBB4_1544: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1546 + LONG $0x1c100f66; BYTE $0xf1 // movupd xmm3, oword [rcx + 8*rsi] + LONG $0x64100f66; WORD $0x10f1 // movupd xmm4, oword [rcx + 8*rsi + 16] + LONG $0xd2570f66 // xorpd xmm2, xmm2 + LONG $0xc3280f66 // movapd xmm0, xmm3 + LONG $0xc2c20f66; BYTE $0x00 // cmpeqpd xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcc280f66 // movapd xmm1, xmm4 + LONG $0xcac20f66; BYTE $0x00 // cmpeqpd xmm1, xmm2 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x6d280f66; BYTE $0x00 // movapd xmm5, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xdd540f66 // andpd xmm3, xmm5 + LONG $0x75280f66; BYTE $0x10 // movapd xmm6, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0xde560f66 // orpd xmm3, xmm6 + LONG $0xe5540f66 // andpd xmm4, xmm5 + LONG $0xe6560f66 // orpd xmm4, xmm6 + LONG $0xdbe60f66 // cvttpd2dq xmm3, xmm3 + LONG $0x6d6f0f66; BYTE $0x40 // movdqa xmm5, oword 64[rbp] /* [rip + .LCPI4_7] */ + LONG $0x00380f66; BYTE $0xdd // pshufb xmm3, xmm5 + LONG $0xe4e60f66 // cvttpd2dq xmm4, xmm4 + LONG $0x00380f66; BYTE $0xe5 // pshufb xmm4, xmm5 + LONG $0x10380f66; BYTE $0xda // pblendvb xmm3, xmm2, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe2 // pblendvb xmm4, xmm2, xmm0 + QUAD $0x00301c153a0f4166 // pextrw word [r8 + rsi], xmm3, 0 + QUAD $0x023064153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm4, 0 + +LBB4_1546: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1547 + +LBB4_1552: + WORD $0xc031 // xor eax, eax + +LBB4_1553: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1555 + LONG $0x0c6f0ff3; BYTE $0x01 // movdqu xmm1, oword [rcx + rax] + LONG $0x546f0ff3; WORD $0x1001 // movdqu xmm2, oword [rcx + rax + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + QUAD $0x00000100a56f0f66 // movdqa xmm4, oword 256[rbp] /* [rip + .LCPI4_22] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1640f66 // pcmpgtb xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb740f66 // pcmpeqb xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda740f66 // pcmpeqb xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca640f66 // pcmpgtb xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x10380f66; BYTE $0xd5 // pblendvb xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xe3 // pblendvb xmm4, xmm3, xmm0 + LONG $0x7f0f41f3; WORD $0x0014 // movdqu oword [r8 + rax], xmm2 + LONG $0x7f0f41f3; WORD $0x0064; BYTE $0x10 // movdqu oword [r8 + rax + 16], xmm4 + +LBB4_1555: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1556 + +LBB4_1561: + WORD $0xf631 // xor esi, esi + +LBB4_1562: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1564 + LONG $0x046f0ff3; BYTE $0xf1 // movdqu xmm0, oword [rcx + 8*rsi] + LONG $0x4c6f0ff3; WORD $0x10f1 // movdqu xmm1, oword [rcx + 8*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0x29380f66; BYTE $0xc2 // pcmpeqq xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0x29380f66; BYTE $0xca // pcmpeqq xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x003004153a0f4166 // pextrw word [r8 + rsi], xmm0, 0 + LONG $0xccdb0f66 // pand xmm1, xmm4 + QUAD $0x02304c153a0f4166; BYTE $0x00 // pextrw word [r8 + rsi + 2], xmm1, 0 + +LBB4_1564: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1565 + +LBB4_1569: + WORD $0xf631 // xor esi, esi + +LBB4_1570: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1572 + LONG $0x046f0ff3; BYTE $0x71 // movdqu xmm0, oword [rcx + 2*rsi] + LONG $0x4c6f0ff3; WORD $0x1071 // movdqu xmm1, oword [rcx + 2*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2750f66 // pcmpeqw xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca750f66 // pcmpeqw xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x7f0f41f3; WORD $0x3004 // movdqu oword [r8 + rsi], xmm0 + +LBB4_1572: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1573 + +LBB4_1577: + WORD $0xc031 // xor eax, eax + +LBB4_1578: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1580 + LONG $0x146f0ff3; BYTE $0x41 // movdqu xmm2, oword [rcx + 2*rax] + LONG $0x5c6f0ff3; WORD $0x1041 // movdqu xmm3, oword [rcx + 2*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd4750f66 // pcmpeqw xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdc750f66 // pcmpeqw xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x000000f0a56f0f66 // movdqa xmm4, oword 240[rbp] /* [rip + .LCPI4_21] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + LONG $0x7f0f41f3; WORD $0x0014 // movdqu oword [r8 + rax], xmm2 + +LBB4_1580: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1581 + +LBB4_1586: + WORD $0xc031 // xor eax, eax + +LBB4_1587: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1589 + LONG $0x146f0ff3; BYTE $0xc1 // movdqu xmm2, oword [rcx + 8*rax] + LONG $0x5c6f0ff3; WORD $0x10c1 // movdqu xmm3, oword [rcx + 8*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x37380f66; BYTE $0xc4 // pcmpgtq xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x37380f66; BYTE $0xcc // pcmpgtq xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x29380f66; BYTE $0xd4 // pcmpeqq xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0x29380f66; BYTE $0xdc // pcmpeqq xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI4_18] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + QUAD $0x000014153a0f4166 // pextrw word [r8 + rax], xmm2, 0 + QUAD $0x02005c153a0f4166; BYTE $0x00 // pextrw word [r8 + rax + 2], xmm3, 0 + +LBB4_1589: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1590 + +LBB4_1595: + WORD $0xf631 // xor esi, esi + +LBB4_1596: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1598 + LONG $0xb104100f // movups xmm0, oword [rcx + 4*rsi] + LONG $0xb14c100f; BYTE $0x10 // movups xmm1, oword [rcx + 4*rsi + 16] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + WORD $0x280f; BYTE $0xd0 // movaps xmm2, xmm0 + LONG $0x00d4c20f // cmpeqps xmm2, xmm4 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + LONG $0x00dcc20f // cmpeqps xmm3, xmm4 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xc5660f66 // pcmpgtd xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcd660f66 // pcmpgtd xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x00000080b56f0f66 // movdqa xmm6, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0x10380f66; BYTE $0xfe // pblendvb xmm7, xmm6, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xee // pblendvb xmm5, xmm6, xmm0 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x10380f66; BYTE $0xec // pblendvb xmm5, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x303c // movd dword [r8 + rsi], xmm7 + LONG $0x7e0f4166; WORD $0x306c; BYTE $0x04 // movd dword [r8 + rsi + 4], xmm5 + +LBB4_1598: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1599 + +LBB4_1604: + WORD $0xf631 // xor esi, esi + +LBB4_1605: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1607 + LONG $0x046f0ff3; BYTE $0x31 // movdqu xmm0, oword [rcx + rsi] + LONG $0x4c6f0ff3; WORD $0x1031 // movdqu xmm1, oword [rcx + rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + QUAD $0x000001009d6f0f66 // movdqa xmm3, oword 256[rbp] /* [rip + .LCPI4_22] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0x3004 // movdqu oword [r8 + rsi], xmm0 + LONG $0x7f0f41f3; WORD $0x304c; BYTE $0x10 // movdqu oword [r8 + rsi + 16], xmm1 + +LBB4_1607: + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JE LBB4_1655 + JMP LBB4_1608 + +LBB4_1612: + WORD $0xc031 // xor eax, eax + +LBB4_1613: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1615 + LONG $0x146f0ff3; BYTE $0x81 // movdqu xmm2, oword [rcx + 4*rax] + LONG $0x5c6f0ff3; WORD $0x1081 // movdqu xmm3, oword [rcx + 4*rax + 16] + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4660f66 // pcmpgtd xmm0, xmm4 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc660f66 // pcmpgtd xmm1, xmm4 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd4760f66 // pcmpeqd xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdc760f66 // pcmpeqd xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_12] */ + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x10380f66; BYTE $0xdc // pblendvb xmm3, xmm4, xmm0 + LONG $0x7e0f4166; WORD $0x0014 // movd dword [r8 + rax], xmm2 + LONG $0x7e0f4166; WORD $0x005c; BYTE $0x04 // movd dword [r8 + rax + 4], xmm3 + +LBB4_1615: + WORD $0x394c; BYTE $0xd6 // cmp rsi, r10 + JE LBB4_1655 + JMP LBB4_1616 + +LBB4_1621: + WORD $0xf631 // xor esi, esi + +LBB4_1622: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1624 + LONG $0x046f0ff3; BYTE $0xb1 // movdqu xmm0, oword [rcx + 4*rsi] + LONG $0x4c6f0ff3; WORD $0x10b1 // movdqu xmm1, oword [rcx + 4*rsi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2760f66 // pcmpeqd xmm0, xmm2 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc3df0f66 // pandn xmm0, xmm3 + LONG $0xca760f66 // pcmpeqd xmm1, xmm2 + LONG $0xcbdf0f66 // pandn xmm1, xmm3 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1624: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1625 + +LBB4_1629: + WORD $0xf631 // xor esi, esi + +LBB4_1630: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1632 + LONG $0x146e0f66; BYTE $0x31 // movd xmm2, dword [rcx + rsi] + LONG $0x5c6e0f66; WORD $0x0431 // movd xmm3, dword [rcx + rsi + 4] + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xc4640f66 // pcmpgtb xmm0, xmm4 + LONG $0x21380f66; BYTE $0xc0 // pmovsxbd xmm0, xmm0 + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0xcc640f66 // pcmpgtb xmm1, xmm4 + LONG $0x21380f66; BYTE $0xc9 // pmovsxbd xmm1, xmm1 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xd5ef0f66 // pxor xmm2, xmm5 + LONG $0x21380f66; BYTE $0xd2 // pmovsxbd xmm2, xmm2 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + LONG $0xddef0f66 // pxor xmm3, xmm5 + LONG $0x21380f66; BYTE $0xdb // pmovsxbd xmm3, xmm3 + LONG $0x5065280f // movaps xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x5c110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm3 + +LBB4_1632: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1633 + +LBB4_1638: + WORD $0xf631 // xor esi, esi + +LBB4_1639: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1641 + LONG $0x046e0f66; BYTE $0x31 // movd xmm0, dword [rcx + rsi] + LONG $0x4c6e0f66; WORD $0x0431 // movd xmm1, dword [rcx + rsi + 4] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc3ef0f66 // pxor xmm0, xmm3 + LONG $0x31380f66; BYTE $0xc0 // pmovzxbd xmm0, xmm0 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc4db0f66 // pand xmm0, xmm4 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xcbef0f66 // pxor xmm1, xmm3 + LONG $0x31380f66; BYTE $0xc9 // pmovzxbd xmm1, xmm1 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0x7f0f41f3; WORD $0xb004 // movdqu oword [r8 + 4*rsi], xmm0 + LONG $0x7f0f41f3; WORD $0xb04c; BYTE $0x10 // movdqu oword [r8 + 4*rsi + 16], xmm1 + +LBB4_1641: + WORD $0x394c; BYTE $0xd2 // cmp rdx, r10 + JE LBB4_1655 + JMP LBB4_1642 + +LBB4_1646: + WORD $0xf631 // xor esi, esi + +LBB4_1647: + LONG $0x01c1f641 // test r9b, 1 + JE LBB4_1649 + LONG $0x0c6f0ff3; BYTE $0xb1 // movdqu xmm1, oword [rcx + 4*rsi] + LONG $0x546f0ff3; WORD $0x10b1 // movdqu xmm2, oword [rcx + 4*rsi + 16] + LONG $0xdbef0f66 // pxor xmm3, xmm3 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xc1660f66 // pcmpgtd xmm0, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xeb760f66 // pcmpeqd xmm5, xmm3 + LONG $0xc9760f66 // pcmpeqd xmm1, xmm1 + LONG $0xe9ef0f66 // pxor xmm5, xmm1 + LONG $0xda760f66 // pcmpeqd xmm3, xmm2 + LONG $0xd9ef0f66 // pxor xmm3, xmm1 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca660f66 // pcmpgtd xmm1, xmm2 + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x14380f66; BYTE $0xd5 // blendvps xmm2, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x14380f66; BYTE $0xe3 // blendvps xmm4, xmm3, xmm0 + LONG $0x14110f41; BYTE $0xb0 // movups oword [r8 + 4*rsi], xmm2 + LONG $0x64110f41; WORD $0x10b0 // movups oword [r8 + 4*rsi + 16], xmm4 + +LBB4_1649: + WORD $0x394c; BYTE $0xda // cmp rdx, r11 + JE LBB4_1655 + JMP LBB4_1650 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/basic_arithmetic_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/basic_arithmetic_noasm.go new file mode 100644 index 0000000..c665e14 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/basic_arithmetic_noasm.go @@ -0,0 +1,32 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && (noasm || !amd64) + +package kernels + +import ( + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "golang.org/x/exp/constraints" +) + +func getArithmeticOpFloating[InT, OutT constraints.Float](op ArithmeticOp) exec.ArrayKernelExec { + return getGoArithmeticOpFloating[InT, OutT](op) +} + +func getArithmeticOpIntegral[InT, OutT exec.UintTypes | exec.IntTypes](op ArithmeticOp) exec.ArrayKernelExec { + return getGoArithmeticOpIntegral[InT, OutT](op) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/boolean_cast.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/boolean_cast.go new file mode 100644 index 0000000..cf7f577 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/boolean_cast.go @@ -0,0 +1,107 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "strconv" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" +) + +func isNonZero[T exec.FixedWidthTypes](ctx *exec.KernelCtx, in []T, out []byte) error { + var zero T + for i, v := range in { + bitutil.SetBitTo(out, i, v != zero) + } + return nil +} + +// GetBooleanCastKernels returns the slice of scalar kernels for casting +// values *to* a boolean type. +func GetBooleanCastKernels() []exec.ScalarKernel { + kernels := GetCommonCastKernels(arrow.BOOL, exec.NewOutputType(arrow.FixedWidthTypes.Boolean)) + kernels = append(kernels, GetZeroCastKernel(arrow.BOOL, + exec.NewExactInput(arrow.FixedWidthTypes.Boolean), exec.NewOutputType(arrow.FixedWidthTypes.Boolean))) + + out := exec.NewOutputType(arrow.FixedWidthTypes.Boolean) + for _, ty := range numericTypes { + var ex exec.ArrayKernelExec + switch ty.ID() { + case arrow.INT8: + ex = ScalarUnaryBoolOutput(isNonZero[int8]) + case arrow.UINT8: + ex = ScalarUnaryBoolOutput(isNonZero[uint8]) + case arrow.INT16: + ex = ScalarUnaryBoolOutput(isNonZero[int16]) + case arrow.UINT16: + ex = ScalarUnaryBoolOutput(isNonZero[uint16]) + case arrow.INT32: + ex = ScalarUnaryBoolOutput(isNonZero[int32]) + case arrow.UINT32: + ex = ScalarUnaryBoolOutput(isNonZero[uint32]) + case arrow.INT64: + ex = ScalarUnaryBoolOutput(isNonZero[int64]) + case arrow.UINT64: + ex = ScalarUnaryBoolOutput(isNonZero[uint64]) + case arrow.FLOAT32: + ex = ScalarUnaryBoolOutput(isNonZero[float32]) + case arrow.FLOAT64: + ex = ScalarUnaryBoolOutput(isNonZero[float64]) + } + k := exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, out, ex, nil) + k.NullHandling = exec.NullIntersection + k.MemAlloc = exec.MemPrealloc + kernels = append(kernels, k) + } + + for _, ty := range baseBinaryTypes { + var ex exec.ArrayKernelExec + switch ty.ID() { + case arrow.BINARY, arrow.STRING: + ex = ScalarUnaryNotNullBinaryArgBoolOut[int32](false, func(_ *exec.KernelCtx, b []byte, err *error) bool { + v := *(*string)(unsafe.Pointer(&b)) + o, e := strconv.ParseBool(v) + if e != nil { + *err = e + } + return o + }) + case arrow.LARGE_BINARY, arrow.LARGE_STRING: + ex = ScalarUnaryNotNullBinaryArgBoolOut[int64](false, func(_ *exec.KernelCtx, b []byte, err *error) bool { + v := *(*string)(unsafe.Pointer(&b)) + o, e := strconv.ParseBool(v) + if e != nil { + *err = e + } + return o + }) + } + k := exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, out, ex, nil) + k.NullHandling = exec.NullIntersection + k.MemAlloc = exec.MemPrealloc + kernels = append(kernels, k) + } + + return kernels +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast.go new file mode 100644 index 0000000..4a2b167 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast.go @@ -0,0 +1,115 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" +) + +type CastOptions struct { + ToType arrow.DataType `compute:"to_type"` + AllowIntOverflow bool `compute:"allow_int_overflow"` + AllowTimeTruncate bool `compute:"allow_time_truncate"` + AllowTimeOverflow bool `compute:"allow_time_overflow"` + AllowDecimalTruncate bool `compute:"allow_decimal_truncate"` + AllowFloatTruncate bool `compute:"allow_float_truncate"` + AllowInvalidUtf8 bool `compute:"allow_invalid_utf8"` +} + +func (CastOptions) TypeName() string { return "CastOptions" } + +// CastState is the kernel state for Cast functions, it is an alias to +// the CastOptions object. +type CastState = CastOptions + +// ZeroCopyCastExec is a kernel for performing a cast which can be executed +// as a zero-copy operation. It simply forwards the buffers to the output. +// +// This can be used for casting a type to itself, or for casts between +// equivalent representations such as Int32 and Date32. +func ZeroCopyCastExec(_ *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + dt := out.Type + *out = batch.Values[0].Array + out.Type = dt + return nil +} + +func recursiveSetSelfAlloc(arr *exec.ArraySpan) { + for i := range arr.Buffers { + if len(arr.Buffers[i].Buf) > 0 { + arr.Buffers[i].SelfAlloc = true + if arr.Buffers[i].Owner != nil { + arr.Buffers[i].Owner.Retain() + } + } + } + + for i := range arr.Children { + recursiveSetSelfAlloc(&arr.Children[i]) + } +} + +// CastFromNull is a simple kernel for constructing an array of null values +// for the requested data type, allowing casting of an arrow.Null typed value +// to any other arbitrary data type. +func CastFromNull(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + arr := array.MakeArrayOfNull(exec.GetAllocator(ctx.Ctx), out.Type, int(batch.Len)) + defer arr.Release() + + out.SetMembers(arr.Data()) + recursiveSetSelfAlloc(out) + return nil +} + +// OutputAllNull is a simple kernel that initializes the output as an array +// whose output is all null by setting nulls to the length. +func OutputAllNull(_ *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + out.Nulls = batch.Len + return nil +} + +func CanCastFromDict(id arrow.Type) bool { + return arrow.IsPrimitive(id) || arrow.IsBaseBinary(id) || arrow.IsFixedSizeBinary(id) +} + +// GetZeroCastKernel returns a kernel for performing ZeroCast execution using +// the ZeroCopyCastExec kernel function. +func GetZeroCastKernel(inID arrow.Type, inType exec.InputType, out exec.OutputType) exec.ScalarKernel { + k := exec.NewScalarKernel([]exec.InputType{inType}, out, ZeroCopyCastExec, nil) + k.NullHandling = exec.NullComputedNoPrealloc + k.MemAlloc = exec.MemNoPrealloc + return k +} + +// GetCommonCastKernels returns the list of kernels common to all types +// such as casting from null or from Extension types of the appropriate +// underlying type. +func GetCommonCastKernels(outID arrow.Type, outType exec.OutputType) (out []exec.ScalarKernel) { + out = make([]exec.ScalarKernel, 0, 2) + + kernel := exec.NewScalarKernel([]exec.InputType{exec.NewExactInput(arrow.Null)}, outType, + CastFromNull, nil) + kernel.NullHandling = exec.NullComputedNoPrealloc + kernel.MemAlloc = exec.MemNoPrealloc + out = append(out, kernel) + + return +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric.go new file mode 100644 index 0000000..9a28b5a --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric.go @@ -0,0 +1,87 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +var castNumericUnsafe func(itype, otype arrow.Type, in, out []byte, len int) = castNumericGo + +func DoStaticCast[InT, OutT numeric](in []InT, out []OutT) { + for i, v := range in { + out[i] = OutT(v) + } +} + +func reinterpret[T numeric](b []byte, len int) (res []T) { + return unsafe.Slice((*T)(unsafe.Pointer(&b[0])), len) +} + +func castNumberToNumberUnsafeImpl[T numeric](outT arrow.Type, in []T, out []byte) { + switch outT { + case arrow.INT8: + DoStaticCast(in, reinterpret[int8](out, len(in))) + case arrow.UINT8: + DoStaticCast(in, reinterpret[uint8](out, len(in))) + case arrow.INT16: + DoStaticCast(in, reinterpret[int16](out, len(in))) + case arrow.UINT16: + DoStaticCast(in, reinterpret[uint16](out, len(in))) + case arrow.INT32: + DoStaticCast(in, reinterpret[int32](out, len(in))) + case arrow.UINT32: + DoStaticCast(in, reinterpret[uint32](out, len(in))) + case arrow.INT64: + DoStaticCast(in, reinterpret[int64](out, len(in))) + case arrow.UINT64: + DoStaticCast(in, reinterpret[uint64](out, len(in))) + case arrow.FLOAT32: + DoStaticCast(in, reinterpret[float32](out, len(in))) + case arrow.FLOAT64: + DoStaticCast(in, reinterpret[float64](out, len(in))) + } +} + +func castNumericGo(itype, otype arrow.Type, in, out []byte, len int) { + switch itype { + case arrow.INT8: + castNumberToNumberUnsafeImpl(otype, reinterpret[int8](in, len), out) + case arrow.UINT8: + castNumberToNumberUnsafeImpl(otype, reinterpret[uint8](in, len), out) + case arrow.INT16: + castNumberToNumberUnsafeImpl(otype, reinterpret[int16](in, len), out) + case arrow.UINT16: + castNumberToNumberUnsafeImpl(otype, reinterpret[uint16](in, len), out) + case arrow.INT32: + castNumberToNumberUnsafeImpl(otype, reinterpret[int32](in, len), out) + case arrow.UINT32: + castNumberToNumberUnsafeImpl(otype, reinterpret[uint32](in, len), out) + case arrow.INT64: + castNumberToNumberUnsafeImpl(otype, reinterpret[int64](in, len), out) + case arrow.UINT64: + castNumberToNumberUnsafeImpl(otype, reinterpret[uint64](in, len), out) + case arrow.FLOAT32: + castNumberToNumberUnsafeImpl(otype, reinterpret[float32](in, len), out) + case arrow.FLOAT64: + castNumberToNumberUnsafeImpl(otype, reinterpret[float64](in, len), out) + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_amd64.go new file mode 100644 index 0000000..68ef28a --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_amd64.go @@ -0,0 +1,33 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "golang.org/x/sys/cpu" +) + +func init() { + if cpu.X86.HasAVX2 { + castNumericUnsafe = castNumericAvx2 + } else if cpu.X86.HasSSE42 { + castNumericUnsafe = castNumericSSE4 + } else { + castNumericUnsafe = castNumericGo + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.go new file mode 100644 index 0000000..2dfa423 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.go @@ -0,0 +1,32 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _cast_type_numeric_avx2(itype, otype int, in, out unsafe.Pointer, len int) + +func castNumericAvx2(itype, otype arrow.Type, in, out []byte, len int) { + _cast_type_numeric_avx2(int(itype), int(otype), unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.s new file mode 100644 index 0000000..ffedf7a --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_avx2_amd64.s @@ -0,0 +1,11545 @@ +//go:build !noasm && !appengine && go1.18 +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +DATA LCDATA1<>+0x000(SB)/8, $0x43e0000000000000 +DATA LCDATA1<>+0x008(SB)/8, $0x4330000000000000 +DATA LCDATA1<>+0x010(SB)/8, $0x4530000000000000 +DATA LCDATA1<>+0x018(SB)/8, $0x4530000000100000 +DATA LCDATA1<>+0x020(SB)/8, $0x0000000000000001 +DATA LCDATA1<>+0x028(SB)/8, $0x4f0000005f000000 +DATA LCDATA1<>+0x030(SB)/8, $0x4b00000080000000 +DATA LCDATA1<>+0x038(SB)/8, $0x5300008053000000 +DATA LCDATA1<>+0x040(SB)/8, $0x0000000000000800 +DATA LCDATA1<>+0x048(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x050(SB)/8, $0x4530000043300000 +DATA LCDATA1<>+0x058(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x060(SB)/8, $0x4330000000000000 +DATA LCDATA1<>+0x068(SB)/8, $0x4530000000000000 +DATA LCDATA1<>+0x070(SB)/8, $0x000000000c080400 +DATA LCDATA1<>+0x078(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x080(SB)/8, $0x0d0c090805040100 +DATA LCDATA1<>+0x088(SB)/8, $0x0f0e0d0c0d0c0908 +DATA LCDATA1<>+0x090(SB)/8, $0x1d1c191815141110 +DATA LCDATA1<>+0x098(SB)/8, $0x1f1e1d1c1d1c1918 +DATA LCDATA1<>+0x0a0(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x0a8(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x0b0(SB)/8, $0x00ff00ff00ff00ff +DATA LCDATA1<>+0x0b8(SB)/8, $0x00ff00ff00ff00ff +GLOBL LCDATA1<>(SB), 8, $192 + +TEXT ·_cast_type_numeric_avx2(SB), $0-40 + + MOVQ itype+0(FP), DI + MOVQ otype+8(FP), SI + MOVQ in+16(FP), DX + MOVQ out+24(FP), CX + MOVQ len+32(FP), R8 + LEAQ LCDATA1<>(SB), BP + + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_25 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_45 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_53 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1553 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_93 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_163 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_263 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_266 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_12 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_742 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_742 + +LBB0_12: + WORD $0xf631 // xor esi, esi + +LBB0_1189: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1191 + +LBB0_1190: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1190 + +LBB0_1191: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1192: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1192 + JMP LBB0_1553 + +LBB0_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_35 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_61 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_69 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1553 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_100 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_168 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_269 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_272 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0xf089 // mov eax, esi + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_446 + WORD $0xff31 // xor edi, edi + JMP LBB0_448 + +LBB0_25: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_77 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1553 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_107 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_173 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_275 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_278 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_34 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_745 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_745 + +LBB0_34: + WORD $0xf631 // xor esi, esi + +LBB0_1197: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1199 + +LBB0_1198: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1198 + +LBB0_1199: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1200: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1200 + JMP LBB0_1553 + +LBB0_35: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_85 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1553 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_114 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_178 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_281 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_284 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_454 + WORD $0xf631 // xor esi, esi + JMP LBB0_918 + +LBB0_45: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_121 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_183 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_287 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_290 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_457 + WORD $0xf631 // xor esi, esi + JMP LBB0_1024 + +LBB0_53: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_128 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_188 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_293 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_296 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_460 + WORD $0xf631 // xor esi, esi + JMP LBB0_1029 + +LBB0_61: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_135 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_193 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_299 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_302 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_463 + WORD $0xf631 // xor esi, esi + JMP LBB0_1034 + +LBB0_69: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_142 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_198 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_305 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_308 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_466 + WORD $0xf631 // xor esi, esi + JMP LBB0_1039 + +LBB0_77: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_149 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_203 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_311 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_314 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_84 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_748 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_748 + +LBB0_84: + WORD $0xf631 // xor esi, esi + +LBB0_1205: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1207 + +LBB0_1206: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1206 + +LBB0_1207: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1208: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1208 + JMP LBB0_1553 + +LBB0_85: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_156 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_208 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_317 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_320 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_92 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_751 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_751 + +LBB0_92: + WORD $0xf631 // xor esi, esi + +LBB0_1213: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1215 + +LBB0_1214: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1214 + +LBB0_1215: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1216: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1216 + JMP LBB0_1553 + +LBB0_93: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_213 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_323 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_326 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_475 + WORD $0xf631 // xor esi, esi + JMP LBB0_1044 + +LBB0_100: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_218 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_329 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_332 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_106 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_754 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_754 + +LBB0_106: + WORD $0xf631 // xor esi, esi + +LBB0_1221: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x07e78348 // and rdi, 7 + JE LBB0_1223 + +LBB0_1222: + LONG $0xf21c8b48 // mov rbx, qword [rdx + 8*rsi] + LONG $0xf11c8948 // mov qword [rcx + 8*rsi], rbx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1222 + +LBB0_1223: + LONG $0x07f88348 // cmp rax, 7 + JB LBB0_1553 + +LBB0_1224: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0xf2448b48; BYTE $0x20 // mov rax, qword [rdx + 8*rsi + 32] + LONG $0xf1448948; BYTE $0x20 // mov qword [rcx + 8*rsi + 32], rax + LONG $0xf2448b48; BYTE $0x28 // mov rax, qword [rdx + 8*rsi + 40] + LONG $0xf1448948; BYTE $0x28 // mov qword [rcx + 8*rsi + 40], rax + LONG $0xf2448b48; BYTE $0x30 // mov rax, qword [rdx + 8*rsi + 48] + LONG $0xf1448948; BYTE $0x30 // mov qword [rcx + 8*rsi + 48], rax + LONG $0xf2448b48; BYTE $0x38 // mov rax, qword [rdx + 8*rsi + 56] + LONG $0xf1448948; BYTE $0x38 // mov qword [rcx + 8*rsi + 56], rax + LONG $0x08c68348 // add rsi, 8 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1224 + JMP LBB0_1553 + +LBB0_107: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_223 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_335 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_338 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_113 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_757 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_757 + +LBB0_113: + WORD $0xf631 // xor esi, esi + +LBB0_1229: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1231 + +LBB0_1230: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1230 + +LBB0_1231: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1232: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x08f1 // vmovsd qword [rcx + 8*rsi + 8], xmm0 + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x10f1 // vmovsd qword [rcx + 8*rsi + 16], xmm0 + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x18f1 // vmovsd qword [rcx + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1232 + JMP LBB0_1553 + +LBB0_114: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_228 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_341 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_344 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_484 + WORD $0xf631 // xor esi, esi + JMP LBB0_923 + +LBB0_121: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_233 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_347 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_350 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_487 + WORD $0xf631 // xor esi, esi + JMP LBB0_1049 + +LBB0_128: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_238 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_353 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_356 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_490 + WORD $0xf631 // xor esi, esi + JMP LBB0_1054 + +LBB0_135: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_243 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_359 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_362 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_493 + WORD $0xf631 // xor esi, esi + JMP LBB0_1059 + +LBB0_142: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_248 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_365 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_368 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_496 + WORD $0xf631 // xor esi, esi + JMP LBB0_1064 + +LBB0_149: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_253 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_371 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_374 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_155 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_760 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_760 + +LBB0_155: + WORD $0xf631 // xor esi, esi + +LBB0_1237: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1239 + +LBB0_1238: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1238 + +LBB0_1239: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1240: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x08f1 // vmovsd qword [rcx + 8*rsi + 8], xmm0 + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x10f1 // vmovsd qword [rcx + 8*rsi + 16], xmm0 + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x4411fbc5; WORD $0x18f1 // vmovsd qword [rcx + 8*rsi + 24], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1240 + JMP LBB0_1553 + +LBB0_156: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_258 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_377 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_380 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_502 + WORD $0xf631 // xor esi, esi + JMP LBB0_929 + +LBB0_163: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_383 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_167 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_763 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_763 + +LBB0_167: + WORD $0xf631 // xor esi, esi + +LBB0_1245: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1247 + +LBB0_1246: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1246 + +LBB0_1247: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1248: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1248 + JMP LBB0_1553 + +LBB0_168: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_386 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_172 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_766 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_766 + +LBB0_172: + WORD $0xf631 // xor esi, esi + +LBB0_1253: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1255 + +LBB0_1254: + LONG $0x1c2cfbc5; BYTE $0xf2 // vcvttsd2si ebx, qword [rdx + 8*rsi] + WORD $0x1c88; BYTE $0x31 // mov byte [rcx + rsi], bl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1254 + +LBB0_1255: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1553 + +LBB0_1256: + LONG $0x042cfbc5; BYTE $0xf2 // vcvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442cfbc5; WORD $0x08f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442cfbc5; WORD $0x10f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442cfbc5; WORD $0x18f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1256 + JMP LBB0_1553 + +LBB0_173: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_389 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB0_177 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_769 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_769 + +LBB0_177: + WORD $0xf631 // xor esi, esi + +LBB0_1261: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1263 + +LBB0_1262: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1262 + +LBB0_1263: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1264: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1264 + JMP LBB0_1553 + +LBB0_178: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_392 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_182 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_772 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_772 + +LBB0_182: + WORD $0xf631 // xor esi, esi + +LBB0_1269: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1271 + +LBB0_1270: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1270 + +LBB0_1271: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1272: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1272 + JMP LBB0_1553 + +LBB0_183: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_395 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_187 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_775 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_775 + +LBB0_187: + WORD $0xf631 // xor esi, esi + +LBB0_1277: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1279 + +LBB0_1278: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1278 + +LBB0_1279: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1280: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1280 + JMP LBB0_1553 + +LBB0_188: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_398 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_192 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_778 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_778 + +LBB0_192: + WORD $0xf631 // xor esi, esi + +LBB0_1285: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1287 + +LBB0_1286: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1286 + +LBB0_1287: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1288: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1288 + JMP LBB0_1553 + +LBB0_193: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_401 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_197 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_781 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_781 + +LBB0_197: + WORD $0xf631 // xor esi, esi + +LBB0_1293: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1295 + +LBB0_1294: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1294 + +LBB0_1295: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1296: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1296 + JMP LBB0_1553 + +LBB0_198: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_404 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_202 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_784 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_784 + +LBB0_202: + WORD $0xf631 // xor esi, esi + +LBB0_1301: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1303 + +LBB0_1302: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1302 + +LBB0_1303: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1304: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442cfac5; WORD $0x04b2 // vcvttss2si eax, dword [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442cfac5; WORD $0x08b2 // vcvttss2si eax, dword [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442cfac5; WORD $0x0cb2 // vcvttss2si eax, dword [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1304 + JMP LBB0_1553 + +LBB0_203: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_407 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB0_207 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_787 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_787 + +LBB0_207: + WORD $0xf631 // xor esi, esi + +LBB0_1309: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1311 + +LBB0_1310: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1310 + +LBB0_1311: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1312: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1312 + JMP LBB0_1553 + +LBB0_208: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_410 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_212 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_790 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_790 + +LBB0_212: + WORD $0xf631 // xor esi, esi + +LBB0_1317: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1319 + +LBB0_1318: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1318 + +LBB0_1319: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1320: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1320 + JMP LBB0_1553 + +LBB0_213: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_413 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_535 + WORD $0xf631 // xor esi, esi + JMP LBB0_934 + +LBB0_218: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_416 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + QUAD $0x000000000000bb49; WORD $0x8000 // mov r11, -9223372036854775808 + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_538 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB0_799 + +LBB0_223: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_419 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_227 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_801 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_801 + +LBB0_227: + WORD $0xf631 // xor esi, esi + +LBB0_1325: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1327 + +LBB0_1326: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1326 + +LBB0_1327: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1328: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x44be0f48; WORD $0x0132 // movsx rax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x44be0f48; WORD $0x0232 // movsx rax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x44be0f48; WORD $0x0332 // movsx rax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1328 + JMP LBB0_1553 + +LBB0_228: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_422 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_232 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_804 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_804 + +LBB0_232: + WORD $0xf631 // xor esi, esi + +LBB0_1333: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1335 + +LBB0_1334: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1334 + +LBB0_1335: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1336: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1336 + JMP LBB0_1553 + +LBB0_233: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_425 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_546 + WORD $0xf631 // xor esi, esi + JMP LBB0_939 + +LBB0_238: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_428 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_549 + WORD $0xf631 // xor esi, esi + JMP LBB0_944 + +LBB0_243: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_431 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_247 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_807 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_807 + +LBB0_247: + WORD $0xf631 // xor esi, esi + +LBB0_1341: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1343 + +LBB0_1342: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1342 + +LBB0_1343: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1344: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1344 + JMP LBB0_1553 + +LBB0_248: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_434 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_555 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB0_816 + +LBB0_253: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_437 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_257 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_818 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_818 + +LBB0_257: + WORD $0xf631 // xor esi, esi + +LBB0_1349: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1351 + +LBB0_1350: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1350 + +LBB0_1351: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1352: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1352 + JMP LBB0_1553 + +LBB0_258: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_440 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1553 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_560 + WORD $0xf631 // xor esi, esi + JMP LBB0_949 + +LBB0_263: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_563 + WORD $0xf631 // xor esi, esi + JMP LBB0_1069 + +LBB0_266: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_566 + WORD $0xf631 // xor esi, esi + JMP LBB0_1074 + +LBB0_269: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_569 + WORD $0xf631 // xor esi, esi + JMP LBB0_1079 + +LBB0_272: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_572 + WORD $0xf631 // xor esi, esi + JMP LBB0_1084 + +LBB0_275: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_277 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_821 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_821 + +LBB0_277: + WORD $0xf631 // xor esi, esi + +LBB0_1357: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1359 + +LBB0_1358: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1358 + +LBB0_1359: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1360: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1360 + JMP LBB0_1553 + +LBB0_278: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_280 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_824 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_824 + +LBB0_280: + WORD $0xf631 // xor esi, esi + +LBB0_1365: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1367 + +LBB0_1366: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1366 + +LBB0_1367: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1368: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1368 + JMP LBB0_1553 + +LBB0_281: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_581 + WORD $0xf631 // xor esi, esi + JMP LBB0_954 + +LBB0_284: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_584 + WORD $0xf631 // xor esi, esi + JMP LBB0_959 + +LBB0_287: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_289 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_827 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_827 + +LBB0_289: + WORD $0xf631 // xor esi, esi + +LBB0_1151: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1153 + +LBB0_1152: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1152 + +LBB0_1153: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1154: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1154 + JMP LBB0_1553 + +LBB0_290: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_292 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_829 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_829 + +LBB0_292: + WORD $0xf631 // xor esi, esi + +LBB0_1161: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1163 + +LBB0_1162: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1162 + +LBB0_1163: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1164: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1164 + JMP LBB0_1553 + +LBB0_293: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_295 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_831 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_831 + +LBB0_295: + WORD $0xf631 // xor esi, esi + +LBB0_1171: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1173 + +LBB0_1172: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1172 + +LBB0_1173: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1174: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1174 + JMP LBB0_1553 + +LBB0_296: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_298 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_833 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_833 + +LBB0_298: + WORD $0xf631 // xor esi, esi + +LBB0_1181: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1183 + +LBB0_1182: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1182 + +LBB0_1183: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1184: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1184 + JMP LBB0_1553 + +LBB0_299: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_599 + WORD $0xf631 // xor esi, esi + JMP LBB0_964 + +LBB0_302: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_602 + WORD $0xf631 // xor esi, esi + JMP LBB0_1089 + +LBB0_305: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_605 + WORD $0xf631 // xor esi, esi + JMP LBB0_1094 + +LBB0_308: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_608 + WORD $0xf631 // xor esi, esi + JMP LBB0_1099 + +LBB0_311: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_313 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_835 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_835 + +LBB0_313: + WORD $0xf631 // xor esi, esi + +LBB0_1373: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1375 + +LBB0_1374: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1374 + +LBB0_1375: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1376: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1376 + JMP LBB0_1553 + +LBB0_314: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_316 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_838 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_838 + +LBB0_316: + WORD $0xf631 // xor esi, esi + +LBB0_1381: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1383 + +LBB0_1382: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1382 + +LBB0_1383: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1384: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1384 + JMP LBB0_1553 + +LBB0_317: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_617 + WORD $0xf631 // xor esi, esi + JMP LBB0_969 + +LBB0_320: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_620 + WORD $0xf631 // xor esi, esi + JMP LBB0_974 + +LBB0_323: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_623 + WORD $0xf631 // xor esi, esi + JMP LBB0_1104 + +LBB0_326: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_626 + WORD $0xf631 // xor esi, esi + JMP LBB0_1109 + +LBB0_329: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_629 + WORD $0xf631 // xor esi, esi + JMP LBB0_1114 + +LBB0_332: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_632 + WORD $0xf631 // xor esi, esi + JMP LBB0_1119 + +LBB0_335: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_337 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_841 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_841 + +LBB0_337: + WORD $0xf631 // xor esi, esi + +LBB0_1389: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1391 + +LBB0_1390: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1390 + +LBB0_1391: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1392: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x44be0f48; WORD $0x0132 // movsx rax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x44be0f48; WORD $0x0232 // movsx rax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x44be0f48; WORD $0x0332 // movsx rax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1392 + JMP LBB0_1553 + +LBB0_338: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_340 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_844 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_844 + +LBB0_340: + WORD $0xf631 // xor esi, esi + +LBB0_1397: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1399 + +LBB0_1398: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1398 + +LBB0_1399: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1400: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x04b1 // vmovss dword [rcx + 4*rsi + 4], xmm0 + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x08b1 // vmovss dword [rcx + 4*rsi + 8], xmm0 + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x0cb1 // vmovss dword [rcx + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1400 + JMP LBB0_1553 + +LBB0_341: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_343 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_847 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_847 + +LBB0_343: + WORD $0xf631 // xor esi, esi + +LBB0_1405: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1407 + +LBB0_1406: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1406 + +LBB0_1407: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1408: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1408 + JMP LBB0_1553 + +LBB0_344: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_644 + WORD $0xf631 // xor esi, esi + JMP LBB0_858 + +LBB0_347: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_646 + WORD $0xf631 // xor esi, esi + JMP LBB0_979 + +LBB0_350: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_649 + WORD $0xf631 // xor esi, esi + JMP LBB0_1124 + +LBB0_353: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_652 + WORD $0xf631 // xor esi, esi + JMP LBB0_1129 + +LBB0_356: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_655 + WORD $0xf631 // xor esi, esi + JMP LBB0_1134 + +LBB0_359: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_361 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_860 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_860 + +LBB0_361: + WORD $0xf631 // xor esi, esi + +LBB0_1413: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1415 + +LBB0_1414: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1414 + +LBB0_1415: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1416: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1416 + JMP LBB0_1553 + +LBB0_362: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_661 + WORD $0xf631 // xor esi, esi + JMP LBB0_1139 + +LBB0_365: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_664 + WORD $0xf631 // xor esi, esi + JMP LBB0_1144 + +LBB0_368: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_370 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_863 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_863 + +LBB0_370: + WORD $0xf631 // xor esi, esi + +LBB0_1421: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x07e78348 // and rdi, 7 + JE LBB0_1423 + +LBB0_1422: + WORD $0x1c8b; BYTE $0xb2 // mov ebx, dword [rdx + 4*rsi] + WORD $0x1c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], ebx + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1422 + +LBB0_1423: + LONG $0x07f88348 // cmp rax, 7 + JB LBB0_1553 + +LBB0_1424: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x10b2448b // mov eax, dword [rdx + 4*rsi + 16] + LONG $0x10b14489 // mov dword [rcx + 4*rsi + 16], eax + LONG $0x14b2448b // mov eax, dword [rdx + 4*rsi + 20] + LONG $0x14b14489 // mov dword [rcx + 4*rsi + 20], eax + LONG $0x18b2448b // mov eax, dword [rdx + 4*rsi + 24] + LONG $0x18b14489 // mov dword [rcx + 4*rsi + 24], eax + LONG $0x1cb2448b // mov eax, dword [rdx + 4*rsi + 28] + LONG $0x1cb14489 // mov dword [rcx + 4*rsi + 28], eax + LONG $0x08c68348 // add rsi, 8 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1424 + JMP LBB0_1553 + +LBB0_371: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_373 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_866 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_866 + +LBB0_373: + WORD $0xf631 // xor esi, esi + +LBB0_1429: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1431 + +LBB0_1430: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1430 + +LBB0_1431: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1432: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1432 + JMP LBB0_1553 + +LBB0_374: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_376 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_869 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_869 + +LBB0_376: + WORD $0xf631 // xor esi, esi + +LBB0_1437: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1439 + +LBB0_1438: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1438 + +LBB0_1439: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1440: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x04b1 // vmovss dword [rcx + 4*rsi + 4], xmm0 + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x08b1 // vmovss dword [rcx + 4*rsi + 8], xmm0 + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x4411fac5; WORD $0x0cb1 // vmovss dword [rcx + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1440 + JMP LBB0_1553 + +LBB0_377: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_676 + WORD $0xf631 // xor esi, esi + JMP LBB0_984 + +LBB0_380: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_679 + WORD $0xf631 // xor esi, esi + JMP LBB0_989 + +LBB0_383: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_385 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_872 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_872 + +LBB0_385: + WORD $0xf631 // xor esi, esi + +LBB0_1445: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1447 + +LBB0_1446: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1446 + +LBB0_1447: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1448: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1448 + JMP LBB0_1553 + +LBB0_386: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_388 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_875 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_875 + +LBB0_388: + WORD $0xf631 // xor esi, esi + +LBB0_1453: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + WORD $0xf748; BYTE $0xd0 // not rax + WORD $0x014c; BYTE $0xc8 // add rax, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1455 + +LBB0_1454: + LONG $0x1c2cfbc5; BYTE $0xf2 // vcvttsd2si ebx, qword [rdx + 8*rsi] + WORD $0x1c88; BYTE $0x31 // mov byte [rcx + rsi], bl + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1454 + +LBB0_1455: + LONG $0x03f88348 // cmp rax, 3 + JB LBB0_1553 + +LBB0_1456: + LONG $0x042cfbc5; BYTE $0xf2 // vcvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442cfbc5; WORD $0x08f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442cfbc5; WORD $0x10f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442cfbc5; WORD $0x18f2 // vcvttsd2si eax, qword [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1456 + JMP LBB0_1553 + +LBB0_389: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB0_391 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_878 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_878 + +LBB0_391: + WORD $0xf631 // xor esi, esi + +LBB0_1461: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1463 + +LBB0_1462: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1462 + +LBB0_1463: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1464: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1464 + JMP LBB0_1553 + +LBB0_392: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_394 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_881 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_881 + +LBB0_394: + WORD $0xf631 // xor esi, esi + +LBB0_1469: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1471 + +LBB0_1470: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1470 + +LBB0_1471: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1472: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1472 + JMP LBB0_1553 + +LBB0_395: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_397 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_884 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_884 + +LBB0_397: + WORD $0xf631 // xor esi, esi + +LBB0_1477: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1479 + +LBB0_1478: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1478 + +LBB0_1479: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1480: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1480 + JMP LBB0_1553 + +LBB0_398: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x40f88341 // cmp r8d, 64 + JB LBB0_400 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_887 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_887 + +LBB0_400: + WORD $0xf631 // xor esi, esi + +LBB0_1485: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1487 + +LBB0_1486: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1486 + +LBB0_1487: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1488: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1488 + JMP LBB0_1553 + +LBB0_401: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_403 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_890 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_890 + +LBB0_403: + WORD $0xf631 // xor esi, esi + +LBB0_1493: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1495 + +LBB0_1494: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1494 + +LBB0_1495: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1496: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1496 + JMP LBB0_1553 + +LBB0_404: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_406 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_893 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_893 + +LBB0_406: + WORD $0xf631 // xor esi, esi + +LBB0_1501: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1503 + +LBB0_1502: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1502 + +LBB0_1503: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1504: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442cfac5; WORD $0x04b2 // vcvttss2si eax, dword [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442cfac5; WORD $0x08b2 // vcvttss2si eax, dword [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442cfac5; WORD $0x0cb2 // vcvttss2si eax, dword [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1504 + JMP LBB0_1553 + +LBB0_407: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x80f88141; WORD $0x0000; BYTE $0x00 // cmp r8d, 128 + JB LBB0_409 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_896 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_896 + +LBB0_409: + WORD $0xf631 // xor esi, esi + +LBB0_1509: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1511 + +LBB0_1510: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1510 + +LBB0_1511: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1512: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1512 + JMP LBB0_1553 + +LBB0_410: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_412 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_899 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_899 + +LBB0_412: + WORD $0xf631 // xor esi, esi + +LBB0_1517: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1519 + +LBB0_1518: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1518 + +LBB0_1519: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1520: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1520 + JMP LBB0_1553 + +LBB0_413: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_415 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_902 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_902 + +LBB0_415: + WORD $0xf631 // xor esi, esi + +LBB0_1525: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1527 + +LBB0_1526: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1526 + +LBB0_1527: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1528: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1528 + JMP LBB0_1553 + +LBB0_416: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_715 + WORD $0xf631 // xor esi, esi + JMP LBB0_994 + +LBB0_419: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_421 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_905 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_905 + +LBB0_421: + WORD $0xf631 // xor esi, esi + +LBB0_1533: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1535 + +LBB0_1534: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1534 + +LBB0_1535: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1536: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1536 + JMP LBB0_1553 + +LBB0_422: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_721 + WORD $0xf631 // xor esi, esi + JMP LBB0_999 + +LBB0_425: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_724 + WORD $0xf631 // xor esi, esi + JMP LBB0_1004 + +LBB0_428: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_727 + WORD $0xf631 // xor esi, esi + JMP LBB0_1009 + +LBB0_431: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JAE LBB0_730 + WORD $0xf631 // xor esi, esi + JMP LBB0_1014 + +LBB0_434: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JAE LBB0_733 + WORD $0xf631 // xor esi, esi + JMP LBB0_1019 + +LBB0_437: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_439 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_908 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_908 + +LBB0_439: + WORD $0xf631 // xor esi, esi + +LBB0_1541: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1543 + +LBB0_1542: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1542 + +LBB0_1543: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1544: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1544 + JMP LBB0_1553 + +LBB0_440: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1553 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_442 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_911 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_911 + +LBB0_442: + WORD $0xf631 // xor esi, esi + +LBB0_1549: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1551 + +LBB0_1550: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1550 + +LBB0_1551: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1553 + +LBB0_1552: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1552 + JMP LBB0_1553 + +LBB0_446: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_447: + LONG $0x2cfbe1c4; WORD $0xfa1c // vcvttsd2si rbx, qword [rdx + 8*rdi] + WORD $0x1c89; BYTE $0xb9 // mov dword [rcx + 4*rdi], ebx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x08 // vcvttsd2si rbx, qword [rdx + 8*rdi + 8] + LONG $0x04b95c89 // mov dword [rcx + 4*rdi + 4], ebx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x10 // vcvttsd2si rbx, qword [rdx + 8*rdi + 16] + LONG $0x08b95c89 // mov dword [rcx + 4*rdi + 8], ebx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x18 // vcvttsd2si rbx, qword [rdx + 8*rdi + 24] + LONG $0x0cb95c89 // mov dword [rcx + 4*rdi + 12], ebx + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_447 + +LBB0_448: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1553 + LONG $0xb90c8d48 // lea rcx, [rcx + 4*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_450: + LONG $0x2cfbe1c4; WORD $0xf23c // vcvttsd2si rdi, qword [rdx + 8*rsi] + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB0_450 + JMP LBB0_1553 + +LBB0_454: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_914 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_456: + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa8410f8c5; BYTE $0x00 // vmovups xmm0, oword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10f8c5; BYTE $0x00 // vmovups xmm1, oword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410f8c5; BYTE $0x00 // vmovups xmm2, oword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10f8c5; BYTE $0x00 // vmovups xmm3, oword [rdx + 8*rdi + 224] + QUAD $0x000090fa84c6f8c5; WORD $0x8800 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 144], 136 + QUAD $0x0000b0fa8cc6f0c5; WORD $0x8800 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 176], 136 + QUAD $0x0000d0fa94c6e8c5; WORD $0x8800 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 208], 136 + QUAD $0x0000f0fa9cc6e0c5; WORD $0x8800 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 240], 136 + LONG $0x4411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_456 + JMP LBB0_915 + +LBB0_457: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1020 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_459: + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x337de2c4; WORD $0x7a44; BYTE $0x40 // vpmovzxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x60 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 112] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_459 + JMP LBB0_1021 + +LBB0_460: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1025 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_462: + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x237de2c4; WORD $0x7a44; BYTE $0x40 // vpmovsxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x60 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 112] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_462 + JMP LBB0_1026 + +LBB0_463: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1030 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_465: + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa8410f8c5; BYTE $0x00 // vmovups xmm0, oword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10f8c5; BYTE $0x00 // vmovups xmm1, oword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410f8c5; BYTE $0x00 // vmovups xmm2, oword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10f8c5; BYTE $0x00 // vmovups xmm3, oword [rdx + 8*rdi + 224] + QUAD $0x000090fa84c6f8c5; WORD $0x8800 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 144], 136 + QUAD $0x0000b0fa8cc6f0c5; WORD $0x8800 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 176], 136 + QUAD $0x0000d0fa94c6e8c5; WORD $0x8800 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 208], 136 + QUAD $0x0000f0fa9cc6e0c5; WORD $0x8800 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 240], 136 + LONG $0x4411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_465 + JMP LBB0_1031 + +LBB0_466: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1035 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x1879e2c4; WORD $0x2c45 // vbroadcastss xmm0, dword 44[rbp] /* [rip + .LCPI0_2] */ + LONG $0x1879e2c4; WORD $0x304d // vbroadcastss xmm1, dword 48[rbp] /* [rip + .LCPI0_3] */ + +LBB0_468: + LONG $0x1410f8c5; BYTE $0xba // vmovups xmm2, oword [rdx + 4*rdi] + LONG $0x5c10f8c5; WORD $0x10ba // vmovups xmm3, oword [rdx + 4*rdi + 16] + LONG $0x6410f8c5; WORD $0x20ba // vmovups xmm4, oword [rdx + 4*rdi + 32] + LONG $0xe8c2e8c5; BYTE $0x01 // vcmpltps xmm5, xmm2, xmm0 + LONG $0xf05ce8c5 // vsubps xmm6, xmm2, xmm0 + LONG $0xf65bfac5 // vcvttps2dq xmm6, xmm6 + LONG $0xf157c8c5 // vxorps xmm6, xmm6, xmm1 + LONG $0xd25bfac5 // vcvttps2dq xmm2, xmm2 + LONG $0x4a49e3c4; WORD $0x50d2 // vblendvps xmm2, xmm6, xmm2, xmm5 + LONG $0x6c10f8c5; WORD $0x30ba // vmovups xmm5, oword [rdx + 4*rdi + 48] + LONG $0xf0c2e0c5; BYTE $0x01 // vcmpltps xmm6, xmm3, xmm0 + LONG $0xf85ce0c5 // vsubps xmm7, xmm3, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xdb5bfac5 // vcvttps2dq xmm3, xmm3 + LONG $0x4a41e3c4; WORD $0x60db // vblendvps xmm3, xmm7, xmm3, xmm6 + LONG $0xf0c2d8c5; BYTE $0x01 // vcmpltps xmm6, xmm4, xmm0 + LONG $0xf85cd8c5 // vsubps xmm7, xmm4, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xe45bfac5 // vcvttps2dq xmm4, xmm4 + LONG $0x4a41e3c4; WORD $0x60e4 // vblendvps xmm4, xmm7, xmm4, xmm6 + LONG $0xf0c2d0c5; BYTE $0x01 // vcmpltps xmm6, xmm5, xmm0 + LONG $0xf85cd0c5 // vsubps xmm7, xmm5, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xed5bfac5 // vcvttps2dq xmm5, xmm5 + LONG $0x4a41e3c4; WORD $0x60ed // vblendvps xmm5, xmm7, xmm5, xmm6 + LONG $0x1411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm2 + LONG $0x5c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm3 + LONG $0x6411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm4 + LONG $0x6c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm5 + LONG $0x5410f8c5; WORD $0x40ba // vmovups xmm2, oword [rdx + 4*rdi + 64] + LONG $0x5c10f8c5; WORD $0x50ba // vmovups xmm3, oword [rdx + 4*rdi + 80] + LONG $0x6410f8c5; WORD $0x60ba // vmovups xmm4, oword [rdx + 4*rdi + 96] + LONG $0xe8c2e8c5; BYTE $0x01 // vcmpltps xmm5, xmm2, xmm0 + LONG $0xf05ce8c5 // vsubps xmm6, xmm2, xmm0 + LONG $0xf65bfac5 // vcvttps2dq xmm6, xmm6 + LONG $0xf157c8c5 // vxorps xmm6, xmm6, xmm1 + LONG $0xd25bfac5 // vcvttps2dq xmm2, xmm2 + LONG $0x4a49e3c4; WORD $0x50d2 // vblendvps xmm2, xmm6, xmm2, xmm5 + LONG $0x6c10f8c5; WORD $0x70ba // vmovups xmm5, oword [rdx + 4*rdi + 112] + LONG $0xf0c2e0c5; BYTE $0x01 // vcmpltps xmm6, xmm3, xmm0 + LONG $0xf85ce0c5 // vsubps xmm7, xmm3, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xdb5bfac5 // vcvttps2dq xmm3, xmm3 + LONG $0x4a41e3c4; WORD $0x60db // vblendvps xmm3, xmm7, xmm3, xmm6 + LONG $0xf0c2d8c5; BYTE $0x01 // vcmpltps xmm6, xmm4, xmm0 + LONG $0xf85cd8c5 // vsubps xmm7, xmm4, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xe45bfac5 // vcvttps2dq xmm4, xmm4 + LONG $0x4a41e3c4; WORD $0x60e4 // vblendvps xmm4, xmm7, xmm4, xmm6 + LONG $0xf0c2d0c5; BYTE $0x01 // vcmpltps xmm6, xmm5, xmm0 + LONG $0xf85cd0c5 // vsubps xmm7, xmm5, xmm0 + LONG $0xff5bfac5 // vcvttps2dq xmm7, xmm7 + LONG $0xf957c0c5 // vxorps xmm7, xmm7, xmm1 + LONG $0xed5bfac5 // vcvttps2dq xmm5, xmm5 + LONG $0x4a41e3c4; WORD $0x60ed // vblendvps xmm5, xmm7, xmm5, xmm6 + LONG $0x5411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm2 + LONG $0x5c11f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm3 + LONG $0x6411f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm4 + LONG $0x6c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm5 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_468 + JMP LBB0_1036 + +LBB0_475: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1040 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x597de2c4; WORD $0x0845 // vpbroadcastq ymm0, qword 8[rbp] /* [rip + .LCPI0_5] */ + +LBB0_477: + LONG $0x357de2c4; WORD $0xba0c // vpmovzxdq ymm1, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x10 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x20 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba64; BYTE $0x30 // vpmovzxdq ymm4, oword [rdx + 4*rdi + 48] + LONG $0xc8ebf5c5 // vpor ymm1, ymm1, ymm0 + LONG $0xc85cf5c5 // vsubpd ymm1, ymm1, ymm0 + LONG $0xd0ebedc5 // vpor ymm2, ymm2, ymm0 + LONG $0xd05cedc5 // vsubpd ymm2, ymm2, ymm0 + LONG $0xd8ebe5c5 // vpor ymm3, ymm3, ymm0 + LONG $0xd85ce5c5 // vsubpd ymm3, ymm3, ymm0 + LONG $0xe0ebddc5 // vpor ymm4, ymm4, ymm0 + LONG $0xe05cddc5 // vsubpd ymm4, ymm4, ymm0 + LONG $0x0c11fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm1 + LONG $0x5411fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm2 + LONG $0x5c11fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm3 + LONG $0x6411fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm4 + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x40 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 64] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x50 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 80] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x60 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 96] + LONG $0x357de2c4; WORD $0xba64; BYTE $0x70 // vpmovzxdq ymm4, oword [rdx + 4*rdi + 112] + LONG $0xc8ebf5c5 // vpor ymm1, ymm1, ymm0 + LONG $0xc85cf5c5 // vsubpd ymm1, ymm1, ymm0 + LONG $0xd0ebedc5 // vpor ymm2, ymm2, ymm0 + LONG $0xd05cedc5 // vsubpd ymm2, ymm2, ymm0 + LONG $0xd8ebe5c5 // vpor ymm3, ymm3, ymm0 + LONG $0xd85ce5c5 // vsubpd ymm3, ymm3, ymm0 + LONG $0xe0ebddc5 // vpor ymm4, ymm4, ymm0 + LONG $0xe05cddc5 // vsubpd ymm4, ymm4, ymm0 + QUAD $0x000080f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm1 + QUAD $0x0000a0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm2 + QUAD $0x0000c0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm3 + QUAD $0x0000e0f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm4 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_477 + JMP LBB0_1041 + +LBB0_484: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_919 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x597de2c4; WORD $0x0845 // vpbroadcastq ymm0, qword 8[rbp] /* [rip + .LCPI0_5] */ + LONG $0xc9eff1c5 // vpxor xmm1, xmm1, xmm1 + LONG $0x597de2c4; WORD $0x1055 // vpbroadcastq ymm2, qword 16[rbp] /* [rip + .LCPI0_6] */ + LONG $0x197de2c4; WORD $0x185d // vbroadcastsd ymm3, qword 24[rbp] /* [rip + .LCPI0_7] */ + +LBB0_486: + LONG $0x246ffec5; BYTE $0xfa // vmovdqu ymm4, yword [rdx + 8*rdi] + LONG $0x6c6ffec5; WORD $0x20fa // vmovdqu ymm5, yword [rdx + 8*rdi + 32] + LONG $0x746ffec5; WORD $0x40fa // vmovdqu ymm6, yword [rdx + 8*rdi + 64] + LONG $0x7c6ffec5; WORD $0x60fa // vmovdqu ymm7, yword [rdx + 8*rdi + 96] + LONG $0x025d63c4; WORD $0xaac1 // vpblendd ymm8, ymm4, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd473ddc5; BYTE $0x20 // vpsrlq ymm4, ymm4, 32 + LONG $0xe2ebddc5 // vpor ymm4, ymm4, ymm2 + LONG $0xe35cddc5 // vsubpd ymm4, ymm4, ymm3 + LONG $0xe458bdc5 // vaddpd ymm4, ymm8, ymm4 + LONG $0x025563c4; WORD $0xaac1 // vpblendd ymm8, ymm5, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd573d5c5; BYTE $0x20 // vpsrlq ymm5, ymm5, 32 + LONG $0xeaebd5c5 // vpor ymm5, ymm5, ymm2 + LONG $0xeb5cd5c5 // vsubpd ymm5, ymm5, ymm3 + LONG $0xed58bdc5 // vaddpd ymm5, ymm8, ymm5 + LONG $0x024d63c4; WORD $0xaac1 // vpblendd ymm8, ymm6, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd673cdc5; BYTE $0x20 // vpsrlq ymm6, ymm6, 32 + LONG $0xf2ebcdc5 // vpor ymm6, ymm6, ymm2 + LONG $0xf35ccdc5 // vsubpd ymm6, ymm6, ymm3 + LONG $0xf658bdc5 // vaddpd ymm6, ymm8, ymm6 + LONG $0x024563c4; WORD $0xaac1 // vpblendd ymm8, ymm7, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd773c5c5; BYTE $0x20 // vpsrlq ymm7, ymm7, 32 + LONG $0xfaebc5c5 // vpor ymm7, ymm7, ymm2 + LONG $0xfb5cc5c5 // vsubpd ymm7, ymm7, ymm3 + LONG $0xff58bdc5 // vaddpd ymm7, ymm8, ymm7 + LONG $0x2411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm4 + LONG $0x6c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm5 + LONG $0x7411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm6 + LONG $0x7c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm7 + QUAD $0x000080faa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0faac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fab46ffec5; BYTE $0x00 // vmovdqu ymm6, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fabc6ffec5; BYTE $0x00 // vmovdqu ymm7, yword [rdx + 8*rdi + 224] + LONG $0x025d63c4; WORD $0xaac1 // vpblendd ymm8, ymm4, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd473ddc5; BYTE $0x20 // vpsrlq ymm4, ymm4, 32 + LONG $0xe2ebddc5 // vpor ymm4, ymm4, ymm2 + LONG $0xe35cddc5 // vsubpd ymm4, ymm4, ymm3 + LONG $0xe458bdc5 // vaddpd ymm4, ymm8, ymm4 + LONG $0x025563c4; WORD $0xaac1 // vpblendd ymm8, ymm5, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd573d5c5; BYTE $0x20 // vpsrlq ymm5, ymm5, 32 + LONG $0xeaebd5c5 // vpor ymm5, ymm5, ymm2 + LONG $0xeb5cd5c5 // vsubpd ymm5, ymm5, ymm3 + LONG $0xed58bdc5 // vaddpd ymm5, ymm8, ymm5 + LONG $0x024d63c4; WORD $0xaac1 // vpblendd ymm8, ymm6, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd673cdc5; BYTE $0x20 // vpsrlq ymm6, ymm6, 32 + LONG $0xf2ebcdc5 // vpor ymm6, ymm6, ymm2 + LONG $0xf35ccdc5 // vsubpd ymm6, ymm6, ymm3 + LONG $0xf658bdc5 // vaddpd ymm6, ymm8, ymm6 + LONG $0x024563c4; WORD $0xaac1 // vpblendd ymm8, ymm7, ymm1, 170 + LONG $0xc0eb3dc5 // vpor ymm8, ymm8, ymm0 + LONG $0xd773c5c5; BYTE $0x20 // vpsrlq ymm7, ymm7, 32 + LONG $0xfaebc5c5 // vpor ymm7, ymm7, ymm2 + LONG $0xfb5cc5c5 // vsubpd ymm7, ymm7, ymm3 + LONG $0xff58bdc5 // vaddpd ymm7, ymm8, ymm7 + QUAD $0x000080f9a411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm4 + QUAD $0x0000a0f9ac11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm5 + QUAD $0x0000c0f9b411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm6 + QUAD $0x0000e0f9bc11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm7 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_486 + JMP LBB0_920 + +LBB0_487: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1045 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_489: + LONG $0x3379e2c4; WORD $0x7a04 // vpmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x3379e2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x3379e2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0x3379e2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwd xmm3, qword [rdx + 2*rdi + 24] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x3379e2c4; WORD $0x7a44; BYTE $0x20 // vpmovzxwd xmm0, qword [rdx + 2*rdi + 32] + LONG $0x3379e2c4; WORD $0x7a4c; BYTE $0x28 // vpmovzxwd xmm1, qword [rdx + 2*rdi + 40] + LONG $0x3379e2c4; WORD $0x7a54; BYTE $0x30 // vpmovzxwd xmm2, qword [rdx + 2*rdi + 48] + LONG $0x3379e2c4; WORD $0x7a5c; BYTE $0x38 // vpmovzxwd xmm3, qword [rdx + 2*rdi + 56] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_489 + JMP LBB0_1046 + +LBB0_490: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1050 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_492: + LONG $0x2379e2c4; WORD $0x7a04 // vpmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x2379e2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x2379e2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0x2379e2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwd xmm3, qword [rdx + 2*rdi + 24] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x2379e2c4; WORD $0x7a44; BYTE $0x20 // vpmovsxwd xmm0, qword [rdx + 2*rdi + 32] + LONG $0x2379e2c4; WORD $0x7a4c; BYTE $0x28 // vpmovsxwd xmm1, qword [rdx + 2*rdi + 40] + LONG $0x2379e2c4; WORD $0x7a54; BYTE $0x30 // vpmovsxwd xmm2, qword [rdx + 2*rdi + 48] + LONG $0x2379e2c4; WORD $0x7a5c; BYTE $0x38 // vpmovsxwd xmm3, qword [rdx + 2*rdi + 56] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_492 + JMP LBB0_1051 + +LBB0_493: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1055 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xff31 // xor edi, edi + +LBB0_495: + LONG $0x046ffac5; BYTE $0xfa // vmovdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6ffac5; WORD $0x10fa // vmovdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x6c6ffac5; WORD $0x30fa // vmovdqu xmm5, oword [rdx + 8*rdi + 48] + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2aa3e1c4; BYTE $0xc8 // vcvtsi2sd xmm1, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0xc21479c5 // vunpcklpd xmm8, xmm0, xmm2 + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0xd41471c5 // vunpcklpd xmm10, xmm1, xmm4 + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2aa3e1c4; BYTE $0xd8 // vcvtsi2sd xmm3, xmm11, rax + LONG $0xce1469c5 // vunpcklpd xmm9, xmm2, xmm6 + LONG $0x646ffac5; WORD $0x50fa // vmovdqu xmm4, oword [rdx + 8*rdi + 80] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0xdd14e1c5 // vunpcklpd xmm3, xmm3, xmm5 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0xe514d9c5 // vunpcklpd xmm4, xmm4, xmm5 + LONG $0x6c6ffac5; WORD $0x40fa // vmovdqu xmm5, oword [rdx + 8*rdi + 64] + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0x7c6ffac5; WORD $0x70fa // vmovdqu xmm7, oword [rdx + 8*rdi + 112] + LONG $0x16f9e3c4; WORD $0x01f8 // vpextrq rax, xmm7, 1 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xf8 // vmovq rax, xmm7 + LONG $0x2aa3e1c4; BYTE $0xf8 // vcvtsi2sd xmm7, xmm11, rax + LONG $0x546ffac5; WORD $0x60fa // vmovdqu xmm2, oword [rdx + 8*rdi + 96] + LONG $0x16f9e3c4; WORD $0x01d0 // vpextrq rax, xmm2, 1 + LONG $0x2aa3e1c4; BYTE $0xc8 // vcvtsi2sd xmm1, xmm11, rax + LONG $0xee14d1c5 // vunpcklpd xmm5, xmm5, xmm6 + LONG $0x7ef9e1c4; BYTE $0xd0 // vmovq rax, xmm2 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0xc014c1c5 // vunpcklpd xmm0, xmm7, xmm0 + LONG $0xc914e9c5 // vunpcklpd xmm1, xmm2, xmm1 + LONG $0x541179c5; WORD $0x10f9 // vmovupd oword [rcx + 8*rdi + 16], xmm10 + LONG $0x041179c5; BYTE $0xf9 // vmovupd oword [rcx + 8*rdi], xmm8 + LONG $0x5c11f9c5; WORD $0x20f9 // vmovupd oword [rcx + 8*rdi + 32], xmm3 + LONG $0x4c1179c5; WORD $0x30f9 // vmovupd oword [rcx + 8*rdi + 48], xmm9 + LONG $0x6c11f9c5; WORD $0x40f9 // vmovupd oword [rcx + 8*rdi + 64], xmm5 + LONG $0x6411f9c5; WORD $0x50f9 // vmovupd oword [rcx + 8*rdi + 80], xmm4 + LONG $0x4c11f9c5; WORD $0x60f9 // vmovupd oword [rcx + 8*rdi + 96], xmm1 + LONG $0x4411f9c5; WORD $0x70f9 // vmovupd oword [rcx + 8*rdi + 112], xmm0 + QUAD $0x000080fa846ffac5; BYTE $0x00 // vmovdqu xmm0, oword [rdx + 8*rdi + 128] + QUAD $0x000090fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 144] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + QUAD $0x0000a0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 160] + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + QUAD $0x0000b0faac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 8*rdi + 176] + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2aa3e1c4; BYTE $0xc8 // vcvtsi2sd xmm1, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0xc21479c5 // vunpcklpd xmm8, xmm0, xmm2 + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0xd41471c5 // vunpcklpd xmm10, xmm1, xmm4 + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2aa3e1c4; BYTE $0xd8 // vcvtsi2sd xmm3, xmm11, rax + LONG $0xce1469c5 // vunpcklpd xmm9, xmm2, xmm6 + QUAD $0x0000d0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 208] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0xdd14e1c5 // vunpcklpd xmm3, xmm3, xmm5 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0xe514d9c5 // vunpcklpd xmm4, xmm4, xmm5 + QUAD $0x0000c0faac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 8*rdi + 192] + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + QUAD $0x0000f0fabc6ffac5; BYTE $0x00 // vmovdqu xmm7, oword [rdx + 8*rdi + 240] + LONG $0x16f9e3c4; WORD $0x01f8 // vpextrq rax, xmm7, 1 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xf8 // vmovq rax, xmm7 + LONG $0x2aa3e1c4; BYTE $0xf8 // vcvtsi2sd xmm7, xmm11, rax + QUAD $0x0000e0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 224] + LONG $0x16f9e3c4; WORD $0x01d0 // vpextrq rax, xmm2, 1 + LONG $0x2aa3e1c4; BYTE $0xc8 // vcvtsi2sd xmm1, xmm11, rax + LONG $0xee14d1c5 // vunpcklpd xmm5, xmm5, xmm6 + LONG $0x7ef9e1c4; BYTE $0xd0 // vmovq rax, xmm2 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0xc014c1c5 // vunpcklpd xmm0, xmm7, xmm0 + LONG $0xc914e9c5 // vunpcklpd xmm1, xmm2, xmm1 + QUAD $0x000090f9941179c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 144], xmm10 + QUAD $0x000080f9841179c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 128], xmm8 + QUAD $0x0000a0f99c11f9c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 160], xmm3 + QUAD $0x0000b0f98c1179c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 176], xmm9 + QUAD $0x0000c0f9ac11f9c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 192], xmm5 + QUAD $0x0000d0f9a411f9c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 208], xmm4 + QUAD $0x0000e0f98c11f9c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 224], xmm1 + QUAD $0x0000f0f98411f9c5; BYTE $0x00 // vmovupd oword [rcx + 8*rdi + 240], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_495 + JMP LBB0_1056 + +LBB0_496: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1060 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_498: + LONG $0x045afcc5; BYTE $0xba // vcvtps2pd ymm0, oword [rdx + 4*rdi] + LONG $0x4c5afcc5; WORD $0x10ba // vcvtps2pd ymm1, oword [rdx + 4*rdi + 16] + LONG $0x545afcc5; WORD $0x20ba // vcvtps2pd ymm2, oword [rdx + 4*rdi + 32] + LONG $0x5c5afcc5; WORD $0x30ba // vcvtps2pd ymm3, oword [rdx + 4*rdi + 48] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x445afcc5; WORD $0x40ba // vcvtps2pd ymm0, oword [rdx + 4*rdi + 64] + LONG $0x4c5afcc5; WORD $0x50ba // vcvtps2pd ymm1, oword [rdx + 4*rdi + 80] + LONG $0x545afcc5; WORD $0x60ba // vcvtps2pd ymm2, oword [rdx + 4*rdi + 96] + LONG $0x5c5afcc5; WORD $0x70ba // vcvtps2pd ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_498 + JMP LBB0_1061 + +LBB0_502: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_925 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_504: + LONG $0x04e6fec5; BYTE $0xba // vcvtdq2pd ymm0, oword [rdx + 4*rdi] + LONG $0x4ce6fec5; WORD $0x10ba // vcvtdq2pd ymm1, oword [rdx + 4*rdi + 16] + LONG $0x54e6fec5; WORD $0x20ba // vcvtdq2pd ymm2, oword [rdx + 4*rdi + 32] + LONG $0x5ce6fec5; WORD $0x30ba // vcvtdq2pd ymm3, oword [rdx + 4*rdi + 48] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x44e6fec5; WORD $0x40ba // vcvtdq2pd ymm0, oword [rdx + 4*rdi + 64] + LONG $0x4ce6fec5; WORD $0x50ba // vcvtdq2pd ymm1, oword [rdx + 4*rdi + 80] + LONG $0x54e6fec5; WORD $0x60ba // vcvtdq2pd ymm2, oword [rdx + 4*rdi + 96] + LONG $0x5ce6fec5; WORD $0x70ba // vcvtdq2pd ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_504 + JMP LBB0_926 + +LBB0_535: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_930 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_537: + LONG $0x357de2c4; WORD $0xba04 // vpmovzxdq ymm0, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x10 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x20 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x30 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x357de2c4; WORD $0xba44; BYTE $0x40 // vpmovzxdq ymm0, oword [rdx + 4*rdi + 64] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x50 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 80] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x60 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 96] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x70 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_537 + JMP LBB0_931 + +LBB0_538: + WORD $0x8945; BYTE $0xce // mov r14d, r9d + LONG $0xfce68341 // and r14d, -4 + LONG $0xfc468d49 // lea rax, [r14 - 4] + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0x02eac149 // shr r10, 2 + LONG $0x01c28349 // add r10, 1 + WORD $0x8945; BYTE $0xd0 // mov r8d, r10d + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_793 + WORD $0xc031 // xor eax, eax + JMP LBB0_795 + +LBB0_546: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_935 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_548: + LONG $0x347de2c4; WORD $0x7a04 // vpmovzxwq ymm0, qword [rdx + 2*rdi] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x347de2c4; WORD $0x7a44; BYTE $0x20 // vpmovzxwq ymm0, qword [rdx + 2*rdi + 32] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x28 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 40] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x30 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 48] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x38 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 56] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_548 + JMP LBB0_936 + +LBB0_549: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_940 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_551: + LONG $0x247de2c4; WORD $0x7a04 // vpmovsxwq ymm0, qword [rdx + 2*rdi] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x247de2c4; WORD $0x7a44; BYTE $0x20 // vpmovsxwq ymm0, qword [rdx + 2*rdi + 32] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x28 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 40] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x30 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 48] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x38 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 56] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_551 + JMP LBB0_941 + +LBB0_555: + WORD $0x8945; BYTE $0xce // mov r14d, r9d + LONG $0xfce68341 // and r14d, -4 + LONG $0xfc468d49 // lea rax, [r14 - 4] + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0x02eac149 // shr r10, 2 + LONG $0x01c28349 // add r10, 1 + WORD $0x8945; BYTE $0xd0 // mov r8d, r10d + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_810 + WORD $0xc031 // xor eax, eax + JMP LBB0_812 + +LBB0_560: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_945 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_562: + LONG $0x257de2c4; WORD $0xba04 // vpmovsxdq ymm0, oword [rdx + 4*rdi] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x10 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x20 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x30 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x257de2c4; WORD $0xba44; BYTE $0x40 // vpmovsxdq ymm0, oword [rdx + 4*rdi + 64] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x50 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 80] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x60 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 96] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x70 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_562 + JMP LBB0_946 + +LBB0_563: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1065 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000080856ffdc5 // vmovdqa ymm0, yword 128[rbp] /* [rip + .LCPI0_11] */ + +LBB0_565: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x4c7ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_565 + JMP LBB0_1066 + +LBB0_566: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1070 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000080856ffdc5 // vmovdqa ymm0, yword 128[rbp] /* [rip + .LCPI0_11] */ + +LBB0_568: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x4c7ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_568 + JMP LBB0_1071 + +LBB0_569: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1075 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_571: + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + QUAD $0x000080fa84e6fdc5; BYTE $0x00 // vcvttpd2dq xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa94e6fdc5; BYTE $0x00 // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 224] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_571 + JMP LBB0_1076 + +LBB0_572: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1080 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_574: + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0xd06bedc5 // vpackssdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0xc06bfdc5 // vpackssdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + QUAD $0x000080fa84e6fdc5; BYTE $0x00 // vcvttpd2dq xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa94e6fdc5; BYTE $0x00 // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 224] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0xd06bedc5 // vpackssdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0xc06bfdc5 // vpackssdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x447ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_574 + JMP LBB0_1081 + +LBB0_581: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_950 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB0_583: + LONG $0x0e7963c4; WORD $0xfa04; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa4c0e79e3c4 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + QUAD $0x0080fa840e7963c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi + 128], 17 + QUAD $0x0090fa940e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 144], 17 + QUAD $0x00a0fa9c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 160], 17 + QUAD $0x00b0faa40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 176], 17 + QUAD $0x00c0faac0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 192], 17 + QUAD $0x00d0fab40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 208], 17 + QUAD $0x00e0fabc0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 224], 17 + QUAD $0x00f0fa8c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 240], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_583 + JMP LBB0_951 + +LBB0_584: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_955 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB0_586: + LONG $0x0e7963c4; WORD $0xfa04; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa4c0e79e3c4 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + QUAD $0x0080fa840e7963c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi + 128], 17 + QUAD $0x0090fa940e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 144], 17 + QUAD $0x00a0fa9c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 160], 17 + QUAD $0x00b0faa40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 176], 17 + QUAD $0x00c0faac0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 192], 17 + QUAD $0x00d0fab40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 208], 17 + QUAD $0x00e0fabc0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 224], 17 + QUAD $0x00f0fa8c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 240], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_586 + JMP LBB0_956 + +LBB0_599: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_960 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB0_601: + LONG $0x0e7963c4; WORD $0xfa04; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa4c0e79e3c4 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + QUAD $0x0080fa840e7963c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi + 128], 17 + QUAD $0x0090fa940e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 144], 17 + QUAD $0x00a0fa9c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 160], 17 + QUAD $0x00b0faa40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 176], 17 + QUAD $0x00c0faac0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 192], 17 + QUAD $0x00d0fab40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 208], 17 + QUAD $0x00e0fabc0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 224], 17 + QUAD $0x00f0fa8c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 240], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_601 + JMP LBB0_961 + +LBB0_602: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1085 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + +LBB0_604: + LONG $0x0e7963c4; WORD $0xfa04; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa4c0e79e3c4 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm1 + QUAD $0x0080fa840e7963c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm8, xmm0, oword [rdx + 8*rdi + 128], 17 + QUAD $0x0090fa940e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 144], 17 + QUAD $0x00a0fa9c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 160], 17 + QUAD $0x00b0faa40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 176], 17 + QUAD $0x00c0faac0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 192], 17 + QUAD $0x00d0fab40e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 208], 17 + QUAD $0x00e0fabc0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 224], 17 + QUAD $0x00f0fa8c0e79e3c4; WORD $0x0000; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi + 240], 17 + LONG $0x384de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm6, xmm1, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc9 // vpackusdw ymm1, ymm5, ymm1 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x383de3c4; WORD $0x01db // vinserti128 ymm3, ymm8, xmm3, 1 + LONG $0x2b65e2c4; BYTE $0xd2 // vpackusdw ymm2, ymm3, ymm2 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0xc96cedc5 // vpunpcklqdq ymm1, ymm2, ymm1 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_604 + JMP LBB0_1086 + +LBB0_605: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1090 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_607: + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0x2b79e2c4; BYTE $0xc1 // vpackusdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0x2b71e2c4; BYTE $0xca // vpackusdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0x2b69e2c4; BYTE $0xd3 // vpackusdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0x2b61e2c4; BYTE $0xdc // vpackusdw xmm3, xmm3, xmm4 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + QUAD $0x000080ba845bfec5; BYTE $0x00 // vcvttps2dq ymm0, yword [rdx + 4*rdi + 128] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0x2b79e2c4; BYTE $0xc1 // vpackusdw xmm0, xmm0, xmm1 + QUAD $0x0000a0ba8c5bfec5; BYTE $0x00 // vcvttps2dq ymm1, yword [rdx + 4*rdi + 160] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0x2b71e2c4; BYTE $0xca // vpackusdw xmm1, xmm1, xmm2 + QUAD $0x0000c0ba945bfec5; BYTE $0x00 // vcvttps2dq ymm2, yword [rdx + 4*rdi + 192] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0x2b69e2c4; BYTE $0xd3 // vpackusdw xmm2, xmm2, xmm3 + QUAD $0x0000e0ba9c5bfec5; BYTE $0x00 // vcvttps2dq ymm3, yword [rdx + 4*rdi + 224] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0x2b61e2c4; BYTE $0xdc // vpackusdw xmm3, xmm3, xmm4 + LONG $0x447ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm0 + LONG $0x4c7ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm1 + LONG $0x547ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm2 + LONG $0x5c7ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_607 + JMP LBB0_1091 + +LBB0_608: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1095 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_610: + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + QUAD $0x000080ba845bfec5; BYTE $0x00 // vcvttps2dq ymm0, yword [rdx + 4*rdi + 128] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + QUAD $0x0000a0ba8c5bfec5; BYTE $0x00 // vcvttps2dq ymm1, yword [rdx + 4*rdi + 160] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + QUAD $0x0000c0ba945bfec5; BYTE $0x00 // vcvttps2dq ymm2, yword [rdx + 4*rdi + 192] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + QUAD $0x0000e0ba9c5bfec5; BYTE $0x00 // vcvttps2dq ymm3, yword [rdx + 4*rdi + 224] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x447ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm0 + LONG $0x4c7ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm1 + LONG $0x547ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm2 + LONG $0x5c7ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_610 + JMP LBB0_1096 + +LBB0_617: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_965 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000080856ffdc5 // vmovdqa ymm0, yword 128[rbp] /* [rip + .LCPI0_11] */ + +LBB0_619: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x4c7ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_619 + JMP LBB0_966 + +LBB0_620: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_970 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000080856ffdc5 // vmovdqa ymm0, yword 128[rbp] /* [rip + .LCPI0_11] */ + +LBB0_622: + LONG $0x0c6ffec5; BYTE $0xba // vmovdqu ymm1, yword [rdx + 4*rdi] + LONG $0x546ffec5; WORD $0x20ba // vmovdqu ymm2, yword [rdx + 4*rdi + 32] + LONG $0x5c6ffec5; WORD $0x40ba // vmovdqu ymm3, yword [rdx + 4*rdi + 64] + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x0c7ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm1 + LONG $0x547ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm4 + QUAD $0x000080ba8c6ffec5; BYTE $0x00 // vmovdqu ymm1, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 224] + LONG $0x0075e2c4; BYTE $0xc8 // vpshufb ymm1, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd0 // vpshufb ymm2, ymm2, ymm0 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xd8 // vpshufb ymm3, ymm3, ymm0 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x005de2c4; BYTE $0xe0 // vpshufb ymm4, ymm4, ymm0 + LONG $0x00fde3c4; WORD $0xe8e4 // vpermq ymm4, ymm4, 232 + LONG $0x4c7ffac5; WORD $0x4079 // vmovdqu oword [rcx + 2*rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5079 // vmovdqu oword [rcx + 2*rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6079 // vmovdqu oword [rcx + 2*rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7079 // vmovdqu oword [rcx + 2*rdi + 112], xmm4 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_622 + JMP LBB0_971 + +LBB0_623: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1100 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_625: + LONG $0x357de2c4; WORD $0xba04 // vpmovzxdq ymm0, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x10 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x20 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x30 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x357de2c4; WORD $0xba44; BYTE $0x40 // vpmovzxdq ymm0, oword [rdx + 4*rdi + 64] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x50 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 80] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x60 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 96] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x70 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_625 + JMP LBB0_1101 + +LBB0_626: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1105 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + LONG $0x587de2c4; WORD $0x3445 // vpbroadcastd ymm0, dword 52[rbp] /* [rip + .LCPI0_13] */ + WORD $0xff31 // xor edi, edi + LONG $0x587de2c4; WORD $0x384d // vpbroadcastd ymm1, dword 56[rbp] /* [rip + .LCPI0_14] */ + LONG $0x187de2c4; WORD $0x3c55 // vbroadcastss ymm2, dword 60[rbp] /* [rip + .LCPI0_15] */ + +LBB0_628: + LONG $0x1c6ffec5; BYTE $0xba // vmovdqu ymm3, yword [rdx + 4*rdi] + LONG $0x646ffec5; WORD $0x20ba // vmovdqu ymm4, yword [rdx + 4*rdi + 32] + LONG $0x6c6ffec5; WORD $0x40ba // vmovdqu ymm5, yword [rdx + 4*rdi + 64] + LONG $0x746ffec5; WORD $0x60ba // vmovdqu ymm6, yword [rdx + 4*rdi + 96] + LONG $0x0e65e3c4; WORD $0xaaf8 // vpblendw ymm7, ymm3, ymm0, 170 + LONG $0xd372e5c5; BYTE $0x10 // vpsrld ymm3, ymm3, 16 + LONG $0x0e65e3c4; WORD $0xaad9 // vpblendw ymm3, ymm3, ymm1, 170 + LONG $0xda5ce4c5 // vsubps ymm3, ymm3, ymm2 + LONG $0xdb58c4c5 // vaddps ymm3, ymm7, ymm3 + LONG $0x0e5de3c4; WORD $0xaaf8 // vpblendw ymm7, ymm4, ymm0, 170 + LONG $0xd472ddc5; BYTE $0x10 // vpsrld ymm4, ymm4, 16 + LONG $0x0e5de3c4; WORD $0xaae1 // vpblendw ymm4, ymm4, ymm1, 170 + LONG $0xe25cdcc5 // vsubps ymm4, ymm4, ymm2 + LONG $0xe458c4c5 // vaddps ymm4, ymm7, ymm4 + LONG $0x0e55e3c4; WORD $0xaaf8 // vpblendw ymm7, ymm5, ymm0, 170 + LONG $0xd572d5c5; BYTE $0x10 // vpsrld ymm5, ymm5, 16 + LONG $0x0e55e3c4; WORD $0xaae9 // vpblendw ymm5, ymm5, ymm1, 170 + LONG $0xea5cd4c5 // vsubps ymm5, ymm5, ymm2 + LONG $0xed58c4c5 // vaddps ymm5, ymm7, ymm5 + LONG $0x0e4de3c4; WORD $0xaaf8 // vpblendw ymm7, ymm6, ymm0, 170 + LONG $0xd672cdc5; BYTE $0x10 // vpsrld ymm6, ymm6, 16 + LONG $0x0e4de3c4; WORD $0xaaf1 // vpblendw ymm6, ymm6, ymm1, 170 + LONG $0xf25cccc5 // vsubps ymm6, ymm6, ymm2 + LONG $0xf658c4c5 // vaddps ymm6, ymm7, ymm6 + LONG $0x1c11fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm3 + LONG $0x6411fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm4 + LONG $0x6c11fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm5 + LONG $0x7411fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm6 + QUAD $0x000080ba9c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0baa46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0baac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0bab46ffec5; BYTE $0x00 // vmovdqu ymm6, yword [rdx + 4*rdi + 224] + LONG $0x0e65e3c4; WORD $0xaaf8 // vpblendw ymm7, ymm3, ymm0, 170 + LONG $0xd372e5c5; BYTE $0x10 // vpsrld ymm3, ymm3, 16 + LONG $0x0e65e3c4; WORD $0xaad9 // vpblendw ymm3, ymm3, ymm1, 170 + LONG $0xda5ce4c5 // vsubps ymm3, ymm3, ymm2 + LONG $0xdb58c4c5 // vaddps ymm3, ymm7, ymm3 + LONG $0x0e5de3c4; WORD $0xaaf8 // vpblendw ymm7, ymm4, ymm0, 170 + LONG $0xd472ddc5; BYTE $0x10 // vpsrld ymm4, ymm4, 16 + LONG $0x0e5de3c4; WORD $0xaae1 // vpblendw ymm4, ymm4, ymm1, 170 + LONG $0xe25cdcc5 // vsubps ymm4, ymm4, ymm2 + LONG $0xe458c4c5 // vaddps ymm4, ymm7, ymm4 + LONG $0x0e55e3c4; WORD $0xaaf8 // vpblendw ymm7, ymm5, ymm0, 170 + LONG $0xd572d5c5; BYTE $0x10 // vpsrld ymm5, ymm5, 16 + LONG $0x0e55e3c4; WORD $0xaae9 // vpblendw ymm5, ymm5, ymm1, 170 + LONG $0xea5cd4c5 // vsubps ymm5, ymm5, ymm2 + LONG $0xed58c4c5 // vaddps ymm5, ymm7, ymm5 + LONG $0x0e4de3c4; WORD $0xaaf8 // vpblendw ymm7, ymm6, ymm0, 170 + LONG $0xd672cdc5; BYTE $0x10 // vpsrld ymm6, ymm6, 16 + LONG $0x0e4de3c4; WORD $0xaaf1 // vpblendw ymm6, ymm6, ymm1, 170 + LONG $0xf25cccc5 // vsubps ymm6, ymm6, ymm2 + LONG $0xf658c4c5 // vaddps ymm6, ymm7, ymm6 + QUAD $0x000080b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm3 + QUAD $0x0000a0b9a411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm4 + QUAD $0x0000c0b9ac11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm5 + QUAD $0x0000e0b9b411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm6 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_628 + JMP LBB0_1106 + +LBB0_629: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1110 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xff31 // xor edi, edi + +LBB0_631: + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x08 // vcvttsd2si rbx, qword [rdx + 8*rdi + 8] + LONG $0x6ef9e1c4; BYTE $0xc3 // vmovq xmm0, rbx + LONG $0x2cfbe1c4; WORD $0xfa1c // vcvttsd2si rbx, qword [rdx + 8*rdi] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x18 // vcvttsd2si rbx, qword [rdx + 8*rdi + 24] + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x10 // vcvttsd2si rax, qword [rdx + 8*rdi + 16] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x38 // vcvttsd2si rbx, qword [rdx + 8*rdi + 56] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x30 // vcvttsd2si rax, qword [rdx + 8*rdi + 48] + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x28 // vcvttsd2si rax, qword [rdx + 8*rdi + 40] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x20 // vcvttsd2si rax, qword [rdx + 8*rdi + 32] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x58 // vcvttsd2si rax, qword [rdx + 8*rdi + 88] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x50 // vcvttsd2si rax, qword [rdx + 8*rdi + 80] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x48 // vcvttsd2si rax, qword [rdx + 8*rdi + 72] + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x40 // vcvttsd2si rbx, qword [rdx + 8*rdi + 64] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x78 // vcvttsd2si rax, qword [rdx + 8*rdi + 120] + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x70 // vcvttsd2si rbx, qword [rdx + 8*rdi + 112] + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x68 // vcvttsd2si rax, qword [rdx + 8*rdi + 104] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x60 // vcvttsd2si rax, qword [rdx + 8*rdi + 96] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xc76cf9c5 // vpunpcklqdq xmm0, xmm0, xmm7 + LONG $0x4c7ffac5; WORD $0x10f9 // vmovdqu oword [rcx + 8*rdi + 16], xmm1 + LONG $0x047f7ac5; BYTE $0xf9 // vmovdqu oword [rcx + 8*rdi], xmm8 + LONG $0x5c7ffac5; WORD $0x20f9 // vmovdqu oword [rcx + 8*rdi + 32], xmm3 + LONG $0x547ffac5; WORD $0x30f9 // vmovdqu oword [rcx + 8*rdi + 48], xmm2 + LONG $0x6c7ffac5; WORD $0x40f9 // vmovdqu oword [rcx + 8*rdi + 64], xmm5 + LONG $0x647ffac5; WORD $0x50f9 // vmovdqu oword [rcx + 8*rdi + 80], xmm4 + LONG $0x447ffac5; WORD $0x60f9 // vmovdqu oword [rcx + 8*rdi + 96], xmm0 + LONG $0x747ffac5; WORD $0x70f9 // vmovdqu oword [rcx + 8*rdi + 112], xmm6 + QUAD $0x0088fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 136] + QUAD $0x0080fa9c2cfbe1c4; WORD $0x0000 // vcvttsd2si rbx, qword [rdx + 8*rdi + 128] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + QUAD $0x0098fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 152] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + QUAD $0x0090fa9c2cfbe1c4; WORD $0x0000 // vcvttsd2si rbx, qword [rdx + 8*rdi + 144] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + QUAD $0x00b8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 184] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + QUAD $0x00b0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 176] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + QUAD $0x00a8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 168] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + QUAD $0x00a0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 160] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + QUAD $0x00d8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 216] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + QUAD $0x00d0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 208] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + QUAD $0x00c8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 200] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + QUAD $0x00c0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 192] + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0xe56cc9c5 // vpunpcklqdq xmm4, xmm6, xmm5 + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xef6cd1c5 // vpunpcklqdq xmm5, xmm5, xmm7 + QUAD $0x00f8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 248] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + QUAD $0x00f0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 240] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + QUAD $0x00e8fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 232] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + QUAD $0x00e0fa842cfbe1c4; WORD $0x0000 // vcvttsd2si rax, qword [rdx + 8*rdi + 224] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xc76cf9c5 // vpunpcklqdq xmm0, xmm0, xmm7 + QUAD $0x000090f98c7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 144], xmm1 + QUAD $0x000080f9847f7ac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 128], xmm8 + QUAD $0x0000a0f99c7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 160], xmm3 + QUAD $0x0000b0f9947ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 176], xmm2 + QUAD $0x0000c0f9ac7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 192], xmm5 + QUAD $0x0000d0f9a47ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 208], xmm4 + QUAD $0x0000e0f9847ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 224], xmm0 + QUAD $0x0000f0f9b47ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 240], xmm6 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_631 + JMP LBB0_1111 + +LBB0_632: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1115 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_634: + LONG $0x045afdc5; BYTE $0xfa // vcvtpd2ps xmm0, yword [rdx + 8*rdi] + LONG $0x4c5afdc5; WORD $0x20fa // vcvtpd2ps xmm1, yword [rdx + 8*rdi + 32] + LONG $0x545afdc5; WORD $0x40fa // vcvtpd2ps xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5c5afdc5; WORD $0x60fa // vcvtpd2ps xmm3, yword [rdx + 8*rdi + 96] + LONG $0x0411f9c5; BYTE $0xb9 // vmovupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f9c5; WORD $0x10b9 // vmovupd oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f9c5; WORD $0x20b9 // vmovupd oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f9c5; WORD $0x30b9 // vmovupd oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa845afdc5; BYTE $0x00 // vcvtpd2ps xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c5afdc5; BYTE $0x00 // vcvtpd2ps xmm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa945afdc5; BYTE $0x00 // vcvtpd2ps xmm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c5afdc5; BYTE $0x00 // vcvtpd2ps xmm3, yword [rdx + 8*rdi + 224] + LONG $0x4411f9c5; WORD $0x40b9 // vmovupd oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f9c5; WORD $0x50b9 // vmovupd oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f9c5; WORD $0x60b9 // vmovupd oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f9c5; WORD $0x70b9 // vmovupd oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_634 + JMP LBB0_1116 + +LBB0_644: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0x02eac149 // shr r10, 2 + LONG $0x01c28349 // add r10, 1 + WORD $0x8945; BYTE $0xd0 // mov r8d, r10d + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_850 + WORD $0xc031 // xor eax, eax + JMP LBB0_852 + +LBB0_646: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_975 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_648: + LONG $0x347de2c4; WORD $0x7a04 // vpmovzxwq ymm0, qword [rdx + 2*rdi] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x347de2c4; WORD $0x7a44; BYTE $0x20 // vpmovzxwq ymm0, qword [rdx + 2*rdi + 32] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x28 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 40] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x30 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 48] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x38 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 56] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_648 + JMP LBB0_976 + +LBB0_649: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1120 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_651: + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + LONG $0x337de2c4; WORD $0x7a44; BYTE $0x40 // vpmovzxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x60 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 112] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + QUAD $0x000080b98411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_651 + JMP LBB0_1121 + +LBB0_652: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1125 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_654: + LONG $0x247de2c4; WORD $0x7a04 // vpmovsxwq ymm0, qword [rdx + 2*rdi] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x247de2c4; WORD $0x7a44; BYTE $0x20 // vpmovsxwq ymm0, qword [rdx + 2*rdi + 32] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x28 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 40] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x30 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 48] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x38 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 56] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_654 + JMP LBB0_1126 + +LBB0_655: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1130 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_657: + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + LONG $0x237de2c4; WORD $0x7a44; BYTE $0x40 // vpmovsxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x60 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 112] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + QUAD $0x000080b98411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_657 + JMP LBB0_1131 + +LBB0_661: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1135 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xff31 // xor edi, edi + +LBB0_663: + LONG $0x046ffac5; BYTE $0xfa // vmovdqu xmm0, oword [rdx + 8*rdi] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + LONG $0x4c6ffac5; WORD $0x10fa // vmovdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2abae1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2abae1c4; BYTE $0xc8 // vcvtsi2ss xmm1, xmm8, rax + LONG $0x646ffac5; WORD $0x20fa // vmovdqu xmm4, oword [rdx + 8*rdi + 32] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0x6c6ffac5; WORD $0x30fa // vmovdqu xmm5, oword [rdx + 8*rdi + 48] + LONG $0x2abae1c4; BYTE $0xf0 // vcvtsi2ss xmm6, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xf8 // vcvtsi2ss xmm7, xmm8, rax + LONG $0x2179e3c4; WORD $0x10c2 // vinsertps xmm0, xmm0, xmm2, 16 + LONG $0x2179e3c4; WORD $0x20c3 // vinsertps xmm0, xmm0, xmm3, 32 + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2179e3c4; WORD $0x30c1 // vinsertps xmm0, xmm0, xmm1, 48 + LONG $0x2abae1c4; BYTE $0xc8 // vcvtsi2ss xmm1, xmm8, rax + LONG $0x2159e3c4; WORD $0x10d6 // vinsertps xmm2, xmm4, xmm6, 16 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x6c6ffac5; WORD $0x50fa // vmovdqu xmm5, oword [rdx + 8*rdi + 80] + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xf0 // vcvtsi2ss xmm6, xmm8, rax + LONG $0x2169e3c4; WORD $0x20d7 // vinsertps xmm2, xmm2, xmm7, 32 + LONG $0x2169e3c4; WORD $0x30c9 // vinsertps xmm1, xmm2, xmm1, 48 + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2161e3c4; WORD $0x10d4 // vinsertps xmm2, xmm3, xmm4, 16 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x2169e3c4; WORD $0x20d6 // vinsertps xmm2, xmm2, xmm6, 32 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0x2abae1c4; BYTE $0xe8 // vcvtsi2ss xmm5, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x746ffac5; WORD $0x70fa // vmovdqu xmm6, oword [rdx + 8*rdi + 112] + LONG $0x7ef9e1c4; BYTE $0xf0 // vmovq rax, xmm6 + LONG $0x2abae1c4; BYTE $0xf8 // vcvtsi2ss xmm7, xmm8, rax + LONG $0x2169e3c4; WORD $0x30d3 // vinsertps xmm2, xmm2, xmm3, 48 + LONG $0x2159e3c4; WORD $0x10dd // vinsertps xmm3, xmm4, xmm5, 16 + LONG $0x16f9e3c4; WORD $0x01f0 // vpextrq rax, xmm6, 1 + LONG $0x2161e3c4; WORD $0x20df // vinsertps xmm3, xmm3, xmm7, 32 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x2161e3c4; WORD $0x30dc // vinsertps xmm3, xmm3, xmm4, 48 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa846ffac5; BYTE $0x00 // vmovdqu xmm0, oword [rdx + 8*rdi + 128] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + QUAD $0x000090fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 144] + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2abae1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2abae1c4; BYTE $0xc8 // vcvtsi2ss xmm1, xmm8, rax + QUAD $0x0000a0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 160] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0x2abae1c4; BYTE $0xe8 // vcvtsi2ss xmm5, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x2179e3c4; WORD $0x10c2 // vinsertps xmm0, xmm0, xmm2, 16 + QUAD $0x0000b0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 176] + LONG $0x16f9c3c4; WORD $0x01d3 // vpextrq r11, xmm2, 1 + LONG $0x7ef9e1c4; BYTE $0xd0 // vmovq rax, xmm2 + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x2179e3c4; WORD $0x20c3 // vinsertps xmm0, xmm0, xmm3, 32 + LONG $0x2abac1c4; BYTE $0xdb // vcvtsi2ss xmm3, xmm8, r11 + LONG $0x2179e3c4; WORD $0x30c1 // vinsertps xmm0, xmm0, xmm1, 48 + QUAD $0x0000c0fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 192] + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2159e3c4; WORD $0x10e5 // vinsertps xmm4, xmm4, xmm5, 16 + LONG $0x2abae1c4; BYTE $0xe8 // vcvtsi2ss xmm5, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2abae1c4; BYTE $0xc8 // vcvtsi2ss xmm1, xmm8, rax + LONG $0x2159e3c4; WORD $0x20d2 // vinsertps xmm2, xmm4, xmm2, 32 + QUAD $0x0000d0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 208] + LONG $0x16f9c3c4; WORD $0x01e3 // vpextrq r11, xmm4, 1 + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x2169e3c4; WORD $0x30d3 // vinsertps xmm2, xmm2, xmm3, 48 + LONG $0x2abac1c4; BYTE $0xdb // vcvtsi2ss xmm3, xmm8, r11 + LONG $0x2171e3c4; WORD $0x10cd // vinsertps xmm1, xmm1, xmm5, 16 + QUAD $0x0000e0faac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 8*rdi + 224] + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2171e3c4; WORD $0x20cc // vinsertps xmm1, xmm1, xmm4, 32 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xe8 // vcvtsi2ss xmm5, xmm8, rax + LONG $0x2171e3c4; WORD $0x30cb // vinsertps xmm1, xmm1, xmm3, 48 + QUAD $0x0000f0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 240] + LONG $0x16f9c3c4; WORD $0x01db // vpextrq r11, xmm3, 1 + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x2151e3c4; WORD $0x10e4 // vinsertps xmm4, xmm5, xmm4, 16 + LONG $0x2abac1c4; BYTE $0xeb // vcvtsi2ss xmm5, xmm8, r11 + LONG $0x2159e3c4; WORD $0x20db // vinsertps xmm3, xmm4, xmm3, 32 + LONG $0x2161e3c4; WORD $0x30dd // vinsertps xmm3, xmm3, xmm5, 48 + LONG $0x4411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm0 + LONG $0x5411f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm2 + LONG $0x4c11f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm1 + LONG $0x5c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_663 + JMP LBB0_1136 + +LBB0_664: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1140 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xff31 // xor edi, edi + +LBB0_666: + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x04 // vcvttss2si rbx, dword [rdx + 4*rdi + 4] + LONG $0x6ef9e1c4; BYTE $0xc3 // vmovq xmm0, rbx + LONG $0x2cfae1c4; WORD $0xba1c // vcvttss2si rbx, dword [rdx + 4*rdi] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x0c // vcvttss2si rbx, dword [rdx + 4*rdi + 12] + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x08 // vcvttss2si rax, dword [rdx + 4*rdi + 8] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x1c // vcvttss2si rbx, dword [rdx + 4*rdi + 28] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x18 // vcvttss2si rax, dword [rdx + 4*rdi + 24] + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x14 // vcvttss2si rax, dword [rdx + 4*rdi + 20] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x10 // vcvttss2si rax, dword [rdx + 4*rdi + 16] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x2c // vcvttss2si rax, dword [rdx + 4*rdi + 44] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x28 // vcvttss2si rax, dword [rdx + 4*rdi + 40] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x24 // vcvttss2si rax, dword [rdx + 4*rdi + 36] + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x20 // vcvttss2si rbx, dword [rdx + 4*rdi + 32] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x3c // vcvttss2si rax, dword [rdx + 4*rdi + 60] + LONG $0x6ef9e1c4; BYTE $0xf3 // vmovq xmm6, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x38 // vcvttss2si rbx, dword [rdx + 4*rdi + 56] + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x34 // vcvttss2si rax, dword [rdx + 4*rdi + 52] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x30 // vcvttss2si rax, dword [rdx + 4*rdi + 48] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xc76cf9c5 // vpunpcklqdq xmm0, xmm0, xmm7 + LONG $0x4c7ffac5; WORD $0x10f9 // vmovdqu oword [rcx + 8*rdi + 16], xmm1 + LONG $0x047f7ac5; BYTE $0xf9 // vmovdqu oword [rcx + 8*rdi], xmm8 + LONG $0x5c7ffac5; WORD $0x20f9 // vmovdqu oword [rcx + 8*rdi + 32], xmm3 + LONG $0x547ffac5; WORD $0x30f9 // vmovdqu oword [rcx + 8*rdi + 48], xmm2 + LONG $0x6c7ffac5; WORD $0x40f9 // vmovdqu oword [rcx + 8*rdi + 64], xmm5 + LONG $0x647ffac5; WORD $0x50f9 // vmovdqu oword [rcx + 8*rdi + 80], xmm4 + LONG $0x447ffac5; WORD $0x60f9 // vmovdqu oword [rcx + 8*rdi + 96], xmm0 + LONG $0x747ffac5; WORD $0x70f9 // vmovdqu oword [rcx + 8*rdi + 112], xmm6 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x44 // vcvttss2si rax, dword [rdx + 4*rdi + 68] + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x40 // vcvttss2si rbx, dword [rdx + 4*rdi + 64] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x4c // vcvttss2si rax, dword [rdx + 4*rdi + 76] + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x48 // vcvttss2si rbx, dword [rdx + 4*rdi + 72] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x5c // vcvttss2si rax, dword [rdx + 4*rdi + 92] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x58 // vcvttss2si rax, dword [rdx + 4*rdi + 88] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x54 // vcvttss2si rax, dword [rdx + 4*rdi + 84] + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x50 // vcvttss2si rax, dword [rdx + 4*rdi + 80] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x6c // vcvttss2si rax, dword [rdx + 4*rdi + 108] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x68 // vcvttss2si rax, dword [rdx + 4*rdi + 104] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x64 // vcvttss2si rax, dword [rdx + 4*rdi + 100] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x60 // vcvttss2si rax, dword [rdx + 4*rdi + 96] + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0xe56cc9c5 // vpunpcklqdq xmm4, xmm6, xmm5 + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xef6cd1c5 // vpunpcklqdq xmm5, xmm5, xmm7 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x7c // vcvttss2si rax, dword [rdx + 4*rdi + 124] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x78 // vcvttss2si rax, dword [rdx + 4*rdi + 120] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x74 // vcvttss2si rax, dword [rdx + 4*rdi + 116] + LONG $0x6ef9e1c4; BYTE $0xf8 // vmovq xmm7, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x70 // vcvttss2si rax, dword [rdx + 4*rdi + 112] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xc76cf9c5 // vpunpcklqdq xmm0, xmm0, xmm7 + QUAD $0x000090f98c7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 144], xmm1 + QUAD $0x000080f9847f7ac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 128], xmm8 + QUAD $0x0000a0f99c7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 160], xmm3 + QUAD $0x0000b0f9947ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 176], xmm2 + QUAD $0x0000c0f9ac7ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 192], xmm5 + QUAD $0x0000d0f9a47ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 208], xmm4 + QUAD $0x0000e0f9847ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 224], xmm0 + QUAD $0x0000f0f9b47ffac5; BYTE $0x00 // vmovdqu oword [rcx + 8*rdi + 240], xmm6 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_666 + JMP LBB0_1141 + +LBB0_676: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_980 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_678: + LONG $0x257de2c4; WORD $0xba04 // vpmovsxdq ymm0, oword [rdx + 4*rdi] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x10 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x20 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x30 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x257de2c4; WORD $0xba44; BYTE $0x40 // vpmovsxdq ymm0, oword [rdx + 4*rdi + 64] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x50 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 80] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x60 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 96] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x70 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 112] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_678 + JMP LBB0_981 + +LBB0_679: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_985 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_681: + LONG $0x045bfcc5; BYTE $0xba // vcvtdq2ps ymm0, yword [rdx + 4*rdi] + LONG $0x4c5bfcc5; WORD $0x20ba // vcvtdq2ps ymm1, yword [rdx + 4*rdi + 32] + LONG $0x545bfcc5; WORD $0x40ba // vcvtdq2ps ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c5bfcc5; WORD $0x60ba // vcvtdq2ps ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba845bfcc5; BYTE $0x00 // vcvtdq2ps ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c5bfcc5; BYTE $0x00 // vcvtdq2ps ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba945bfcc5; BYTE $0x00 // vcvtdq2ps ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c5bfcc5; BYTE $0x00 // vcvtdq2ps ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_681 + JMP LBB0_986 + +LBB0_715: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_990 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_717: + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x0411f9c5; BYTE $0xb9 // vmovupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f9c5; WORD $0x10b9 // vmovupd oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f9c5; WORD $0x20b9 // vmovupd oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f9c5; WORD $0x30b9 // vmovupd oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa84e6fdc5; BYTE $0x00 // vcvttpd2dq xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa94e6fdc5; BYTE $0x00 // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 224] + LONG $0x4411f9c5; WORD $0x40b9 // vmovupd oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f9c5; WORD $0x50b9 // vmovupd oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f9c5; WORD $0x60b9 // vmovupd oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f9c5; WORD $0x70b9 // vmovupd oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_717 + JMP LBB0_991 + +LBB0_721: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_995 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_723: + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa8410f8c5; BYTE $0x00 // vmovups xmm0, oword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10f8c5; BYTE $0x00 // vmovups xmm1, oword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410f8c5; BYTE $0x00 // vmovups xmm2, oword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10f8c5; BYTE $0x00 // vmovups xmm3, oword [rdx + 8*rdi + 224] + QUAD $0x000090fa84c6f8c5; WORD $0x8800 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 144], 136 + QUAD $0x0000b0fa8cc6f0c5; WORD $0x8800 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 176], 136 + QUAD $0x0000d0fa94c6e8c5; WORD $0x8800 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 208], 136 + QUAD $0x0000f0fa9cc6e0c5; WORD $0x8800 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 240], 136 + LONG $0x4411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_723 + JMP LBB0_996 + +LBB0_724: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1000 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_726: + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x337de2c4; WORD $0x7a44; BYTE $0x40 // vpmovzxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x60 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 112] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_726 + JMP LBB0_1001 + +LBB0_727: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1005 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_729: + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x237de2c4; WORD $0x7a44; BYTE $0x40 // vpmovsxwd ymm0, oword [rdx + 2*rdi + 64] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x50 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 80] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x60 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 96] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x70 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 112] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_729 + JMP LBB0_1006 + +LBB0_730: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1010 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_732: + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + QUAD $0x000080fa8410f8c5; BYTE $0x00 // vmovups xmm0, oword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10f8c5; BYTE $0x00 // vmovups xmm1, oword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410f8c5; BYTE $0x00 // vmovups xmm2, oword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10f8c5; BYTE $0x00 // vmovups xmm3, oword [rdx + 8*rdi + 224] + QUAD $0x000090fa84c6f8c5; WORD $0x8800 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 144], 136 + QUAD $0x0000b0fa8cc6f0c5; WORD $0x8800 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 176], 136 + QUAD $0x0000d0fa94c6e8c5; WORD $0x8800 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 208], 136 + QUAD $0x0000f0fa9cc6e0c5; WORD $0x8800 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 240], 136 + LONG $0x4411f8c5; WORD $0x40b9 // vmovups oword [rcx + 4*rdi + 64], xmm0 + LONG $0x4c11f8c5; WORD $0x50b9 // vmovups oword [rcx + 4*rdi + 80], xmm1 + LONG $0x5411f8c5; WORD $0x60b9 // vmovups oword [rcx + 4*rdi + 96], xmm2 + LONG $0x5c11f8c5; WORD $0x70b9 // vmovups oword [rcx + 4*rdi + 112], xmm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_732 + JMP LBB0_1011 + +LBB0_733: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1015 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_735: + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba845bfec5; BYTE $0x00 // vcvttps2dq ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c5bfec5; BYTE $0x00 // vcvttps2dq ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba945bfec5; BYTE $0x00 // vcvttps2dq ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c5bfec5; BYTE $0x00 // vcvttps2dq ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_735 + JMP LBB0_1016 + +LBB0_742: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1185 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_744: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_744 + JMP LBB0_1186 + +LBB0_745: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1193 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_747: + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x217de2c4; WORD $0x3a44; BYTE $0x20 // vpmovsxbd ymm0, qword [rdx + rdi + 32] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovsxbd ymm1, qword [rdx + rdi + 40] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x30 // vpmovsxbd ymm2, qword [rdx + rdi + 48] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovsxbd ymm3, qword [rdx + rdi + 56] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_747 + JMP LBB0_1194 + +LBB0_748: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1201 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_750: + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x317de2c4; WORD $0x3a44; BYTE $0x20 // vpmovzxbd ymm0, qword [rdx + rdi + 32] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovzxbd ymm1, qword [rdx + rdi + 40] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x30 // vpmovzxbd ymm2, qword [rdx + rdi + 48] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovzxbd ymm3, qword [rdx + rdi + 56] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_750 + JMP LBB0_1202 + +LBB0_751: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1209 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_753: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_753 + JMP LBB0_1210 + +LBB0_754: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1217 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_756: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_756 + JMP LBB0_1218 + +LBB0_757: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1225 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_759: + LONG $0x2179e2c4; WORD $0x3a04 // vpmovsxbd xmm0, dword [rdx + rdi] + LONG $0x2179e2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x2179e2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbd xmm2, dword [rdx + rdi + 8] + LONG $0x2179e2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbd xmm3, dword [rdx + rdi + 12] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x2179e2c4; WORD $0x3a44; BYTE $0x10 // vpmovsxbd xmm0, dword [rdx + rdi + 16] + LONG $0x2179e2c4; WORD $0x3a4c; BYTE $0x14 // vpmovsxbd xmm1, dword [rdx + rdi + 20] + LONG $0x2179e2c4; WORD $0x3a54; BYTE $0x18 // vpmovsxbd xmm2, dword [rdx + rdi + 24] + LONG $0x2179e2c4; WORD $0x3a5c; BYTE $0x1c // vpmovsxbd xmm3, dword [rdx + rdi + 28] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_759 + JMP LBB0_1226 + +LBB0_760: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1233 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_762: + LONG $0x3179e2c4; WORD $0x3a04 // vpmovzxbd xmm0, dword [rdx + rdi] + LONG $0x3179e2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x3179e2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbd xmm2, dword [rdx + rdi + 8] + LONG $0x3179e2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbd xmm3, dword [rdx + rdi + 12] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + LONG $0x3179e2c4; WORD $0x3a44; BYTE $0x10 // vpmovzxbd xmm0, dword [rdx + rdi + 16] + LONG $0x3179e2c4; WORD $0x3a4c; BYTE $0x14 // vpmovzxbd xmm1, dword [rdx + rdi + 20] + LONG $0x3179e2c4; WORD $0x3a54; BYTE $0x18 // vpmovzxbd xmm2, dword [rdx + rdi + 24] + LONG $0x3179e2c4; WORD $0x3a5c; BYTE $0x1c // vpmovzxbd xmm3, dword [rdx + rdi + 28] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_762 + JMP LBB0_1234 + +LBB0_763: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1241 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + +LBB0_765: + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + QUAD $0x000080ba8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 4*rdi + 128] + QUAD $0x000090ba946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 4*rdi + 144] + QUAD $0x0000a0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 160] + QUAD $0x0000b0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + QUAD $0x0000d0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 208] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000c0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 192] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + QUAD $0x0000f0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 240] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + QUAD $0x0000e0baac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 4*rdi + 224] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_765 + JMP LBB0_1242 + +LBB0_766: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1249 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_768: + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0xc06bf9c5 // vpackssdw xmm0, xmm0, xmm0 + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0xc063f9c5 // vpacksswb xmm0, xmm0, xmm0 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + LONG $0x4ce6fdc5; WORD $0x40fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 64] + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x60fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 96] + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + QUAD $0x000080fa84e6fdc5; BYTE $0x00 // vcvttpd2dq xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 160] + LONG $0xc06bf9c5 // vpackssdw xmm0, xmm0, xmm0 + LONG $0xc063f9c5 // vpacksswb xmm0, xmm0, xmm0 + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + QUAD $0x0000c0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 192] + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + QUAD $0x0000e0fa94e6fdc5; BYTE $0x00 // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 224] + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x447ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_768 + JMP LBB0_1250 + +LBB0_769: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1257 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_771: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_771 + JMP LBB0_1258 + +LBB0_772: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1265 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + +LBB0_774: + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + QUAD $0x000080fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 128] + QUAD $0x000090fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 144] + QUAD $0x0000a0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 160] + QUAD $0x0000b0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + QUAD $0x0000d0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 208] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + QUAD $0x0000c0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 192] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + QUAD $0x0000f0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 240] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000e0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 224] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x4c7ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_774 + JMP LBB0_1266 + +LBB0_775: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1273 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + +LBB0_777: + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x64dbfdc5; WORD $0x607a // vpand ymm4, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm4 + QUAD $0x0000807a8cdbfdc5; BYTE $0x00 // vpand ymm1, ymm0, yword [rdx + 2*rdi + 128] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + QUAD $0x0000a07a94dbfdc5; BYTE $0x00 // vpand ymm2, ymm0, yword [rdx + 2*rdi + 160] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + QUAD $0x0000c07a9cdbfdc5; BYTE $0x00 // vpand ymm3, ymm0, yword [rdx + 2*rdi + 192] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + QUAD $0x0000e07aa4dbfdc5; BYTE $0x00 // vpand ymm4, ymm0, yword [rdx + 2*rdi + 224] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x4c7ffac5; WORD $0x4039 // vmovdqu oword [rcx + rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5039 // vmovdqu oword [rcx + rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6039 // vmovdqu oword [rcx + rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7039 // vmovdqu oword [rcx + rdi + 112], xmm4 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_777 + JMP LBB0_1274 + +LBB0_778: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1281 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + +LBB0_780: + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x64dbfdc5; WORD $0x607a // vpand ymm4, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm4 + QUAD $0x0000807a8cdbfdc5; BYTE $0x00 // vpand ymm1, ymm0, yword [rdx + 2*rdi + 128] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + QUAD $0x0000a07a94dbfdc5; BYTE $0x00 // vpand ymm2, ymm0, yword [rdx + 2*rdi + 160] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + QUAD $0x0000c07a9cdbfdc5; BYTE $0x00 // vpand ymm3, ymm0, yword [rdx + 2*rdi + 192] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + QUAD $0x0000e07aa4dbfdc5; BYTE $0x00 // vpand ymm4, ymm0, yword [rdx + 2*rdi + 224] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x4c7ffac5; WORD $0x4039 // vmovdqu oword [rcx + rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5039 // vmovdqu oword [rcx + rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6039 // vmovdqu oword [rcx + rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7039 // vmovdqu oword [rcx + rdi + 112], xmm4 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_780 + JMP LBB0_1282 + +LBB0_781: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1289 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + +LBB0_783: + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + QUAD $0x000080fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 128] + QUAD $0x000090fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 144] + QUAD $0x0000a0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 160] + QUAD $0x0000b0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + QUAD $0x0000d0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 208] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + QUAD $0x0000c0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 192] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + QUAD $0x0000f0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 240] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000e0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 224] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x4c7ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_783 + JMP LBB0_1290 + +LBB0_784: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1297 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_786: + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0x545bfec5; WORD $0x20ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 32] + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x397de3c4; WORD $0x01d1 // vextracti128 xmm1, ymm2, 1 + LONG $0x5c5bfec5; WORD $0x40ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 64] + LONG $0xc96be9c5 // vpackssdw xmm1, xmm2, xmm1 + LONG $0x397de3c4; WORD $0x01da // vextracti128 xmm2, ymm3, 1 + LONG $0x645bfec5; WORD $0x60ba // vcvttps2dq ymm4, yword [rdx + 4*rdi + 96] + LONG $0xd26be1c5 // vpackssdw xmm2, xmm3, xmm2 + LONG $0x397de3c4; WORD $0x01e3 // vextracti128 xmm3, ymm4, 1 + LONG $0xdb6bd9c5 // vpackssdw xmm3, xmm4, xmm3 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd063edc5 // vpacksswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc063fdc5 // vpacksswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + QUAD $0x000080ba845bfec5; BYTE $0x00 // vcvttps2dq ymm0, yword [rdx + 4*rdi + 128] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + QUAD $0x0000a0ba945bfec5; BYTE $0x00 // vcvttps2dq ymm2, yword [rdx + 4*rdi + 160] + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x397de3c4; WORD $0x01d1 // vextracti128 xmm1, ymm2, 1 + QUAD $0x0000c0ba9c5bfec5; BYTE $0x00 // vcvttps2dq ymm3, yword [rdx + 4*rdi + 192] + LONG $0xc96be9c5 // vpackssdw xmm1, xmm2, xmm1 + LONG $0x397de3c4; WORD $0x01da // vextracti128 xmm2, ymm3, 1 + QUAD $0x0000e0baa45bfec5; BYTE $0x00 // vcvttps2dq ymm4, yword [rdx + 4*rdi + 224] + LONG $0xd26be1c5 // vpackssdw xmm2, xmm3, xmm2 + LONG $0x397de3c4; WORD $0x01e3 // vextracti128 xmm3, ymm4, 1 + LONG $0xdb6bd9c5 // vpackssdw xmm3, xmm4, xmm3 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd063edc5 // vpacksswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc063fdc5 // vpacksswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x447ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_786 + JMP LBB0_1298 + +LBB0_787: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1305 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_789: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_789 + JMP LBB0_1306 + +LBB0_790: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1313 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + +LBB0_792: + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + QUAD $0x000080ba8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 4*rdi + 128] + QUAD $0x000090ba946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 4*rdi + 144] + QUAD $0x0000a0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 160] + QUAD $0x0000b0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + QUAD $0x0000d0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 208] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000c0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 192] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + QUAD $0x0000f0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 240] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + QUAD $0x0000e0baac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 4*rdi + 224] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_792 + JMP LBB0_1314 + +LBB0_801: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1321 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_803: + LONG $0x227de2c4; WORD $0x3a04 // vpmovsxbq ymm0, dword [rdx + rdi] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbq ymm1, dword [rdx + rdi + 4] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbq ymm2, dword [rdx + rdi + 8] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x227de2c4; WORD $0x3a44; BYTE $0x10 // vpmovsxbq ymm0, dword [rdx + rdi + 16] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x14 // vpmovsxbq ymm1, dword [rdx + rdi + 20] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x18 // vpmovsxbq ymm2, dword [rdx + rdi + 24] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x1c // vpmovsxbq ymm3, dword [rdx + rdi + 28] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_803 + JMP LBB0_1322 + +LBB0_804: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1329 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_806: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_806 + JMP LBB0_1330 + +LBB0_807: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1337 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_809: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_809 + JMP LBB0_1338 + +LBB0_818: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1345 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_820: + LONG $0x327de2c4; WORD $0x3a04 // vpmovzxbq ymm0, dword [rdx + rdi] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbq ymm1, dword [rdx + rdi + 4] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbq ymm2, dword [rdx + rdi + 8] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x327de2c4; WORD $0x3a44; BYTE $0x10 // vpmovzxbq ymm0, dword [rdx + rdi + 16] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x14 // vpmovzxbq ymm1, dword [rdx + rdi + 20] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x18 // vpmovzxbq ymm2, dword [rdx + rdi + 24] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x1c // vpmovzxbq ymm3, dword [rdx + rdi + 28] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_820 + JMP LBB0_1346 + +LBB0_821: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1353 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_823: + LONG $0x207de2c4; WORD $0x3a04 // vpmovsxbw ymm0, oword [rdx + rdi] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovsxbw ymm1, oword [rdx + rdi + 16] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x20 // vpmovsxbw ymm2, oword [rdx + rdi + 32] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovsxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + LONG $0x207de2c4; WORD $0x3a44; BYTE $0x40 // vpmovsxbw ymm0, oword [rdx + rdi + 64] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x50 // vpmovsxbw ymm1, oword [rdx + rdi + 80] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x60 // vpmovsxbw ymm2, oword [rdx + rdi + 96] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x70 // vpmovsxbw ymm3, oword [rdx + rdi + 112] + QUAD $0x00008079847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 128], ymm0 + QUAD $0x0000a0798c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 160], ymm1 + QUAD $0x0000c079947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 192], ymm2 + QUAD $0x0000e0799c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 224], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_823 + JMP LBB0_1354 + +LBB0_824: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1361 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_826: + LONG $0x207de2c4; WORD $0x3a04 // vpmovsxbw ymm0, oword [rdx + rdi] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovsxbw ymm1, oword [rdx + rdi + 16] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x20 // vpmovsxbw ymm2, oword [rdx + rdi + 32] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovsxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + LONG $0x207de2c4; WORD $0x3a44; BYTE $0x40 // vpmovsxbw ymm0, oword [rdx + rdi + 64] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x50 // vpmovsxbw ymm1, oword [rdx + rdi + 80] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x60 // vpmovsxbw ymm2, oword [rdx + rdi + 96] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x70 // vpmovsxbw ymm3, oword [rdx + rdi + 112] + QUAD $0x00008079847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 128], ymm0 + QUAD $0x0000a0798c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 160], ymm1 + QUAD $0x0000c079947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 192], ymm2 + QUAD $0x0000e0799c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 224], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_826 + JMP LBB0_1362 + +LBB0_827: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1145 + WORD $0xc031 // xor eax, eax + JMP LBB0_1147 + +LBB0_829: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1155 + WORD $0xc031 // xor eax, eax + JMP LBB0_1157 + +LBB0_831: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1165 + WORD $0xc031 // xor eax, eax + JMP LBB0_1167 + +LBB0_833: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1175 + WORD $0xc031 // xor eax, eax + JMP LBB0_1177 + +LBB0_835: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1369 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_837: + LONG $0x307de2c4; WORD $0x3a04 // vpmovzxbw ymm0, oword [rdx + rdi] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovzxbw ymm1, oword [rdx + rdi + 16] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x20 // vpmovzxbw ymm2, oword [rdx + rdi + 32] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovzxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + LONG $0x307de2c4; WORD $0x3a44; BYTE $0x40 // vpmovzxbw ymm0, oword [rdx + rdi + 64] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x50 // vpmovzxbw ymm1, oword [rdx + rdi + 80] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x60 // vpmovzxbw ymm2, oword [rdx + rdi + 96] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x70 // vpmovzxbw ymm3, oword [rdx + rdi + 112] + QUAD $0x00008079847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 128], ymm0 + QUAD $0x0000a0798c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 160], ymm1 + QUAD $0x0000c079947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 192], ymm2 + QUAD $0x0000e0799c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 224], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_837 + JMP LBB0_1370 + +LBB0_838: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1377 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_840: + LONG $0x307de2c4; WORD $0x3a04 // vpmovzxbw ymm0, oword [rdx + rdi] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovzxbw ymm1, oword [rdx + rdi + 16] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x20 // vpmovzxbw ymm2, oword [rdx + rdi + 32] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovzxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + LONG $0x307de2c4; WORD $0x3a44; BYTE $0x40 // vpmovzxbw ymm0, oword [rdx + rdi + 64] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x50 // vpmovzxbw ymm1, oword [rdx + rdi + 80] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x60 // vpmovzxbw ymm2, oword [rdx + rdi + 96] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x70 // vpmovzxbw ymm3, oword [rdx + rdi + 112] + QUAD $0x00008079847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 128], ymm0 + QUAD $0x0000a0798c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 160], ymm1 + QUAD $0x0000c079947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 192], ymm2 + QUAD $0x0000e0799c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 2*rdi + 224], ymm3 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_840 + JMP LBB0_1378 + +LBB0_841: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1385 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_843: + LONG $0x227de2c4; WORD $0x3a04 // vpmovsxbq ymm0, dword [rdx + rdi] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbq ymm1, dword [rdx + rdi + 4] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbq ymm2, dword [rdx + rdi + 8] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x227de2c4; WORD $0x3a44; BYTE $0x10 // vpmovsxbq ymm0, dword [rdx + rdi + 16] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x14 // vpmovsxbq ymm1, dword [rdx + rdi + 20] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x18 // vpmovsxbq ymm2, dword [rdx + rdi + 24] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x1c // vpmovsxbq ymm3, dword [rdx + rdi + 28] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_843 + JMP LBB0_1386 + +LBB0_844: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1393 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_846: + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + LONG $0x217de2c4; WORD $0x3a44; BYTE $0x20 // vpmovsxbd ymm0, qword [rdx + rdi + 32] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovsxbd ymm1, qword [rdx + rdi + 40] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x30 // vpmovsxbd ymm2, qword [rdx + rdi + 48] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovsxbd ymm3, qword [rdx + rdi + 56] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + QUAD $0x000080b98411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_846 + JMP LBB0_1394 + +LBB0_847: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1401 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_849: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_849 + JMP LBB0_1402 + +LBB0_860: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1409 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_862: + LONG $0x0410fcc5; BYTE $0xfa // vmovups ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fcc5; WORD $0x20fa // vmovups ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fcc5; WORD $0x40fa // vmovups ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60fa // vmovups ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fcc5; BYTE $0xf9 // vmovups yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20f9 // vmovups yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40f9 // vmovups yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60f9 // vmovups yword [rcx + 8*rdi + 96], ymm3 + QUAD $0x000080fa8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 8*rdi + 160] + QUAD $0x0000c0fa9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 8*rdi + 192] + QUAD $0x0000e0fa9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 8*rdi + 224] + QUAD $0x000080f98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_862 + JMP LBB0_1410 + +LBB0_863: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1417 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_865: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_865 + JMP LBB0_1418 + +LBB0_866: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1425 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_868: + LONG $0x327de2c4; WORD $0x3a04 // vpmovzxbq ymm0, dword [rdx + rdi] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbq ymm1, dword [rdx + rdi + 4] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbq ymm2, dword [rdx + rdi + 8] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + LONG $0x327de2c4; WORD $0x3a44; BYTE $0x10 // vpmovzxbq ymm0, dword [rdx + rdi + 16] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x14 // vpmovzxbq ymm1, dword [rdx + rdi + 20] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x18 // vpmovzxbq ymm2, dword [rdx + rdi + 24] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x1c // vpmovzxbq ymm3, dword [rdx + rdi + 28] + QUAD $0x000080f9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 128], ymm0 + QUAD $0x0000a0f98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 160], ymm1 + QUAD $0x0000c0f9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 192], ymm2 + QUAD $0x0000e0f99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 8*rdi + 224], ymm3 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_868 + JMP LBB0_1426 + +LBB0_869: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1433 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_871: + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + LONG $0x317de2c4; WORD $0x3a44; BYTE $0x20 // vpmovzxbd ymm0, qword [rdx + rdi + 32] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovzxbd ymm1, qword [rdx + rdi + 40] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x30 // vpmovzxbd ymm2, qword [rdx + rdi + 48] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovzxbd ymm3, qword [rdx + rdi + 56] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + QUAD $0x000080b98411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fcc5; BYTE $0x00 // vmovups yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_871 + JMP LBB0_1434 + +LBB0_872: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1441 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + +LBB0_874: + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + QUAD $0x000080ba8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 4*rdi + 128] + QUAD $0x000090ba946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 4*rdi + 144] + QUAD $0x0000a0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 160] + QUAD $0x0000b0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + QUAD $0x0000d0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 208] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000c0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 192] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + QUAD $0x0000f0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 240] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + QUAD $0x0000e0baac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 4*rdi + 224] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_874 + JMP LBB0_1442 + +LBB0_875: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1449 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_877: + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x2b79e2c4; BYTE $0xc0 // vpackusdw xmm0, xmm0, xmm0 + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0xc067f9c5 // vpackuswb xmm0, xmm0, xmm0 + LONG $0x2b71e2c4; BYTE $0xc9 // vpackusdw xmm1, xmm1, xmm1 + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + LONG $0x4ce6fdc5; WORD $0x40fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 64] + LONG $0x2b71e2c4; BYTE $0xc9 // vpackusdw xmm1, xmm1, xmm1 + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x60fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 96] + LONG $0x2b69e2c4; BYTE $0xd2 // vpackusdw xmm2, xmm2, xmm2 + LONG $0xd267e9c5 // vpackuswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + QUAD $0x000080fa84e6fdc5; BYTE $0x00 // vcvttpd2dq xmm0, yword [rdx + 8*rdi + 128] + QUAD $0x0000a0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 160] + LONG $0x2b79e2c4; BYTE $0xc0 // vpackusdw xmm0, xmm0, xmm0 + LONG $0xc067f9c5 // vpackuswb xmm0, xmm0, xmm0 + LONG $0x2b71e2c4; BYTE $0xc9 // vpackusdw xmm1, xmm1, xmm1 + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + QUAD $0x0000c0fa8ce6fdc5; BYTE $0x00 // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 192] + LONG $0x2b71e2c4; BYTE $0xc9 // vpackusdw xmm1, xmm1, xmm1 + QUAD $0x0000e0fa94e6fdc5; BYTE $0x00 // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 224] + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0x2b69e2c4; BYTE $0xd2 // vpackusdw xmm2, xmm2, xmm2 + LONG $0xd267e9c5 // vpackuswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x447ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm0 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_877 + JMP LBB0_1450 + +LBB0_878: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1457 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_880: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_880 + JMP LBB0_1458 + +LBB0_881: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1465 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + +LBB0_883: + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + QUAD $0x000080fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 128] + QUAD $0x000090fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 144] + QUAD $0x0000a0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 160] + QUAD $0x0000b0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + QUAD $0x0000d0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 208] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + QUAD $0x0000c0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 192] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + QUAD $0x0000f0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 240] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000e0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 224] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x4c7ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_883 + JMP LBB0_1466 + +LBB0_884: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1473 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + +LBB0_886: + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x64dbfdc5; WORD $0x607a // vpand ymm4, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm4 + QUAD $0x0000807a8cdbfdc5; BYTE $0x00 // vpand ymm1, ymm0, yword [rdx + 2*rdi + 128] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + QUAD $0x0000a07a94dbfdc5; BYTE $0x00 // vpand ymm2, ymm0, yword [rdx + 2*rdi + 160] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + QUAD $0x0000c07a9cdbfdc5; BYTE $0x00 // vpand ymm3, ymm0, yword [rdx + 2*rdi + 192] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + QUAD $0x0000e07aa4dbfdc5; BYTE $0x00 // vpand ymm4, ymm0, yword [rdx + 2*rdi + 224] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x4c7ffac5; WORD $0x4039 // vmovdqu oword [rcx + rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5039 // vmovdqu oword [rcx + rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6039 // vmovdqu oword [rcx + rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7039 // vmovdqu oword [rcx + rdi + 112], xmm4 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_886 + JMP LBB0_1474 + +LBB0_887: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xc0 // and esi, -64 + LONG $0xc0468d48 // lea rax, [rsi - 64] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x06e8c149 // shr r8, 6 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1481 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + +LBB0_889: + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x64dbfdc5; WORD $0x607a // vpand ymm4, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x647ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm4 + QUAD $0x0000807a8cdbfdc5; BYTE $0x00 // vpand ymm1, ymm0, yword [rdx + 2*rdi + 128] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + QUAD $0x0000a07a94dbfdc5; BYTE $0x00 // vpand ymm2, ymm0, yword [rdx + 2*rdi + 160] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + QUAD $0x0000c07a9cdbfdc5; BYTE $0x00 // vpand ymm3, ymm0, yword [rdx + 2*rdi + 192] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + QUAD $0x0000e07aa4dbfdc5; BYTE $0x00 // vpand ymm4, ymm0, yword [rdx + 2*rdi + 224] + LONG $0x397de3c4; WORD $0x01e5 // vextracti128 xmm5, ymm4, 1 + LONG $0xe567d9c5 // vpackuswb xmm4, xmm4, xmm5 + LONG $0x4c7ffac5; WORD $0x4039 // vmovdqu oword [rcx + rdi + 64], xmm1 + LONG $0x547ffac5; WORD $0x5039 // vmovdqu oword [rcx + rdi + 80], xmm2 + LONG $0x5c7ffac5; WORD $0x6039 // vmovdqu oword [rcx + rdi + 96], xmm3 + LONG $0x647ffac5; WORD $0x7039 // vmovdqu oword [rcx + rdi + 112], xmm4 + LONG $0x80ef8348 // sub rdi, -128 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_889 + JMP LBB0_1482 + +LBB0_890: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1489 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + +LBB0_892: + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + QUAD $0x000080fa8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 8*rdi + 128] + QUAD $0x000090fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 144] + QUAD $0x0000a0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 160] + QUAD $0x0000b0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + QUAD $0x0000d0fa946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 8*rdi + 208] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + QUAD $0x0000c0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 192] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + QUAD $0x0000f0fa9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 8*rdi + 240] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000e0faa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 8*rdi + 224] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb61d9c5 // vpunpcklwd xmm3, xmm4, xmm3 + LONG $0xd362e9c5 // vpunpckldq xmm2, xmm2, xmm3 + LONG $0xca6cf1c5 // vpunpcklqdq xmm1, xmm1, xmm2 + LONG $0x4c7ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_892 + JMP LBB0_1490 + +LBB0_893: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1497 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_895: + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0x545bfec5; WORD $0x20ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 32] + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x397de3c4; WORD $0x01d1 // vextracti128 xmm1, ymm2, 1 + LONG $0x5c5bfec5; WORD $0x40ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 64] + LONG $0xc96be9c5 // vpackssdw xmm1, xmm2, xmm1 + LONG $0x397de3c4; WORD $0x01da // vextracti128 xmm2, ymm3, 1 + LONG $0x645bfec5; WORD $0x60ba // vcvttps2dq ymm4, yword [rdx + 4*rdi + 96] + LONG $0xd26be1c5 // vpackssdw xmm2, xmm3, xmm2 + LONG $0x397de3c4; WORD $0x01e3 // vextracti128 xmm3, ymm4, 1 + LONG $0xdb6bd9c5 // vpackssdw xmm3, xmm4, xmm3 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd067edc5 // vpackuswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc067fdc5 // vpackuswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + QUAD $0x000080ba845bfec5; BYTE $0x00 // vcvttps2dq ymm0, yword [rdx + 4*rdi + 128] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + QUAD $0x0000a0ba945bfec5; BYTE $0x00 // vcvttps2dq ymm2, yword [rdx + 4*rdi + 160] + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x397de3c4; WORD $0x01d1 // vextracti128 xmm1, ymm2, 1 + QUAD $0x0000c0ba9c5bfec5; BYTE $0x00 // vcvttps2dq ymm3, yword [rdx + 4*rdi + 192] + LONG $0xc96be9c5 // vpackssdw xmm1, xmm2, xmm1 + LONG $0x397de3c4; WORD $0x01da // vextracti128 xmm2, ymm3, 1 + QUAD $0x0000e0baa45bfec5; BYTE $0x00 // vcvttps2dq ymm4, yword [rdx + 4*rdi + 224] + LONG $0xd26be1c5 // vpackssdw xmm2, xmm3, xmm2 + LONG $0x397de3c4; WORD $0x01e3 // vextracti128 xmm3, ymm4, 1 + LONG $0xdb6bd9c5 // vpackssdw xmm3, xmm4, xmm3 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd067edc5 // vpackuswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc067fdc5 // vpackuswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x447ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm0 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_895 + JMP LBB0_1498 + +LBB0_896: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0x80 // and esi, -128 + LONG $0x80468d48 // lea rax, [rsi - 128] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x07e8c149 // shr r8, 7 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1505 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_898: + LONG $0x0410fcc5; BYTE $0x3a // vmovups ymm0, yword [rdx + rdi] + LONG $0x4c10fcc5; WORD $0x203a // vmovups ymm1, yword [rdx + rdi + 32] + LONG $0x5410fcc5; WORD $0x403a // vmovups ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fcc5; WORD $0x603a // vmovups ymm3, yword [rdx + rdi + 96] + LONG $0x0411fcc5; BYTE $0x39 // vmovups yword [rcx + rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x2039 // vmovups yword [rcx + rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x4039 // vmovups yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x6039 // vmovups yword [rcx + rdi + 96], ymm3 + QUAD $0x0000803a8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + rdi + 128] + QUAD $0x0000a03a8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + rdi + 160] + QUAD $0x0000c03a9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + rdi + 192] + QUAD $0x0000e03a9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + rdi + 224] + QUAD $0x000080398411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 128], ymm0 + QUAD $0x0000a0398c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 160], ymm1 + QUAD $0x0000c0399411fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 192], ymm2 + QUAD $0x0000e0399c11fdc5; BYTE $0x00 // vmovupd yword [rcx + rdi + 224], ymm3 + LONG $0x00c78148; WORD $0x0001; BYTE $0x00 // add rdi, 256 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_898 + JMP LBB0_1506 + +LBB0_899: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1513 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + +LBB0_901: + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x0c7ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm1 + QUAD $0x000080ba8c6ffac5; BYTE $0x00 // vmovdqu xmm1, oword [rdx + 4*rdi + 128] + QUAD $0x000090ba946ffac5; BYTE $0x00 // vmovdqu xmm2, oword [rdx + 4*rdi + 144] + QUAD $0x0000a0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 160] + QUAD $0x0000b0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 176] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + QUAD $0x0000d0ba9c6ffac5; BYTE $0x00 // vmovdqu xmm3, oword [rdx + 4*rdi + 208] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + QUAD $0x0000c0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 192] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + QUAD $0x0000f0baa46ffac5; BYTE $0x00 // vmovdqu xmm4, oword [rdx + 4*rdi + 240] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + QUAD $0x0000e0baac6ffac5; BYTE $0x00 // vmovdqu xmm5, oword [rdx + 4*rdi + 224] + LONG $0x0051e2c4; BYTE $0xe8 // vpshufb xmm5, xmm5, xmm0 + LONG $0xe462d1c5 // vpunpckldq xmm4, xmm5, xmm4 + LONG $0x3865e3c4; WORD $0x01dc // vinserti128 ymm3, ymm3, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xcb6cf5c5 // vpunpcklqdq ymm1, ymm1, ymm3 + LONG $0x00fde3c4; WORD $0xd8c9 // vpermq ymm1, ymm1, 216 + LONG $0x4c7ffec5; WORD $0x2039 // vmovdqu yword [rcx + rdi + 32], ymm1 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_901 + JMP LBB0_1514 + +LBB0_902: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1521 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_904: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_904 + JMP LBB0_1522 + +LBB0_905: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1529 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_907: + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x217de2c4; WORD $0x3a44; BYTE $0x20 // vpmovsxbd ymm0, qword [rdx + rdi + 32] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovsxbd ymm1, qword [rdx + rdi + 40] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x30 // vpmovsxbd ymm2, qword [rdx + rdi + 48] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovsxbd ymm3, qword [rdx + rdi + 56] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_907 + JMP LBB0_1530 + +LBB0_908: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1537 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_910: + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + LONG $0x317de2c4; WORD $0x3a44; BYTE $0x20 // vpmovzxbd ymm0, qword [rdx + rdi + 32] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x28 // vpmovzxbd ymm1, qword [rdx + rdi + 40] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x30 // vpmovzxbd ymm2, qword [rdx + rdi + 48] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x38 // vpmovzxbd ymm3, qword [rdx + rdi + 56] + QUAD $0x000080b9847ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b9947ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c7ffec5; BYTE $0x00 // vmovdqu yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_910 + JMP LBB0_1538 + +LBB0_911: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1545 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_913: + LONG $0x0410fcc5; BYTE $0xba // vmovups ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fcc5; WORD $0x20ba // vmovups ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fcc5; WORD $0x40ba // vmovups ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fcc5; WORD $0x60ba // vmovups ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + QUAD $0x000080ba8410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 4*rdi + 128] + QUAD $0x0000a0ba8c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 4*rdi + 160] + QUAD $0x0000c0ba9410fdc5; BYTE $0x00 // vmovupd ymm2, yword [rdx + 4*rdi + 192] + QUAD $0x0000e0ba9c10fdc5; BYTE $0x00 // vmovupd ymm3, yword [rdx + 4*rdi + 224] + QUAD $0x000080b98411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 128], ymm0 + QUAD $0x0000a0b98c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 160], ymm1 + QUAD $0x0000c0b99411fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 192], ymm2 + QUAD $0x0000e0b99c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 4*rdi + 224], ymm3 + LONG $0x40c78348 // add rdi, 64 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_913 + JMP LBB0_1546 + +LBB0_793: + LONG $0xfce28349 // and r10, -4 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + LONG $0x4510fbc5; BYTE $0x00 // vmovsd xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_794: + LONG $0x4c10fbc5; WORD $0x08c2 // vmovsd xmm1, qword [rdx + 8*rax + 8] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xda // vcvttsd2si rbx, xmm2 + LONG $0x1410fbc5; BYTE $0xc2 // vmovsd xmm2, qword [rdx + 8*rax] + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2cfbe1c4; BYTE $0xf1 // vcvttsd2si rsi, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xf3430f48 // cmovae rsi, rbx + LONG $0xc85cebc5 // vsubsd xmm1, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xd9 // vcvttsd2si rbx, xmm1 + WORD $0x314c; BYTE $0xdb // xor rbx, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xce // vmovq xmm1, rsi + LONG $0xfb430f48 // cmovae rdi, rbx + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0x5c10fbc5; WORD $0x18c2 // vmovsd xmm3, qword [rdx + 8*rax + 24] + LONG $0xe05ce3c5 // vsubsd xmm4, xmm3, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf4 // vcvttsd2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xd82ef9c5 // vucomisd xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fbc5; WORD $0x10c2 // vmovsd xmm2, qword [rdx + 8*rax + 16] + LONG $0xd85cebc5 // vsubsd xmm3, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf3 // vcvttsd2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x10c1 // vmovdqu oword [rcx + 8*rax + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0xc1 // vmovdqu oword [rcx + 8*rax], xmm1 + LONG $0x4c10fbc5; WORD $0x28c2 // vmovsd xmm1, qword [rdx + 8*rax + 40] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + LONG $0x5410fbc5; WORD $0x20c2 // vmovsd xmm2, qword [rdx + 8*rax + 32] + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xf9 // vcvttsd2si rdi, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0xc85cebc5 // vsubsd xmm1, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf1 // vcvttsd2si rsi, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xda // vcvttsd2si rbx, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x5c10fbc5; WORD $0x38c2 // vmovsd xmm3, qword [rdx + 8*rax + 56] + LONG $0xe05ce3c5 // vsubsd xmm4, xmm3, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf4 // vcvttsd2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xd82ef9c5 // vucomisd xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fbc5; WORD $0x30c2 // vmovsd xmm2, qword [rdx + 8*rax + 48] + LONG $0xd85cebc5 // vsubsd xmm3, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf3 // vcvttsd2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x30c1 // vmovdqu oword [rcx + 8*rax + 48], xmm2 + LONG $0x4c7ffac5; WORD $0x20c1 // vmovdqu oword [rcx + 8*rax + 32], xmm1 + LONG $0x4c10fbc5; WORD $0x48c2 // vmovsd xmm1, qword [rdx + 8*rax + 72] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + LONG $0x5410fbc5; WORD $0x40c2 // vmovsd xmm2, qword [rdx + 8*rax + 64] + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xf9 // vcvttsd2si rdi, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0xc85cebc5 // vsubsd xmm1, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf1 // vcvttsd2si rsi, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xda // vcvttsd2si rbx, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x5c10fbc5; WORD $0x58c2 // vmovsd xmm3, qword [rdx + 8*rax + 88] + LONG $0xe05ce3c5 // vsubsd xmm4, xmm3, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf4 // vcvttsd2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xd82ef9c5 // vucomisd xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fbc5; WORD $0x50c2 // vmovsd xmm2, qword [rdx + 8*rax + 80] + LONG $0xd85cebc5 // vsubsd xmm3, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf3 // vcvttsd2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x50c1 // vmovdqu oword [rcx + 8*rax + 80], xmm2 + LONG $0x4c7ffac5; WORD $0x40c1 // vmovdqu oword [rcx + 8*rax + 64], xmm1 + LONG $0x4c10fbc5; WORD $0x68c2 // vmovsd xmm1, qword [rdx + 8*rax + 104] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xf9 // vcvttsd2si rdi, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x4c10fbc5; WORD $0x60c2 // vmovsd xmm1, qword [rdx + 8*rax + 96] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xd9 // vcvttsd2si rbx, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x5410fbc5; WORD $0x78c2 // vmovsd xmm2, qword [rdx + 8*rax + 120] + LONG $0xd85cebc5 // vsubsd xmm3, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf3 // vcvttsd2si rsi, xmm3 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0x5c10fbc5; WORD $0x70c2 // vmovsd xmm3, qword [rdx + 8*rax + 112] + LONG $0xe05ce3c5 // vsubsd xmm4, xmm3, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf4 // vcvttsd2si rsi, xmm4 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xd82ef9c5 // vucomisd xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x547ffac5; WORD $0x70c1 // vmovdqu oword [rcx + 8*rax + 112], xmm2 + LONG $0x4c7ffac5; WORD $0x60c1 // vmovdqu oword [rcx + 8*rax + 96], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c28349 // add r10, 4 + JNE LBB0_794 + +LBB0_795: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_798 + LONG $0x03e0c148 // shl rax, 3 + WORD $0xf749; BYTE $0xd8 // neg r8 + LONG $0x4510fbc5; BYTE $0x00 // vmovsd xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_797: + LONG $0x4c10fbc5; WORD $0x0802 // vmovsd xmm1, qword [rdx + rax + 8] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xf9 // vcvttsd2si rdi, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x0c10fbc5; BYTE $0x02 // vmovsd xmm1, qword [rdx + rax] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf2 // vcvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xd9 // vcvttsd2si rbx, xmm1 + LONG $0xc82ef9c5 // vucomisd xmm1, xmm0 + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x5410fbc5; WORD $0x1802 // vmovsd xmm2, qword [rdx + rax + 24] + LONG $0xd85cebc5 // vsubsd xmm3, xmm2, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf3 // vcvttsd2si rsi, xmm3 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfa // vcvttsd2si rdi, xmm2 + LONG $0xd02ef9c5 // vucomisd xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0x5c10fbc5; WORD $0x1002 // vmovsd xmm3, qword [rdx + rax + 16] + LONG $0xe05ce3c5 // vsubsd xmm4, xmm3, xmm0 + LONG $0x2cfbe1c4; BYTE $0xf4 // vcvttsd2si rsi, xmm4 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfbe1c4; BYTE $0xfb // vcvttsd2si rdi, xmm3 + LONG $0xd82ef9c5 // vucomisd xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x547ffac5; WORD $0x1001 // vmovdqu oword [rcx + rax + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0x01 // vmovdqu oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_797 + +LBB0_798: + WORD $0x394d; BYTE $0xce // cmp r14, r9 + JE LBB0_1553 + +LBB0_799: + LONG $0x4510fbc5; BYTE $0x00 // vmovsd xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_800: + LONG $0x107ba1c4; WORD $0xf20c // vmovsd xmm1, qword [rdx + 8*r14] + LONG $0xd05cf3c5 // vsubsd xmm2, xmm1, xmm0 + LONG $0x2cfbe1c4; BYTE $0xc2 // vcvttsd2si rax, xmm2 + WORD $0x314c; BYTE $0xd8 // xor rax, r11 + LONG $0x2cfbe1c4; BYTE $0xf1 // vcvttsd2si rsi, xmm1 + LONG $0xc12ef9c5 // vucomisd xmm0, xmm1 + LONG $0xf0460f48 // cmovbe rsi, rax + LONG $0xf134894a // mov qword [rcx + 8*r14], rsi + LONG $0x01c68349 // add r14, 1 + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB0_800 + JMP LBB0_1553 + +LBB0_810: + LONG $0xfce28349 // and r10, -4 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + LONG $0x4510fac5; BYTE $0x28 // vmovss xmm0, dword 40[rbp] /* [rip + .LCPI0_1] */ + QUAD $0x000000000000bb49; WORD $0x8000 // mov r11, -9223372036854775808 + +LBB0_811: + LONG $0x4c10fac5; WORD $0x0482 // vmovss xmm1, dword [rdx + 4*rax + 4] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0x1410fac5; BYTE $0x82 // vmovss xmm2, dword [rdx + 4*rax] + WORD $0x314c; BYTE $0xdf // xor rdi, r11 + LONG $0x2cfae1c4; BYTE $0xd9 // vcvttss2si rbx, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xdf430f48 // cmovae rbx, rdi + LONG $0xc85ceac5 // vsubss xmm1, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + WORD $0x314c; BYTE $0xdf // xor rdi, r11 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0xf7430f48 // cmovae rsi, rdi + LONG $0x6ef9e1c4; BYTE $0xd6 // vmovq xmm2, rsi + LONG $0x5c10fac5; WORD $0x0c82 // vmovss xmm3, dword [rdx + 4*rax + 12] + LONG $0xe05ce2c5 // vsubss xmm4, xmm3, xmm0 + LONG $0x2cfae1c4; BYTE $0xf4 // vcvttss2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + LONG $0xd82ef8c5 // vucomiss xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fac5; WORD $0x0882 // vmovss xmm2, dword [rdx + 4*rax + 8] + LONG $0xd85ceac5 // vsubss xmm3, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf3 // vcvttss2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x10c1 // vmovdqu oword [rcx + 8*rax + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0xc1 // vmovdqu oword [rcx + 8*rax], xmm1 + LONG $0x4c10fac5; WORD $0x1482 // vmovss xmm1, dword [rdx + 4*rax + 20] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + LONG $0x5410fac5; WORD $0x1082 // vmovss xmm2, dword [rdx + 4*rax + 16] + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0xc85ceac5 // vsubss xmm1, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf1 // vcvttss2si rsi, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xda // vcvttss2si rbx, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x5c10fac5; WORD $0x1c82 // vmovss xmm3, dword [rdx + 4*rax + 28] + LONG $0xe05ce2c5 // vsubss xmm4, xmm3, xmm0 + LONG $0x2cfae1c4; BYTE $0xf4 // vcvttss2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + LONG $0xd82ef8c5 // vucomiss xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fac5; WORD $0x1882 // vmovss xmm2, dword [rdx + 4*rax + 24] + LONG $0xd85ceac5 // vsubss xmm3, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf3 // vcvttss2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x30c1 // vmovdqu oword [rcx + 8*rax + 48], xmm2 + LONG $0x4c7ffac5; WORD $0x20c1 // vmovdqu oword [rcx + 8*rax + 32], xmm1 + LONG $0x4c10fac5; WORD $0x2482 // vmovss xmm1, dword [rdx + 4*rax + 36] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + LONG $0x5410fac5; WORD $0x2082 // vmovss xmm2, dword [rdx + 4*rax + 32] + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0xc85ceac5 // vsubss xmm1, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf1 // vcvttss2si rsi, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xda // vcvttss2si rbx, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0x5c10fac5; WORD $0x2c82 // vmovss xmm3, dword [rdx + 4*rax + 44] + LONG $0xe05ce2c5 // vsubss xmm4, xmm3, xmm0 + LONG $0x2cfae1c4; BYTE $0xf4 // vcvttss2si rsi, xmm4 + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + LONG $0xd82ef8c5 // vucomiss xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x5410fac5; WORD $0x2882 // vmovss xmm2, dword [rdx + 4*rax + 40] + LONG $0xd85ceac5 // vsubss xmm3, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf3 // vcvttss2si rsi, xmm3 + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xd36ce9c5 // vpunpcklqdq xmm2, xmm2, xmm3 + LONG $0x547ffac5; WORD $0x50c1 // vmovdqu oword [rcx + 8*rax + 80], xmm2 + LONG $0x4c7ffac5; WORD $0x40c1 // vmovdqu oword [rcx + 8*rax + 64], xmm1 + LONG $0x4c10fac5; WORD $0x3482 // vmovss xmm1, dword [rdx + 4*rax + 52] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x4c10fac5; WORD $0x3082 // vmovss xmm1, dword [rdx + 4*rax + 48] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xd9 // vcvttss2si rbx, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x6ef9e1c4; BYTE $0xcf // vmovq xmm1, rdi + LONG $0x6ef9e1c4; BYTE $0xd3 // vmovq xmm2, rbx + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x5410fac5; WORD $0x3c82 // vmovss xmm2, dword [rdx + 4*rax + 60] + LONG $0xd85ceac5 // vsubss xmm3, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf3 // vcvttss2si rsi, xmm3 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0x5c10fac5; WORD $0x3882 // vmovss xmm3, dword [rdx + 4*rax + 56] + LONG $0xe05ce2c5 // vsubss xmm4, xmm3, xmm0 + LONG $0x2cfae1c4; BYTE $0xf4 // vcvttss2si rsi, xmm4 + WORD $0x314c; BYTE $0xde // xor rsi, r11 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + LONG $0xd82ef8c5 // vucomiss xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x547ffac5; WORD $0x70c1 // vmovdqu oword [rcx + 8*rax + 112], xmm2 + LONG $0x4c7ffac5; WORD $0x60c1 // vmovdqu oword [rcx + 8*rax + 96], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c28349 // add r10, 4 + JNE LBB0_811 + +LBB0_812: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_815 + LONG $0x02e0c148 // shl rax, 2 + WORD $0xf749; BYTE $0xd8 // neg r8 + LONG $0x4510fac5; BYTE $0x28 // vmovss xmm0, dword 40[rbp] /* [rip + .LCPI0_1] */ + QUAD $0x000000000000ba49; WORD $0x8000 // mov r10, -9223372036854775808 + +LBB0_814: + LONG $0x4c10fac5; WORD $0x0402 // vmovss xmm1, dword [rdx + rax + 4] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2cfae1c4; BYTE $0xd9 // vcvttss2si rbx, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xde430f48 // cmovae rbx, rsi + LONG $0x0c10fac5; BYTE $0x02 // vmovss xmm1, dword [rdx + rax] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + LONG $0xc82ef8c5 // vucomiss xmm1, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xcb // vmovq xmm1, rbx + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x5410fac5; WORD $0x0c02 // vmovss xmm2, dword [rdx + rax + 12] + LONG $0xd85ceac5 // vsubss xmm3, xmm2, xmm0 + LONG $0x2cfae1c4; BYTE $0xf3 // vcvttss2si rsi, xmm3 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2cfae1c4; BYTE $0xfa // vcvttss2si rdi, xmm2 + LONG $0xd02ef8c5 // vucomiss xmm2, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xd7 // vmovq xmm2, rdi + LONG $0x5c10fac5; WORD $0x0802 // vmovss xmm3, dword [rdx + rax + 8] + LONG $0xe05ce2c5 // vsubss xmm4, xmm3, xmm0 + LONG $0x2cfae1c4; BYTE $0xf4 // vcvttss2si rsi, xmm4 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2cfae1c4; BYTE $0xfb // vcvttss2si rdi, xmm3 + LONG $0xd82ef8c5 // vucomiss xmm3, xmm0 + LONG $0xfe430f48 // cmovae rdi, rsi + LONG $0x6ef9e1c4; BYTE $0xdf // vmovq xmm3, rdi + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x547ffac5; WORD $0x1041 // vmovdqu oword [rcx + 2*rax + 16], xmm2 + LONG $0x0c7ffac5; BYTE $0x41 // vmovdqu oword [rcx + 2*rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_814 + +LBB0_815: + WORD $0x394d; BYTE $0xce // cmp r14, r9 + JE LBB0_1553 + +LBB0_816: + LONG $0x4510fac5; BYTE $0x28 // vmovss xmm0, dword 40[rbp] /* [rip + .LCPI0_1] */ + QUAD $0x000000000000b848; WORD $0x8000 // mov rax, -9223372036854775808 + +LBB0_817: + LONG $0x107aa1c4; WORD $0xb20c // vmovss xmm1, dword [rdx + 4*r14] + LONG $0xd05cf2c5 // vsubss xmm2, xmm1, xmm0 + LONG $0x2cfae1c4; BYTE $0xf2 // vcvttss2si rsi, xmm2 + WORD $0x3148; BYTE $0xc6 // xor rsi, rax + LONG $0x2cfae1c4; BYTE $0xf9 // vcvttss2si rdi, xmm1 + LONG $0xc12ef8c5 // vucomiss xmm0, xmm1 + LONG $0xfe460f48 // cmovbe rdi, rsi + LONG $0xf13c894a // mov qword [rcx + 8*r14], rdi + LONG $0x01c68349 // add r14, 1 + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB0_817 + JMP LBB0_1553 + +LBB0_850: + LONG $0xfce28349 // and r10, -4 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + LONG $0x597de2c4; WORD $0x2045 // vpbroadcastq ymm0, qword 32[rbp] /* [rip + .LCPI0_10] */ + +LBB0_851: + LONG $0x0c6ffec5; BYTE $0xc2 // vmovdqu ymm1, yword [rdx + 8*rax] + LONG $0xd0dbf5c5 // vpand ymm2, ymm1, ymm0 + LONG $0xd173e5c5; BYTE $0x01 // vpsrlq ymm3, ymm1, 1 + LONG $0xd2ebe5c5 // vpor ymm2, ymm3, ymm2 + LONG $0x4b75e3c4; WORD $0x10ca // vblendvpd ymm1, ymm1, ymm2, ymm1 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xdf // vcvtsi2ss xmm3, xmm5, rdi + LONG $0x397de3c4; WORD $0x01c9 // vextracti128 xmm1, ymm1, 1 + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xe7 // vcvtsi2ss xmm4, xmm5, rdi + LONG $0x2161e3c4; WORD $0x10d2 // vinsertps xmm2, xmm3, xmm2, 16 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2169e3c4; WORD $0x20cc // vinsertps xmm1, xmm2, xmm4, 32 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x2171e3c4; WORD $0x30ca // vinsertps xmm1, xmm1, xmm2, 48 + LONG $0x146ffac5; BYTE $0xc2 // vmovdqu xmm2, oword [rdx + 8*rax] + LONG $0x546be9c5; WORD $0x10c2 // vpackssdw xmm2, xmm2, oword [rdx + 8*rax + 16] + LONG $0xd958f0c5 // vaddps xmm3, xmm1, xmm1 + LONG $0x4a71e3c4; WORD $0x20cb // vblendvps xmm1, xmm1, xmm3, xmm2 + LONG $0x0c11f8c5; BYTE $0x81 // vmovups oword [rcx + 4*rax], xmm1 + LONG $0x4c6ffec5; WORD $0x20c2 // vmovdqu ymm1, yword [rdx + 8*rax + 32] + LONG $0xd0dbf5c5 // vpand ymm2, ymm1, ymm0 + LONG $0xd173e5c5; BYTE $0x01 // vpsrlq ymm3, ymm1, 1 + LONG $0xd2ebe5c5 // vpor ymm2, ymm3, ymm2 + LONG $0x4b75e3c4; WORD $0x10ca // vblendvpd ymm1, ymm1, ymm2, ymm1 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xdf // vcvtsi2ss xmm3, xmm5, rdi + LONG $0x397de3c4; WORD $0x01c9 // vextracti128 xmm1, ymm1, 1 + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xe7 // vcvtsi2ss xmm4, xmm5, rdi + LONG $0x2161e3c4; WORD $0x10d2 // vinsertps xmm2, xmm3, xmm2, 16 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2169e3c4; WORD $0x20cc // vinsertps xmm1, xmm2, xmm4, 32 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x2171e3c4; WORD $0x30ca // vinsertps xmm1, xmm1, xmm2, 48 + LONG $0x546ffac5; WORD $0x20c2 // vmovdqu xmm2, oword [rdx + 8*rax + 32] + LONG $0x546be9c5; WORD $0x30c2 // vpackssdw xmm2, xmm2, oword [rdx + 8*rax + 48] + LONG $0xd958f0c5 // vaddps xmm3, xmm1, xmm1 + LONG $0x4a71e3c4; WORD $0x20cb // vblendvps xmm1, xmm1, xmm3, xmm2 + LONG $0x4c11f8c5; WORD $0x1081 // vmovups oword [rcx + 4*rax + 16], xmm1 + LONG $0x4c6ffec5; WORD $0x40c2 // vmovdqu ymm1, yword [rdx + 8*rax + 64] + LONG $0xd0dbf5c5 // vpand ymm2, ymm1, ymm0 + LONG $0xd173e5c5; BYTE $0x01 // vpsrlq ymm3, ymm1, 1 + LONG $0xd2ebe5c5 // vpor ymm2, ymm3, ymm2 + LONG $0x4b75e3c4; WORD $0x10ca // vblendvpd ymm1, ymm1, ymm2, ymm1 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xdf // vcvtsi2ss xmm3, xmm5, rdi + LONG $0x397de3c4; WORD $0x01c9 // vextracti128 xmm1, ymm1, 1 + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xe7 // vcvtsi2ss xmm4, xmm5, rdi + LONG $0x2161e3c4; WORD $0x10d2 // vinsertps xmm2, xmm3, xmm2, 16 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2169e3c4; WORD $0x20cc // vinsertps xmm1, xmm2, xmm4, 32 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x2171e3c4; WORD $0x30ca // vinsertps xmm1, xmm1, xmm2, 48 + LONG $0x546ffac5; WORD $0x40c2 // vmovdqu xmm2, oword [rdx + 8*rax + 64] + LONG $0x546be9c5; WORD $0x50c2 // vpackssdw xmm2, xmm2, oword [rdx + 8*rax + 80] + LONG $0xd958f0c5 // vaddps xmm3, xmm1, xmm1 + LONG $0x4a71e3c4; WORD $0x20cb // vblendvps xmm1, xmm1, xmm3, xmm2 + LONG $0x4c11f8c5; WORD $0x2081 // vmovups oword [rcx + 4*rax + 32], xmm1 + LONG $0x4c6ffec5; WORD $0x60c2 // vmovdqu ymm1, yword [rdx + 8*rax + 96] + LONG $0xd0dbf5c5 // vpand ymm2, ymm1, ymm0 + LONG $0xd173e5c5; BYTE $0x01 // vpsrlq ymm3, ymm1, 1 + LONG $0xd2ebe5c5 // vpor ymm2, ymm3, ymm2 + LONG $0x4b75e3c4; WORD $0x10ca // vblendvpd ymm1, ymm1, ymm2, ymm1 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xdf // vcvtsi2ss xmm3, xmm5, rdi + LONG $0x397de3c4; WORD $0x01c9 // vextracti128 xmm1, ymm1, 1 + LONG $0x16f9c3c4; WORD $0x01cb // vpextrq r11, xmm1, 1 + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xcf // vcvtsi2ss xmm1, xmm5, rdi + LONG $0x2161e3c4; WORD $0x10d2 // vinsertps xmm2, xmm3, xmm2, 16 + LONG $0x2ad2c1c4; BYTE $0xdb // vcvtsi2ss xmm3, xmm5, r11 + LONG $0x2169e3c4; WORD $0x20c9 // vinsertps xmm1, xmm2, xmm1, 32 + LONG $0x2171e3c4; WORD $0x30cb // vinsertps xmm1, xmm1, xmm3, 48 + LONG $0xd158f0c5 // vaddps xmm2, xmm1, xmm1 + LONG $0x5c6ffac5; WORD $0x60c2 // vmovdqu xmm3, oword [rdx + 8*rax + 96] + LONG $0x5c6be1c5; WORD $0x70c2 // vpackssdw xmm3, xmm3, oword [rdx + 8*rax + 112] + LONG $0x4a71e3c4; WORD $0x30ca // vblendvps xmm1, xmm1, xmm2, xmm3 + LONG $0x4c11f8c5; WORD $0x3081 // vmovups oword [rcx + 4*rax + 48], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c28349 // add r10, 4 + JNE LBB0_851 + +LBB0_852: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_855 + LONG $0x02e0c148 // shl rax, 2 + WORD $0xf749; BYTE $0xd8 // neg r8 + LONG $0x597de2c4; WORD $0x2045 // vpbroadcastq ymm0, qword 32[rbp] /* [rip + .LCPI0_10] */ + +LBB0_854: + LONG $0x0c6ffec5; BYTE $0x42 // vmovdqu ymm1, yword [rdx + 2*rax] + LONG $0xd0dbf5c5 // vpand ymm2, ymm1, ymm0 + LONG $0xd173e5c5; BYTE $0x01 // vpsrlq ymm3, ymm1, 1 + LONG $0xd2ebe5c5 // vpor ymm2, ymm3, ymm2 + LONG $0x4b75e3c4; WORD $0x10ca // vblendvpd ymm1, ymm1, ymm2, ymm1 + LONG $0x16f9e3c4; WORD $0x01cf // vpextrq rdi, xmm1, 1 + LONG $0x2ad2e1c4; BYTE $0xd7 // vcvtsi2ss xmm2, xmm5, rdi + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xdf // vcvtsi2ss xmm3, xmm5, rdi + LONG $0x397de3c4; WORD $0x01c9 // vextracti128 xmm1, ymm1, 1 + LONG $0x16f9c3c4; WORD $0x01ca // vpextrq r10, xmm1, 1 + LONG $0x7ef9e1c4; BYTE $0xcf // vmovq rdi, xmm1 + LONG $0x2ad2e1c4; BYTE $0xcf // vcvtsi2ss xmm1, xmm5, rdi + LONG $0x2161e3c4; WORD $0x10d2 // vinsertps xmm2, xmm3, xmm2, 16 + LONG $0x2ad2c1c4; BYTE $0xda // vcvtsi2ss xmm3, xmm5, r10 + LONG $0x2169e3c4; WORD $0x20c9 // vinsertps xmm1, xmm2, xmm1, 32 + LONG $0x2171e3c4; WORD $0x30cb // vinsertps xmm1, xmm1, xmm3, 48 + LONG $0xd158f0c5 // vaddps xmm2, xmm1, xmm1 + LONG $0x1c6ffac5; BYTE $0x42 // vmovdqu xmm3, oword [rdx + 2*rax] + LONG $0x5c6be1c5; WORD $0x1042 // vpackssdw xmm3, xmm3, oword [rdx + 2*rax + 16] + LONG $0x4a71e3c4; WORD $0x30ca // vblendvps xmm1, xmm1, xmm2, xmm3 + LONG $0x0c11f8c5; BYTE $0x01 // vmovups oword [rcx + rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_854 + +LBB0_855: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JNE LBB0_858 + JMP LBB0_1553 + +LBB0_856: + LONG $0x2ad2e1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm5, rax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JE LBB0_1553 + +LBB0_858: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8548; BYTE $0xc0 // test rax, rax + JNS LBB0_856 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xd148; BYTE $0xef // shr rdi, 1 + WORD $0xe083; BYTE $0x01 // and eax, 1 + WORD $0x0948; BYTE $0xf8 // or rax, rdi + LONG $0x2ad2e1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm5, rax + LONG $0xc058fac5 // vaddss xmm0, xmm0, xmm0 + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_858 + JMP LBB0_1553 + +LBB0_914: + WORD $0xff31 // xor edi, edi + +LBB0_915: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_917 + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + +LBB0_917: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_918: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_918 + JMP LBB0_1553 + +LBB0_919: + WORD $0xff31 // xor edi, edi + +LBB0_920: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_922 + LONG $0x046ffec5; BYTE $0xfa // vmovdqu ymm0, yword [rdx + 8*rdi] + LONG $0x4c6ffec5; WORD $0x20fa // vmovdqu ymm1, yword [rdx + 8*rdi + 32] + LONG $0x546ffec5; WORD $0x40fa // vmovdqu ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60fa // vmovdqu ymm3, yword [rdx + 8*rdi + 96] + LONG $0xe457d9c5 // vxorpd xmm4, xmm4, xmm4 + LONG $0x027de3c4; WORD $0xaaec // vpblendd ymm5, ymm0, ymm4, 170 + LONG $0x597de2c4; WORD $0x0875 // vpbroadcastq ymm6, qword 8[rbp] /* [rip + .LCPI0_5] */ + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + LONG $0xd073fdc5; BYTE $0x20 // vpsrlq ymm0, ymm0, 32 + LONG $0x597de2c4; WORD $0x107d // vpbroadcastq ymm7, qword 16[rbp] /* [rip + .LCPI0_6] */ + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0x197d62c4; WORD $0x1845 // vbroadcastsd ymm8, qword 24[rbp] /* [rip + .LCPI0_7] */ + LONG $0x5c7dc1c4; BYTE $0xc0 // vsubpd ymm0, ymm0, ymm8 + LONG $0xc058d5c5 // vaddpd ymm0, ymm5, ymm0 + LONG $0x0275e3c4; WORD $0xaaec // vpblendd ymm5, ymm1, ymm4, 170 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + LONG $0xd173f5c5; BYTE $0x20 // vpsrlq ymm1, ymm1, 32 + LONG $0xcfebf5c5 // vpor ymm1, ymm1, ymm7 + LONG $0x5c75c1c4; BYTE $0xc8 // vsubpd ymm1, ymm1, ymm8 + LONG $0xc958d5c5 // vaddpd ymm1, ymm5, ymm1 + LONG $0x026de3c4; WORD $0xaaec // vpblendd ymm5, ymm2, ymm4, 170 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + LONG $0xd273edc5; BYTE $0x20 // vpsrlq ymm2, ymm2, 32 + LONG $0xd7ebedc5 // vpor ymm2, ymm2, ymm7 + LONG $0x5c6dc1c4; BYTE $0xd0 // vsubpd ymm2, ymm2, ymm8 + LONG $0xd258d5c5 // vaddpd ymm2, ymm5, ymm2 + LONG $0x0265e3c4; WORD $0xaae4 // vpblendd ymm4, ymm3, ymm4, 170 + LONG $0xe6ebddc5 // vpor ymm4, ymm4, ymm6 + LONG $0xd373e5c5; BYTE $0x20 // vpsrlq ymm3, ymm3, 32 + LONG $0xdfebe5c5 // vpor ymm3, ymm3, ymm7 + LONG $0x5c65c1c4; BYTE $0xd8 // vsubpd ymm3, ymm3, ymm8 + LONG $0xdb58ddc5 // vaddpd ymm3, ymm4, ymm3 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_922: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_923: + LONG $0x4528f9c5; BYTE $0x50 // vmovapd xmm0, oword 80[rbp] /* [rip + .LCPI0_8] */ + LONG $0x4d28f9c5; BYTE $0x60 // vmovapd xmm1, oword 96[rbp] /* [rip + .LCPI0_9] */ + +LBB0_924: + LONG $0x1410fbc5; BYTE $0xf2 // vmovsd xmm2, qword [rdx + 8*rsi] + LONG $0xd014e8c5 // vunpcklps xmm2, xmm2, xmm0 + LONG $0xd15ce9c5 // vsubpd xmm2, xmm2, xmm1 + LONG $0x0579e3c4; WORD $0x01da // vpermilpd xmm3, xmm2, 1 + LONG $0xd258e3c5 // vaddsd xmm2, xmm3, xmm2 + LONG $0x1411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm2 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_924 + JMP LBB0_1553 + +LBB0_925: + WORD $0xff31 // xor edi, edi + +LBB0_926: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_928 + LONG $0x04e6fec5; BYTE $0xba // vcvtdq2pd ymm0, oword [rdx + 4*rdi] + LONG $0x4ce6fec5; WORD $0x10ba // vcvtdq2pd ymm1, oword [rdx + 4*rdi + 16] + LONG $0x54e6fec5; WORD $0x20ba // vcvtdq2pd ymm2, oword [rdx + 4*rdi + 32] + LONG $0x5ce6fec5; WORD $0x30ba // vcvtdq2pd ymm3, oword [rdx + 4*rdi + 48] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_928: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_929: + LONG $0x042adbc5; BYTE $0xb2 // vcvtsi2sd xmm0, xmm4, dword [rdx + 4*rsi] + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_929 + JMP LBB0_1553 + +LBB0_930: + WORD $0xff31 // xor edi, edi + +LBB0_931: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_933 + LONG $0x357de2c4; WORD $0xba04 // vpmovzxdq ymm0, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x10 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x20 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x30 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_933: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_934: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_934 + JMP LBB0_1553 + +LBB0_935: + WORD $0xff31 // xor edi, edi + +LBB0_936: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_938 + LONG $0x347de2c4; WORD $0x7a04 // vpmovzxwq ymm0, qword [rdx + 2*rdi] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_938: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_939: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_939 + JMP LBB0_1553 + +LBB0_940: + WORD $0xff31 // xor edi, edi + +LBB0_941: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_943 + LONG $0x247de2c4; WORD $0x7a04 // vpmovsxwq ymm0, qword [rdx + 2*rdi] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_943: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_944: + LONG $0x04bf0f48; BYTE $0x72 // movsx rax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_944 + JMP LBB0_1553 + +LBB0_945: + WORD $0xff31 // xor edi, edi + +LBB0_946: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_948 + LONG $0x257de2c4; WORD $0xba04 // vpmovsxdq ymm0, oword [rdx + 4*rdi] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x10 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x20 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x30 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_948: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_949: + LONG $0xb2046348 // movsxd rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_949 + JMP LBB0_1553 + +LBB0_950: + WORD $0xff31 // xor edi, edi + +LBB0_951: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_953 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0e79e3c4; WORD $0xfa0c; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa440e79e3c4 // vpblendw xmm0, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm6, xmm0, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc0 // vpackusdw ymm0, ymm5, ymm0 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x2b75e2c4; BYTE $0xca // vpackusdw ymm1, ymm1, ymm2 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_953: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_954: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_954 + JMP LBB0_1553 + +LBB0_955: + WORD $0xff31 // xor edi, edi + +LBB0_956: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_958 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0e79e3c4; WORD $0xfa0c; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa440e79e3c4 // vpblendw xmm0, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm6, xmm0, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc0 // vpackusdw ymm0, ymm5, ymm0 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x2b75e2c4; BYTE $0xca // vpackusdw ymm1, ymm1, ymm2 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_958: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_959: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_959 + JMP LBB0_1553 + +LBB0_960: + WORD $0xff31 // xor edi, edi + +LBB0_961: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_963 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0e79e3c4; WORD $0xfa0c; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa440e79e3c4 // vpblendw xmm0, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm6, xmm0, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc0 // vpackusdw ymm0, ymm5, ymm0 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x2b75e2c4; BYTE $0xca // vpackusdw ymm1, ymm1, ymm2 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_963: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_964: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_964 + JMP LBB0_1553 + +LBB0_965: + WORD $0xff31 // xor edi, edi + +LBB0_966: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_968 + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + QUAD $0x00000080a56ffdc5 // vmovdqa ymm4, yword 128[rbp] /* [rip + .LCPI0_11] */ + LONG $0x007de2c4; BYTE $0xc4 // vpshufb ymm0, ymm0, ymm4 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xcc // vpshufb ymm1, ymm1, ymm4 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd4 // vpshufb ymm2, ymm2, ymm4 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xdc // vpshufb ymm3, ymm3, ymm4 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_968: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_969: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_969 + JMP LBB0_1553 + +LBB0_970: + WORD $0xff31 // xor edi, edi + +LBB0_971: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_973 + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + QUAD $0x00000080a56ffdc5 // vmovdqa ymm4, yword 128[rbp] /* [rip + .LCPI0_11] */ + LONG $0x007de2c4; BYTE $0xc4 // vpshufb ymm0, ymm0, ymm4 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xcc // vpshufb ymm1, ymm1, ymm4 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd4 // vpshufb ymm2, ymm2, ymm4 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xdc // vpshufb ymm3, ymm3, ymm4 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_973: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_974: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_974 + JMP LBB0_1553 + +LBB0_975: + WORD $0xff31 // xor edi, edi + +LBB0_976: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_978 + LONG $0x347de2c4; WORD $0x7a04 // vpmovzxwq ymm0, qword [rdx + 2*rdi] + LONG $0x347de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x347de2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x347de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_978: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_979: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_979 + JMP LBB0_1553 + +LBB0_980: + WORD $0xff31 // xor edi, edi + +LBB0_981: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_983 + LONG $0x257de2c4; WORD $0xba04 // vpmovsxdq ymm0, oword [rdx + 4*rdi] + LONG $0x257de2c4; WORD $0xba4c; BYTE $0x10 // vpmovsxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x257de2c4; WORD $0xba54; BYTE $0x20 // vpmovsxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x257de2c4; WORD $0xba5c; BYTE $0x30 // vpmovsxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_983: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_984: + LONG $0xb2046348 // movsxd rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_984 + JMP LBB0_1553 + +LBB0_985: + WORD $0xff31 // xor edi, edi + +LBB0_986: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_988 + LONG $0x045bfcc5; BYTE $0xba // vcvtdq2ps ymm0, yword [rdx + 4*rdi] + LONG $0x4c5bfcc5; WORD $0x20ba // vcvtdq2ps ymm1, yword [rdx + 4*rdi + 32] + LONG $0x545bfcc5; WORD $0x40ba // vcvtdq2ps ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c5bfcc5; WORD $0x60ba // vcvtdq2ps ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_988: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_989: + LONG $0x042adac5; BYTE $0xb2 // vcvtsi2ss xmm0, xmm4, dword [rdx + 4*rsi] + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_989 + JMP LBB0_1553 + +LBB0_990: + WORD $0xff31 // xor edi, edi + +LBB0_991: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_993 + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x0411f9c5; BYTE $0xb9 // vmovupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f9c5; WORD $0x10b9 // vmovupd oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f9c5; WORD $0x20b9 // vmovupd oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f9c5; WORD $0x30b9 // vmovupd oword [rcx + 4*rdi + 48], xmm3 + +LBB0_993: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_994: + LONG $0x042cfbc5; BYTE $0xf2 // vcvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_994 + JMP LBB0_1553 + +LBB0_995: + WORD $0xff31 // xor edi, edi + +LBB0_996: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_998 + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + +LBB0_998: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_999: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_999 + JMP LBB0_1553 + +LBB0_1000: + WORD $0xff31 // xor edi, edi + +LBB0_1001: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1003 + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1003: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1004: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1004 + JMP LBB0_1553 + +LBB0_1005: + WORD $0xff31 // xor edi, edi + +LBB0_1006: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1008 + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1008: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1009: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1009 + JMP LBB0_1553 + +LBB0_1010: + WORD $0xff31 // xor edi, edi + +LBB0_1011: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1013 + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + +LBB0_1013: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1014: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1014 + JMP LBB0_1553 + +LBB0_1015: + WORD $0xff31 // xor edi, edi + +LBB0_1016: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1018 + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1018: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1019: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1019 + JMP LBB0_1553 + +LBB0_1020: + WORD $0xff31 // xor edi, edi + +LBB0_1021: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1023 + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1023: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1024: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1024 + JMP LBB0_1553 + +LBB0_1025: + WORD $0xff31 // xor edi, edi + +LBB0_1026: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1028 + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1028: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1029: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1029 + JMP LBB0_1553 + +LBB0_1030: + WORD $0xff31 // xor edi, edi + +LBB0_1031: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1033 + LONG $0x0410f8c5; BYTE $0xfa // vmovups xmm0, oword [rdx + 8*rdi] + LONG $0x4c10f8c5; WORD $0x20fa // vmovups xmm1, oword [rdx + 8*rdi + 32] + LONG $0x5410f8c5; WORD $0x40fa // vmovups xmm2, oword [rdx + 8*rdi + 64] + LONG $0x5c10f8c5; WORD $0x60fa // vmovups xmm3, oword [rdx + 8*rdi + 96] + LONG $0x44c6f8c5; WORD $0x10fa; BYTE $0x88 // vshufps xmm0, xmm0, oword [rdx + 8*rdi + 16], 136 + LONG $0x4cc6f0c5; WORD $0x30fa; BYTE $0x88 // vshufps xmm1, xmm1, oword [rdx + 8*rdi + 48], 136 + LONG $0x54c6e8c5; WORD $0x50fa; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdx + 8*rdi + 80], 136 + LONG $0x5cc6e0c5; WORD $0x70fa; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdx + 8*rdi + 112], 136 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + +LBB0_1033: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1034: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1034 + JMP LBB0_1553 + +LBB0_1035: + WORD $0xff31 // xor edi, edi + +LBB0_1036: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1038 + LONG $0x0410f8c5; BYTE $0xba // vmovups xmm0, oword [rdx + 4*rdi] + LONG $0x1879e2c4; WORD $0x2c4d // vbroadcastss xmm1, dword 44[rbp] /* [rip + .LCPI0_2] */ + LONG $0xd1c2f8c5; BYTE $0x01 // vcmpltps xmm2, xmm0, xmm1 + LONG $0xd95cf8c5 // vsubps xmm3, xmm0, xmm1 + LONG $0xdb5bfac5 // vcvttps2dq xmm3, xmm3 + LONG $0x1879e2c4; WORD $0x3065 // vbroadcastss xmm4, dword 48[rbp] /* [rip + .LCPI0_3] */ + LONG $0xdc57e0c5 // vxorps xmm3, xmm3, xmm4 + LONG $0xc05bfac5 // vcvttps2dq xmm0, xmm0 + LONG $0x4a61e3c4; WORD $0x20c0 // vblendvps xmm0, xmm3, xmm0, xmm2 + LONG $0x5410f8c5; WORD $0x10ba // vmovups xmm2, oword [rdx + 4*rdi + 16] + LONG $0xd9c2e8c5; BYTE $0x01 // vcmpltps xmm3, xmm2, xmm1 + LONG $0xe95ce8c5 // vsubps xmm5, xmm2, xmm1 + LONG $0xed5bfac5 // vcvttps2dq xmm5, xmm5 + LONG $0xec57d0c5 // vxorps xmm5, xmm5, xmm4 + LONG $0xd25bfac5 // vcvttps2dq xmm2, xmm2 + LONG $0x4a51e3c4; WORD $0x30d2 // vblendvps xmm2, xmm5, xmm2, xmm3 + LONG $0x5c10f8c5; WORD $0x20ba // vmovups xmm3, oword [rdx + 4*rdi + 32] + LONG $0xe9c2e0c5; BYTE $0x01 // vcmpltps xmm5, xmm3, xmm1 + LONG $0xf15ce0c5 // vsubps xmm6, xmm3, xmm1 + LONG $0xf65bfac5 // vcvttps2dq xmm6, xmm6 + LONG $0xf457c8c5 // vxorps xmm6, xmm6, xmm4 + LONG $0xdb5bfac5 // vcvttps2dq xmm3, xmm3 + LONG $0x4a49e3c4; WORD $0x50db // vblendvps xmm3, xmm6, xmm3, xmm5 + LONG $0x6c10f8c5; WORD $0x30ba // vmovups xmm5, oword [rdx + 4*rdi + 48] + LONG $0xf1c2d0c5; BYTE $0x01 // vcmpltps xmm6, xmm5, xmm1 + LONG $0xc95cd0c5 // vsubps xmm1, xmm5, xmm1 + LONG $0xc95bfac5 // vcvttps2dq xmm1, xmm1 + LONG $0xcc57f0c5 // vxorps xmm1, xmm1, xmm4 + LONG $0xe55bfac5 // vcvttps2dq xmm4, xmm5 + LONG $0x4a71e3c4; WORD $0x60cc // vblendvps xmm1, xmm1, xmm4, xmm6 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x5411f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm2 + LONG $0x5c11f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm3 + LONG $0x4c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm1 + +LBB0_1038: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1039: + LONG $0x2cfae1c4; WORD $0xb204 // vcvttss2si rax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1039 + JMP LBB0_1553 + +LBB0_1040: + WORD $0xff31 // xor edi, edi + +LBB0_1041: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1043 + LONG $0x357de2c4; WORD $0xba04 // vpmovzxdq ymm0, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x10 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x20 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x30 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x597de2c4; WORD $0x0865 // vpbroadcastq ymm4, qword 8[rbp] /* [rip + .LCPI0_5] */ + LONG $0xc4ebfdc5 // vpor ymm0, ymm0, ymm4 + LONG $0xc45cfdc5 // vsubpd ymm0, ymm0, ymm4 + LONG $0xccebf5c5 // vpor ymm1, ymm1, ymm4 + LONG $0xcc5cf5c5 // vsubpd ymm1, ymm1, ymm4 + LONG $0xd4ebedc5 // vpor ymm2, ymm2, ymm4 + LONG $0xd45cedc5 // vsubpd ymm2, ymm2, ymm4 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdc5ce5c5 // vsubpd ymm3, ymm3, ymm4 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1043: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1044: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0x2ad3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm5, rax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1044 + JMP LBB0_1553 + +LBB0_1045: + WORD $0xff31 // xor edi, edi + +LBB0_1046: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1048 + LONG $0x3379e2c4; WORD $0x7a04 // vpmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x3379e2c4; WORD $0x7a4c; BYTE $0x08 // vpmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x3379e2c4; WORD $0x7a54; BYTE $0x10 // vpmovzxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0x3379e2c4; WORD $0x7a5c; BYTE $0x18 // vpmovzxwd xmm3, qword [rdx + 2*rdi + 24] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1048: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1049: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1049 + JMP LBB0_1553 + +LBB0_1050: + WORD $0xff31 // xor edi, edi + +LBB0_1051: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1053 + LONG $0x2379e2c4; WORD $0x7a04 // vpmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x2379e2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x2379e2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwd xmm2, qword [rdx + 2*rdi + 16] + LONG $0x2379e2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwd xmm3, qword [rdx + 2*rdi + 24] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1053: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1054: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + LONG $0xc02adbc5 // vcvtsi2sd xmm0, xmm4, eax + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1054 + JMP LBB0_1553 + +LBB0_1055: + WORD $0xff31 // xor edi, edi + +LBB0_1056: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1058 + LONG $0x046ffac5; BYTE $0xfa // vmovdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6ffac5; WORD $0x10fa // vmovdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x546ffac5; WORD $0x30fa // vmovdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0xc41479c5 // vunpcklpd xmm8, xmm0, xmm4 + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2aa3e1c4; BYTE $0xc8 // vcvtsi2sd xmm1, xmm11, rax + LONG $0xcc14f1c5 // vunpcklpd xmm1, xmm1, xmm4 + LONG $0x16f9e3c4; WORD $0x01d0 // vpextrq rax, xmm2, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xd0 // vmovq rax, xmm2 + LONG $0x2aa3e1c4; BYTE $0xd0 // vcvtsi2sd xmm2, xmm11, rax + LONG $0xd414e9c5 // vunpcklpd xmm2, xmm2, xmm4 + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2aa3e1c4; BYTE $0xd8 // vcvtsi2sd xmm3, xmm11, rax + LONG $0x6c6ffac5; WORD $0x50fa // vmovdqu xmm5, oword [rdx + 8*rdi + 80] + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2aa3e1c4; BYTE $0xe8 // vcvtsi2sd xmm5, xmm11, rax + LONG $0x7c6ffac5; WORD $0x40fa // vmovdqu xmm7, oword [rdx + 8*rdi + 64] + LONG $0x16f9e3c4; WORD $0x01f8 // vpextrq rax, xmm7, 1 + LONG $0x2aa3e1c4; BYTE $0xc0 // vcvtsi2sd xmm0, xmm11, rax + LONG $0xdc14e1c5 // vunpcklpd xmm3, xmm3, xmm4 + LONG $0x7ef9e1c4; BYTE $0xf8 // vmovq rax, xmm7 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0xee14d1c5 // vunpcklpd xmm5, xmm5, xmm6 + LONG $0x746ffac5; WORD $0x70fa // vmovdqu xmm6, oword [rdx + 8*rdi + 112] + LONG $0x16f9e3c4; WORD $0x01f0 // vpextrq rax, xmm6, 1 + LONG $0xc014d9c5 // vunpcklpd xmm0, xmm4, xmm0 + LONG $0x2aa3e1c4; BYTE $0xe0 // vcvtsi2sd xmm4, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xf0 // vmovq rax, xmm6 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0xe414c9c5 // vunpcklpd xmm4, xmm6, xmm4 + LONG $0x746ffac5; WORD $0x60fa // vmovdqu xmm6, oword [rdx + 8*rdi + 96] + LONG $0x16f9e3c4; WORD $0x01f0 // vpextrq rax, xmm6, 1 + LONG $0x2aa3e1c4; BYTE $0xf8 // vcvtsi2sd xmm7, xmm11, rax + LONG $0x7ef9e1c4; BYTE $0xf0 // vmovq rax, xmm6 + LONG $0x2aa3e1c4; BYTE $0xf0 // vcvtsi2sd xmm6, xmm11, rax + LONG $0xf714c9c5 // vunpcklpd xmm6, xmm6, xmm7 + LONG $0x4c11f9c5; WORD $0x10f9 // vmovupd oword [rcx + 8*rdi + 16], xmm1 + LONG $0x041179c5; BYTE $0xf9 // vmovupd oword [rcx + 8*rdi], xmm8 + LONG $0x5c11f9c5; WORD $0x20f9 // vmovupd oword [rcx + 8*rdi + 32], xmm3 + LONG $0x5411f9c5; WORD $0x30f9 // vmovupd oword [rcx + 8*rdi + 48], xmm2 + LONG $0x4411f9c5; WORD $0x40f9 // vmovupd oword [rcx + 8*rdi + 64], xmm0 + LONG $0x6c11f9c5; WORD $0x50f9 // vmovupd oword [rcx + 8*rdi + 80], xmm5 + LONG $0x7411f9c5; WORD $0x60f9 // vmovupd oword [rcx + 8*rdi + 96], xmm6 + LONG $0x6411f9c5; WORD $0x70f9 // vmovupd oword [rcx + 8*rdi + 112], xmm4 + +LBB0_1058: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1059: + LONG $0x2aa3e1c4; WORD $0xf204 // vcvtsi2sd xmm0, xmm11, qword [rdx + 8*rsi] + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1059 + JMP LBB0_1553 + +LBB0_1060: + WORD $0xff31 // xor edi, edi + +LBB0_1061: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1063 + LONG $0x045afcc5; BYTE $0xba // vcvtps2pd ymm0, oword [rdx + 4*rdi] + LONG $0x4c5afcc5; WORD $0x10ba // vcvtps2pd ymm1, oword [rdx + 4*rdi + 16] + LONG $0x545afcc5; WORD $0x20ba // vcvtps2pd ymm2, oword [rdx + 4*rdi + 32] + LONG $0x5c5afcc5; WORD $0x30ba // vcvtps2pd ymm3, oword [rdx + 4*rdi + 48] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1063: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1064: + LONG $0x0410fac5; BYTE $0xb2 // vmovss xmm0, dword [rdx + 4*rsi] + LONG $0xc05afac5 // vcvtss2sd xmm0, xmm0, xmm0 + LONG $0x0411fbc5; BYTE $0xf1 // vmovsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1064 + JMP LBB0_1553 + +LBB0_1065: + WORD $0xff31 // xor edi, edi + +LBB0_1066: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1068 + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + QUAD $0x00000080a56ffdc5 // vmovdqa ymm4, yword 128[rbp] /* [rip + .LCPI0_11] */ + LONG $0x007de2c4; BYTE $0xc4 // vpshufb ymm0, ymm0, ymm4 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xcc // vpshufb ymm1, ymm1, ymm4 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd4 // vpshufb ymm2, ymm2, ymm4 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xdc // vpshufb ymm3, ymm3, ymm4 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_1068: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1069: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1069 + JMP LBB0_1553 + +LBB0_1070: + WORD $0xff31 // xor edi, edi + +LBB0_1071: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1073 + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c6ffec5; WORD $0x60ba // vmovdqu ymm3, yword [rdx + 4*rdi + 96] + QUAD $0x00000080a56ffdc5 // vmovdqa ymm4, yword 128[rbp] /* [rip + .LCPI0_11] */ + LONG $0x007de2c4; BYTE $0xc4 // vpshufb ymm0, ymm0, ymm4 + LONG $0x00fde3c4; WORD $0xe8c0 // vpermq ymm0, ymm0, 232 + LONG $0x0075e2c4; BYTE $0xcc // vpshufb ymm1, ymm1, ymm4 + LONG $0x00fde3c4; WORD $0xe8c9 // vpermq ymm1, ymm1, 232 + LONG $0x006de2c4; BYTE $0xd4 // vpshufb ymm2, ymm2, ymm4 + LONG $0x00fde3c4; WORD $0xe8d2 // vpermq ymm2, ymm2, 232 + LONG $0x0065e2c4; BYTE $0xdc // vpshufb ymm3, ymm3, ymm4 + LONG $0x00fde3c4; WORD $0xe8db // vpermq ymm3, ymm3, 232 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_1073: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1074: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1074 + JMP LBB0_1553 + +LBB0_1075: + WORD $0xff31 // xor edi, edi + +LBB0_1076: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1078 + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0x2b6de2c4; BYTE $0xd0 // vpackusdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_1078: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1079: + LONG $0x042cfbc5; BYTE $0xf2 // vcvttsd2si eax, qword [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1079 + JMP LBB0_1553 + +LBB0_1080: + WORD $0xff31 // xor edi, edi + +LBB0_1081: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1083 + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5ce6fdc5; WORD $0x60fa // vcvttpd2dq xmm3, yword [rdx + 8*rdi + 96] + LONG $0x186de3c4; WORD $0x01d3 // vinsertf128 ymm2, ymm2, xmm3, 1 + LONG $0xd06bedc5 // vpackssdw ymm2, ymm2, ymm0 + LONG $0x187de3c4; WORD $0x01c1 // vinsertf128 ymm0, ymm0, xmm1, 1 + LONG $0xc06bfdc5 // vpackssdw ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_1083: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1084: + LONG $0x042cfbc5; BYTE $0xf2 // vcvttsd2si eax, qword [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1084 + JMP LBB0_1553 + +LBB0_1085: + WORD $0xff31 // xor edi, edi + +LBB0_1086: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1088 + LONG $0xc0eff9c5 // vpxor xmm0, xmm0, xmm0 + LONG $0x0e79e3c4; WORD $0xfa0c; BYTE $0x11 // vpblendw xmm1, xmm0, oword [rdx + 8*rdi], 17 + QUAD $0x1110fa540e79e3c4 // vpblendw xmm2, xmm0, oword [rdx + 8*rdi + 16], 17 + QUAD $0x1120fa5c0e79e3c4 // vpblendw xmm3, xmm0, oword [rdx + 8*rdi + 32], 17 + QUAD $0x1130fa640e79e3c4 // vpblendw xmm4, xmm0, oword [rdx + 8*rdi + 48], 17 + QUAD $0x1140fa6c0e79e3c4 // vpblendw xmm5, xmm0, oword [rdx + 8*rdi + 64], 17 + QUAD $0x1150fa740e79e3c4 // vpblendw xmm6, xmm0, oword [rdx + 8*rdi + 80], 17 + QUAD $0x1160fa7c0e79e3c4 // vpblendw xmm7, xmm0, oword [rdx + 8*rdi + 96], 17 + QUAD $0x1170fa440e79e3c4 // vpblendw xmm0, xmm0, oword [rdx + 8*rdi + 112], 17 + LONG $0x384de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm6, xmm0, 1 + LONG $0x3855e3c4; WORD $0x01ef // vinserti128 ymm5, ymm5, xmm7, 1 + LONG $0x2b55e2c4; BYTE $0xc0 // vpackusdw ymm0, ymm5, ymm0 + LONG $0x2b7de2c4; BYTE $0xc0 // vpackusdw ymm0, ymm0, ymm0 + LONG $0x386de3c4; WORD $0x01d4 // vinserti128 ymm2, ymm2, xmm4, 1 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + LONG $0x2b75e2c4; BYTE $0xca // vpackusdw ymm1, ymm1, ymm2 + LONG $0x2b75e2c4; BYTE $0xc8 // vpackusdw ymm1, ymm1, ymm0 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + +LBB0_1088: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1089: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1089 + JMP LBB0_1553 + +LBB0_1090: + WORD $0xff31 // xor edi, edi + +LBB0_1091: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1093 + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0x2b79e2c4; BYTE $0xc1 // vpackusdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0x2b71e2c4; BYTE $0xca // vpackusdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0x2b69e2c4; BYTE $0xd3 // vpackusdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0x2b61e2c4; BYTE $0xdc // vpackusdw xmm3, xmm3, xmm4 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_1093: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1094: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1094 + JMP LBB0_1553 + +LBB0_1095: + WORD $0xff31 // xor edi, edi + +LBB0_1096: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1098 + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x047ffac5; BYTE $0x79 // vmovdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7ffac5; WORD $0x1079 // vmovdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x547ffac5; WORD $0x2079 // vmovdqu oword [rcx + 2*rdi + 32], xmm2 + LONG $0x5c7ffac5; WORD $0x3079 // vmovdqu oword [rcx + 2*rdi + 48], xmm3 + +LBB0_1098: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1099: + LONG $0x042cfac5; BYTE $0xb2 // vcvttss2si eax, dword [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1099 + JMP LBB0_1553 + +LBB0_1100: + WORD $0xff31 // xor edi, edi + +LBB0_1101: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1103 + LONG $0x357de2c4; WORD $0xba04 // vpmovzxdq ymm0, oword [rdx + 4*rdi] + LONG $0x357de2c4; WORD $0xba4c; BYTE $0x10 // vpmovzxdq ymm1, oword [rdx + 4*rdi + 16] + LONG $0x357de2c4; WORD $0xba54; BYTE $0x20 // vpmovzxdq ymm2, oword [rdx + 4*rdi + 32] + LONG $0x357de2c4; WORD $0xba5c; BYTE $0x30 // vpmovzxdq ymm3, oword [rdx + 4*rdi + 48] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1103: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1104: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1104 + JMP LBB0_1553 + +LBB0_1105: + WORD $0xff31 // xor edi, edi + +LBB0_1106: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1108 + LONG $0x046ffec5; BYTE $0xba // vmovdqu ymm0, yword [rdx + 4*rdi] + LONG $0x4c6ffec5; WORD $0x20ba // vmovdqu ymm1, yword [rdx + 4*rdi + 32] + LONG $0x546ffec5; WORD $0x40ba // vmovdqu ymm2, yword [rdx + 4*rdi + 64] + LONG $0x587de2c4; WORD $0x345d // vpbroadcastd ymm3, dword 52[rbp] /* [rip + .LCPI0_13] */ + LONG $0x646ffec5; WORD $0x60ba // vmovdqu ymm4, yword [rdx + 4*rdi + 96] + LONG $0x0e7de3c4; WORD $0xaaeb // vpblendw ymm5, ymm0, ymm3, 170 + LONG $0x587de2c4; WORD $0x3875 // vpbroadcastd ymm6, dword 56[rbp] /* [rip + .LCPI0_14] */ + LONG $0xd072fdc5; BYTE $0x10 // vpsrld ymm0, ymm0, 16 + LONG $0x0e7de3c4; WORD $0xaac6 // vpblendw ymm0, ymm0, ymm6, 170 + LONG $0x187de2c4; WORD $0x3c7d // vbroadcastss ymm7, dword 60[rbp] /* [rip + .LCPI0_15] */ + LONG $0xc75cfcc5 // vsubps ymm0, ymm0, ymm7 + LONG $0xc058d4c5 // vaddps ymm0, ymm5, ymm0 + LONG $0x0e75e3c4; WORD $0xaaeb // vpblendw ymm5, ymm1, ymm3, 170 + LONG $0xd172f5c5; BYTE $0x10 // vpsrld ymm1, ymm1, 16 + LONG $0x0e75e3c4; WORD $0xaace // vpblendw ymm1, ymm1, ymm6, 170 + LONG $0xcf5cf4c5 // vsubps ymm1, ymm1, ymm7 + LONG $0xc958d4c5 // vaddps ymm1, ymm5, ymm1 + LONG $0x0e6de3c4; WORD $0xaaeb // vpblendw ymm5, ymm2, ymm3, 170 + LONG $0xd272edc5; BYTE $0x10 // vpsrld ymm2, ymm2, 16 + LONG $0x0e6de3c4; WORD $0xaad6 // vpblendw ymm2, ymm2, ymm6, 170 + LONG $0xd75cecc5 // vsubps ymm2, ymm2, ymm7 + LONG $0xd258d4c5 // vaddps ymm2, ymm5, ymm2 + LONG $0x0e5de3c4; WORD $0xaadb // vpblendw ymm3, ymm4, ymm3, 170 + LONG $0xd472ddc5; BYTE $0x10 // vpsrld ymm4, ymm4, 16 + LONG $0x0e5de3c4; WORD $0xaae6 // vpblendw ymm4, ymm4, ymm6, 170 + LONG $0xe75cdcc5 // vsubps ymm4, ymm4, ymm7 + LONG $0xdc58e4c5 // vaddps ymm3, ymm3, ymm4 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1108: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1109: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0x2abae1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm8, rax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1109 + JMP LBB0_1553 + +LBB0_1110: + WORD $0xff31 // xor edi, edi + +LBB0_1111: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1113 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x08 // vcvttsd2si rax, qword [rdx + 8*rdi + 8] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x2cfbe1c4; WORD $0xfa04 // vcvttsd2si rax, qword [rdx + 8*rdi] + LONG $0x6ef9e1c4; BYTE $0xc8 // vmovq xmm1, rax + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x18 // vcvttsd2si rax, qword [rdx + 8*rdi + 24] + LONG $0x6ef9e1c4; BYTE $0xc8 // vmovq xmm1, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x10 // vcvttsd2si rax, qword [rdx + 8*rdi + 16] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x38 // vcvttsd2si rax, qword [rdx + 8*rdi + 56] + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x30 // vcvttsd2si rbx, qword [rdx + 8*rdi + 48] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x28 // vcvttsd2si rax, qword [rdx + 8*rdi + 40] + LONG $0x6ef9e1c4; BYTE $0xdb // vmovq xmm3, rbx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x20 // vcvttsd2si rbx, qword [rdx + 8*rdi + 32] + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0x6ef9e1c4; BYTE $0xe3 // vmovq xmm4, rbx + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x58 // vcvttsd2si rax, qword [rdx + 8*rdi + 88] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x50 // vcvttsd2si rax, qword [rdx + 8*rdi + 80] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x48 // vcvttsd2si rax, qword [rdx + 8*rdi + 72] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x40 // vcvttsd2si rax, qword [rdx + 8*rdi + 64] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x78 // vcvttsd2si rax, qword [rdx + 8*rdi + 120] + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x70 // vcvttsd2si rbx, qword [rdx + 8*rdi + 112] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfbe1c4; WORD $0xfa44; BYTE $0x68 // vcvttsd2si rax, qword [rdx + 8*rdi + 104] + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0x2cfbe1c4; WORD $0xfa5c; BYTE $0x60 // vcvttsd2si rbx, qword [rdx + 8*rdi + 96] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0xc06cc1c5 // vpunpcklqdq xmm0, xmm7, xmm0 + LONG $0x4c7ffac5; WORD $0x10f9 // vmovdqu oword [rcx + 8*rdi + 16], xmm1 + LONG $0x047f7ac5; BYTE $0xf9 // vmovdqu oword [rcx + 8*rdi], xmm8 + LONG $0x5c7ffac5; WORD $0x20f9 // vmovdqu oword [rcx + 8*rdi + 32], xmm3 + LONG $0x547ffac5; WORD $0x30f9 // vmovdqu oword [rcx + 8*rdi + 48], xmm2 + LONG $0x6c7ffac5; WORD $0x40f9 // vmovdqu oword [rcx + 8*rdi + 64], xmm5 + LONG $0x647ffac5; WORD $0x50f9 // vmovdqu oword [rcx + 8*rdi + 80], xmm4 + LONG $0x447ffac5; WORD $0x60f9 // vmovdqu oword [rcx + 8*rdi + 96], xmm0 + LONG $0x747ffac5; WORD $0x70f9 // vmovdqu oword [rcx + 8*rdi + 112], xmm6 + +LBB0_1113: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1114: + LONG $0x2cfbe1c4; WORD $0xf204 // vcvttsd2si rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1114 + JMP LBB0_1553 + +LBB0_1115: + WORD $0xff31 // xor edi, edi + +LBB0_1116: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1118 + LONG $0x045afdc5; BYTE $0xfa // vcvtpd2ps xmm0, yword [rdx + 8*rdi] + LONG $0x4c5afdc5; WORD $0x20fa // vcvtpd2ps xmm1, yword [rdx + 8*rdi + 32] + LONG $0x545afdc5; WORD $0x40fa // vcvtpd2ps xmm2, yword [rdx + 8*rdi + 64] + LONG $0x5c5afdc5; WORD $0x60fa // vcvtpd2ps xmm3, yword [rdx + 8*rdi + 96] + LONG $0x0411f9c5; BYTE $0xb9 // vmovupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f9c5; WORD $0x10b9 // vmovupd oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f9c5; WORD $0x20b9 // vmovupd oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f9c5; WORD $0x30b9 // vmovupd oword [rcx + 4*rdi + 48], xmm3 + +LBB0_1118: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1119: + LONG $0x0410fbc5; BYTE $0xf2 // vmovsd xmm0, qword [rdx + 8*rsi] + LONG $0xc05afbc5 // vcvtsd2ss xmm0, xmm0, xmm0 + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1119 + JMP LBB0_1553 + +LBB0_1120: + WORD $0xff31 // xor edi, edi + +LBB0_1121: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1123 + LONG $0x337de2c4; WORD $0x7a04 // vpmovzxwd ymm0, oword [rdx + 2*rdi] + LONG $0x337de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovzxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x337de2c4; WORD $0x7a54; BYTE $0x20 // vpmovzxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x337de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovzxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1123: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1124: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1124 + JMP LBB0_1553 + +LBB0_1125: + WORD $0xff31 // xor edi, edi + +LBB0_1126: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1128 + LONG $0x247de2c4; WORD $0x7a04 // vpmovsxwq ymm0, qword [rdx + 2*rdi] + LONG $0x247de2c4; WORD $0x7a4c; BYTE $0x08 // vpmovsxwq ymm1, qword [rdx + 2*rdi + 8] + LONG $0x247de2c4; WORD $0x7a54; BYTE $0x10 // vpmovsxwq ymm2, qword [rdx + 2*rdi + 16] + LONG $0x247de2c4; WORD $0x7a5c; BYTE $0x18 // vpmovsxwq ymm3, qword [rdx + 2*rdi + 24] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1128: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1129: + LONG $0x04bf0f48; BYTE $0x72 // movsx rax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1129 + JMP LBB0_1553 + +LBB0_1130: + WORD $0xff31 // xor edi, edi + +LBB0_1131: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1133 + LONG $0x237de2c4; WORD $0x7a04 // vpmovsxwd ymm0, oword [rdx + 2*rdi] + LONG $0x237de2c4; WORD $0x7a4c; BYTE $0x10 // vpmovsxwd ymm1, oword [rdx + 2*rdi + 16] + LONG $0x237de2c4; WORD $0x7a54; BYTE $0x20 // vpmovsxwd ymm2, oword [rdx + 2*rdi + 32] + LONG $0x237de2c4; WORD $0x7a5c; BYTE $0x30 // vpmovsxwd ymm3, oword [rdx + 2*rdi + 48] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1133: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1134: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + LONG $0xc02adac5 // vcvtsi2ss xmm0, xmm4, eax + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1134 + JMP LBB0_1553 + +LBB0_1135: + WORD $0xff31 // xor edi, edi + +LBB0_1136: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1138 + LONG $0x046ffac5; BYTE $0xfa // vmovdqu xmm0, oword [rdx + 8*rdi] + LONG $0x16f9e3c4; WORD $0x01c0 // vpextrq rax, xmm0, 1 + LONG $0x4c6ffac5; WORD $0x10fa // vmovdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc0 // vmovq rax, xmm0 + LONG $0x2abae1c4; BYTE $0xc0 // vcvtsi2ss xmm0, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xc8 // vmovq rax, xmm1 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x16f9e3c4; WORD $0x01c8 // vpextrq rax, xmm1, 1 + LONG $0x2abae1c4; BYTE $0xc8 // vcvtsi2ss xmm1, xmm8, rax + LONG $0x646ffac5; WORD $0x20fa // vmovdqu xmm4, oword [rdx + 8*rdi + 32] + LONG $0x6c6ffac5; WORD $0x30fa // vmovdqu xmm5, oword [rdx + 8*rdi + 48] + LONG $0x16f9e3c4; WORD $0x01e0 // vpextrq rax, xmm4, 1 + LONG $0x2179e3c4; WORD $0x10c2 // vinsertps xmm0, xmm0, xmm2, 16 + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe0 // vmovq rax, xmm4 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xf0 // vcvtsi2ss xmm6, xmm8, rax + LONG $0x2179e3c4; WORD $0x20c3 // vinsertps xmm0, xmm0, xmm3, 32 + LONG $0x2179e3c4; WORD $0x30c1 // vinsertps xmm0, xmm0, xmm1, 48 + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2159e3c4; WORD $0x10ca // vinsertps xmm1, xmm4, xmm2, 16 + LONG $0x2abae1c4; BYTE $0xd0 // vcvtsi2ss xmm2, xmm8, rax + LONG $0x2171e3c4; WORD $0x20ce // vinsertps xmm1, xmm1, xmm6, 32 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x6c6ffac5; WORD $0x50fa // vmovdqu xmm5, oword [rdx + 8*rdi + 80] + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xf0 // vcvtsi2ss xmm6, xmm8, rax + LONG $0x2171e3c4; WORD $0x30ca // vinsertps xmm1, xmm1, xmm2, 48 + LONG $0x2161e3c4; WORD $0x10d4 // vinsertps xmm2, xmm3, xmm4, 16 + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2169e3c4; WORD $0x20d6 // vinsertps xmm2, xmm2, xmm6, 32 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x2169e3c4; WORD $0x30d3 // vinsertps xmm2, xmm2, xmm3, 48 + LONG $0x5c6ffac5; WORD $0x60fa // vmovdqu xmm3, oword [rdx + 8*rdi + 96] + LONG $0x16f9e3c4; WORD $0x01d8 // vpextrq rax, xmm3, 1 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x7ef9e1c4; BYTE $0xd8 // vmovq rax, xmm3 + LONG $0x2abae1c4; BYTE $0xd8 // vcvtsi2ss xmm3, xmm8, rax + LONG $0x6c6ffac5; WORD $0x70fa // vmovdqu xmm5, oword [rdx + 8*rdi + 112] + LONG $0x7ef9e1c4; BYTE $0xe8 // vmovq rax, xmm5 + LONG $0x2abae1c4; BYTE $0xf0 // vcvtsi2ss xmm6, xmm8, rax + LONG $0x2161e3c4; WORD $0x10dc // vinsertps xmm3, xmm3, xmm4, 16 + LONG $0x2161e3c4; WORD $0x20de // vinsertps xmm3, xmm3, xmm6, 32 + LONG $0x16f9e3c4; WORD $0x01e8 // vpextrq rax, xmm5, 1 + LONG $0x2abae1c4; BYTE $0xe0 // vcvtsi2ss xmm4, xmm8, rax + LONG $0x2161e3c4; WORD $0x30dc // vinsertps xmm3, xmm3, xmm4, 48 + LONG $0x0411f8c5; BYTE $0xb9 // vmovups oword [rcx + 4*rdi], xmm0 + LONG $0x4c11f8c5; WORD $0x10b9 // vmovups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x5411f8c5; WORD $0x20b9 // vmovups oword [rcx + 4*rdi + 32], xmm2 + LONG $0x5c11f8c5; WORD $0x30b9 // vmovups oword [rcx + 4*rdi + 48], xmm3 + +LBB0_1138: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1139: + LONG $0x2abae1c4; WORD $0xf204 // vcvtsi2ss xmm0, xmm8, qword [rdx + 8*rsi] + LONG $0x0411fac5; BYTE $0xb1 // vmovss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1139 + JMP LBB0_1553 + +LBB0_1140: + WORD $0xff31 // xor edi, edi + +LBB0_1141: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1143 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x04 // vcvttss2si rax, dword [rdx + 4*rdi + 4] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0x2cfae1c4; WORD $0xba04 // vcvttss2si rax, dword [rdx + 4*rdi] + LONG $0x6ef9e1c4; BYTE $0xc8 // vmovq xmm1, rax + LONG $0xc06c71c5 // vpunpcklqdq xmm8, xmm1, xmm0 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x0c // vcvttss2si rax, dword [rdx + 4*rdi + 12] + LONG $0x6ef9e1c4; BYTE $0xc8 // vmovq xmm1, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x08 // vcvttss2si rax, dword [rdx + 4*rdi + 8] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x1c // vcvttss2si rax, dword [rdx + 4*rdi + 28] + LONG $0xc96ce9c5 // vpunpcklqdq xmm1, xmm2, xmm1 + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x18 // vcvttss2si rbx, dword [rdx + 4*rdi + 24] + LONG $0x6ef9e1c4; BYTE $0xd0 // vmovq xmm2, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x14 // vcvttss2si rax, dword [rdx + 4*rdi + 20] + LONG $0x6ef9e1c4; BYTE $0xdb // vmovq xmm3, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x10 // vcvttss2si rbx, dword [rdx + 4*rdi + 16] + LONG $0xd26ce1c5 // vpunpcklqdq xmm2, xmm3, xmm2 + LONG $0x6ef9e1c4; BYTE $0xd8 // vmovq xmm3, rax + LONG $0x6ef9e1c4; BYTE $0xe3 // vmovq xmm4, rbx + LONG $0xdb6cd9c5 // vpunpcklqdq xmm3, xmm4, xmm3 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x2c // vcvttss2si rax, dword [rdx + 4*rdi + 44] + LONG $0x6ef9e1c4; BYTE $0xe0 // vmovq xmm4, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x28 // vcvttss2si rax, dword [rdx + 4*rdi + 40] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0xe46cd1c5 // vpunpcklqdq xmm4, xmm5, xmm4 + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x24 // vcvttss2si rax, dword [rdx + 4*rdi + 36] + LONG $0x6ef9e1c4; BYTE $0xe8 // vmovq xmm5, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x20 // vcvttss2si rax, dword [rdx + 4*rdi + 32] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x3c // vcvttss2si rax, dword [rdx + 4*rdi + 60] + LONG $0xed6cc9c5 // vpunpcklqdq xmm5, xmm6, xmm5 + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x38 // vcvttss2si rbx, dword [rdx + 4*rdi + 56] + LONG $0x6ef9e1c4; BYTE $0xf0 // vmovq xmm6, rax + LONG $0x2cfae1c4; WORD $0xba44; BYTE $0x34 // vcvttss2si rax, dword [rdx + 4*rdi + 52] + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0x2cfae1c4; WORD $0xba5c; BYTE $0x30 // vcvttss2si rbx, dword [rdx + 4*rdi + 48] + LONG $0x6ef9e1c4; BYTE $0xc0 // vmovq xmm0, rax + LONG $0xf66cc1c5 // vpunpcklqdq xmm6, xmm7, xmm6 + LONG $0x6ef9e1c4; BYTE $0xfb // vmovq xmm7, rbx + LONG $0xc06cc1c5 // vpunpcklqdq xmm0, xmm7, xmm0 + LONG $0x4c7ffac5; WORD $0x10f9 // vmovdqu oword [rcx + 8*rdi + 16], xmm1 + LONG $0x047f7ac5; BYTE $0xf9 // vmovdqu oword [rcx + 8*rdi], xmm8 + LONG $0x5c7ffac5; WORD $0x20f9 // vmovdqu oword [rcx + 8*rdi + 32], xmm3 + LONG $0x547ffac5; WORD $0x30f9 // vmovdqu oword [rcx + 8*rdi + 48], xmm2 + LONG $0x6c7ffac5; WORD $0x40f9 // vmovdqu oword [rcx + 8*rdi + 64], xmm5 + LONG $0x647ffac5; WORD $0x50f9 // vmovdqu oword [rcx + 8*rdi + 80], xmm4 + LONG $0x447ffac5; WORD $0x60f9 // vmovdqu oword [rcx + 8*rdi + 96], xmm0 + LONG $0x747ffac5; WORD $0x70f9 // vmovdqu oword [rcx + 8*rdi + 112], xmm6 + +LBB0_1143: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + +LBB0_1144: + LONG $0x2cfae1c4; WORD $0xb204 // vcvttss2si rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1144 + +LBB0_1553: + VZEROUPPER + RET + +LBB0_1145: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1146: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1146 + +LBB0_1147: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1150 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1149: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1149 + +LBB0_1150: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1151 + +LBB0_1155: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1156: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1156 + +LBB0_1157: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1160 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1159: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1159 + +LBB0_1160: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1161 + +LBB0_1165: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1166: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1166 + +LBB0_1167: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1170 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1169: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1169 + +LBB0_1170: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1171 + +LBB0_1175: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1176: + LONG $0x0410fcc5; BYTE $0x42 // vmovups ymm0, yword [rdx + 2*rax] + LONG $0x4c10fcc5; WORD $0x2042 // vmovups ymm1, yword [rdx + 2*rax + 32] + LONG $0x0411fcc5; BYTE $0x41 // vmovups yword [rcx + 2*rax], ymm0 + LONG $0x4c11fcc5; WORD $0x2041 // vmovups yword [rcx + 2*rax + 32], ymm1 + LONG $0x4410fcc5; WORD $0x4042 // vmovups ymm0, yword [rdx + 2*rax + 64] + LONG $0x4c10fcc5; WORD $0x6042 // vmovups ymm1, yword [rdx + 2*rax + 96] + LONG $0x4411fcc5; WORD $0x4041 // vmovups yword [rcx + 2*rax + 64], ymm0 + LONG $0x4c11fcc5; WORD $0x6041 // vmovups yword [rcx + 2*rax + 96], ymm1 + QUAD $0x000080428410fcc5; BYTE $0x00 // vmovups ymm0, yword [rdx + 2*rax + 128] + QUAD $0x0000a0428c10fcc5; BYTE $0x00 // vmovups ymm1, yword [rdx + 2*rax + 160] + QUAD $0x000080418411fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 128], ymm0 + QUAD $0x0000a0418c11fcc5; BYTE $0x00 // vmovups yword [rcx + 2*rax + 160], ymm1 + QUAD $0x0000c0428410fdc5; BYTE $0x00 // vmovupd ymm0, yword [rdx + 2*rax + 192] + QUAD $0x0000e0428c10fdc5; BYTE $0x00 // vmovupd ymm1, yword [rdx + 2*rax + 224] + QUAD $0x0000c0418411fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 192], ymm0 + QUAD $0x0000e0418c11fdc5; BYTE $0x00 // vmovupd yword [rcx + 2*rax + 224], ymm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1176 + +LBB0_1177: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1180 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x20c08348 // add rax, 32 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1179: + LONG $0x4410fdc5; WORD $0xe002 // vmovupd ymm0, yword [rdx + rax - 32] + LONG $0x0c10fdc5; BYTE $0x02 // vmovupd ymm1, yword [rdx + rax] + LONG $0x4411fdc5; WORD $0xe001 // vmovupd yword [rcx + rax - 32], ymm0 + LONG $0x0c11fdc5; BYTE $0x01 // vmovupd yword [rcx + rax], ymm1 + LONG $0x40c08348 // add rax, 64 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1179 + +LBB0_1180: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1181 + +LBB0_1185: + WORD $0xff31 // xor edi, edi + +LBB0_1186: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1188 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1188: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1189 + +LBB0_1193: + WORD $0xff31 // xor edi, edi + +LBB0_1194: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1196 + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1196: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1197 + +LBB0_1201: + WORD $0xff31 // xor edi, edi + +LBB0_1202: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1204 + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1204: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1205 + +LBB0_1209: + WORD $0xff31 // xor edi, edi + +LBB0_1210: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1212 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1212: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1213 + +LBB0_1217: + WORD $0xff31 // xor edi, edi + +LBB0_1218: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1220 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1220: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1221 + +LBB0_1225: + WORD $0xff31 // xor edi, edi + +LBB0_1226: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1228 + LONG $0x2179e2c4; WORD $0x3a04 // vpmovsxbd xmm0, dword [rdx + rdi] + LONG $0x2179e2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x2179e2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbd xmm2, dword [rdx + rdi + 8] + LONG $0x2179e2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbd xmm3, dword [rdx + rdi + 12] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1228: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1229 + +LBB0_1233: + WORD $0xff31 // xor edi, edi + +LBB0_1234: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1236 + LONG $0x3179e2c4; WORD $0x3a04 // vpmovzxbd xmm0, dword [rdx + rdi] + LONG $0x3179e2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x3179e2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbd xmm2, dword [rdx + rdi + 8] + LONG $0x3179e2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbd xmm3, dword [rdx + rdi + 12] + LONG $0xc0e6fec5 // vcvtdq2pd ymm0, xmm0 + LONG $0xc9e6fec5 // vcvtdq2pd ymm1, xmm1 + LONG $0xd2e6fec5 // vcvtdq2pd ymm2, xmm2 + LONG $0xdbe6fec5 // vcvtdq2pd ymm3, xmm3 + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1236: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1237 + +LBB0_1241: + WORD $0xff31 // xor edi, edi + +LBB0_1242: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1244 + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xc0 // vpshufb xmm0, xmm5, xmm0 + LONG $0xc462f9c5 // vpunpckldq xmm0, xmm0, xmm4 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1244: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1245 + +LBB0_1249: + WORD $0xff31 // xor edi, edi + +LBB0_1250: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1252 + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0xc06bf9c5 // vpackssdw xmm0, xmm0, xmm0 + LONG $0xc063f9c5 // vpacksswb xmm0, xmm0, xmm0 + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0xc96bf1c5 // vpackssdw xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + LONG $0xca6be9c5 // vpackssdw xmm1, xmm2, xmm2 + LONG $0xc963f1c5 // vpacksswb xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x60fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 96] + LONG $0xd26be9c5 // vpackssdw xmm2, xmm2, xmm2 + LONG $0xd263e9c5 // vpacksswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1252: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1253 + +LBB0_1257: + WORD $0xff31 // xor edi, edi + +LBB0_1258: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1260 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB0_1260: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1261 + +LBB0_1265: + WORD $0xff31 // xor edi, edi + +LBB0_1266: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1268 + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xc0 // vpshufb xmm0, xmm4, xmm0 + LONG $0xc361f9c5 // vpunpcklwd xmm0, xmm0, xmm3 + LONG $0xc062e9c5 // vpunpckldq xmm0, xmm2, xmm0 + LONG $0xc06cf1c5 // vpunpcklqdq xmm0, xmm1, xmm0 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1268: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1269 + +LBB0_1273: + WORD $0xff31 // xor edi, edi + +LBB0_1274: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1276 + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x44dbfdc5; WORD $0x607a // vpand ymm0, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01c4 // vextracti128 xmm4, ymm0, 1 + LONG $0xc467f9c5 // vpackuswb xmm0, xmm0, xmm4 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x447ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm0 + +LBB0_1276: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1277 + +LBB0_1281: + WORD $0xff31 // xor edi, edi + +LBB0_1282: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1284 + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x44dbfdc5; WORD $0x607a // vpand ymm0, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01c4 // vextracti128 xmm4, ymm0, 1 + LONG $0xc467f9c5 // vpackuswb xmm0, xmm0, xmm4 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x447ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm0 + +LBB0_1284: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1285 + +LBB0_1289: + WORD $0xff31 // xor edi, edi + +LBB0_1290: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1292 + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xc0 // vpshufb xmm0, xmm4, xmm0 + LONG $0xc361f9c5 // vpunpcklwd xmm0, xmm0, xmm3 + LONG $0xc062e9c5 // vpunpckldq xmm0, xmm2, xmm0 + LONG $0xc06cf1c5 // vpunpcklqdq xmm0, xmm1, xmm0 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1292: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1293 + +LBB0_1297: + WORD $0xff31 // xor edi, edi + +LBB0_1298: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1300 + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd063edc5 // vpacksswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc063fdc5 // vpacksswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1300: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1301 + +LBB0_1305: + WORD $0xff31 // xor edi, edi + +LBB0_1306: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1308 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB0_1308: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1309 + +LBB0_1313: + WORD $0xff31 // xor edi, edi + +LBB0_1314: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1316 + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xc0 // vpshufb xmm0, xmm5, xmm0 + LONG $0xc462f9c5 // vpunpckldq xmm0, xmm0, xmm4 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1316: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1317 + +LBB0_1321: + WORD $0xff31 // xor edi, edi + +LBB0_1322: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1324 + LONG $0x227de2c4; WORD $0x3a04 // vpmovsxbq ymm0, dword [rdx + rdi] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbq ymm1, dword [rdx + rdi + 4] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbq ymm2, dword [rdx + rdi + 8] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1324: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1325 + +LBB0_1329: + WORD $0xff31 // xor edi, edi + +LBB0_1330: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1332 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1332: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1333 + +LBB0_1337: + WORD $0xff31 // xor edi, edi + +LBB0_1338: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1340 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1340: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1341 + +LBB0_1345: + WORD $0xff31 // xor edi, edi + +LBB0_1346: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1348 + LONG $0x327de2c4; WORD $0x3a04 // vpmovzxbq ymm0, dword [rdx + rdi] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbq ymm1, dword [rdx + rdi + 4] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbq ymm2, dword [rdx + rdi + 8] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1348: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1349 + +LBB0_1353: + WORD $0xff31 // xor edi, edi + +LBB0_1354: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1356 + LONG $0x207de2c4; WORD $0x3a04 // vpmovsxbw ymm0, oword [rdx + rdi] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovsxbw ymm1, oword [rdx + rdi + 16] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x20 // vpmovsxbw ymm2, oword [rdx + rdi + 32] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovsxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + +LBB0_1356: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1357 + +LBB0_1361: + WORD $0xff31 // xor edi, edi + +LBB0_1362: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1364 + LONG $0x207de2c4; WORD $0x3a04 // vpmovsxbw ymm0, oword [rdx + rdi] + LONG $0x207de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovsxbw ymm1, oword [rdx + rdi + 16] + LONG $0x207de2c4; WORD $0x3a54; BYTE $0x20 // vpmovsxbw ymm2, oword [rdx + rdi + 32] + LONG $0x207de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovsxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + +LBB0_1364: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1365 + +LBB0_1369: + WORD $0xff31 // xor edi, edi + +LBB0_1370: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1372 + LONG $0x307de2c4; WORD $0x3a04 // vpmovzxbw ymm0, oword [rdx + rdi] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovzxbw ymm1, oword [rdx + rdi + 16] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x20 // vpmovzxbw ymm2, oword [rdx + rdi + 32] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovzxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + +LBB0_1372: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1373 + +LBB0_1377: + WORD $0xff31 // xor edi, edi + +LBB0_1378: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1380 + LONG $0x307de2c4; WORD $0x3a04 // vpmovzxbw ymm0, oword [rdx + rdi] + LONG $0x307de2c4; WORD $0x3a4c; BYTE $0x10 // vpmovzxbw ymm1, oword [rdx + rdi + 16] + LONG $0x307de2c4; WORD $0x3a54; BYTE $0x20 // vpmovzxbw ymm2, oword [rdx + rdi + 32] + LONG $0x307de2c4; WORD $0x3a5c; BYTE $0x30 // vpmovzxbw ymm3, oword [rdx + rdi + 48] + LONG $0x047ffec5; BYTE $0x79 // vmovdqu yword [rcx + 2*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x2079 // vmovdqu yword [rcx + 2*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x4079 // vmovdqu yword [rcx + 2*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x6079 // vmovdqu yword [rcx + 2*rdi + 96], ymm3 + +LBB0_1380: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1381 + +LBB0_1385: + WORD $0xff31 // xor edi, edi + +LBB0_1386: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1388 + LONG $0x227de2c4; WORD $0x3a04 // vpmovsxbq ymm0, dword [rdx + rdi] + LONG $0x227de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovsxbq ymm1, dword [rdx + rdi + 4] + LONG $0x227de2c4; WORD $0x3a54; BYTE $0x08 // vpmovsxbq ymm2, dword [rdx + rdi + 8] + LONG $0x227de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovsxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1388: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1389 + +LBB0_1393: + WORD $0xff31 // xor edi, edi + +LBB0_1394: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1396 + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1396: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1397 + +LBB0_1401: + WORD $0xff31 // xor edi, edi + +LBB0_1402: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1404 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1404: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1405 + +LBB0_1409: + WORD $0xff31 // xor edi, edi + +LBB0_1410: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1412 + LONG $0x0410fdc5; BYTE $0xfa // vmovupd ymm0, yword [rdx + 8*rdi] + LONG $0x4c10fdc5; WORD $0x20fa // vmovupd ymm1, yword [rdx + 8*rdi + 32] + LONG $0x5410fdc5; WORD $0x40fa // vmovupd ymm2, yword [rdx + 8*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60fa // vmovupd ymm3, yword [rdx + 8*rdi + 96] + LONG $0x0411fdc5; BYTE $0xf9 // vmovupd yword [rcx + 8*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20f9 // vmovupd yword [rcx + 8*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40f9 // vmovupd yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60f9 // vmovupd yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1412: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1413 + +LBB0_1417: + WORD $0xff31 // xor edi, edi + +LBB0_1418: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1420 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1420: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1421 + +LBB0_1425: + WORD $0xff31 // xor edi, edi + +LBB0_1426: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1428 + LONG $0x327de2c4; WORD $0x3a04 // vpmovzxbq ymm0, dword [rdx + rdi] + LONG $0x327de2c4; WORD $0x3a4c; BYTE $0x04 // vpmovzxbq ymm1, dword [rdx + rdi + 4] + LONG $0x327de2c4; WORD $0x3a54; BYTE $0x08 // vpmovzxbq ymm2, dword [rdx + rdi + 8] + LONG $0x327de2c4; WORD $0x3a5c; BYTE $0x0c // vpmovzxbq ymm3, dword [rdx + rdi + 12] + LONG $0x047ffec5; BYTE $0xf9 // vmovdqu yword [rcx + 8*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20f9 // vmovdqu yword [rcx + 8*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40f9 // vmovdqu yword [rcx + 8*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60f9 // vmovdqu yword [rcx + 8*rdi + 96], ymm3 + +LBB0_1428: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1429 + +LBB0_1433: + WORD $0xff31 // xor edi, edi + +LBB0_1434: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1436 + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0xc05bfcc5 // vcvtdq2ps ymm0, ymm0 + LONG $0xc95bfcc5 // vcvtdq2ps ymm1, ymm1 + LONG $0xd25bfcc5 // vcvtdq2ps ymm2, ymm2 + LONG $0xdb5bfcc5 // vcvtdq2ps ymm3, ymm3 + LONG $0x0411fcc5; BYTE $0xb9 // vmovups yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fcc5; WORD $0x20b9 // vmovups yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fcc5; WORD $0x40b9 // vmovups yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fcc5; WORD $0x60b9 // vmovups yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1436: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1437 + +LBB0_1441: + WORD $0xff31 // xor edi, edi + +LBB0_1442: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1444 + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xc0 // vpshufb xmm0, xmm5, xmm0 + LONG $0xc462f9c5 // vpunpckldq xmm0, xmm0, xmm4 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1444: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1445 + +LBB0_1449: + WORD $0xff31 // xor edi, edi + +LBB0_1450: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1452 + LONG $0x04e6fdc5; BYTE $0xfa // vcvttpd2dq xmm0, yword [rdx + 8*rdi] + LONG $0x2b79e2c4; BYTE $0xc0 // vpackusdw xmm0, xmm0, xmm0 + LONG $0xc067f9c5 // vpackuswb xmm0, xmm0, xmm0 + LONG $0x4ce6fdc5; WORD $0x20fa // vcvttpd2dq xmm1, yword [rdx + 8*rdi + 32] + LONG $0x2b71e2c4; BYTE $0xc9 // vpackusdw xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x40fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 64] + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0xc162f9c5 // vpunpckldq xmm0, xmm0, xmm1 + LONG $0x2b69e2c4; BYTE $0xca // vpackusdw xmm1, xmm2, xmm2 + LONG $0xc967f1c5 // vpackuswb xmm1, xmm1, xmm1 + LONG $0x54e6fdc5; WORD $0x60fa // vcvttpd2dq xmm2, yword [rdx + 8*rdi + 96] + LONG $0x2b69e2c4; BYTE $0xd2 // vpackusdw xmm2, xmm2, xmm2 + LONG $0xd267e9c5 // vpackuswb xmm2, xmm2, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0xc16cf9c5 // vpunpcklqdq xmm0, xmm0, xmm1 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1452: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1453 + +LBB0_1457: + WORD $0xff31 // xor edi, edi + +LBB0_1458: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1460 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB0_1460: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1461 + +LBB0_1465: + WORD $0xff31 // xor edi, edi + +LBB0_1466: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1468 + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xc0 // vpshufb xmm0, xmm4, xmm0 + LONG $0xc361f9c5 // vpunpcklwd xmm0, xmm0, xmm3 + LONG $0xc062e9c5 // vpunpckldq xmm0, xmm2, xmm0 + LONG $0xc06cf1c5 // vpunpcklqdq xmm0, xmm1, xmm0 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1468: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1469 + +LBB0_1473: + WORD $0xff31 // xor edi, edi + +LBB0_1474: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1476 + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x44dbfdc5; WORD $0x607a // vpand ymm0, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01c4 // vextracti128 xmm4, ymm0, 1 + LONG $0xc467f9c5 // vpackuswb xmm0, xmm0, xmm4 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x447ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm0 + +LBB0_1476: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1477 + +LBB0_1481: + WORD $0xff31 // xor edi, edi + +LBB0_1482: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1484 + QUAD $0x000000a0856ffdc5 // vmovdqa ymm0, yword 160[rbp] /* [rip + .LCPI0_16] */ + LONG $0x0cdbfdc5; BYTE $0x7a // vpand ymm1, ymm0, yword [rdx + 2*rdi] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca67f1c5 // vpackuswb xmm1, xmm1, xmm2 + LONG $0x54dbfdc5; WORD $0x207a // vpand ymm2, ymm0, yword [rdx + 2*rdi + 32] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd367e9c5 // vpackuswb xmm2, xmm2, xmm3 + LONG $0x5cdbfdc5; WORD $0x407a // vpand ymm3, ymm0, yword [rdx + 2*rdi + 64] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc67e1c5 // vpackuswb xmm3, xmm3, xmm4 + LONG $0x44dbfdc5; WORD $0x607a // vpand ymm0, ymm0, yword [rdx + 2*rdi + 96] + LONG $0x397de3c4; WORD $0x01c4 // vextracti128 xmm4, ymm0, 1 + LONG $0xc467f9c5 // vpackuswb xmm0, xmm0, xmm4 + LONG $0x0c7ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm1 + LONG $0x547ffac5; WORD $0x1039 // vmovdqu oword [rcx + rdi + 16], xmm2 + LONG $0x5c7ffac5; WORD $0x2039 // vmovdqu oword [rcx + rdi + 32], xmm3 + LONG $0x447ffac5; WORD $0x3039 // vmovdqu oword [rcx + rdi + 48], xmm0 + +LBB0_1484: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1485 + +LBB0_1489: + WORD $0xff31 // xor edi, edi + +LBB0_1490: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1492 + LONG $0x456ff9c5; BYTE $0x40 // vmovdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_4] */ + LONG $0x0c6ffac5; BYTE $0xfa // vmovdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546ffac5; WORD $0x10fa // vmovdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20fa // vmovdqu xmm3, oword [rdx + 8*rdi + 32] + LONG $0x646ffac5; WORD $0x30fa // vmovdqu xmm4, oword [rdx + 8*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca61f1c5 // vpunpcklwd xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x546ffac5; WORD $0x50fa // vmovdqu xmm2, oword [rdx + 8*rdi + 80] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x5c6ffac5; WORD $0x40fa // vmovdqu xmm3, oword [rdx + 8*rdi + 64] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd261e1c5 // vpunpcklwd xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x70fa // vmovdqu xmm3, oword [rdx + 8*rdi + 112] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x60fa // vmovdqu xmm4, oword [rdx + 8*rdi + 96] + LONG $0x0059e2c4; BYTE $0xc0 // vpshufb xmm0, xmm4, xmm0 + LONG $0xc361f9c5 // vpunpcklwd xmm0, xmm0, xmm3 + LONG $0xc062e9c5 // vpunpckldq xmm0, xmm2, xmm0 + LONG $0xc06cf1c5 // vpunpcklqdq xmm0, xmm1, xmm0 + LONG $0x047ffac5; BYTE $0x39 // vmovdqu oword [rcx + rdi], xmm0 + +LBB0_1492: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1493 + +LBB0_1497: + WORD $0xff31 // xor edi, edi + +LBB0_1498: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1500 + LONG $0x045bfec5; BYTE $0xba // vcvttps2dq ymm0, yword [rdx + 4*rdi] + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + LONG $0xc16bf9c5 // vpackssdw xmm0, xmm0, xmm1 + LONG $0x4c5bfec5; WORD $0x20ba // vcvttps2dq ymm1, yword [rdx + 4*rdi + 32] + LONG $0x397de3c4; WORD $0x01ca // vextracti128 xmm2, ymm1, 1 + LONG $0xca6bf1c5 // vpackssdw xmm1, xmm1, xmm2 + LONG $0x545bfec5; WORD $0x40ba // vcvttps2dq ymm2, yword [rdx + 4*rdi + 64] + LONG $0x397de3c4; WORD $0x01d3 // vextracti128 xmm3, ymm2, 1 + LONG $0xd36be9c5 // vpackssdw xmm2, xmm2, xmm3 + LONG $0x5c5bfec5; WORD $0x60ba // vcvttps2dq ymm3, yword [rdx + 4*rdi + 96] + LONG $0x397de3c4; WORD $0x01dc // vextracti128 xmm4, ymm3, 1 + LONG $0xdc6be1c5 // vpackssdw xmm3, xmm3, xmm4 + LONG $0x386de3c4; WORD $0x01d3 // vinserti128 ymm2, ymm2, xmm3, 1 + LONG $0xd067edc5 // vpackuswb ymm2, ymm2, ymm0 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + LONG $0xc067fdc5 // vpackuswb ymm0, ymm0, ymm0 + LONG $0xc26cfdc5 // vpunpcklqdq ymm0, ymm0, ymm2 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1500: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1501 + +LBB0_1505: + WORD $0xff31 // xor edi, edi + +LBB0_1506: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1508 + LONG $0x0410fdc5; BYTE $0x3a // vmovupd ymm0, yword [rdx + rdi] + LONG $0x4c10fdc5; WORD $0x203a // vmovupd ymm1, yword [rdx + rdi + 32] + LONG $0x5410fdc5; WORD $0x403a // vmovupd ymm2, yword [rdx + rdi + 64] + LONG $0x5c10fdc5; WORD $0x603a // vmovupd ymm3, yword [rdx + rdi + 96] + LONG $0x0411fdc5; BYTE $0x39 // vmovupd yword [rcx + rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x2039 // vmovupd yword [rcx + rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x4039 // vmovupd yword [rcx + rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x6039 // vmovupd yword [rcx + rdi + 96], ymm3 + +LBB0_1508: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1509 + +LBB0_1513: + WORD $0xff31 // xor edi, edi + +LBB0_1514: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1516 + LONG $0x456ff9c5; BYTE $0x70 // vmovdqa xmm0, oword 112[rbp] /* [rip + .LCPI0_12] */ + LONG $0x0c6ffac5; BYTE $0xba // vmovdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546ffac5; WORD $0x10ba // vmovdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x5c6ffac5; WORD $0x20ba // vmovdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646ffac5; WORD $0x30ba // vmovdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0x0069e2c4; BYTE $0xd0 // vpshufb xmm2, xmm2, xmm0 + LONG $0x0071e2c4; BYTE $0xc8 // vpshufb xmm1, xmm1, xmm0 + LONG $0xca62f1c5 // vpunpckldq xmm1, xmm1, xmm2 + LONG $0x0059e2c4; BYTE $0xd0 // vpshufb xmm2, xmm4, xmm0 + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0xd262e1c5 // vpunpckldq xmm2, xmm3, xmm2 + LONG $0x5c6ffac5; WORD $0x50ba // vmovdqu xmm3, oword [rdx + 4*rdi + 80] + LONG $0x0061e2c4; BYTE $0xd8 // vpshufb xmm3, xmm3, xmm0 + LONG $0x646ffac5; WORD $0x40ba // vmovdqu xmm4, oword [rdx + 4*rdi + 64] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0xdb62d9c5 // vpunpckldq xmm3, xmm4, xmm3 + LONG $0x646ffac5; WORD $0x70ba // vmovdqu xmm4, oword [rdx + 4*rdi + 112] + LONG $0x0059e2c4; BYTE $0xe0 // vpshufb xmm4, xmm4, xmm0 + LONG $0x6c6ffac5; WORD $0x60ba // vmovdqu xmm5, oword [rdx + 4*rdi + 96] + LONG $0x0051e2c4; BYTE $0xc0 // vpshufb xmm0, xmm5, xmm0 + LONG $0xc462f9c5 // vpunpckldq xmm0, xmm0, xmm4 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + LONG $0xc06cf5c5 // vpunpcklqdq ymm0, ymm1, ymm0 + LONG $0x00fde3c4; WORD $0xd8c0 // vpermq ymm0, ymm0, 216 + LONG $0x047ffec5; BYTE $0x39 // vmovdqu yword [rcx + rdi], ymm0 + +LBB0_1516: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1517 + +LBB0_1521: + WORD $0xff31 // xor edi, edi + +LBB0_1522: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1524 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1524: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1525 + +LBB0_1529: + WORD $0xff31 // xor edi, edi + +LBB0_1530: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1532 + LONG $0x217de2c4; WORD $0x3a04 // vpmovsxbd ymm0, qword [rdx + rdi] + LONG $0x217de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovsxbd ymm1, qword [rdx + rdi + 8] + LONG $0x217de2c4; WORD $0x3a54; BYTE $0x10 // vpmovsxbd ymm2, qword [rdx + rdi + 16] + LONG $0x217de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovsxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1532: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1533 + +LBB0_1537: + WORD $0xff31 // xor edi, edi + +LBB0_1538: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1540 + LONG $0x317de2c4; WORD $0x3a04 // vpmovzxbd ymm0, qword [rdx + rdi] + LONG $0x317de2c4; WORD $0x3a4c; BYTE $0x08 // vpmovzxbd ymm1, qword [rdx + rdi + 8] + LONG $0x317de2c4; WORD $0x3a54; BYTE $0x10 // vpmovzxbd ymm2, qword [rdx + rdi + 16] + LONG $0x317de2c4; WORD $0x3a5c; BYTE $0x18 // vpmovzxbd ymm3, qword [rdx + rdi + 24] + LONG $0x047ffec5; BYTE $0xb9 // vmovdqu yword [rcx + 4*rdi], ymm0 + LONG $0x4c7ffec5; WORD $0x20b9 // vmovdqu yword [rcx + 4*rdi + 32], ymm1 + LONG $0x547ffec5; WORD $0x40b9 // vmovdqu yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c7ffec5; WORD $0x60b9 // vmovdqu yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1540: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1541 + +LBB0_1545: + WORD $0xff31 // xor edi, edi + +LBB0_1546: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1548 + LONG $0x0410fdc5; BYTE $0xba // vmovupd ymm0, yword [rdx + 4*rdi] + LONG $0x4c10fdc5; WORD $0x20ba // vmovupd ymm1, yword [rdx + 4*rdi + 32] + LONG $0x5410fdc5; WORD $0x40ba // vmovupd ymm2, yword [rdx + 4*rdi + 64] + LONG $0x5c10fdc5; WORD $0x60ba // vmovupd ymm3, yword [rdx + 4*rdi + 96] + LONG $0x0411fdc5; BYTE $0xb9 // vmovupd yword [rcx + 4*rdi], ymm0 + LONG $0x4c11fdc5; WORD $0x20b9 // vmovupd yword [rcx + 4*rdi + 32], ymm1 + LONG $0x5411fdc5; WORD $0x40b9 // vmovupd yword [rcx + 4*rdi + 64], ymm2 + LONG $0x5c11fdc5; WORD $0x60b9 // vmovupd yword [rcx + 4*rdi + 96], ymm3 + +LBB0_1548: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1553 + JMP LBB0_1549 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.go new file mode 100644 index 0000000..f91576f --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.go @@ -0,0 +1,41 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "golang.org/x/sys/cpu" +) + +//go:noescape +func _cast_type_numeric_neon(itype, otype int, in, out unsafe.Pointer, len int) + +func castNumericNeon(itype, otype arrow.Type, in, out []byte, len int) { + _cast_type_numeric_neon(int(itype), int(otype), unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len) +} + +func init() { + if cpu.ARM64.HasASIMD { + castNumericUnsafe = castNumericNeon + } else { + castNumericUnsafe = castNumericGo + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.s new file mode 100644 index 0000000..c54eac4 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_neon_arm64.s @@ -0,0 +1,6087 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +TEXT ·_cast_type_numeric_neon(SB), $0-40 + + MOVD itype+0(FP), R0 + MOVD otype+8(FP), R1 + MOVD in+16(FP), R2 + MOVD out+24(FP), R3 + MOVD len+32(FP), R4 + + + WORD $0xa9bf7bfd // stp x29, x30, [sp, #-16]! + WORD $0x7100181f // cmp w0, #6 + WORD $0x910003fd // mov x29, sp + BGT LBB0_17 + + WORD $0x71000c1f // cmp w0, #3 + BLE LBB0_29 + + WORD $0x7100101f // cmp w0, #4 + BEQ LBB0_53 + + WORD $0x7100141f // cmp w0, #5 + BEQ LBB0_61 + + WORD $0x7100181f // cmp w0, #6 + BNE LBB0_893 + + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_109 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_191 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_347 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_350 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_14 + + WORD $0xd37ef509 // lsl x9, x8, #2 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_894 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_894 +LBB0_14: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_15: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_16: + WORD $0xb840454b // ldr w11, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_16 + JMP LBB0_893 +LBB0_17: + WORD $0x7100201f // cmp w0, #8 + BLE LBB0_43 + + WORD $0x7100241f // cmp w0, #9 + BEQ LBB0_69 + + WORD $0x71002c1f // cmp w0, #11 + BEQ LBB0_77 + + WORD $0x7100301f // cmp w0, #12 + BNE LBB0_893 + + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_116 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_200 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_353 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_356 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_643 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_646 +LBB0_29: + WORD $0x7100081f // cmp w0, #2 + BEQ LBB0_85 + + WORD $0x71000c1f // cmp w0, #3 + BNE LBB0_893 + + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_127 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_209 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_359 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_366 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_40 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_897 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_897 +LBB0_40: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_41: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_42: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_42 + JMP LBB0_893 +LBB0_43: + WORD $0x71001c1f // cmp w0, #7 + BEQ LBB0_97 + + WORD $0x7100201f // cmp w0, #8 + BNE LBB0_893 + + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_138 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_218 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_373 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_376 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_648 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_651 +LBB0_53: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_145 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_227 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_379 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_386 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_653 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_656 +LBB0_61: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_152 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_236 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_393 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_400 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_658 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_661 +LBB0_69: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_159 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_245 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_407 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_410 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_663 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_666 +LBB0_77: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_166 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_254 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_413 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_416 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_668 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_671 +LBB0_85: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_173 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_263 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_419 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_426 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_94 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_900 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_900 +LBB0_94: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_95: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_96: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_96 + JMP LBB0_893 +LBB0_97: + WORD $0x7100183f // cmp w1, #6 + BGT LBB0_184 + + WORD $0x71000c3f // cmp w1, #3 + BLE LBB0_272 + + WORD $0x7100103f // cmp w1, #4 + BEQ LBB0_433 + + WORD $0x7100143f // cmp w1, #5 + BEQ LBB0_436 + + WORD $0x7100183f // cmp w1, #6 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_106 + + WORD $0xd37ef509 // lsl x9, x8, #2 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_903 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_903 +LBB0_106: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_107: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_108: + WORD $0xb840454b // ldr w11, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_108 + JMP LBB0_893 +LBB0_109: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_281 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_439 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_442 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_673 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_676 +LBB0_116: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_286 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_445 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_448 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_124 + + WORD $0xd37df109 // lsl x9, x8, #3 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_906 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_906 +LBB0_124: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_125: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_126: + WORD $0xf840854b // ldr x11, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_126 + JMP LBB0_893 +LBB0_127: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_291 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_451 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_458 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_135 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_909 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_909 +LBB0_135: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_136: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_137: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e620160 // scvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_137 + JMP LBB0_893 +LBB0_138: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_300 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_465 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_472 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_678 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_681 +LBB0_145: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_309 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_475 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_478 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_683 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_686 +LBB0_152: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_314 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_481 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_484 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_688 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_691 +LBB0_159: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_319 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_487 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_494 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_693 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_696 +LBB0_166: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_328 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_497 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_500 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_698 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_701 +LBB0_173: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_333 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_507 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_514 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_181 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_912 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_912 +LBB0_181: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_182: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_183: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e630160 // ucvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_183 + JMP LBB0_893 +LBB0_184: + WORD $0x7100203f // cmp w1, #8 + BLE LBB0_342 + + WORD $0x7100243f // cmp w1, #9 + BEQ LBB0_521 + + WORD $0x71002c3f // cmp w1, #11 + BEQ LBB0_524 + + WORD $0x7100303f // cmp w1, #12 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_703 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_706 +LBB0_191: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_527 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_197 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_915 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_915 +LBB0_197: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_198: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_199: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_199 + JMP LBB0_893 +LBB0_200: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_534 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_206 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_918 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_918 +LBB0_206: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_207: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_208: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e78000b // fcvtzs w11, d0 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_208 + JMP LBB0_893 +LBB0_209: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_541 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_215 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_921 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_921 +LBB0_215: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_216: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_217: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_217 + JMP LBB0_893 +LBB0_218: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_548 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_224 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_924 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_924 +LBB0_224: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_225: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_226: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_226 + JMP LBB0_893 +LBB0_227: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_555 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_233 + + WORD $0x8b080449 // add x9, x2, x8, lsl #1 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_927 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_927 +LBB0_233: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_234: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_235: + WORD $0x3840252b // ldrb w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_235 + JMP LBB0_893 +LBB0_236: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_562 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_242 + + WORD $0x8b080449 // add x9, x2, x8, lsl #1 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_930 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_930 +LBB0_242: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_243: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_244: + WORD $0x3840252b // ldrb w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_244 + JMP LBB0_893 +LBB0_245: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_569 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_251 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_933 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_933 +LBB0_251: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_252: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_253: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_253 + JMP LBB0_893 +LBB0_254: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_576 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_260 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_936 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_936 +LBB0_260: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_261: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_262: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e38000b // fcvtzs w11, s0 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_262 + JMP LBB0_893 +LBB0_263: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_583 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_269 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_939 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_939 +LBB0_269: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_270: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_271: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_271 + JMP LBB0_893 +LBB0_272: + WORD $0x7100083f // cmp w1, #2 + BEQ LBB0_590 + + WORD $0x71000c3f // cmp w1, #3 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_278 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_942 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_942 +LBB0_278: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_279: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_280: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_280 + JMP LBB0_893 +LBB0_281: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_597 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_708 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_711 +LBB0_286: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_604 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_713 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_716 +LBB0_291: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_607 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_297 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_945 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_945 +LBB0_297: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_298: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_299: + WORD $0x3880152b // ldrsb x11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_299 + JMP LBB0_893 +LBB0_300: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_614 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_306 + + WORD $0xd37df109 // lsl x9, x8, #3 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_948 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_948 +LBB0_306: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_307: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_308: + WORD $0xf840854b // ldr x11, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_308 + JMP LBB0_893 +LBB0_309: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_617 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_718 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_721 +LBB0_314: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_620 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_723 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_726 +LBB0_319: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_623 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_325 + + WORD $0xd37df109 // lsl x9, x8, #3 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_951 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_951 +LBB0_325: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_326: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_327: + WORD $0xf840854b // ldr x11, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_327 + JMP LBB0_893 +LBB0_328: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_626 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_728 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_731 +LBB0_333: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_629 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_339 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_954 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_954 +LBB0_339: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_340: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_341: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_341 + JMP LBB0_893 +LBB0_342: + WORD $0x71001c3f // cmp w1, #7 + BEQ LBB0_636 + + WORD $0x7100203f // cmp w1, #8 + BNE LBB0_893 + + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_733 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_736 +LBB0_347: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_738 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_741 +LBB0_350: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_743 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_746 +LBB0_353: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_748 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_751 +LBB0_356: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_753 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_756 +LBB0_359: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_363 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_957 + + WORD $0x8b080469 // add x9, x3, x8, lsl #1 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_957 +LBB0_363: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_364: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_365: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_365 + JMP LBB0_893 +LBB0_366: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_370 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_960 + + WORD $0x8b080469 // add x9, x3, x8, lsl #1 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_960 +LBB0_370: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_371: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_372: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_372 + JMP LBB0_893 +LBB0_373: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_758 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_761 +LBB0_376: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_763 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_766 +LBB0_379: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_383 + + WORD $0xd37ff909 // lsl x9, x8, #1 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_963 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_963 +LBB0_383: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_384: + WORD $0xd37ff92a // lsl x10, x9, #1 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_385: + WORD $0x7840254b // ldrh w11, [x10], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800252b // strh w11, [x9], #2 + BNE LBB0_385 + JMP LBB0_893 +LBB0_386: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_390 + + WORD $0xd37ff909 // lsl x9, x8, #1 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_966 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_966 +LBB0_390: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_391: + WORD $0xd37ff92a // lsl x10, x9, #1 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_392: + WORD $0x7840254b // ldrh w11, [x10], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800252b // strh w11, [x9], #2 + BNE LBB0_392 + JMP LBB0_893 +LBB0_393: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_397 + + WORD $0xd37ff909 // lsl x9, x8, #1 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_969 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_969 +LBB0_397: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_398: + WORD $0xd37ff92a // lsl x10, x9, #1 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_399: + WORD $0x7840254b // ldrh w11, [x10], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800252b // strh w11, [x9], #2 + BNE LBB0_399 + JMP LBB0_893 +LBB0_400: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_404 + + WORD $0xd37ff909 // lsl x9, x8, #1 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_972 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_972 +LBB0_404: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_405: + WORD $0xd37ff92a // lsl x10, x9, #1 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_406: + WORD $0x7840254b // ldrh w11, [x10], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800252b // strh w11, [x9], #2 + BNE LBB0_406 + JMP LBB0_893 +LBB0_407: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_768 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_771 +LBB0_410: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_773 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_776 +LBB0_413: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_778 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_781 +LBB0_416: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_783 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_786 +LBB0_419: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_423 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_975 + + WORD $0x8b080469 // add x9, x3, x8, lsl #1 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_975 +LBB0_423: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_424: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_425: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_425 + JMP LBB0_893 +LBB0_426: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_430 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_978 + + WORD $0x8b080469 // add x9, x3, x8, lsl #1 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_978 +LBB0_430: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_431: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_432: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_432 + JMP LBB0_893 +LBB0_433: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_788 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_791 +LBB0_436: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_793 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_796 +LBB0_439: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_798 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_801 +LBB0_442: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_803 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_806 +LBB0_445: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_808 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_811 +LBB0_448: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_813 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_816 +LBB0_451: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_455 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_981 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_981 +LBB0_455: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_456: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_457: + WORD $0x3880152b // ldrsb x11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_457 + JMP LBB0_893 +LBB0_458: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_462 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_984 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_984 +LBB0_462: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_463: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_464: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e220160 // scvtf s0, w11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_464 + JMP LBB0_893 +LBB0_465: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_469 + + WORD $0xd37df109 // lsl x9, x8, #3 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_987 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_987 +LBB0_469: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_470: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_471: + WORD $0xf840854b // ldr x11, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_471 + JMP LBB0_893 +LBB0_472: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_818 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_821 +LBB0_475: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_823 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_826 +LBB0_478: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_828 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_831 +LBB0_481: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_833 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_836 +LBB0_484: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_838 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_841 +LBB0_487: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_491 + + WORD $0xd37df109 // lsl x9, x8, #3 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_990 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_990 +LBB0_491: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_492: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_493: + WORD $0xf840854b // ldr x11, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_493 + JMP LBB0_893 +LBB0_494: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_843 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_846 +LBB0_497: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_848 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_851 +LBB0_500: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_504 + + WORD $0xd37ef509 // lsl x9, x8, #2 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_993 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_993 +LBB0_504: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_505: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_506: + WORD $0xb840454b // ldr w11, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_506 + JMP LBB0_893 +LBB0_507: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_511 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_996 + + WORD $0x8b080c69 // add x9, x3, x8, lsl #3 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_996 +LBB0_511: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_512: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_513: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_513 + JMP LBB0_893 +LBB0_514: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_518 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_999 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_999 +LBB0_518: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_519: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_520: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e230160 // ucvtf s0, w11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_520 + JMP LBB0_893 +LBB0_521: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_853 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_856 +LBB0_524: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_858 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_861 +LBB0_527: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_531 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1002 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1002 +LBB0_531: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_532: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_533: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_533 + JMP LBB0_893 +LBB0_534: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_538 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1005 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1005 +LBB0_538: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_539: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_540: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e78000b // fcvtzs w11, d0 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_540 + JMP LBB0_893 +LBB0_541: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_545 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1008 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1008 +LBB0_545: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_546: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_547: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_547 + JMP LBB0_893 +LBB0_548: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_552 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1011 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1011 +LBB0_552: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_553: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_554: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_554 + JMP LBB0_893 +LBB0_555: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_559 + + WORD $0x8b080449 // add x9, x2, x8, lsl #1 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1014 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1014 +LBB0_559: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_560: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_561: + WORD $0x3840252b // ldrb w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_561 + JMP LBB0_893 +LBB0_562: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_566 + + WORD $0x8b080449 // add x9, x2, x8, lsl #1 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1017 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1017 +LBB0_566: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_567: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_568: + WORD $0x3840252b // ldrb w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_568 + JMP LBB0_893 +LBB0_569: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_573 + + WORD $0x8b080c49 // add x9, x2, x8, lsl #3 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1020 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1020 +LBB0_573: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_574: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_575: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_575 + JMP LBB0_893 +LBB0_576: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_580 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1023 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1023 +LBB0_580: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_581: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_582: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e38000b // fcvtzs w11, s0 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_582 + JMP LBB0_893 +LBB0_583: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_587 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1026 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1026 +LBB0_587: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_588: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_589: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_589 + JMP LBB0_893 +LBB0_590: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_594 + + WORD $0x8b080849 // add x9, x2, x8, lsl #2 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1029 + + WORD $0x8b080069 // add x9, x3, x8 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1029 +LBB0_594: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_595: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09006a // add x10, x3, x9 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_596: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x3800154b // strb w11, [x10], #1 + BNE LBB0_596 + JMP LBB0_893 +LBB0_597: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_601 + + WORD $0xd37ef509 // lsl x9, x8, #2 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_1032 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1032 +LBB0_601: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_602: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_603: + WORD $0xb840454b // ldr w11, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_603 + JMP LBB0_893 +LBB0_604: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_863 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_866 +LBB0_607: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_611 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1035 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1035 +LBB0_611: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_612: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_613: + WORD $0x38c0152b // ldrsb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_613 + JMP LBB0_893 +LBB0_614: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_868 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_871 +LBB0_617: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_873 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_876 +LBB0_620: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_878 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_881 +LBB0_623: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100409f // cmp w4, #16 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_883 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_886 +LBB0_626: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BHS LBB0_888 + + WORD $0xaa1f03e9 // mov x9, xzr + JMP LBB0_891 +LBB0_629: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_633 + + WORD $0x8b080049 // add x9, x2, x8 + WORD $0xeb03013f // cmp x9, x3 + BLS LBB0_1038 + + WORD $0x8b080869 // add x9, x3, x8, lsl #2 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1038 +LBB0_633: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_634: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090049 // add x9, x2, x9 +LBB0_635: + WORD $0x3840152b // ldrb w11, [x9], #1 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_635 + JMP LBB0_893 +LBB0_636: + WORD $0x7100049f // cmp w4, #1 + BLT LBB0_893 + + WORD $0x7100809f // cmp w4, #32 + WORD $0x2a0403e8 // mov w8, w4 + BLO LBB0_640 + + WORD $0xd37ef509 // lsl x9, x8, #2 + WORD $0x8b09004a // add x10, x2, x9 + WORD $0xeb03015f // cmp x10, x3 + BLS LBB0_1041 + + WORD $0x8b090069 // add x9, x3, x9 + WORD $0xeb02013f // cmp x9, x2 + BLS LBB0_1041 +LBB0_640: + WORD $0xaa1f03e9 // mov x9, xzr +LBB0_641: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_642: + WORD $0xb840454b // ldr w11, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_642 + JMP LBB0_893 +LBB0_643: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_644: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x6ee1b821 // fcvtzu v1.2d, v1.2d + WORD $0x6ee1b863 // fcvtzu v3.2d, v3.2d + WORD $0x6ee1b8a5 // fcvtzu v5.2d, v5.2d + WORD $0x6ee1b8e7 // fcvtzu v7.2d, v7.2d + WORD $0x6ee1b884 // fcvtzu v4.2d, v4.2d + WORD $0x6ee1b8c6 // fcvtzu v6.2d, v6.2d + WORD $0x6ee1b842 // fcvtzu v2.2d, v2.2d + WORD $0x6ee1b800 // fcvtzu v0.2d, v0.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_644 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_646: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_647: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e79000b // fcvtzu w11, d0 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_647 + JMP LBB0_893 +LBB0_648: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_649: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_649 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_651: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_652: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_652 + JMP LBB0_893 +LBB0_653: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_654: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f10a424 // ushll v4.4s, v1.4h, #0 + WORD $0x2f10a405 // ushll v5.4s, v0.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f10a466 // ushll v6.4s, v3.4h, #0 + WORD $0x2f10a447 // ushll v7.4s, v2.4h, #0 + WORD $0x6f10a463 // ushll2 v3.4s, v3.8h, #0 + WORD $0x6f10a442 // ushll2 v2.4s, v2.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_654 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_656: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_657: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_657 + JMP LBB0_893 +LBB0_658: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_659: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f10a424 // sshll v4.4s, v1.4h, #0 + WORD $0x0f10a405 // sshll v5.4s, v0.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f10a466 // sshll v6.4s, v3.4h, #0 + WORD $0x0f10a447 // sshll v7.4s, v2.4h, #0 + WORD $0x4f10a463 // sshll2 v3.4s, v3.8h, #0 + WORD $0x4f10a442 // sshll2 v2.4s, v2.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_659 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_661: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_662: + WORD $0x78c0252b // ldrsh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_662 + JMP LBB0_893 +LBB0_663: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_664: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_664 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_666: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_667: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_667 + JMP LBB0_893 +LBB0_668: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_669: + WORD $0xad7f0540 // ldp q0, q1, [x10, #-32] + WORD $0xad7e0d42 // ldp q2, q3, [x10, #-64] + WORD $0xad411544 // ldp q4, q5, [x10, #32] + WORD $0xacc41d46 // ldp q6, q7, [x10], #128 + WORD $0x6ea1b821 // fcvtzu v1.4s, v1.4s + WORD $0x6ea1b863 // fcvtzu v3.4s, v3.4s + WORD $0x6ea1b842 // fcvtzu v2.4s, v2.4s + WORD $0x6ea1b800 // fcvtzu v0.4s, v0.4s + WORD $0x6ea1b8e7 // fcvtzu v7.4s, v7.4s + WORD $0x6ea1b8c6 // fcvtzu v6.4s, v6.4s + WORD $0x6ea1b8a5 // fcvtzu v5.4s, v5.4s + WORD $0x6ea1b884 // fcvtzu v4.4s, v4.4s + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0560 // stp q0, q1, [x11, #-32] + WORD $0xad3e0d62 // stp q2, q3, [x11, #-64] + WORD $0xad011564 // stp q4, q5, [x11, #32] + WORD $0xac841d66 // stp q6, q7, [x11], #128 + BNE LBB0_669 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_671: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_672: + WORD $0xbc404540 // ldr s0, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e39000b // fcvtzu w11, s0 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_672 + JMP LBB0_893 +LBB0_673: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_674: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f20a424 // ushll v4.2d, v1.2s, #0 + WORD $0x2f20a405 // ushll v5.2d, v0.2s, #0 + WORD $0x2f20a466 // ushll v6.2d, v3.2s, #0 + WORD $0x2f20a447 // ushll v7.2d, v2.2s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0x6e61d884 // ucvtf v4.2d, v4.2d + WORD $0x6e61d8a5 // ucvtf v5.2d, v5.2d + WORD $0x6e61d8c6 // ucvtf v6.2d, v6.2d + WORD $0x6e61d8e7 // ucvtf v7.2d, v7.2d + WORD $0x6e61d821 // ucvtf v1.2d, v1.2d + WORD $0x6e61d800 // ucvtf v0.2d, v0.2d + WORD $0x6e61d863 // ucvtf v3.2d, v3.2d + WORD $0x6e61d842 // ucvtf v2.2d, v2.2d + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_674 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_676: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_677: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e630160 // ucvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_677 + JMP LBB0_893 +LBB0_678: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_679: + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0xad401584 // ldp q4, q5, [x12] + WORD $0xad411d86 // ldp q6, q7, [x12, #32] + WORD $0x6e61d821 // ucvtf v1.2d, v1.2d + WORD $0x6e61d863 // ucvtf v3.2d, v3.2d + WORD $0x6e61d8a5 // ucvtf v5.2d, v5.2d + WORD $0x6e61d884 // ucvtf v4.2d, v4.2d + WORD $0x6e61d8e7 // ucvtf v7.2d, v7.2d + WORD $0x6e61d8c6 // ucvtf v6.2d, v6.2d + WORD $0x6e61d842 // ucvtf v2.2d, v2.2d + WORD $0x6e61d800 // ucvtf v0.2d, v0.2d + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad030560 // stp q0, q1, [x11, #96] + WORD $0xad020d62 // stp q2, q3, [x11, #64] + WORD $0xad011d66 // stp q6, q7, [x11, #32] + WORD $0xac841564 // stp q4, q5, [x11], #128 + BNE LBB0_679 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_681: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_682: + WORD $0xfc408540 // ldr d0, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7e61d800 // ucvtf d0, d0 + WORD $0xfc008520 // str d0, [x9], #8 + BNE LBB0_682 + JMP LBB0_893 +LBB0_683: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0x2f01e660 // movi d0, #0x00ffff0000ffff + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_684: + WORD $0xacc10984 // ldp q4, q2, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e044081 // ext v1.16b, v4.16b, v4.16b, #8 + WORD $0x0e023c8d // umov w13, v4.h[0] + WORD $0x0e0a3c8f // umov w15, v4.h[2] + WORD $0x6e024043 // ext v3.16b, v2.16b, v2.16b, #8 + WORD $0x0e063c8e // umov w14, v4.h[1] + WORD $0x0e0e3c90 // umov w16, v4.h[3] + WORD $0x0e023c51 // umov w17, v2.h[0] + WORD $0x0e063c52 // umov w18, v2.h[1] + WORD $0x0e0a3c40 // umov w0, v2.h[2] + WORD $0x1e2701a4 // fmov s4, w13 + WORD $0x0e0e3c4d // umov w13, v2.h[3] + WORD $0x1e2701e2 // fmov s2, w15 + WORD $0x0e023c2f // umov w15, v1.h[0] + WORD $0x1e270006 // fmov s6, w0 + WORD $0x0e0a3c20 // umov w0, v1.h[2] + WORD $0x1e2701e7 // fmov s7, w15 + WORD $0x0e023c6f // umov w15, v3.h[0] + WORD $0x1e270010 // fmov s16, w0 + WORD $0x0e0a3c60 // umov w0, v3.h[2] + WORD $0x1e2701f1 // fmov s17, w15 + WORD $0x4e0c1da6 // mov v6.s[1], w13 + WORD $0x0e063c6d // umov w13, v3.h[1] + WORD $0x1e270225 // fmov s5, w17 + WORD $0x0e063c31 // umov w17, v1.h[1] + WORD $0x0e0e3c2f // umov w15, v1.h[3] + WORD $0x1e270001 // fmov s1, w0 + WORD $0x4e0c1db1 // mov v17.s[1], w13 + WORD $0x0e0e3c6d // umov w13, v3.h[3] + WORD $0x4e0c1dc4 // mov v4.s[1], w14 + WORD $0x4e0c1e02 // mov v2.s[1], w16 + WORD $0x4e0c1e45 // mov v5.s[1], w18 + WORD $0x4e0c1e27 // mov v7.s[1], w17 + WORD $0x4e0c1df0 // mov v16.s[1], w15 + WORD $0x4e0c1da1 // mov v1.s[1], w13 + WORD $0x0e201c83 // and v3.8b, v4.8b, v0.8b + WORD $0x0e201c42 // and v2.8b, v2.8b, v0.8b + WORD $0x0e201ca4 // and v4.8b, v5.8b, v0.8b + WORD $0x0e201cc5 // and v5.8b, v6.8b, v0.8b + WORD $0x0e201ce6 // and v6.8b, v7.8b, v0.8b + WORD $0x0e201e07 // and v7.8b, v16.8b, v0.8b + WORD $0x0e201e30 // and v16.8b, v17.8b, v0.8b + WORD $0x0e201c21 // and v1.8b, v1.8b, v0.8b + WORD $0x2f20a463 // ushll v3.2d, v3.2s, #0 + WORD $0x2f20a442 // ushll v2.2d, v2.2s, #0 + WORD $0x2f20a484 // ushll v4.2d, v4.2s, #0 + WORD $0x2f20a4a5 // ushll v5.2d, v5.2s, #0 + WORD $0x2f20a4c6 // ushll v6.2d, v6.2s, #0 + WORD $0x2f20a4e7 // ushll v7.2d, v7.2s, #0 + WORD $0x2f20a610 // ushll v16.2d, v16.2s, #0 + WORD $0x2f20a421 // ushll v1.2d, v1.2s, #0 + WORD $0x6e61d863 // ucvtf v3.2d, v3.2d + WORD $0x6e61d842 // ucvtf v2.2d, v2.2d + WORD $0x6e61d884 // ucvtf v4.2d, v4.2d + WORD $0x6e61d8a5 // ucvtf v5.2d, v5.2d + WORD $0x6e61d8c6 // ucvtf v6.2d, v6.2d + WORD $0x6e61d8e7 // ucvtf v7.2d, v7.2d + WORD $0x6e61da10 // ucvtf v16.2d, v16.2d + WORD $0x6e61d821 // ucvtf v1.2d, v1.2d + WORD $0xad021564 // stp q4, q5, [x11, #64] + WORD $0xad000963 // stp q3, q2, [x11] + WORD $0xad030570 // stp q16, q1, [x11, #96] + WORD $0xad011d66 // stp q6, q7, [x11, #32] + WORD $0x9102016b // add x11, x11, #128 + BNE LBB0_684 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_686: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_687: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e630160 // ucvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_687 + JMP LBB0_893 +LBB0_688: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_689: + WORD $0xacc10583 // ldp q3, q1, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e034060 // ext v0.16b, v3.16b, v3.16b, #8 + WORD $0x0e023c6d // umov w13, v3.h[0] + WORD $0x0e0a3c6f // umov w15, v3.h[2] + WORD $0x6e014022 // ext v2.16b, v1.16b, v1.16b, #8 + WORD $0x0e063c6e // umov w14, v3.h[1] + WORD $0x0e0e3c70 // umov w16, v3.h[3] + WORD $0x0e023c31 // umov w17, v1.h[0] + WORD $0x0e063c32 // umov w18, v1.h[1] + WORD $0x0e0a3c20 // umov w0, v1.h[2] + WORD $0x1e2701a3 // fmov s3, w13 + WORD $0x0e0e3c2d // umov w13, v1.h[3] + WORD $0x1e2701e1 // fmov s1, w15 + WORD $0x0e023c0f // umov w15, v0.h[0] + WORD $0x1e270005 // fmov s5, w0 + WORD $0x0e0a3c00 // umov w0, v0.h[2] + WORD $0x1e2701e6 // fmov s6, w15 + WORD $0x0e023c4f // umov w15, v2.h[0] + WORD $0x1e270007 // fmov s7, w0 + WORD $0x0e0a3c40 // umov w0, v2.h[2] + WORD $0x1e2701f0 // fmov s16, w15 + WORD $0x4e0c1da5 // mov v5.s[1], w13 + WORD $0x0e063c4d // umov w13, v2.h[1] + WORD $0x1e270224 // fmov s4, w17 + WORD $0x0e063c11 // umov w17, v0.h[1] + WORD $0x0e0e3c0f // umov w15, v0.h[3] + WORD $0x1e270000 // fmov s0, w0 + WORD $0x4e0c1db0 // mov v16.s[1], w13 + WORD $0x0e0e3c4d // umov w13, v2.h[3] + WORD $0x4e0c1dc3 // mov v3.s[1], w14 + WORD $0x4e0c1e01 // mov v1.s[1], w16 + WORD $0x4e0c1e44 // mov v4.s[1], w18 + WORD $0x4e0c1e26 // mov v6.s[1], w17 + WORD $0x4e0c1de7 // mov v7.s[1], w15 + WORD $0x4e0c1da0 // mov v0.s[1], w13 + WORD $0x0f305462 // shl v2.2s, v3.2s, #16 + WORD $0x0f305421 // shl v1.2s, v1.2s, #16 + WORD $0x0f305483 // shl v3.2s, v4.2s, #16 + WORD $0x0f3054a4 // shl v4.2s, v5.2s, #16 + WORD $0x0f3054c5 // shl v5.2s, v6.2s, #16 + WORD $0x0f3054e6 // shl v6.2s, v7.2s, #16 + WORD $0x0f305607 // shl v7.2s, v16.2s, #16 + WORD $0x0f305400 // shl v0.2s, v0.2s, #16 + WORD $0x0f300442 // sshr v2.2s, v2.2s, #16 + WORD $0x0f300421 // sshr v1.2s, v1.2s, #16 + WORD $0x0f300463 // sshr v3.2s, v3.2s, #16 + WORD $0x0f300484 // sshr v4.2s, v4.2s, #16 + WORD $0x0f3004a5 // sshr v5.2s, v5.2s, #16 + WORD $0x0f3004c6 // sshr v6.2s, v6.2s, #16 + WORD $0x0f3004e7 // sshr v7.2s, v7.2s, #16 + WORD $0x0f300400 // sshr v0.2s, v0.2s, #16 + WORD $0x0f20a442 // sshll v2.2d, v2.2s, #0 + WORD $0x0f20a421 // sshll v1.2d, v1.2s, #0 + WORD $0x0f20a463 // sshll v3.2d, v3.2s, #0 + WORD $0x0f20a484 // sshll v4.2d, v4.2s, #0 + WORD $0x0f20a4a5 // sshll v5.2d, v5.2s, #0 + WORD $0x0f20a4c6 // sshll v6.2d, v6.2s, #0 + WORD $0x0f20a4e7 // sshll v7.2d, v7.2s, #0 + WORD $0x0f20a400 // sshll v0.2d, v0.2s, #0 + WORD $0x4e61d842 // scvtf v2.2d, v2.2d + WORD $0x4e61d821 // scvtf v1.2d, v1.2d + WORD $0x4e61d863 // scvtf v3.2d, v3.2d + WORD $0x4e61d884 // scvtf v4.2d, v4.2d + WORD $0x4e61d8a5 // scvtf v5.2d, v5.2d + WORD $0x4e61d8c6 // scvtf v6.2d, v6.2d + WORD $0x4e61d8e7 // scvtf v7.2d, v7.2d + WORD $0x4e61d800 // scvtf v0.2d, v0.2d + WORD $0xad021163 // stp q3, q4, [x11, #64] + WORD $0xad000562 // stp q2, q1, [x11] + WORD $0xad030167 // stp q7, q0, [x11, #96] + WORD $0xad011965 // stp q5, q6, [x11, #32] + WORD $0x9102016b // add x11, x11, #128 + BNE LBB0_689 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_691: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_692: + WORD $0x78c0252b // ldrsh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e620160 // scvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_692 + JMP LBB0_893 +LBB0_693: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_694: + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0xad401584 // ldp q4, q5, [x12] + WORD $0xad411d86 // ldp q6, q7, [x12, #32] + WORD $0x4e61d821 // scvtf v1.2d, v1.2d + WORD $0x4e61d863 // scvtf v3.2d, v3.2d + WORD $0x4e61d8a5 // scvtf v5.2d, v5.2d + WORD $0x4e61d884 // scvtf v4.2d, v4.2d + WORD $0x4e61d8e7 // scvtf v7.2d, v7.2d + WORD $0x4e61d8c6 // scvtf v6.2d, v6.2d + WORD $0x4e61d842 // scvtf v2.2d, v2.2d + WORD $0x4e61d800 // scvtf v0.2d, v0.2d + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad030560 // stp q0, q1, [x11, #96] + WORD $0xad020d62 // stp q2, q3, [x11, #64] + WORD $0xad011d66 // stp q6, q7, [x11, #32] + WORD $0xac841564 // stp q4, q5, [x11], #128 + BNE LBB0_694 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_696: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_697: + WORD $0xfc408540 // ldr d0, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x5e61d800 // scvtf d0, d0 + WORD $0xfc008520 // str d0, [x9], #8 + BNE LBB0_697 + JMP LBB0_893 +LBB0_698: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_699: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0e617824 // fcvtl v4.2d, v1.2s + WORD $0x0e617805 // fcvtl v5.2d, v0.2s + WORD $0x0e617866 // fcvtl v6.2d, v3.2s + WORD $0x0e617847 // fcvtl v7.2d, v2.2s + WORD $0x4e617821 // fcvtl2 v1.2d, v1.4s + WORD $0x4e617800 // fcvtl2 v0.2d, v0.4s + WORD $0x4e617863 // fcvtl2 v3.2d, v3.4s + WORD $0x4e617842 // fcvtl2 v2.2d, v2.4s + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_699 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_701: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_702: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e22c000 // fcvt d0, s0 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_702 + JMP LBB0_893 +LBB0_703: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_704: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f20a424 // sshll v4.2d, v1.2s, #0 + WORD $0x0f20a405 // sshll v5.2d, v0.2s, #0 + WORD $0x0f20a466 // sshll v6.2d, v3.2s, #0 + WORD $0x0f20a447 // sshll v7.2d, v2.2s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0x4e61d884 // scvtf v4.2d, v4.2d + WORD $0x4e61d8a5 // scvtf v5.2d, v5.2d + WORD $0x4e61d8c6 // scvtf v6.2d, v6.2d + WORD $0x4e61d8e7 // scvtf v7.2d, v7.2d + WORD $0x4e61d821 // scvtf v1.2d, v1.2d + WORD $0x4e61d800 // scvtf v0.2d, v0.2d + WORD $0x4e61d863 // scvtf v3.2d, v3.2d + WORD $0x4e61d842 // scvtf v2.2d, v2.2d + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_704 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_706: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_707: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e620160 // scvtf d0, w11 + WORD $0xfc008540 // str d0, [x10], #8 + BNE LBB0_707 + JMP LBB0_893 +LBB0_708: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_709: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f20a424 // ushll v4.2d, v1.2s, #0 + WORD $0x2f20a405 // ushll v5.2d, v0.2s, #0 + WORD $0x2f20a466 // ushll v6.2d, v3.2s, #0 + WORD $0x2f20a447 // ushll v7.2d, v2.2s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_709 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_711: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_712: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_712 + JMP LBB0_893 +LBB0_713: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_714: + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0xad401584 // ldp q4, q5, [x12] + WORD $0xad411d86 // ldp q6, q7, [x12, #32] + WORD $0x6ee1b821 // fcvtzu v1.2d, v1.2d + WORD $0x6ee1b863 // fcvtzu v3.2d, v3.2d + WORD $0x6ee1b8a5 // fcvtzu v5.2d, v5.2d + WORD $0x6ee1b884 // fcvtzu v4.2d, v4.2d + WORD $0x6ee1b8e7 // fcvtzu v7.2d, v7.2d + WORD $0x6ee1b8c6 // fcvtzu v6.2d, v6.2d + WORD $0x6ee1b842 // fcvtzu v2.2d, v2.2d + WORD $0x6ee1b800 // fcvtzu v0.2d, v0.2d + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad030560 // stp q0, q1, [x11, #96] + WORD $0xad020d62 // stp q2, q3, [x11, #64] + WORD $0xad011d66 // stp q6, q7, [x11, #32] + WORD $0xac841564 // stp q4, q5, [x11], #128 + BNE LBB0_714 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_716: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_717: + WORD $0xfc408540 // ldr d0, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e79000b // fcvtzu x11, d0 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_717 + JMP LBB0_893 +LBB0_718: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_719: + WORD $0xacc10580 // ldp q0, q1, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f10a402 // ushll v2.4s, v0.4h, #0 + WORD $0x2f10a423 // ushll v3.4s, v1.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x2f20a444 // ushll v4.2d, v2.2s, #0 + WORD $0x2f20a465 // ushll v5.2d, v3.2s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0x2f20a406 // ushll v6.2d, v0.2s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x2f20a427 // ushll v7.2d, v1.2s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0xad030567 // stp q7, q1, [x11, #96] + WORD $0xad010166 // stp q6, q0, [x11, #32] + WORD $0xad020d65 // stp q5, q3, [x11, #64] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_719 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_721: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_722: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_722 + JMP LBB0_893 +LBB0_723: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_724: + WORD $0xacc10580 // ldp q0, q1, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f10a402 // sshll v2.4s, v0.4h, #0 + WORD $0x0f10a423 // sshll v3.4s, v1.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x0f20a444 // sshll v4.2d, v2.2s, #0 + WORD $0x0f20a465 // sshll v5.2d, v3.2s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0x0f20a406 // sshll v6.2d, v0.2s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x0f20a427 // sshll v7.2d, v1.2s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0xad030567 // stp q7, q1, [x11, #96] + WORD $0xad010166 // stp q6, q0, [x11, #32] + WORD $0xad020d65 // stp q5, q3, [x11, #64] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_724 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_726: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_727: + WORD $0x7880252b // ldrsh x11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_727 + JMP LBB0_893 +LBB0_728: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_729: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0e617824 // fcvtl v4.2d, v1.2s + WORD $0x0e617805 // fcvtl v5.2d, v0.2s + WORD $0x0e617866 // fcvtl v6.2d, v3.2s + WORD $0x0e617847 // fcvtl v7.2d, v2.2s + WORD $0x4e617821 // fcvtl2 v1.2d, v1.4s + WORD $0x4e617800 // fcvtl2 v0.2d, v0.4s + WORD $0x4e617863 // fcvtl2 v3.2d, v3.4s + WORD $0x4e617842 // fcvtl2 v2.2d, v2.4s + WORD $0x6ee1b884 // fcvtzu v4.2d, v4.2d + WORD $0x6ee1b8a5 // fcvtzu v5.2d, v5.2d + WORD $0x6ee1b8c6 // fcvtzu v6.2d, v6.2d + WORD $0x6ee1b8e7 // fcvtzu v7.2d, v7.2d + WORD $0x6ee1b821 // fcvtzu v1.2d, v1.2d + WORD $0x6ee1b800 // fcvtzu v0.2d, v0.2d + WORD $0x6ee1b863 // fcvtzu v3.2d, v3.2d + WORD $0x6ee1b842 // fcvtzu v2.2d, v2.2d + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_729 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_731: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_732: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e39000b // fcvtzu x11, s0 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_732 + JMP LBB0_893 +LBB0_733: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_734: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f20a424 // sshll v4.2d, v1.2s, #0 + WORD $0x0f20a405 // sshll v5.2d, v0.2s, #0 + WORD $0x0f20a466 // sshll v6.2d, v3.2s, #0 + WORD $0x0f20a447 // sshll v7.2d, v2.2s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_734 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_736: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_737: + WORD $0xb880452b // ldrsw x11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_737 + JMP LBB0_893 +LBB0_738: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_739: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_739 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_741: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_742: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_742 + JMP LBB0_893 +LBB0_743: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_744: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_744 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_746: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_747: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_747 + JMP LBB0_893 +LBB0_748: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_749: + WORD $0xad400983 // ldp q3, q2, [x12] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xad430181 // ldp q1, q0, [x12, #96] + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x0ea12842 // xtn v2.2s, v2.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0e0c3c6d // mov w13, v3.s[1] + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x1e26004f // fmov w15, s2 + WORD $0x4e061da3 // mov v3.h[1], w13 + WORD $0x0e0c3ced // mov w13, v7.s[1] + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0e0c3c4e // mov w14, v2.s[1] + WORD $0x4e061da7 // mov v7.h[1], w13 + WORD $0x4e0a1de3 // mov v3.h[2], w15 + WORD $0x1e2600cf // fmov w15, s6 + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0e0c3ccd // mov w13, v6.s[1] + WORD $0x4e0a1de7 // mov v7.h[2], w15 + WORD $0x4e0e1dc3 // mov v3.h[3], w14 + WORD $0x1e2600ae // fmov w14, s5 + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e0c3caf // mov w15, v5.s[1] + WORD $0x4e0e1da7 // mov v7.h[3], w13 + WORD $0x4e121dc3 // mov v3.h[4], w14 + WORD $0x1e26002e // fmov w14, s1 + WORD $0x0ea12800 // xtn v0.2s, v0.2d + WORD $0x0e0c3c2d // mov w13, v1.s[1] + WORD $0x4e121dc7 // mov v7.h[4], w14 + WORD $0x4e161de3 // mov v3.h[5], w15 + WORD $0x1e26008f // fmov w15, s4 + WORD $0x4e161da7 // mov v7.h[5], w13 + WORD $0x4e1a1de3 // mov v3.h[6], w15 + WORD $0x1e26000f // fmov w15, s0 + WORD $0x0e0c3c8e // mov w14, v4.s[1] + WORD $0x0e0c3c0d // mov w13, v0.s[1] + WORD $0x4e1a1de7 // mov v7.h[6], w15 + WORD $0x4e1e1dc3 // mov v3.h[7], w14 + WORD $0x4e1e1da7 // mov v7.h[7], w13 + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac811d63 // stp q3, q7, [x11], #32 + BNE LBB0_749 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_751: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_752: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e78000b // fcvtzs w11, d0 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_752 + JMP LBB0_893 +LBB0_753: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_754: + WORD $0xad400983 // ldp q3, q2, [x12] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xad430181 // ldp q1, q0, [x12, #96] + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x0ea12842 // xtn v2.2s, v2.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0e0c3c6d // mov w13, v3.s[1] + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x1e26004f // fmov w15, s2 + WORD $0x4e061da3 // mov v3.h[1], w13 + WORD $0x0e0c3ced // mov w13, v7.s[1] + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0e0c3c4e // mov w14, v2.s[1] + WORD $0x4e061da7 // mov v7.h[1], w13 + WORD $0x4e0a1de3 // mov v3.h[2], w15 + WORD $0x1e2600cf // fmov w15, s6 + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0e0c3ccd // mov w13, v6.s[1] + WORD $0x4e0a1de7 // mov v7.h[2], w15 + WORD $0x4e0e1dc3 // mov v3.h[3], w14 + WORD $0x1e2600ae // fmov w14, s5 + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e0c3caf // mov w15, v5.s[1] + WORD $0x4e0e1da7 // mov v7.h[3], w13 + WORD $0x4e121dc3 // mov v3.h[4], w14 + WORD $0x1e26002e // fmov w14, s1 + WORD $0x0ea12800 // xtn v0.2s, v0.2d + WORD $0x0e0c3c2d // mov w13, v1.s[1] + WORD $0x4e121dc7 // mov v7.h[4], w14 + WORD $0x4e161de3 // mov v3.h[5], w15 + WORD $0x1e26008f // fmov w15, s4 + WORD $0x4e161da7 // mov v7.h[5], w13 + WORD $0x4e1a1de3 // mov v3.h[6], w15 + WORD $0x1e26000f // fmov w15, s0 + WORD $0x0e0c3c8e // mov w14, v4.s[1] + WORD $0x0e0c3c0d // mov w13, v0.s[1] + WORD $0x4e1a1de7 // mov v7.h[6], w15 + WORD $0x4e1e1dc3 // mov v3.h[7], w14 + WORD $0x4e1e1da7 // mov v7.h[7], w13 + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac811d63 // stp q3, q7, [x11], #32 + BNE LBB0_754 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_756: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_757: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e78000b // fcvtzs w11, d0 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_757 + JMP LBB0_893 +LBB0_758: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_759: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x0e6128e4 // xtn v4.4h, v7.4s + WORD $0x4e6128a4 // xtn2 v4.8h, v5.4s + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0x0e612820 // xtn v0.4h, v1.4s + WORD $0x4e612860 // xtn2 v0.8h, v3.4s + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac810164 // stp q4, q0, [x11], #32 + BNE LBB0_759 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_761: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_762: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_762 + JMP LBB0_893 +LBB0_763: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_764: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x0e6128e4 // xtn v4.4h, v7.4s + WORD $0x4e6128a4 // xtn2 v4.8h, v5.4s + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0x0e612820 // xtn v0.4h, v1.4s + WORD $0x4e612860 // xtn2 v0.8h, v3.4s + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac810164 // stp q4, q0, [x11], #32 + BNE LBB0_764 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_766: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_767: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_767 + JMP LBB0_893 +LBB0_768: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_769: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x0e6128e4 // xtn v4.4h, v7.4s + WORD $0x4e6128a4 // xtn2 v4.8h, v5.4s + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0x0e612820 // xtn v0.4h, v1.4s + WORD $0x4e612860 // xtn2 v0.8h, v3.4s + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac810164 // stp q4, q0, [x11], #32 + BNE LBB0_769 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_771: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_772: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_772 + JMP LBB0_893 +LBB0_773: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_774: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x0e6128e4 // xtn v4.4h, v7.4s + WORD $0x4e6128a4 // xtn2 v4.8h, v5.4s + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0x0e612820 // xtn v0.4h, v1.4s + WORD $0x4e612860 // xtn2 v0.8h, v3.4s + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xac810164 // stp q4, q0, [x11], #32 + BNE LBB0_774 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_776: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_777: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_777 + JMP LBB0_893 +LBB0_778: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_779: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x6ea1b821 // fcvtzu v1.4s, v1.4s + WORD $0x6ea1b863 // fcvtzu v3.4s, v3.4s + WORD $0x6ea1b8a5 // fcvtzu v5.4s, v5.4s + WORD $0x6ea1b8e7 // fcvtzu v7.4s, v7.4s + WORD $0x6ea1b842 // fcvtzu v2.4s, v2.4s + WORD $0x6ea1b800 // fcvtzu v0.4s, v0.4s + WORD $0x6ea1b8c6 // fcvtzu v6.4s, v6.4s + WORD $0x6ea1b884 // fcvtzu v4.4s, v4.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_779 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_781: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_782: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e38000b // fcvtzs w11, s0 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_782 + JMP LBB0_893 +LBB0_783: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_784: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x4ea1b821 // fcvtzs v1.4s, v1.4s + WORD $0x4ea1b863 // fcvtzs v3.4s, v3.4s + WORD $0x4ea1b8a5 // fcvtzs v5.4s, v5.4s + WORD $0x4ea1b8e7 // fcvtzs v7.4s, v7.4s + WORD $0x4ea1b842 // fcvtzs v2.4s, v2.4s + WORD $0x4ea1b800 // fcvtzs v0.4s, v0.4s + WORD $0x4ea1b8c6 // fcvtzs v6.4s, v6.4s + WORD $0x4ea1b884 // fcvtzs v4.4s, v4.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_784 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_786: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_787: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e38000b // fcvtzs w11, s0 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_787 + JMP LBB0_893 +LBB0_788: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_789: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_789 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_791: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_792: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_792 + JMP LBB0_893 +LBB0_793: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_794: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0d61 // stp q1, q3, [x11, #-32] + WORD $0xac821d65 // stp q5, q7, [x11], #64 + BNE LBB0_794 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_796: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09046a // add x10, x3, x9, lsl #1 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_797: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7800254b // strh w11, [x10], #2 + BNE LBB0_797 + JMP LBB0_893 +LBB0_798: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_799: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f20a424 // ushll v4.2d, v1.2s, #0 + WORD $0x2f20a405 // ushll v5.2d, v0.2s, #0 + WORD $0x2f20a466 // ushll v6.2d, v3.2s, #0 + WORD $0x2f20a447 // ushll v7.2d, v2.2s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_799 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_801: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_802: + WORD $0xb840452b // ldr w11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_802 + JMP LBB0_893 +LBB0_803: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_804: + WORD $0xad7f0540 // ldp q0, q1, [x10, #-32] + WORD $0xad7e0d42 // ldp q2, q3, [x10, #-64] + WORD $0xad411544 // ldp q4, q5, [x10, #32] + WORD $0xacc41d46 // ldp q6, q7, [x10], #128 + WORD $0x6e21d821 // ucvtf v1.4s, v1.4s + WORD $0x6e21d863 // ucvtf v3.4s, v3.4s + WORD $0x6e21d842 // ucvtf v2.4s, v2.4s + WORD $0x6e21d800 // ucvtf v0.4s, v0.4s + WORD $0x6e21d8e7 // ucvtf v7.4s, v7.4s + WORD $0x6e21d8c6 // ucvtf v6.4s, v6.4s + WORD $0x6e21d8a5 // ucvtf v5.4s, v5.4s + WORD $0x6e21d884 // ucvtf v4.4s, v4.4s + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0560 // stp q0, q1, [x11, #-32] + WORD $0xad3e0d62 // stp q2, q3, [x11, #-64] + WORD $0xad011564 // stp q4, q5, [x11, #32] + WORD $0xac841d66 // stp q6, q7, [x11], #128 + BNE LBB0_804 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_806: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_807: + WORD $0xbc404540 // ldr s0, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x7e21d800 // ucvtf s0, s0 + WORD $0xbc004520 // str s0, [x9], #4 + BNE LBB0_807 + JMP LBB0_893 +LBB0_808: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_809: + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0xad401584 // ldp q4, q5, [x12] + WORD $0xad411d86 // ldp q6, q7, [x12, #32] + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad030560 // stp q0, q1, [x11, #96] + WORD $0xad020d62 // stp q2, q3, [x11, #64] + WORD $0xad011d66 // stp q6, q7, [x11, #32] + WORD $0xac841564 // stp q4, q5, [x11], #128 + BNE LBB0_809 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_811: + WORD $0xd37df12a // lsl x10, x9, #3 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_812: + WORD $0xfc408540 // ldr d0, [x10], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e78000b // fcvtzs x11, d0 + WORD $0xf800852b // str x11, [x9], #8 + BNE LBB0_812 + JMP LBB0_893 +LBB0_813: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_814: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0e616821 // fcvtn v1.2s, v1.2d + WORD $0x0e616863 // fcvtn v3.2s, v3.2d + WORD $0x0e6168a5 // fcvtn v5.2s, v5.2d + WORD $0x0e6168e7 // fcvtn v7.2s, v7.2d + WORD $0x4e616885 // fcvtn2 v5.4s, v4.2d + WORD $0x4e6168c7 // fcvtn2 v7.4s, v6.2d + WORD $0x4e616843 // fcvtn2 v3.4s, v2.2d + WORD $0x4e616801 // fcvtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_814 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_816: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_817: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e624000 // fcvt s0, d0 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_817 + JMP LBB0_893 +LBB0_818: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_819: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x6e61d821 // ucvtf v1.2d, v1.2d + WORD $0x6e61d863 // ucvtf v3.2d, v3.2d + WORD $0x6e61d8a5 // ucvtf v5.2d, v5.2d + WORD $0x6e61d8e7 // ucvtf v7.2d, v7.2d + WORD $0x6e61d884 // ucvtf v4.2d, v4.2d + WORD $0x6e61d8c6 // ucvtf v6.2d, v6.2d + WORD $0x6e61d842 // ucvtf v2.2d, v2.2d + WORD $0x6e61d800 // ucvtf v0.2d, v0.2d + WORD $0x0e6168a5 // fcvtn v5.2s, v5.2d + WORD $0x0e6168e7 // fcvtn v7.2s, v7.2d + WORD $0x0e616863 // fcvtn v3.2s, v3.2d + WORD $0x0e616821 // fcvtn v1.2s, v1.2d + WORD $0x4e616885 // fcvtn2 v5.4s, v4.2d + WORD $0x4e6168c7 // fcvtn2 v7.4s, v6.2d + WORD $0x4e616843 // fcvtn2 v3.4s, v2.2d + WORD $0x4e616801 // fcvtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_819 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_821: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_822: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e230160 // ucvtf s0, x11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_822 + JMP LBB0_893 +LBB0_823: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_824: + WORD $0xacc10580 // ldp q0, q1, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f10a402 // ushll v2.4s, v0.4h, #0 + WORD $0x2f10a423 // ushll v3.4s, v1.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x2f20a444 // ushll v4.2d, v2.2s, #0 + WORD $0x2f20a465 // ushll v5.2d, v3.2s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0x2f20a406 // ushll v6.2d, v0.2s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x2f20a427 // ushll v7.2d, v1.2s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0xad030567 // stp q7, q1, [x11, #96] + WORD $0xad010166 // stp q6, q0, [x11, #32] + WORD $0xad020d65 // stp q5, q3, [x11, #64] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_824 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_826: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_827: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_827 + JMP LBB0_893 +LBB0_828: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_829: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f10a424 // ushll v4.4s, v1.4h, #0 + WORD $0x2f10a405 // ushll v5.4s, v0.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f10a466 // ushll v6.4s, v3.4h, #0 + WORD $0x2f10a447 // ushll v7.4s, v2.4h, #0 + WORD $0x6f10a463 // ushll2 v3.4s, v3.8h, #0 + WORD $0x6f10a442 // ushll2 v2.4s, v2.8h, #0 + WORD $0x6e21d884 // ucvtf v4.4s, v4.4s + WORD $0x6e21d8a5 // ucvtf v5.4s, v5.4s + WORD $0x6e21d821 // ucvtf v1.4s, v1.4s + WORD $0x6e21d800 // ucvtf v0.4s, v0.4s + WORD $0x6e21d8c6 // ucvtf v6.4s, v6.4s + WORD $0x6e21d8e7 // ucvtf v7.4s, v7.4s + WORD $0x6e21d863 // ucvtf v3.4s, v3.4s + WORD $0x6e21d842 // ucvtf v2.4s, v2.4s + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_829 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_831: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_832: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e230160 // ucvtf s0, w11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_832 + JMP LBB0_893 +LBB0_833: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_834: + WORD $0xacc10580 // ldp q0, q1, [x12], #32 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f10a402 // sshll v2.4s, v0.4h, #0 + WORD $0x0f10a423 // sshll v3.4s, v1.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x0f20a444 // sshll v4.2d, v2.2s, #0 + WORD $0x0f20a465 // sshll v5.2d, v3.2s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0x0f20a406 // sshll v6.2d, v0.2s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x0f20a427 // sshll v7.2d, v1.2s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0xad030567 // stp q7, q1, [x11, #96] + WORD $0xad010166 // stp q6, q0, [x11, #32] + WORD $0xad020d65 // stp q5, q3, [x11, #64] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_834 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_836: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_837: + WORD $0x7880252b // ldrsh x11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_837 + JMP LBB0_893 +LBB0_838: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_839: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f10a424 // sshll v4.4s, v1.4h, #0 + WORD $0x0f10a405 // sshll v5.4s, v0.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f10a466 // sshll v6.4s, v3.4h, #0 + WORD $0x0f10a447 // sshll v7.4s, v2.4h, #0 + WORD $0x4f10a463 // sshll2 v3.4s, v3.8h, #0 + WORD $0x4f10a442 // sshll2 v2.4s, v2.8h, #0 + WORD $0x4e21d884 // scvtf v4.4s, v4.4s + WORD $0x4e21d8a5 // scvtf v5.4s, v5.4s + WORD $0x4e21d821 // scvtf v1.4s, v1.4s + WORD $0x4e21d800 // scvtf v0.4s, v0.4s + WORD $0x4e21d8c6 // scvtf v6.4s, v6.4s + WORD $0x4e21d8e7 // scvtf v7.4s, v7.4s + WORD $0x4e21d863 // scvtf v3.4s, v3.4s + WORD $0x4e21d842 // scvtf v2.4s, v2.4s + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_839 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_841: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_842: + WORD $0x78c0252b // ldrsh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e220160 // scvtf s0, w11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_842 + JMP LBB0_893 +LBB0_843: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_844: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x4e61d821 // scvtf v1.2d, v1.2d + WORD $0x4e61d863 // scvtf v3.2d, v3.2d + WORD $0x4e61d8a5 // scvtf v5.2d, v5.2d + WORD $0x4e61d8e7 // scvtf v7.2d, v7.2d + WORD $0x4e61d884 // scvtf v4.2d, v4.2d + WORD $0x4e61d8c6 // scvtf v6.2d, v6.2d + WORD $0x4e61d842 // scvtf v2.2d, v2.2d + WORD $0x4e61d800 // scvtf v0.2d, v0.2d + WORD $0x0e6168a5 // fcvtn v5.2s, v5.2d + WORD $0x0e6168e7 // fcvtn v7.2s, v7.2d + WORD $0x0e616863 // fcvtn v3.2s, v3.2d + WORD $0x0e616821 // fcvtn v1.2s, v1.2d + WORD $0x4e616885 // fcvtn2 v5.4s, v4.2d + WORD $0x4e6168c7 // fcvtn2 v7.4s, v6.2d + WORD $0x4e616843 // fcvtn2 v3.4s, v2.2d + WORD $0x4e616801 // fcvtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_844 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_846: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_847: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e220160 // scvtf s0, x11 + WORD $0xbc004540 // str s0, [x10], #4 + BNE LBB0_847 + JMP LBB0_893 +LBB0_848: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_849: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0e617824 // fcvtl v4.2d, v1.2s + WORD $0x0e617805 // fcvtl v5.2d, v0.2s + WORD $0x0e617866 // fcvtl v6.2d, v3.2s + WORD $0x0e617847 // fcvtl v7.2d, v2.2s + WORD $0x4e617821 // fcvtl2 v1.2d, v1.4s + WORD $0x4e617800 // fcvtl2 v0.2d, v0.4s + WORD $0x4e617863 // fcvtl2 v3.2d, v3.4s + WORD $0x4e617842 // fcvtl2 v2.2d, v2.4s + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_849 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_851: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_852: + WORD $0xbc404520 // ldr s0, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x9e38000b // fcvtzs x11, s0 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_852 + JMP LBB0_893 +LBB0_853: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_854: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0x9101018c // add x12, x12, #64 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f20a424 // sshll v4.2d, v1.2s, #0 + WORD $0x0f20a405 // sshll v5.2d, v0.2s, #0 + WORD $0x0f20a466 // sshll v6.2d, v3.2s, #0 + WORD $0x0f20a447 // sshll v7.2d, v2.2s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0xad030967 // stp q7, q2, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010165 // stp q5, q0, [x11, #32] + WORD $0xac840564 // stp q4, q1, [x11], #128 + BNE LBB0_854 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_856: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b090c6a // add x10, x3, x9, lsl #3 + WORD $0x8b090849 // add x9, x2, x9, lsl #2 +LBB0_857: + WORD $0xb880452b // ldrsw x11, [x9], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xf800854b // str x11, [x10], #8 + BNE LBB0_857 + JMP LBB0_893 +LBB0_858: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_859: + WORD $0xad7f0540 // ldp q0, q1, [x10, #-32] + WORD $0xad7e0d42 // ldp q2, q3, [x10, #-64] + WORD $0xad411544 // ldp q4, q5, [x10, #32] + WORD $0xacc41d46 // ldp q6, q7, [x10], #128 + WORD $0x4e21d821 // scvtf v1.4s, v1.4s + WORD $0x4e21d863 // scvtf v3.4s, v3.4s + WORD $0x4e21d842 // scvtf v2.4s, v2.4s + WORD $0x4e21d800 // scvtf v0.4s, v0.4s + WORD $0x4e21d8e7 // scvtf v7.4s, v7.4s + WORD $0x4e21d8c6 // scvtf v6.4s, v6.4s + WORD $0x4e21d8a5 // scvtf v5.4s, v5.4s + WORD $0x4e21d884 // scvtf v4.4s, v4.4s + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0560 // stp q0, q1, [x11, #-32] + WORD $0xad3e0d62 // stp q2, q3, [x11, #-64] + WORD $0xad011564 // stp q4, q5, [x11, #32] + WORD $0xac841d66 // stp q6, q7, [x11], #128 + BNE LBB0_859 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_861: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_862: + WORD $0xbc404540 // ldr s0, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x5e21d800 // scvtf s0, s0 + WORD $0xbc004520 // str s0, [x9], #4 + BNE LBB0_862 + JMP LBB0_893 +LBB0_863: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_864: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_864 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_866: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_867: + WORD $0xfc408520 // ldr d0, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e78000b // fcvtzs w11, d0 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_867 + JMP LBB0_893 +LBB0_868: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_869: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_869 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_871: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_872: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_872 + JMP LBB0_893 +LBB0_873: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_874: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f10a424 // ushll v4.4s, v1.4h, #0 + WORD $0x2f10a405 // ushll v5.4s, v0.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f10a466 // ushll v6.4s, v3.4h, #0 + WORD $0x2f10a447 // ushll v7.4s, v2.4h, #0 + WORD $0x6f10a463 // ushll2 v3.4s, v3.8h, #0 + WORD $0x6f10a442 // ushll2 v2.4s, v2.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_874 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_876: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_877: + WORD $0x7840252b // ldrh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_877 + JMP LBB0_893 +LBB0_878: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_879: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f10a424 // sshll v4.4s, v1.4h, #0 + WORD $0x0f10a405 // sshll v5.4s, v0.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f10a466 // sshll v6.4s, v3.4h, #0 + WORD $0x0f10a447 // sshll v7.4s, v2.4h, #0 + WORD $0x4f10a463 // sshll2 v3.4s, v3.8h, #0 + WORD $0x4f10a442 // sshll2 v2.4s, v2.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0564 // stp q4, q1, [x11, #-64] + WORD $0xad010967 // stp q7, q2, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_879 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_881: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090449 // add x9, x2, x9, lsl #1 +LBB0_882: + WORD $0x78c0252b // ldrsh w11, [x9], #2 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_882 + JMP LBB0_893 +LBB0_883: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_884: + WORD $0xad420181 // ldp q1, q0, [x12, #64] + WORD $0xad430983 // ldp q3, q2, [x12, #96] + WORD $0xad411185 // ldp q5, q4, [x12, #32] + WORD $0xacc41987 // ldp q7, q6, [x12], #128 + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x4ea12885 // xtn2 v5.4s, v4.2d + WORD $0x4ea128c7 // xtn2 v7.4s, v6.2d + WORD $0x4ea12843 // xtn2 v3.4s, v2.2d + WORD $0x4ea12801 // xtn2 v1.4s, v0.2d + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad010d61 // stp q1, q3, [x11, #32] + WORD $0xac821567 // stp q7, q5, [x11], #64 + BNE LBB0_884 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_886: + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b09086a // add x10, x3, x9, lsl #2 + WORD $0x8b090c49 // add x9, x2, x9, lsl #3 +LBB0_887: + WORD $0xf840852b // ldr x11, [x9], #8 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0xb800454b // str w11, [x10], #4 + BNE LBB0_887 + JMP LBB0_893 +LBB0_888: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_889: + WORD $0xad7f0540 // ldp q0, q1, [x10, #-32] + WORD $0xad7e0d42 // ldp q2, q3, [x10, #-64] + WORD $0xad411544 // ldp q4, q5, [x10, #32] + WORD $0xacc41d46 // ldp q6, q7, [x10], #128 + WORD $0x4ea1b821 // fcvtzs v1.4s, v1.4s + WORD $0x4ea1b863 // fcvtzs v3.4s, v3.4s + WORD $0x4ea1b842 // fcvtzs v2.4s, v2.4s + WORD $0x4ea1b800 // fcvtzs v0.4s, v0.4s + WORD $0x4ea1b8e7 // fcvtzs v7.4s, v7.4s + WORD $0x4ea1b8c6 // fcvtzs v6.4s, v6.4s + WORD $0x4ea1b8a5 // fcvtzs v5.4s, v5.4s + WORD $0x4ea1b884 // fcvtzs v4.4s, v4.4s + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0560 // stp q0, q1, [x11, #-32] + WORD $0xad3e0d62 // stp q2, q3, [x11, #-64] + WORD $0xad011564 // stp q4, q5, [x11, #32] + WORD $0xac841d66 // stp q6, q7, [x11], #128 + BNE LBB0_889 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 +LBB0_891: + WORD $0xd37ef52a // lsl x10, x9, #2 + WORD $0xcb090108 // sub x8, x8, x9 + WORD $0x8b0a0069 // add x9, x3, x10 + WORD $0x8b0a004a // add x10, x2, x10 +LBB0_892: + WORD $0xbc404540 // ldr s0, [x10], #4 + WORD $0xf1000508 // subs x8, x8, #1 + WORD $0x1e38000b // fcvtzs w11, s0 + WORD $0xb800452b // str w11, [x9], #4 + BNE LBB0_892 +LBB0_893: + WORD $0xa8c17bfd // ldp x29, x30, [sp], #16 + RET +LBB0_894: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_895: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0963 // stp q3, q2, [x11, #-32] + WORD $0xad3e0161 // stp q1, q0, [x11, #-64] + WORD $0xad011967 // stp q7, q6, [x11, #32] + WORD $0xac841165 // stp q5, q4, [x11], #128 + BNE LBB0_895 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_15 +LBB0_897: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_898: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f08a402 // sshll v2.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f08a423 // sshll v3.8h, v1.8b, #0 + WORD $0x4f08a421 // sshll2 v1.8h, v1.16b, #0 + WORD $0x0f10a444 // sshll v4.4s, v2.4h, #0 + WORD $0x4f10a442 // sshll2 v2.4s, v2.8h, #0 + WORD $0x0f10a405 // sshll v5.4s, v0.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f10a466 // sshll v6.4s, v3.4h, #0 + WORD $0x4f10a463 // sshll2 v3.4s, v3.8h, #0 + WORD $0x0f10a427 // sshll v7.4s, v1.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0964 // stp q4, q2, [x11, #-64] + WORD $0xad010567 // stp q7, q1, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_898 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_41 +LBB0_900: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_901: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f08a402 // ushll v2.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f08a423 // ushll v3.8h, v1.8b, #0 + WORD $0x6f08a421 // ushll2 v1.8h, v1.16b, #0 + WORD $0x2f10a444 // ushll v4.4s, v2.4h, #0 + WORD $0x6f10a442 // ushll2 v2.4s, v2.8h, #0 + WORD $0x2f10a405 // ushll v5.4s, v0.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f10a466 // ushll v6.4s, v3.4h, #0 + WORD $0x6f10a463 // ushll2 v3.4s, v3.8h, #0 + WORD $0x2f10a427 // ushll v7.4s, v1.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0964 // stp q4, q2, [x11, #-64] + WORD $0xad010567 // stp q7, q1, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_901 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_95 +LBB0_903: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_904: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0963 // stp q3, q2, [x11, #-32] + WORD $0xad3e0161 // stp q1, q0, [x11, #-64] + WORD $0xad011967 // stp q7, q6, [x11, #32] + WORD $0xac841165 // stp q5, q4, [x11], #128 + BNE LBB0_904 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_107 +LBB0_906: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_907: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0xad431185 // ldp q5, q4, [x12, #96] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad031165 // stp q5, q4, [x11, #96] + WORD $0xad021967 // stp q7, q6, [x11, #64] + WORD $0xad010963 // stp q3, q2, [x11, #32] + WORD $0xac840161 // stp q1, q0, [x11], #128 + BNE LBB0_907 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_125 +LBB0_909: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_910: + WORD $0x3cc10581 // ldr q1, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e014020 // ext v0.16b, v1.16b, v1.16b, #8 + WORD $0x0e013c2d // umov w13, v1.b[0] + WORD $0x0e053c2f // umov w15, v1.b[2] + WORD $0x0e093c31 // umov w17, v1.b[4] + WORD $0x1e2701a2 // fmov s2, w13 + WORD $0x0e0b3c2d // umov w13, v1.b[5] + WORD $0x1e2701e3 // fmov s3, w15 + WORD $0x0e0d3c2f // umov w15, v1.b[6] + WORD $0x1e270224 // fmov s4, w17 + WORD $0x0e013c11 // umov w17, v0.b[0] + WORD $0x1e2701e5 // fmov s5, w15 + WORD $0x0e053c0f // umov w15, v0.b[2] + WORD $0x1e270226 // fmov s6, w17 + WORD $0x4e0c1da4 // mov v4.s[1], w13 + WORD $0x0e033c0d // umov w13, v0.b[1] + WORD $0x0e093c11 // umov w17, v0.b[4] + WORD $0x1e2701e7 // fmov s7, w15 + WORD $0x4e0c1da6 // mov v6.s[1], w13 + WORD $0x0e073c0d // umov w13, v0.b[3] + WORD $0x0e0d3c0f // umov w15, v0.b[6] + WORD $0x1e270230 // fmov s16, w17 + WORD $0x4e0c1da7 // mov v7.s[1], w13 + WORD $0x0e0b3c0d // umov w13, v0.b[5] + WORD $0x0e033c2e // umov w14, v1.b[1] + WORD $0x0e073c30 // umov w16, v1.b[3] + WORD $0x0e0f3c31 // umov w17, v1.b[7] + WORD $0x1e2701e1 // fmov s1, w15 + WORD $0x4e0c1db0 // mov v16.s[1], w13 + WORD $0x0e0f3c0d // umov w13, v0.b[7] + WORD $0x4e0c1dc2 // mov v2.s[1], w14 + WORD $0x4e0c1e03 // mov v3.s[1], w16 + WORD $0x4e0c1e25 // mov v5.s[1], w17 + WORD $0x4e0c1da1 // mov v1.s[1], w13 + WORD $0x0f385440 // shl v0.2s, v2.2s, #24 + WORD $0x0f385462 // shl v2.2s, v3.2s, #24 + WORD $0x0f385483 // shl v3.2s, v4.2s, #24 + WORD $0x0f3854a4 // shl v4.2s, v5.2s, #24 + WORD $0x0f3854c5 // shl v5.2s, v6.2s, #24 + WORD $0x0f3854e6 // shl v6.2s, v7.2s, #24 + WORD $0x0f385607 // shl v7.2s, v16.2s, #24 + WORD $0x0f385421 // shl v1.2s, v1.2s, #24 + WORD $0x0f280400 // sshr v0.2s, v0.2s, #24 + WORD $0x0f280442 // sshr v2.2s, v2.2s, #24 + WORD $0x0f280463 // sshr v3.2s, v3.2s, #24 + WORD $0x0f280484 // sshr v4.2s, v4.2s, #24 + WORD $0x0f2804a5 // sshr v5.2s, v5.2s, #24 + WORD $0x0f2804c6 // sshr v6.2s, v6.2s, #24 + WORD $0x0f2804e7 // sshr v7.2s, v7.2s, #24 + WORD $0x0f280421 // sshr v1.2s, v1.2s, #24 + WORD $0x0f20a400 // sshll v0.2d, v0.2s, #0 + WORD $0x0f20a442 // sshll v2.2d, v2.2s, #0 + WORD $0x0f20a463 // sshll v3.2d, v3.2s, #0 + WORD $0x0f20a484 // sshll v4.2d, v4.2s, #0 + WORD $0x0f20a4a5 // sshll v5.2d, v5.2s, #0 + WORD $0x0f20a4c6 // sshll v6.2d, v6.2s, #0 + WORD $0x0f20a4e7 // sshll v7.2d, v7.2s, #0 + WORD $0x0f20a421 // sshll v1.2d, v1.2s, #0 + WORD $0x4e61d800 // scvtf v0.2d, v0.2d + WORD $0x4e61d842 // scvtf v2.2d, v2.2d + WORD $0x4e61d863 // scvtf v3.2d, v3.2d + WORD $0x4e61d884 // scvtf v4.2d, v4.2d + WORD $0x4e61d8a5 // scvtf v5.2d, v5.2d + WORD $0x4e61d8c6 // scvtf v6.2d, v6.2d + WORD $0x4e61d8e7 // scvtf v7.2d, v7.2d + WORD $0x4e61d821 // scvtf v1.2d, v1.2d + WORD $0xad011163 // stp q3, q4, [x11, #32] + WORD $0xad000960 // stp q0, q2, [x11] + WORD $0xad030567 // stp q7, q1, [x11, #96] + WORD $0xad021965 // stp q5, q6, [x11, #64] + WORD $0x9102016b // add x11, x11, #128 + BNE LBB0_910 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_136 +LBB0_912: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0x2f00e620 // movi d0, #0x0000ff000000ff + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_913: + WORD $0x3cc10582 // ldr q2, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e024041 // ext v1.16b, v2.16b, v2.16b, #8 + WORD $0x0e013c4d // umov w13, v2.b[0] + WORD $0x0e053c4f // umov w15, v2.b[2] + WORD $0x0e093c51 // umov w17, v2.b[4] + WORD $0x1e2701a3 // fmov s3, w13 + WORD $0x0e0b3c4d // umov w13, v2.b[5] + WORD $0x1e2701e4 // fmov s4, w15 + WORD $0x0e0d3c4f // umov w15, v2.b[6] + WORD $0x1e270225 // fmov s5, w17 + WORD $0x0e013c31 // umov w17, v1.b[0] + WORD $0x1e2701e6 // fmov s6, w15 + WORD $0x0e053c2f // umov w15, v1.b[2] + WORD $0x1e270227 // fmov s7, w17 + WORD $0x4e0c1da5 // mov v5.s[1], w13 + WORD $0x0e033c2d // umov w13, v1.b[1] + WORD $0x0e093c31 // umov w17, v1.b[4] + WORD $0x1e2701f0 // fmov s16, w15 + WORD $0x4e0c1da7 // mov v7.s[1], w13 + WORD $0x0e073c2d // umov w13, v1.b[3] + WORD $0x0e0d3c2f // umov w15, v1.b[6] + WORD $0x1e270231 // fmov s17, w17 + WORD $0x4e0c1db0 // mov v16.s[1], w13 + WORD $0x0e0b3c2d // umov w13, v1.b[5] + WORD $0x0e033c4e // umov w14, v2.b[1] + WORD $0x0e073c50 // umov w16, v2.b[3] + WORD $0x0e0f3c51 // umov w17, v2.b[7] + WORD $0x1e2701e2 // fmov s2, w15 + WORD $0x4e0c1db1 // mov v17.s[1], w13 + WORD $0x0e0f3c2d // umov w13, v1.b[7] + WORD $0x4e0c1dc3 // mov v3.s[1], w14 + WORD $0x4e0c1e04 // mov v4.s[1], w16 + WORD $0x4e0c1e26 // mov v6.s[1], w17 + WORD $0x4e0c1da2 // mov v2.s[1], w13 + WORD $0x0e201c61 // and v1.8b, v3.8b, v0.8b + WORD $0x0e201c83 // and v3.8b, v4.8b, v0.8b + WORD $0x0e201ca4 // and v4.8b, v5.8b, v0.8b + WORD $0x0e201cc5 // and v5.8b, v6.8b, v0.8b + WORD $0x0e201ce6 // and v6.8b, v7.8b, v0.8b + WORD $0x0e201e07 // and v7.8b, v16.8b, v0.8b + WORD $0x0e201e30 // and v16.8b, v17.8b, v0.8b + WORD $0x0e201c42 // and v2.8b, v2.8b, v0.8b + WORD $0x2f20a421 // ushll v1.2d, v1.2s, #0 + WORD $0x2f20a463 // ushll v3.2d, v3.2s, #0 + WORD $0x2f20a484 // ushll v4.2d, v4.2s, #0 + WORD $0x2f20a4a5 // ushll v5.2d, v5.2s, #0 + WORD $0x2f20a4c6 // ushll v6.2d, v6.2s, #0 + WORD $0x2f20a4e7 // ushll v7.2d, v7.2s, #0 + WORD $0x2f20a610 // ushll v16.2d, v16.2s, #0 + WORD $0x2f20a442 // ushll v2.2d, v2.2s, #0 + WORD $0x6e61d821 // ucvtf v1.2d, v1.2d + WORD $0x6e61d863 // ucvtf v3.2d, v3.2d + WORD $0x6e61d884 // ucvtf v4.2d, v4.2d + WORD $0x6e61d8a5 // ucvtf v5.2d, v5.2d + WORD $0x6e61d8c6 // ucvtf v6.2d, v6.2d + WORD $0x6e61d8e7 // ucvtf v7.2d, v7.2d + WORD $0x6e61da10 // ucvtf v16.2d, v16.2d + WORD $0x6e61d842 // ucvtf v2.2d, v2.2d + WORD $0xad011564 // stp q4, q5, [x11, #32] + WORD $0xad000d61 // stp q1, q3, [x11] + WORD $0xad030970 // stp q16, q2, [x11, #96] + WORD $0xad021d66 // stp q6, q7, [x11, #64] + WORD $0x9102016b // add x11, x11, #128 + BNE LBB0_913 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_182 +LBB0_915: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_916: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e212820 // xtn v0.8b, v1.8h + WORD $0x4e212860 // xtn2 v0.16b, v3.8h + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x0e2128a1 // xtn v1.8b, v5.8h + WORD $0x4e2128e1 // xtn2 v1.16b, v7.8h + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_916 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_198 +LBB0_918: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_919: + WORD $0xad401d84 // ldp q4, q7, [x12] + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad411985 // ldp q5, q6, [x12, #32] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x0e471884 // uzp1 v4.4h, v4.4h, v7.4h + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12800 // xtn v0.2s, v0.2d + WORD $0x0e023c8d // umov w13, v4.h[0] + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x0e411800 // uzp1 v0.4h, v0.4h, v1.4h + WORD $0x0e063c8e // umov w14, v4.h[1] + WORD $0x1e2701a1 // fmov s1, w13 + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0e0a3c8d // umov w13, v4.h[2] + WORD $0x4e031dc1 // mov v1.b[1], w14 + WORD $0x0e4618a5 // uzp1 v5.4h, v5.4h, v6.4h + WORD $0x0e0e3c8e // umov w14, v4.h[3] + WORD $0x4e051da1 // mov v1.b[2], w13 + WORD $0x0e023cad // umov w13, v5.h[0] + WORD $0x4e071dc1 // mov v1.b[3], w14 + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x0e063cae // umov w14, v5.h[1] + WORD $0x4e091da1 // mov v1.b[4], w13 + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea12842 // xtn v2.2s, v2.2d + WORD $0x0e0a3cad // umov w13, v5.h[2] + WORD $0x4e0b1dc1 // mov v1.b[5], w14 + WORD $0x0e431842 // uzp1 v2.4h, v2.4h, v3.4h + WORD $0x0e0e3cae // umov w14, v5.h[3] + WORD $0x4e0d1da1 // mov v1.b[6], w13 + WORD $0x0e023c4d // umov w13, v2.h[0] + WORD $0x4e0f1dc1 // mov v1.b[7], w14 + WORD $0x0e063c4e // umov w14, v2.h[1] + WORD $0x4e111da1 // mov v1.b[8], w13 + WORD $0x0e0a3c4d // umov w13, v2.h[2] + WORD $0x4e131dc1 // mov v1.b[9], w14 + WORD $0x0e0e3c4e // umov w14, v2.h[3] + WORD $0x4e151da1 // mov v1.b[10], w13 + WORD $0x0e023c0d // umov w13, v0.h[0] + WORD $0x4e171dc1 // mov v1.b[11], w14 + WORD $0x0e063c0e // umov w14, v0.h[1] + WORD $0x4e191da1 // mov v1.b[12], w13 + WORD $0x0e0a3c0d // umov w13, v0.h[2] + WORD $0x4e1b1dc1 // mov v1.b[13], w14 + WORD $0x0e0e3c0e // umov w14, v0.h[3] + WORD $0x4e1d1da1 // mov v1.b[14], w13 + WORD $0x4e1f1dc1 // mov v1.b[15], w14 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x3c810561 // str q1, [x11], #16 + WORD $0x9102018c // add x12, x12, #128 + BNE LBB0_919 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_207 +LBB0_921: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_922: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_922 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_216 +LBB0_924: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9102004a // add x10, x2, #128 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_925: + WORD $0xad7e1551 // ldp q17, q5, [x10, #-64] + WORD $0xad7f1d54 // ldp q20, q7, [x10, #-32] + WORD $0xad7c0144 // ldp q4, q0, [x10, #-128] + WORD $0xad7d0546 // ldp q6, q1, [x10, #-96] + WORD $0x0ea12a31 // xtn v17.2s, v17.2d + WORD $0x0ea12a94 // xtn v20.2s, v20.2d + WORD $0xad400953 // ldp q19, q2, [x10] + WORD $0xad410d55 // ldp q21, q3, [x10, #32] + WORD $0xad424156 // ldp q22, q16, [x10, #64] + WORD $0xad434957 // ldp q23, q18, [x10, #96] + WORD $0x4ea128f4 // xtn2 v20.4s, v7.2d + WORD $0x4ea128b1 // xtn2 v17.4s, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e612a25 // xtn v5.4h, v17.4s + WORD $0x4e612a85 // xtn2 v5.8h, v20.4s + WORD $0x4ea12826 // xtn2 v6.4s, v1.2d + WORD $0x4ea12804 // xtn2 v4.4s, v0.2d + WORD $0x0e612880 // xtn v0.4h, v4.4s + WORD $0x4e6128c0 // xtn2 v0.8h, v6.4s + WORD $0x0ea12af7 // xtn v23.2s, v23.2d + WORD $0x0ea12ad6 // xtn v22.2s, v22.2d + WORD $0x0e212800 // xtn v0.8b, v0.8h + WORD $0x4e2128a0 // xtn2 v0.16b, v5.8h + WORD $0x4ea12a57 // xtn2 v23.4s, v18.2d + WORD $0x4ea12a16 // xtn2 v22.4s, v16.2d + WORD $0x0ea12ab5 // xtn v21.2s, v21.2d + WORD $0x0ea12a73 // xtn v19.2s, v19.2d + WORD $0x0e612ac1 // xtn v1.4h, v22.4s + WORD $0x4e612ae1 // xtn2 v1.8h, v23.4s + WORD $0x4ea12875 // xtn2 v21.4s, v3.2d + WORD $0x4ea12853 // xtn2 v19.4s, v2.2d + WORD $0x0e612a62 // xtn v2.4h, v19.4s + WORD $0x4e612aa2 // xtn2 v2.8h, v21.4s + WORD $0x0e212842 // xtn v2.8b, v2.8h + WORD $0x4e212822 // xtn2 v2.16b, v1.8h + WORD $0x9104014a // add x10, x10, #256 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8960 // stp q0, q2, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_925 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_225 +LBB0_927: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_928: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0e212821 // xtn v1.8b, v1.8h + WORD $0x0e212863 // xtn v3.8b, v3.8h + WORD $0x4e212801 // xtn2 v1.16b, v0.8h + WORD $0x4e212843 // xtn2 v3.16b, v2.8h + WORD $0xad3f8d61 // stp q1, q3, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_928 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_234 +LBB0_930: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_931: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0e212821 // xtn v1.8b, v1.8h + WORD $0x0e212863 // xtn v3.8b, v3.8h + WORD $0x4e212801 // xtn2 v1.16b, v0.8h + WORD $0x4e212843 // xtn2 v3.16b, v2.8h + WORD $0xad3f8d61 // stp q1, q3, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_931 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_243 +LBB0_933: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9102004a // add x10, x2, #128 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_934: + WORD $0xad7e1551 // ldp q17, q5, [x10, #-64] + WORD $0xad7f1d54 // ldp q20, q7, [x10, #-32] + WORD $0xad7c0144 // ldp q4, q0, [x10, #-128] + WORD $0xad7d0546 // ldp q6, q1, [x10, #-96] + WORD $0x0ea12a31 // xtn v17.2s, v17.2d + WORD $0x0ea12a94 // xtn v20.2s, v20.2d + WORD $0xad400953 // ldp q19, q2, [x10] + WORD $0xad410d55 // ldp q21, q3, [x10, #32] + WORD $0xad424156 // ldp q22, q16, [x10, #64] + WORD $0xad434957 // ldp q23, q18, [x10, #96] + WORD $0x4ea128f4 // xtn2 v20.4s, v7.2d + WORD $0x4ea128b1 // xtn2 v17.4s, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e612a25 // xtn v5.4h, v17.4s + WORD $0x4e612a85 // xtn2 v5.8h, v20.4s + WORD $0x4ea12826 // xtn2 v6.4s, v1.2d + WORD $0x4ea12804 // xtn2 v4.4s, v0.2d + WORD $0x0e612880 // xtn v0.4h, v4.4s + WORD $0x4e6128c0 // xtn2 v0.8h, v6.4s + WORD $0x0ea12af7 // xtn v23.2s, v23.2d + WORD $0x0ea12ad6 // xtn v22.2s, v22.2d + WORD $0x0e212800 // xtn v0.8b, v0.8h + WORD $0x4e2128a0 // xtn2 v0.16b, v5.8h + WORD $0x4ea12a57 // xtn2 v23.4s, v18.2d + WORD $0x4ea12a16 // xtn2 v22.4s, v16.2d + WORD $0x0ea12ab5 // xtn v21.2s, v21.2d + WORD $0x0ea12a73 // xtn v19.2s, v19.2d + WORD $0x0e612ac1 // xtn v1.4h, v22.4s + WORD $0x4e612ae1 // xtn2 v1.8h, v23.4s + WORD $0x4ea12875 // xtn2 v21.4s, v3.2d + WORD $0x4ea12853 // xtn2 v19.4s, v2.2d + WORD $0x0e612a62 // xtn v2.4h, v19.4s + WORD $0x4e612aa2 // xtn2 v2.8h, v21.4s + WORD $0x0e212842 // xtn v2.8b, v2.8h + WORD $0x4e212822 // xtn2 v2.16b, v1.8h + WORD $0x9104014a // add x10, x10, #256 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8960 // stp q0, q2, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_934 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_252 +LBB0_936: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_937: + WORD $0xad7e0144 // ldp q4, q0, [x10, #-64] + WORD $0xad400545 // ldp q5, q1, [x10] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x4ea1b884 // fcvtzs v4.4s, v4.4s + WORD $0x4ea1b8a5 // fcvtzs v5.4s, v5.4s + WORD $0x0e612887 // xtn v7.4h, v4.4s + WORD $0x0e6128a6 // xtn v6.4h, v5.4s + WORD $0x0e023ced // umov w13, v7.h[0] + WORD $0x0e023cce // umov w14, v6.h[0] + WORD $0x1e2701a4 // fmov s4, w13 + WORD $0x0e063cef // umov w15, v7.h[1] + WORD $0x1e2701c5 // fmov s5, w14 + WORD $0x0e0a3ced // umov w13, v7.h[2] + WORD $0x4e031de4 // mov v4.b[1], w15 + WORD $0x0e063cce // umov w14, v6.h[1] + WORD $0x4ea1b800 // fcvtzs v0.4s, v0.4s + WORD $0x4e031dc5 // mov v5.b[1], w14 + WORD $0x0e0e3cee // umov w14, v7.h[3] + WORD $0xad411d50 // ldp q16, q7, [x10, #32] + WORD $0x4ea1b821 // fcvtzs v1.4s, v1.4s + WORD $0x0e612800 // xtn v0.4h, v0.4s + WORD $0x4e051da4 // mov v4.b[2], w13 + WORD $0x0e0a3ccd // umov w13, v6.h[2] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x4e051da5 // mov v5.b[2], w13 + WORD $0x0e023c0d // umov w13, v0.h[0] + WORD $0x4e071dc4 // mov v4.b[3], w14 + WORD $0x0e0e3cce // umov w14, v6.h[3] + WORD $0x4e071dc5 // mov v5.b[3], w14 + WORD $0x0e063c0e // umov w14, v0.h[1] + WORD $0x4e091da4 // mov v4.b[4], w13 + WORD $0x0e023c2d // umov w13, v1.h[0] + WORD $0x4ea1b863 // fcvtzs v3.4s, v3.4s + WORD $0x4e091da5 // mov v5.b[4], w13 + WORD $0x0e0a3c0d // umov w13, v0.h[2] + WORD $0x4e0b1dc4 // mov v4.b[5], w14 + WORD $0x0e063c2e // umov w14, v1.h[1] + WORD $0x4ea1ba10 // fcvtzs v16.4s, v16.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e0b1dc5 // mov v5.b[5], w14 + WORD $0x0e0e3c0e // umov w14, v0.h[3] + WORD $0x4e0d1da4 // mov v4.b[6], w13 + WORD $0x0e0a3c2d // umov w13, v1.h[2] + WORD $0x0e612a10 // xtn v16.4h, v16.4s + WORD $0x4e0d1da5 // mov v5.b[6], w13 + WORD $0x0e023c6d // umov w13, v3.h[0] + WORD $0x4e0f1dc4 // mov v4.b[7], w14 + WORD $0x0e0e3c2e // umov w14, v1.h[3] + WORD $0x4e0f1dc5 // mov v5.b[7], w14 + WORD $0x0e063c6e // umov w14, v3.h[1] + WORD $0x4e111da4 // mov v4.b[8], w13 + WORD $0x0e023e0d // umov w13, v16.h[0] + WORD $0x4ea1b842 // fcvtzs v2.4s, v2.4s + WORD $0x4e111da5 // mov v5.b[8], w13 + WORD $0x0e0a3c6d // umov w13, v3.h[2] + WORD $0x4e131dc4 // mov v4.b[9], w14 + WORD $0x0e063e0e // umov w14, v16.h[1] + WORD $0x4ea1b8e7 // fcvtzs v7.4s, v7.4s + WORD $0x0e612842 // xtn v2.4h, v2.4s + WORD $0x4e131dc5 // mov v5.b[9], w14 + WORD $0x0e0e3c6e // umov w14, v3.h[3] + WORD $0x4e151da4 // mov v4.b[10], w13 + WORD $0x0e0a3e0d // umov w13, v16.h[2] + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e151da5 // mov v5.b[10], w13 + WORD $0x0e023c4d // umov w13, v2.h[0] + WORD $0x4e171dc4 // mov v4.b[11], w14 + WORD $0x0e0e3e0e // umov w14, v16.h[3] + WORD $0x4e171dc5 // mov v5.b[11], w14 + WORD $0x0e063c4e // umov w14, v2.h[1] + WORD $0x4e191da4 // mov v4.b[12], w13 + WORD $0x0e023ced // umov w13, v7.h[0] + WORD $0x4e191da5 // mov v5.b[12], w13 + WORD $0x0e0a3c4d // umov w13, v2.h[2] + WORD $0x4e1b1dc4 // mov v4.b[13], w14 + WORD $0x0e063cee // umov w14, v7.h[1] + WORD $0x4e1b1dc5 // mov v5.b[13], w14 + WORD $0x4e1d1da4 // mov v4.b[14], w13 + WORD $0x0e0a3ced // umov w13, v7.h[2] + WORD $0x0e0e3c4e // umov w14, v2.h[3] + WORD $0x4e1d1da5 // mov v5.b[14], w13 + WORD $0x0e0e3ced // umov w13, v7.h[3] + WORD $0x4e1f1dc4 // mov v4.b[15], w14 + WORD $0x4e1f1da5 // mov v5.b[15], w13 + WORD $0x9102014a // add x10, x10, #128 + WORD $0xad3f9564 // stp q4, q5, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_937 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_261 +LBB0_939: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_940: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_940 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_270 +LBB0_942: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_943: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e212820 // xtn v0.8b, v1.8h + WORD $0x4e212860 // xtn2 v0.16b, v3.8h + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x0e2128a1 // xtn v1.8b, v5.8h + WORD $0x4e2128e1 // xtn2 v1.16b, v7.8h + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_943 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_279 +LBB0_945: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_946: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f08a401 // sshll v1.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f10a422 // sshll v2.4s, v1.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x0f10a403 // sshll v3.4s, v0.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f20a444 // sshll v4.2d, v2.2s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0x0f20a425 // sshll v5.2d, v1.2s, #0 + WORD $0x0f20a466 // sshll v6.2d, v3.2s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x0f20a407 // sshll v7.2d, v0.2s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0xad030167 // stp q7, q0, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010565 // stp q5, q1, [x11, #32] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_946 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_298 +LBB0_948: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_949: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0xad431185 // ldp q5, q4, [x12, #96] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad031165 // stp q5, q4, [x11, #96] + WORD $0xad021967 // stp q7, q6, [x11, #64] + WORD $0xad010963 // stp q3, q2, [x11, #32] + WORD $0xac840161 // stp q1, q0, [x11], #128 + BNE LBB0_949 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_307 +LBB0_951: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_952: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0xad431185 // ldp q5, q4, [x12, #96] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad031165 // stp q5, q4, [x11, #96] + WORD $0xad021967 // stp q7, q6, [x11, #64] + WORD $0xad010963 // stp q3, q2, [x11, #32] + WORD $0xac840161 // stp q1, q0, [x11], #128 + BNE LBB0_952 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_326 +LBB0_954: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_955: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f08a401 // ushll v1.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f10a422 // ushll v2.4s, v1.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x2f10a403 // ushll v3.4s, v0.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f20a444 // ushll v4.2d, v2.2s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0x2f20a425 // ushll v5.2d, v1.2s, #0 + WORD $0x2f20a466 // ushll v6.2d, v3.2s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x2f20a407 // ushll v7.2d, v0.2s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0xad030167 // stp q7, q0, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010565 // stp q5, q1, [x11, #32] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_955 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_340 +LBB0_957: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_958: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f08a402 // sshll v2.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f08a423 // sshll v3.8h, v1.8b, #0 + WORD $0x4f08a421 // sshll2 v1.8h, v1.16b, #0 + WORD $0xad3f0162 // stp q2, q0, [x11, #-32] + WORD $0xac820563 // stp q3, q1, [x11], #64 + BNE LBB0_958 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_364 +LBB0_960: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_961: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f08a402 // sshll v2.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f08a423 // sshll v3.8h, v1.8b, #0 + WORD $0x4f08a421 // sshll2 v1.8h, v1.16b, #0 + WORD $0xad3f0162 // stp q2, q0, [x11, #-32] + WORD $0xac820563 // stp q3, q1, [x11], #64 + BNE LBB0_961 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_371 +LBB0_963: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_964: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0161 // stp q1, q0, [x11, #-32] + WORD $0xac820963 // stp q3, q2, [x11], #64 + BNE LBB0_964 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_384 +LBB0_966: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_967: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0161 // stp q1, q0, [x11, #-32] + WORD $0xac820963 // stp q3, q2, [x11], #64 + BNE LBB0_967 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_391 +LBB0_969: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_970: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0161 // stp q1, q0, [x11, #-32] + WORD $0xac820963 // stp q3, q2, [x11], #64 + BNE LBB0_970 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_398 +LBB0_972: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_973: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0161 // stp q1, q0, [x11, #-32] + WORD $0xac820963 // stp q3, q2, [x11], #64 + BNE LBB0_973 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_405 +LBB0_975: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_976: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f08a402 // ushll v2.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f08a423 // ushll v3.8h, v1.8b, #0 + WORD $0x6f08a421 // ushll2 v1.8h, v1.16b, #0 + WORD $0xad3f0162 // stp q2, q0, [x11, #-32] + WORD $0xac820563 // stp q3, q1, [x11], #64 + BNE LBB0_976 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_424 +LBB0_978: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100806b // add x11, x3, #32 + WORD $0xaa0903ec // mov x12, x9 +LBB0_979: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f08a402 // ushll v2.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f08a423 // ushll v3.8h, v1.8b, #0 + WORD $0x6f08a421 // ushll2 v1.8h, v1.16b, #0 + WORD $0xad3f0162 // stp q2, q0, [x11, #-32] + WORD $0xac820563 // stp q3, q1, [x11], #64 + BNE LBB0_979 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_431 +LBB0_981: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_982: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x0f08a401 // sshll v1.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f10a422 // sshll v2.4s, v1.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0x0f10a403 // sshll v3.4s, v0.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f20a444 // sshll v4.2d, v2.2s, #0 + WORD $0x4f20a442 // sshll2 v2.2d, v2.4s, #0 + WORD $0x0f20a425 // sshll v5.2d, v1.2s, #0 + WORD $0x0f20a466 // sshll v6.2d, v3.2s, #0 + WORD $0x4f20a421 // sshll2 v1.2d, v1.4s, #0 + WORD $0x4f20a463 // sshll2 v3.2d, v3.4s, #0 + WORD $0x0f20a407 // sshll v7.2d, v0.2s, #0 + WORD $0x4f20a400 // sshll2 v0.2d, v0.4s, #0 + WORD $0xad030167 // stp q7, q0, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010565 // stp q5, q1, [x11, #32] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_982 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_456 +LBB0_984: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_985: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e004001 // ext v1.16b, v0.16b, v0.16b, #8 + WORD $0x0e003802 // zip1 v2.8b, v0.8b, v0.8b + WORD $0x0e007800 // zip2 v0.8b, v0.8b, v0.8b + WORD $0x0e003823 // zip1 v3.8b, v1.8b, v0.8b + WORD $0x0e007821 // zip2 v1.8b, v1.8b, v0.8b + WORD $0x0f185442 // shl v2.4h, v2.4h, #8 + WORD $0x0f185400 // shl v0.4h, v0.4h, #8 + WORD $0x0f185463 // shl v3.4h, v3.4h, #8 + WORD $0x0f185421 // shl v1.4h, v1.4h, #8 + WORD $0x0f180442 // sshr v2.4h, v2.4h, #8 + WORD $0x0f180400 // sshr v0.4h, v0.4h, #8 + WORD $0x0f180463 // sshr v3.4h, v3.4h, #8 + WORD $0x0f180421 // sshr v1.4h, v1.4h, #8 + WORD $0x0f10a442 // sshll v2.4s, v2.4h, #0 + WORD $0x0f10a400 // sshll v0.4s, v0.4h, #0 + WORD $0x0f10a463 // sshll v3.4s, v3.4h, #0 + WORD $0x0f10a421 // sshll v1.4s, v1.4h, #0 + WORD $0x4e21d842 // scvtf v2.4s, v2.4s + WORD $0x4e21d800 // scvtf v0.4s, v0.4s + WORD $0x4e21d863 // scvtf v3.4s, v3.4s + WORD $0x4e21d821 // scvtf v1.4s, v1.4s + WORD $0xad000162 // stp q2, q0, [x11] + WORD $0xad010563 // stp q3, q1, [x11, #32] + WORD $0x9101016b // add x11, x11, #64 + BNE LBB0_985 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_463 +LBB0_987: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_988: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0xad431185 // ldp q5, q4, [x12, #96] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad031165 // stp q5, q4, [x11, #96] + WORD $0xad021967 // stp q7, q6, [x11, #64] + WORD $0xad010963 // stp q3, q2, [x11, #32] + WORD $0xac840161 // stp q1, q0, [x11], #128 + BNE LBB0_988 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_470 +LBB0_990: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_991: + WORD $0xad400181 // ldp q1, q0, [x12] + WORD $0xad410983 // ldp q3, q2, [x12, #32] + WORD $0xad431185 // ldp q5, q4, [x12, #96] + WORD $0xad421987 // ldp q7, q6, [x12, #64] + WORD $0x9102018c // add x12, x12, #128 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0xad031165 // stp q5, q4, [x11, #96] + WORD $0xad021967 // stp q7, q6, [x11, #64] + WORD $0xad010963 // stp q3, q2, [x11, #32] + WORD $0xac840161 // stp q1, q0, [x11], #128 + BNE LBB0_991 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_492 +LBB0_993: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_994: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0963 // stp q3, q2, [x11, #-32] + WORD $0xad3e0161 // stp q1, q0, [x11, #-64] + WORD $0xad011967 // stp q7, q6, [x11, #32] + WORD $0xac841165 // stp q5, q4, [x11], #128 + BNE LBB0_994 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_505 +LBB0_996: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_997: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x2f08a401 // ushll v1.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f10a422 // ushll v2.4s, v1.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0x2f10a403 // ushll v3.4s, v0.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f20a444 // ushll v4.2d, v2.2s, #0 + WORD $0x6f20a442 // ushll2 v2.2d, v2.4s, #0 + WORD $0x2f20a425 // ushll v5.2d, v1.2s, #0 + WORD $0x2f20a466 // ushll v6.2d, v3.2s, #0 + WORD $0x6f20a421 // ushll2 v1.2d, v1.4s, #0 + WORD $0x6f20a463 // ushll2 v3.2d, v3.4s, #0 + WORD $0x2f20a407 // ushll v7.2d, v0.2s, #0 + WORD $0x6f20a400 // ushll2 v0.2d, v0.4s, #0 + WORD $0xad030167 // stp q7, q0, [x11, #96] + WORD $0xad020d66 // stp q6, q3, [x11, #64] + WORD $0xad010565 // stp q5, q1, [x11, #32] + WORD $0xac840964 // stp q4, q2, [x11], #128 + BNE LBB0_997 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_512 +LBB0_999: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_1000: + WORD $0x3cc10580 // ldr q0, [x12], #16 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x6e004001 // ext v1.16b, v0.16b, v0.16b, #8 + WORD $0x0e003802 // zip1 v2.8b, v0.8b, v0.8b + WORD $0x0e007800 // zip2 v0.8b, v0.8b, v0.8b + WORD $0x0e003823 // zip1 v3.8b, v1.8b, v0.8b + WORD $0x0e007821 // zip2 v1.8b, v1.8b, v0.8b + WORD $0x2f07b7e2 // bic v2.4h, #255, lsl #8 + WORD $0x2f07b7e0 // bic v0.4h, #255, lsl #8 + WORD $0x2f07b7e3 // bic v3.4h, #255, lsl #8 + WORD $0x2f07b7e1 // bic v1.4h, #255, lsl #8 + WORD $0x2f10a442 // ushll v2.4s, v2.4h, #0 + WORD $0x2f10a400 // ushll v0.4s, v0.4h, #0 + WORD $0x2f10a463 // ushll v3.4s, v3.4h, #0 + WORD $0x2f10a421 // ushll v1.4s, v1.4h, #0 + WORD $0x6e21d842 // ucvtf v2.4s, v2.4s + WORD $0x6e21d800 // ucvtf v0.4s, v0.4s + WORD $0x6e21d863 // ucvtf v3.4s, v3.4s + WORD $0x6e21d821 // ucvtf v1.4s, v1.4s + WORD $0xad000162 // stp q2, q0, [x11] + WORD $0xad010563 // stp q3, q1, [x11, #32] + WORD $0x9101016b // add x11, x11, #64 + BNE LBB0_1000 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_519 +LBB0_1002: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1003: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e212820 // xtn v0.8b, v1.8h + WORD $0x4e212860 // xtn2 v0.16b, v3.8h + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x0e2128a1 // xtn v1.8b, v5.8h + WORD $0x4e2128e1 // xtn2 v1.16b, v7.8h + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1003 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_532 +LBB0_1005: + WORD $0x927c6d09 // and x9, x8, #0xfffffff0 + WORD $0xaa0903ea // mov x10, x9 + WORD $0xaa0303eb // mov x11, x3 + WORD $0xaa0203ec // mov x12, x2 +LBB0_1006: + WORD $0xad401d84 // ldp q4, q7, [x12] + WORD $0xad430580 // ldp q0, q1, [x12, #96] + WORD $0xad411985 // ldp q5, q6, [x12, #32] + WORD $0xad420d82 // ldp q2, q3, [x12, #64] + WORD $0x4ee1b8e7 // fcvtzs v7.2d, v7.2d + WORD $0x4ee1b884 // fcvtzs v4.2d, v4.2d + WORD $0x0ea128e7 // xtn v7.2s, v7.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x4ee1b821 // fcvtzs v1.2d, v1.2d + WORD $0x4ee1b800 // fcvtzs v0.2d, v0.2d + WORD $0x0e471884 // uzp1 v4.4h, v4.4h, v7.4h + WORD $0x0ea12821 // xtn v1.2s, v1.2d + WORD $0x0ea12800 // xtn v0.2s, v0.2d + WORD $0x0e023c8d // umov w13, v4.h[0] + WORD $0x4ee1b8c6 // fcvtzs v6.2d, v6.2d + WORD $0x4ee1b8a5 // fcvtzs v5.2d, v5.2d + WORD $0x0e411800 // uzp1 v0.4h, v0.4h, v1.4h + WORD $0x0e063c8e // umov w14, v4.h[1] + WORD $0x1e2701a1 // fmov s1, w13 + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea128a5 // xtn v5.2s, v5.2d + WORD $0x0e0a3c8d // umov w13, v4.h[2] + WORD $0x4e031dc1 // mov v1.b[1], w14 + WORD $0x0e4618a5 // uzp1 v5.4h, v5.4h, v6.4h + WORD $0x0e0e3c8e // umov w14, v4.h[3] + WORD $0x4e051da1 // mov v1.b[2], w13 + WORD $0x0e023cad // umov w13, v5.h[0] + WORD $0x4e071dc1 // mov v1.b[3], w14 + WORD $0x4ee1b863 // fcvtzs v3.2d, v3.2d + WORD $0x4ee1b842 // fcvtzs v2.2d, v2.2d + WORD $0x0e063cae // umov w14, v5.h[1] + WORD $0x4e091da1 // mov v1.b[4], w13 + WORD $0x0ea12863 // xtn v3.2s, v3.2d + WORD $0x0ea12842 // xtn v2.2s, v2.2d + WORD $0x0e0a3cad // umov w13, v5.h[2] + WORD $0x4e0b1dc1 // mov v1.b[5], w14 + WORD $0x0e431842 // uzp1 v2.4h, v2.4h, v3.4h + WORD $0x0e0e3cae // umov w14, v5.h[3] + WORD $0x4e0d1da1 // mov v1.b[6], w13 + WORD $0x0e023c4d // umov w13, v2.h[0] + WORD $0x4e0f1dc1 // mov v1.b[7], w14 + WORD $0x0e063c4e // umov w14, v2.h[1] + WORD $0x4e111da1 // mov v1.b[8], w13 + WORD $0x0e0a3c4d // umov w13, v2.h[2] + WORD $0x4e131dc1 // mov v1.b[9], w14 + WORD $0x0e0e3c4e // umov w14, v2.h[3] + WORD $0x4e151da1 // mov v1.b[10], w13 + WORD $0x0e023c0d // umov w13, v0.h[0] + WORD $0x4e171dc1 // mov v1.b[11], w14 + WORD $0x0e063c0e // umov w14, v0.h[1] + WORD $0x4e191da1 // mov v1.b[12], w13 + WORD $0x0e0a3c0d // umov w13, v0.h[2] + WORD $0x4e1b1dc1 // mov v1.b[13], w14 + WORD $0x0e0e3c0e // umov w14, v0.h[3] + WORD $0x4e1d1da1 // mov v1.b[14], w13 + WORD $0x4e1f1dc1 // mov v1.b[15], w14 + WORD $0xf100414a // subs x10, x10, #16 + WORD $0x3c810561 // str q1, [x11], #16 + WORD $0x9102018c // add x12, x12, #128 + BNE LBB0_1006 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_539 +LBB0_1008: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1009: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1009 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_546 +LBB0_1011: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9102004a // add x10, x2, #128 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1012: + WORD $0xad7e1551 // ldp q17, q5, [x10, #-64] + WORD $0xad7f1d54 // ldp q20, q7, [x10, #-32] + WORD $0xad7c0144 // ldp q4, q0, [x10, #-128] + WORD $0xad7d0546 // ldp q6, q1, [x10, #-96] + WORD $0x0ea12a31 // xtn v17.2s, v17.2d + WORD $0x0ea12a94 // xtn v20.2s, v20.2d + WORD $0xad400953 // ldp q19, q2, [x10] + WORD $0xad410d55 // ldp q21, q3, [x10, #32] + WORD $0xad424156 // ldp q22, q16, [x10, #64] + WORD $0xad434957 // ldp q23, q18, [x10, #96] + WORD $0x4ea128f4 // xtn2 v20.4s, v7.2d + WORD $0x4ea128b1 // xtn2 v17.4s, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e612a25 // xtn v5.4h, v17.4s + WORD $0x4e612a85 // xtn2 v5.8h, v20.4s + WORD $0x4ea12826 // xtn2 v6.4s, v1.2d + WORD $0x4ea12804 // xtn2 v4.4s, v0.2d + WORD $0x0e612880 // xtn v0.4h, v4.4s + WORD $0x4e6128c0 // xtn2 v0.8h, v6.4s + WORD $0x0ea12af7 // xtn v23.2s, v23.2d + WORD $0x0ea12ad6 // xtn v22.2s, v22.2d + WORD $0x0e212800 // xtn v0.8b, v0.8h + WORD $0x4e2128a0 // xtn2 v0.16b, v5.8h + WORD $0x4ea12a57 // xtn2 v23.4s, v18.2d + WORD $0x4ea12a16 // xtn2 v22.4s, v16.2d + WORD $0x0ea12ab5 // xtn v21.2s, v21.2d + WORD $0x0ea12a73 // xtn v19.2s, v19.2d + WORD $0x0e612ac1 // xtn v1.4h, v22.4s + WORD $0x4e612ae1 // xtn2 v1.8h, v23.4s + WORD $0x4ea12875 // xtn2 v21.4s, v3.2d + WORD $0x4ea12853 // xtn2 v19.4s, v2.2d + WORD $0x0e612a62 // xtn v2.4h, v19.4s + WORD $0x4e612aa2 // xtn2 v2.8h, v21.4s + WORD $0x0e212842 // xtn v2.8b, v2.8h + WORD $0x4e212822 // xtn2 v2.16b, v1.8h + WORD $0x9104014a // add x10, x10, #256 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8960 // stp q0, q2, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1012 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_553 +LBB0_1014: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1015: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0e212821 // xtn v1.8b, v1.8h + WORD $0x0e212863 // xtn v3.8b, v3.8h + WORD $0x4e212801 // xtn2 v1.16b, v0.8h + WORD $0x4e212843 // xtn2 v3.16b, v2.8h + WORD $0xad3f8d61 // stp q1, q3, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1015 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_560 +LBB0_1017: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100804a // add x10, x2, #32 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1018: + WORD $0xad7f0141 // ldp q1, q0, [x10, #-32] + WORD $0xacc20943 // ldp q3, q2, [x10], #64 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0e212821 // xtn v1.8b, v1.8h + WORD $0x0e212863 // xtn v3.8b, v3.8h + WORD $0x4e212801 // xtn2 v1.16b, v0.8h + WORD $0x4e212843 // xtn2 v3.16b, v2.8h + WORD $0xad3f8d61 // stp q1, q3, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1018 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_567 +LBB0_1020: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9102004a // add x10, x2, #128 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1021: + WORD $0xad7e1551 // ldp q17, q5, [x10, #-64] + WORD $0xad7f1d54 // ldp q20, q7, [x10, #-32] + WORD $0xad7c0144 // ldp q4, q0, [x10, #-128] + WORD $0xad7d0546 // ldp q6, q1, [x10, #-96] + WORD $0x0ea12a31 // xtn v17.2s, v17.2d + WORD $0x0ea12a94 // xtn v20.2s, v20.2d + WORD $0xad400953 // ldp q19, q2, [x10] + WORD $0xad410d55 // ldp q21, q3, [x10, #32] + WORD $0xad424156 // ldp q22, q16, [x10, #64] + WORD $0xad434957 // ldp q23, q18, [x10, #96] + WORD $0x4ea128f4 // xtn2 v20.4s, v7.2d + WORD $0x4ea128b1 // xtn2 v17.4s, v5.2d + WORD $0x0ea128c6 // xtn v6.2s, v6.2d + WORD $0x0ea12884 // xtn v4.2s, v4.2d + WORD $0x0e612a25 // xtn v5.4h, v17.4s + WORD $0x4e612a85 // xtn2 v5.8h, v20.4s + WORD $0x4ea12826 // xtn2 v6.4s, v1.2d + WORD $0x4ea12804 // xtn2 v4.4s, v0.2d + WORD $0x0e612880 // xtn v0.4h, v4.4s + WORD $0x4e6128c0 // xtn2 v0.8h, v6.4s + WORD $0x0ea12af7 // xtn v23.2s, v23.2d + WORD $0x0ea12ad6 // xtn v22.2s, v22.2d + WORD $0x0e212800 // xtn v0.8b, v0.8h + WORD $0x4e2128a0 // xtn2 v0.16b, v5.8h + WORD $0x4ea12a57 // xtn2 v23.4s, v18.2d + WORD $0x4ea12a16 // xtn2 v22.4s, v16.2d + WORD $0x0ea12ab5 // xtn v21.2s, v21.2d + WORD $0x0ea12a73 // xtn v19.2s, v19.2d + WORD $0x0e612ac1 // xtn v1.4h, v22.4s + WORD $0x4e612ae1 // xtn2 v1.8h, v23.4s + WORD $0x4ea12875 // xtn2 v21.4s, v3.2d + WORD $0x4ea12853 // xtn2 v19.4s, v2.2d + WORD $0x0e612a62 // xtn v2.4h, v19.4s + WORD $0x4e612aa2 // xtn2 v2.8h, v21.4s + WORD $0x0e212842 // xtn v2.8b, v2.8h + WORD $0x4e212822 // xtn2 v2.16b, v1.8h + WORD $0x9104014a // add x10, x10, #256 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8960 // stp q0, q2, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1021 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_574 +LBB0_1023: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1024: + WORD $0xad7e0144 // ldp q4, q0, [x10, #-64] + WORD $0xad400545 // ldp q5, q1, [x10] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x4ea1b884 // fcvtzs v4.4s, v4.4s + WORD $0x4ea1b8a5 // fcvtzs v5.4s, v5.4s + WORD $0x0e612887 // xtn v7.4h, v4.4s + WORD $0x0e6128a6 // xtn v6.4h, v5.4s + WORD $0x0e023ced // umov w13, v7.h[0] + WORD $0x0e023cce // umov w14, v6.h[0] + WORD $0x1e2701a4 // fmov s4, w13 + WORD $0x0e063cef // umov w15, v7.h[1] + WORD $0x1e2701c5 // fmov s5, w14 + WORD $0x0e0a3ced // umov w13, v7.h[2] + WORD $0x4e031de4 // mov v4.b[1], w15 + WORD $0x0e063cce // umov w14, v6.h[1] + WORD $0x4ea1b800 // fcvtzs v0.4s, v0.4s + WORD $0x4e031dc5 // mov v5.b[1], w14 + WORD $0x0e0e3cee // umov w14, v7.h[3] + WORD $0xad411d50 // ldp q16, q7, [x10, #32] + WORD $0x4ea1b821 // fcvtzs v1.4s, v1.4s + WORD $0x0e612800 // xtn v0.4h, v0.4s + WORD $0x4e051da4 // mov v4.b[2], w13 + WORD $0x0e0a3ccd // umov w13, v6.h[2] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x4e051da5 // mov v5.b[2], w13 + WORD $0x0e023c0d // umov w13, v0.h[0] + WORD $0x4e071dc4 // mov v4.b[3], w14 + WORD $0x0e0e3cce // umov w14, v6.h[3] + WORD $0x4e071dc5 // mov v5.b[3], w14 + WORD $0x0e063c0e // umov w14, v0.h[1] + WORD $0x4e091da4 // mov v4.b[4], w13 + WORD $0x0e023c2d // umov w13, v1.h[0] + WORD $0x4ea1b863 // fcvtzs v3.4s, v3.4s + WORD $0x4e091da5 // mov v5.b[4], w13 + WORD $0x0e0a3c0d // umov w13, v0.h[2] + WORD $0x4e0b1dc4 // mov v4.b[5], w14 + WORD $0x0e063c2e // umov w14, v1.h[1] + WORD $0x4ea1ba10 // fcvtzs v16.4s, v16.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e0b1dc5 // mov v5.b[5], w14 + WORD $0x0e0e3c0e // umov w14, v0.h[3] + WORD $0x4e0d1da4 // mov v4.b[6], w13 + WORD $0x0e0a3c2d // umov w13, v1.h[2] + WORD $0x0e612a10 // xtn v16.4h, v16.4s + WORD $0x4e0d1da5 // mov v5.b[6], w13 + WORD $0x0e023c6d // umov w13, v3.h[0] + WORD $0x4e0f1dc4 // mov v4.b[7], w14 + WORD $0x0e0e3c2e // umov w14, v1.h[3] + WORD $0x4e0f1dc5 // mov v5.b[7], w14 + WORD $0x0e063c6e // umov w14, v3.h[1] + WORD $0x4e111da4 // mov v4.b[8], w13 + WORD $0x0e023e0d // umov w13, v16.h[0] + WORD $0x4ea1b842 // fcvtzs v2.4s, v2.4s + WORD $0x4e111da5 // mov v5.b[8], w13 + WORD $0x0e0a3c6d // umov w13, v3.h[2] + WORD $0x4e131dc4 // mov v4.b[9], w14 + WORD $0x0e063e0e // umov w14, v16.h[1] + WORD $0x4ea1b8e7 // fcvtzs v7.4s, v7.4s + WORD $0x0e612842 // xtn v2.4h, v2.4s + WORD $0x4e131dc5 // mov v5.b[9], w14 + WORD $0x0e0e3c6e // umov w14, v3.h[3] + WORD $0x4e151da4 // mov v4.b[10], w13 + WORD $0x0e0a3e0d // umov w13, v16.h[2] + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x4e151da5 // mov v5.b[10], w13 + WORD $0x0e023c4d // umov w13, v2.h[0] + WORD $0x4e171dc4 // mov v4.b[11], w14 + WORD $0x0e0e3e0e // umov w14, v16.h[3] + WORD $0x4e171dc5 // mov v5.b[11], w14 + WORD $0x0e063c4e // umov w14, v2.h[1] + WORD $0x4e191da4 // mov v4.b[12], w13 + WORD $0x0e023ced // umov w13, v7.h[0] + WORD $0x4e191da5 // mov v5.b[12], w13 + WORD $0x0e0a3c4d // umov w13, v2.h[2] + WORD $0x4e1b1dc4 // mov v4.b[13], w14 + WORD $0x0e063cee // umov w14, v7.h[1] + WORD $0x4e1b1dc5 // mov v5.b[13], w14 + WORD $0x4e1d1da4 // mov v4.b[14], w13 + WORD $0x0e0a3ced // umov w13, v7.h[2] + WORD $0x0e0e3c4e // umov w14, v2.h[3] + WORD $0x4e1d1da5 // mov v5.b[14], w13 + WORD $0x0e0e3ced // umov w13, v7.h[3] + WORD $0x4e1f1dc4 // mov v4.b[15], w14 + WORD $0x4e1f1da5 // mov v5.b[15], w13 + WORD $0x9102014a // add x10, x10, #128 + WORD $0xad3f9564 // stp q4, q5, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1024 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_581 +LBB0_1026: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1027: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1027 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_588 +LBB0_1029: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9100406b // add x11, x3, #16 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1030: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x0e612821 // xtn v1.4h, v1.4s + WORD $0x0e612863 // xtn v3.4h, v3.4s + WORD $0x4e612843 // xtn2 v3.8h, v2.4s + WORD $0x4e612801 // xtn2 v1.8h, v0.4s + WORD $0x0e6128e7 // xtn v7.4h, v7.4s + WORD $0x0e6128a5 // xtn v5.4h, v5.4s + WORD $0x0e212820 // xtn v0.8b, v1.8h + WORD $0x4e212860 // xtn2 v0.16b, v3.8h + WORD $0x4e6128c7 // xtn2 v7.8h, v6.4s + WORD $0x4e612885 // xtn2 v5.8h, v4.4s + WORD $0x0e2128a1 // xtn v1.8b, v5.8h + WORD $0x4e2128e1 // xtn2 v1.16b, v7.8h + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f8560 // stp q0, q1, [x11, #-16] + WORD $0x9100816b // add x11, x11, #32 + BNE LBB0_1030 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_595 +LBB0_1032: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1033: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0963 // stp q3, q2, [x11, #-32] + WORD $0xad3e0161 // stp q1, q0, [x11, #-64] + WORD $0xad011967 // stp q7, q6, [x11, #32] + WORD $0xac841165 // stp q5, q4, [x11], #128 + BNE LBB0_1033 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_602 +LBB0_1035: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1036: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x0f08a402 // sshll v2.8h, v0.8b, #0 + WORD $0x4f08a400 // sshll2 v0.8h, v0.16b, #0 + WORD $0x0f08a423 // sshll v3.8h, v1.8b, #0 + WORD $0x4f08a421 // sshll2 v1.8h, v1.16b, #0 + WORD $0x0f10a444 // sshll v4.4s, v2.4h, #0 + WORD $0x4f10a442 // sshll2 v2.4s, v2.8h, #0 + WORD $0x0f10a405 // sshll v5.4s, v0.4h, #0 + WORD $0x4f10a400 // sshll2 v0.4s, v0.8h, #0 + WORD $0x0f10a466 // sshll v6.4s, v3.4h, #0 + WORD $0x4f10a463 // sshll2 v3.4s, v3.8h, #0 + WORD $0x0f10a427 // sshll v7.4s, v1.4h, #0 + WORD $0x4f10a421 // sshll2 v1.4s, v1.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0964 // stp q4, q2, [x11, #-64] + WORD $0xad010567 // stp q7, q1, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_1036 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_612 +LBB0_1038: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9100404a // add x10, x2, #16 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1039: + WORD $0xad7f8540 // ldp q0, q1, [x10, #-16] + WORD $0x9100814a // add x10, x10, #32 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0x2f08a402 // ushll v2.8h, v0.8b, #0 + WORD $0x6f08a400 // ushll2 v0.8h, v0.16b, #0 + WORD $0x2f08a423 // ushll v3.8h, v1.8b, #0 + WORD $0x6f08a421 // ushll2 v1.8h, v1.16b, #0 + WORD $0x2f10a444 // ushll v4.4s, v2.4h, #0 + WORD $0x6f10a442 // ushll2 v2.4s, v2.8h, #0 + WORD $0x2f10a405 // ushll v5.4s, v0.4h, #0 + WORD $0x6f10a400 // ushll2 v0.4s, v0.8h, #0 + WORD $0x2f10a466 // ushll v6.4s, v3.4h, #0 + WORD $0x6f10a463 // ushll2 v3.4s, v3.8h, #0 + WORD $0x2f10a427 // ushll v7.4s, v1.4h, #0 + WORD $0x6f10a421 // ushll2 v1.4s, v1.8h, #0 + WORD $0xad3f0165 // stp q5, q0, [x11, #-32] + WORD $0xad3e0964 // stp q4, q2, [x11, #-64] + WORD $0xad010567 // stp q7, q1, [x11, #32] + WORD $0xac840d66 // stp q6, q3, [x11], #128 + BNE LBB0_1039 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_634 +LBB0_1041: + WORD $0x927b6909 // and x9, x8, #0xffffffe0 + WORD $0x9101004a // add x10, x2, #64 + WORD $0x9101006b // add x11, x3, #64 + WORD $0xaa0903ec // mov x12, x9 +LBB0_1042: + WORD $0xad7e0141 // ldp q1, q0, [x10, #-64] + WORD $0xad7f0943 // ldp q3, q2, [x10, #-32] + WORD $0xad401145 // ldp q5, q4, [x10] + WORD $0xad411947 // ldp q7, q6, [x10, #32] + WORD $0x9102014a // add x10, x10, #128 + WORD $0xf100818c // subs x12, x12, #32 + WORD $0xad3f0963 // stp q3, q2, [x11, #-32] + WORD $0xad3e0161 // stp q1, q0, [x11, #-64] + WORD $0xad011967 // stp q7, q6, [x11, #32] + WORD $0xac841165 // stp q5, q4, [x11], #128 + BNE LBB0_1042 + + WORD $0xeb08013f // cmp x9, x8 + BEQ LBB0_893 + JMP LBB0_641 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.go new file mode 100644 index 0000000..5526965 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.go @@ -0,0 +1,32 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _cast_type_numeric_sse4(itype, otype int, in, out unsafe.Pointer, len int) + +func castNumericSSE4(itype, otype arrow.Type, in, out []byte, len int) { + _cast_type_numeric_sse4(int(itype), int(otype), unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.s new file mode 100644 index 0000000..778118f --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_numeric_sse4_amd64.s @@ -0,0 +1,9045 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +DATA LCDATA1<>+0x000(SB)/8, $0x43e0000000000000 +DATA LCDATA1<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x010(SB)/8, $0x0000000000000400 +DATA LCDATA1<>+0x018(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x020(SB)/8, $0x4f0000004f000000 +DATA LCDATA1<>+0x028(SB)/8, $0x4f0000004f000000 +DATA LCDATA1<>+0x030(SB)/8, $0x8000000080000000 +DATA LCDATA1<>+0x038(SB)/8, $0x8000000080000000 +DATA LCDATA1<>+0x040(SB)/8, $0x0000000000000800 +DATA LCDATA1<>+0x048(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x050(SB)/8, $0x4330000000000000 +DATA LCDATA1<>+0x058(SB)/8, $0x4330000000000000 +DATA LCDATA1<>+0x060(SB)/8, $0x4530000000000000 +DATA LCDATA1<>+0x068(SB)/8, $0x4530000000000000 +DATA LCDATA1<>+0x070(SB)/8, $0x4530000000100000 +DATA LCDATA1<>+0x078(SB)/8, $0x4530000000100000 +DATA LCDATA1<>+0x080(SB)/8, $0x4530000043300000 +DATA LCDATA1<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x090(SB)/8, $0x4330000000000000 +DATA LCDATA1<>+0x098(SB)/8, $0x4530000000000000 +DATA LCDATA1<>+0x0a0(SB)/8, $0x0000000000000001 +DATA LCDATA1<>+0x0a8(SB)/8, $0x0000000000000001 +DATA LCDATA1<>+0x0b0(SB)/8, $0x0d0c090805040100 +DATA LCDATA1<>+0x0b8(SB)/8, $0x0f0e0d0c0d0c0908 +DATA LCDATA1<>+0x0c0(SB)/8, $0x000000000c080400 +DATA LCDATA1<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x0d0(SB)/8, $0x4b0000004b000000 +DATA LCDATA1<>+0x0d8(SB)/8, $0x4b0000004b000000 +DATA LCDATA1<>+0x0e0(SB)/8, $0x5300000053000000 +DATA LCDATA1<>+0x0e8(SB)/8, $0x5300000053000000 +DATA LCDATA1<>+0x0f0(SB)/8, $0x5300008053000080 +DATA LCDATA1<>+0x0f8(SB)/8, $0x5300008053000080 +DATA LCDATA1<>+0x100(SB)/8, $0x0e0c0a0806040200 +DATA LCDATA1<>+0x108(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x110(SB)/8, $0x000000005f000000 +GLOBL LCDATA1<>(SB), 8, $280 + +TEXT ·_cast_type_numeric_sse4(SB), $0-40 + + MOVQ itype+0(FP), DI + MOVQ otype+8(FP), SI + MOVQ in+16(FP), DX + MOVQ out+24(FP), CX + MOVQ len+32(FP), R8 + LEAQ LCDATA1<>(SB), BP + + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_25 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_45 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_53 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_1526 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_93 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_163 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_263 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_266 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_12 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_761 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_761 + +LBB0_12: + WORD $0xf631 // xor esi, esi + +LBB0_1104: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1106 + +LBB0_1105: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1105 + +LBB0_1106: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1107: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1107 + JMP LBB0_1526 + +LBB0_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_35 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_61 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_69 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_1526 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_100 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_168 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_269 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_272 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_446 + WORD $0xff31 // xor edi, edi + JMP LBB0_448 + +LBB0_25: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_77 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_1526 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_107 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_173 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_275 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_278 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_34 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_763 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_763 + +LBB0_34: + WORD $0xf631 // xor esi, esi + +LBB0_1482: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1484 + +LBB0_1483: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1483 + +LBB0_1484: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1485: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1485 + JMP LBB0_1526 + +LBB0_35: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_85 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_1526 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_114 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_178 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_281 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_284 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_454 + WORD $0xf631 // xor esi, esi + JMP LBB0_948 + +LBB0_45: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_121 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_183 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_287 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_290 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_457 + WORD $0xf631 // xor esi, esi + JMP LBB0_953 + +LBB0_53: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_128 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_188 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_293 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_296 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_460 + WORD $0xf631 // xor esi, esi + JMP LBB0_958 + +LBB0_61: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_135 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_193 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_299 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_302 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_463 + WORD $0xf631 // xor esi, esi + JMP LBB0_963 + +LBB0_69: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_142 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_198 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_305 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_308 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_466 + WORD $0xf631 // xor esi, esi + JMP LBB0_968 + +LBB0_77: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_149 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_203 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_311 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_314 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_84 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_766 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_766 + +LBB0_84: + WORD $0xf631 // xor esi, esi + +LBB0_1490: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1492 + +LBB0_1491: + LONG $0x323cb60f // movzx edi, byte [rdx + rsi] + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1491 + +LBB0_1492: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1493: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1493 + JMP LBB0_1526 + +LBB0_85: + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JG LBB0_156 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JLE LBB0_208 + WORD $0xfe83; BYTE $0x04 // cmp esi, 4 + JE LBB0_317 + WORD $0xfe83; BYTE $0x05 // cmp esi, 5 + JE LBB0_320 + WORD $0xfe83; BYTE $0x06 // cmp esi, 6 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_92 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_769 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_769 + +LBB0_92: + WORD $0xf631 // xor esi, esi + +LBB0_1114: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1116 + +LBB0_1115: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1115 + +LBB0_1116: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1117: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1117 + JMP LBB0_1526 + +LBB0_93: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_213 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_323 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_326 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_475 + WORD $0xff31 // xor edi, edi + JMP LBB0_477 + +LBB0_100: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_218 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_329 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_332 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_106 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_771 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_771 + +LBB0_106: + WORD $0xf631 // xor esi, esi + +LBB0_1124: + WORD $0x8944; BYTE $0xcf // mov edi, r9d + WORD $0xf729 // sub edi, esi + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + LONG $0x07e78348 // and rdi, 7 + JE LBB0_1126 + +LBB0_1125: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1125 + +LBB0_1126: + LONG $0x07f88349 // cmp r8, 7 + JB LBB0_1526 + +LBB0_1127: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0xf2448b48; BYTE $0x20 // mov rax, qword [rdx + 8*rsi + 32] + LONG $0xf1448948; BYTE $0x20 // mov qword [rcx + 8*rsi + 32], rax + LONG $0xf2448b48; BYTE $0x28 // mov rax, qword [rdx + 8*rsi + 40] + LONG $0xf1448948; BYTE $0x28 // mov qword [rcx + 8*rsi + 40], rax + LONG $0xf2448b48; BYTE $0x30 // mov rax, qword [rdx + 8*rsi + 48] + LONG $0xf1448948; BYTE $0x30 // mov qword [rcx + 8*rsi + 48], rax + LONG $0xf2448b48; BYTE $0x38 // mov rax, qword [rdx + 8*rsi + 56] + LONG $0xf1448948; BYTE $0x38 // mov qword [rcx + 8*rsi + 56], rax + LONG $0x08c68348 // add rsi, 8 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1127 + JMP LBB0_1526 + +LBB0_107: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_223 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_335 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_338 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_483 + WORD $0xff31 // xor edi, edi + JMP LBB0_485 + +LBB0_114: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_228 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_341 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_344 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_488 + WORD $0xf631 // xor esi, esi + JMP LBB0_973 + +LBB0_121: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_233 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_347 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_350 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_491 + WORD $0xff31 // xor edi, edi + JMP LBB0_493 + +LBB0_128: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_238 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_353 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_356 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_496 + WORD $0xff31 // xor edi, edi + JMP LBB0_498 + +LBB0_135: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_243 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_359 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_362 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0xf089 // mov eax, esi + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_501 + WORD $0xff31 // xor edi, edi + JMP LBB0_503 + +LBB0_142: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_248 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_365 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_368 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_506 + WORD $0xf631 // xor esi, esi + JMP LBB0_979 + +LBB0_149: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_253 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_371 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_374 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_509 + WORD $0xff31 // xor edi, edi + JMP LBB0_511 + +LBB0_156: + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JLE LBB0_258 + WORD $0xfe83; BYTE $0x09 // cmp esi, 9 + JE LBB0_377 + WORD $0xfe83; BYTE $0x0b // cmp esi, 11 + JE LBB0_380 + WORD $0xfe83; BYTE $0x0c // cmp esi, 12 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0xf089 // mov eax, esi + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_514 + WORD $0xff31 // xor edi, edi + JMP LBB0_516 + +LBB0_163: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_383 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_167 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_773 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_773 + +LBB0_167: + WORD $0xf631 // xor esi, esi + +LBB0_1498: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1500 + +LBB0_1499: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1499 + +LBB0_1500: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1501: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1501 + JMP LBB0_1526 + +LBB0_168: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_386 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_172 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_776 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_776 + +LBB0_172: + WORD $0xf631 // xor esi, esi + +LBB0_1506: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1508 + +LBB0_1507: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1507 + +LBB0_1508: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1509: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442c0ff2; WORD $0x08f2 // cvttsd2si eax, qword [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442c0ff2; WORD $0x10f2 // cvttsd2si eax, qword [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442c0ff2; WORD $0x18f2 // cvttsd2si eax, qword [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1509 + JMP LBB0_1526 + +LBB0_173: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_389 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_177 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_779 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_779 + +LBB0_177: + WORD $0xf631 // xor esi, esi + +LBB0_1134: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1136 + +LBB0_1135: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1135 + +LBB0_1136: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1137: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1137 + JMP LBB0_1526 + +LBB0_178: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_392 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_182 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_781 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_781 + +LBB0_182: + WORD $0xf631 // xor esi, esi + +LBB0_1322: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1324 + +LBB0_1323: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1323 + +LBB0_1324: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1325: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1325 + JMP LBB0_1526 + +LBB0_183: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_395 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_187 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_784 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_784 + +LBB0_187: + WORD $0xf631 // xor esi, esi + +LBB0_1330: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1332 + +LBB0_1331: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1331 + +LBB0_1332: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1333: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1333 + JMP LBB0_1526 + +LBB0_188: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_398 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_192 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_787 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_787 + +LBB0_192: + WORD $0xf631 // xor esi, esi + +LBB0_1514: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1516 + +LBB0_1515: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1515 + +LBB0_1516: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1517: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1517 + JMP LBB0_1526 + +LBB0_193: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_401 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_197 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_790 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_790 + +LBB0_197: + WORD $0xf631 // xor esi, esi + +LBB0_1338: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1340 + +LBB0_1339: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1339 + +LBB0_1340: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1341: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1341 + JMP LBB0_1526 + +LBB0_198: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_404 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_202 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_793 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_793 + +LBB0_202: + WORD $0xf631 // xor esi, esi + +LBB0_1522: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1524 + +LBB0_1523: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1523 + +LBB0_1524: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1525: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442c0ff3; WORD $0x04b2 // cvttss2si eax, dword [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442c0ff3; WORD $0x08b2 // cvttss2si eax, dword [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442c0ff3; WORD $0x0cb2 // cvttss2si eax, dword [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1525 + JMP LBB0_1526 + +LBB0_203: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_407 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_207 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_796 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_796 + +LBB0_207: + WORD $0xf631 // xor esi, esi + +LBB0_1144: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1146 + +LBB0_1145: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1145 + +LBB0_1146: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1147: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1147 + JMP LBB0_1526 + +LBB0_208: + WORD $0xfe83; BYTE $0x02 // cmp esi, 2 + JE LBB0_410 + WORD $0xfe83; BYTE $0x03 // cmp esi, 3 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_212 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_798 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_798 + +LBB0_212: + WORD $0xf631 // xor esi, esi + +LBB0_1346: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1348 + +LBB0_1347: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1347 + +LBB0_1348: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1349: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1349 + JMP LBB0_1526 + +LBB0_213: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_413 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_549 + WORD $0xf631 // xor esi, esi + JMP LBB0_807 + +LBB0_218: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_416 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0xff418d49 // lea rax, [r9 - 1] + WORD $0x8945; BYTE $0xc8 // mov r8d, r9d + LONG $0x03e08341 // and r8d, 3 + QUAD $0x000000000000ba49; WORD $0x8000 // mov r10, -9223372036854775808 + LONG $0x03f88348 // cmp rax, 3 + JAE LBB0_551 + WORD $0xc031 // xor eax, eax + JMP LBB0_553 + +LBB0_223: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_419 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_227 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_808 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_808 + +LBB0_227: + WORD $0xf631 // xor esi, esi + +LBB0_1154: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1156 + +LBB0_1155: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1155 + +LBB0_1156: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1157: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x44be0f48; WORD $0x0132 // movsx rax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x44be0f48; WORD $0x0232 // movsx rax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x44be0f48; WORD $0x0332 // movsx rax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1157 + JMP LBB0_1526 + +LBB0_228: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_422 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_232 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_810 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_810 + +LBB0_232: + WORD $0xf631 // xor esi, esi + +LBB0_1164: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1166 + +LBB0_1165: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1165 + +LBB0_1166: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1167: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1167 + JMP LBB0_1526 + +LBB0_233: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_425 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_562 + WORD $0xf631 // xor esi, esi + JMP LBB0_818 + +LBB0_238: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_428 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_564 + WORD $0xf631 // xor esi, esi + JMP LBB0_825 + +LBB0_243: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_431 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_247 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_826 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_826 + +LBB0_247: + WORD $0xf631 // xor esi, esi + +LBB0_1174: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1176 + +LBB0_1175: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1175 + +LBB0_1176: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1177: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1177 + JMP LBB0_1526 + +LBB0_248: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_434 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0xff418d49 // lea rax, [r9 - 1] + WORD $0x8945; BYTE $0xc8 // mov r8d, r9d + LONG $0x03e08341 // and r8d, 3 + LONG $0x03f88348 // cmp rax, 3 + JAE LBB0_569 + WORD $0xff31 // xor edi, edi + JMP LBB0_571 + +LBB0_253: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_437 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_257 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_828 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_828 + +LBB0_257: + WORD $0xf631 // xor esi, esi + +LBB0_1184: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1186 + +LBB0_1185: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1185 + +LBB0_1186: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1187: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1187 + JMP LBB0_1526 + +LBB0_258: + WORD $0xfe83; BYTE $0x07 // cmp esi, 7 + JE LBB0_440 + WORD $0xfe83; BYTE $0x08 // cmp esi, 8 + JNE LBB0_1526 + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_577 + WORD $0xf631 // xor esi, esi + JMP LBB0_836 + +LBB0_263: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_579 + WORD $0xf631 // xor esi, esi + JMP LBB0_984 + +LBB0_266: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_582 + WORD $0xf631 // xor esi, esi + JMP LBB0_989 + +LBB0_269: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_585 + WORD $0xf631 // xor esi, esi + JMP LBB0_994 + +LBB0_272: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_588 + WORD $0xf631 // xor esi, esi + JMP LBB0_999 + +LBB0_275: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_277 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_837 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_837 + +LBB0_277: + WORD $0xf631 // xor esi, esi + +LBB0_1354: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1356 + +LBB0_1355: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1355 + +LBB0_1356: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1357: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1357 + JMP LBB0_1526 + +LBB0_278: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_280 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_840 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_840 + +LBB0_280: + WORD $0xf631 // xor esi, esi + +LBB0_1362: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1364 + +LBB0_1363: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1363 + +LBB0_1364: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1365: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1365 + JMP LBB0_1526 + +LBB0_281: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_597 + WORD $0xf631 // xor esi, esi + JMP LBB0_1004 + +LBB0_284: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_600 + WORD $0xf631 // xor esi, esi + JMP LBB0_1009 + +LBB0_287: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_289 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_843 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_843 + +LBB0_289: + WORD $0xf631 // xor esi, esi + +LBB0_1194: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1196 + +LBB0_1195: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1195 + +LBB0_1196: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1197: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1197 + JMP LBB0_1526 + +LBB0_290: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_292 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_845 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_845 + +LBB0_292: + WORD $0xf631 // xor esi, esi + +LBB0_1204: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1206 + +LBB0_1205: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1205 + +LBB0_1206: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1207: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1207 + JMP LBB0_1526 + +LBB0_293: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_295 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_847 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_847 + +LBB0_295: + WORD $0xf631 // xor esi, esi + +LBB0_1214: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1216 + +LBB0_1215: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1215 + +LBB0_1216: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1217: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1217 + JMP LBB0_1526 + +LBB0_296: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_298 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_849 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_849 + +LBB0_298: + WORD $0xf631 // xor esi, esi + +LBB0_1224: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1226 + +LBB0_1225: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1225 + +LBB0_1226: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1227: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x7244b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rsi + 2] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x7244b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rsi + 4] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x7244b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rsi + 6] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1227 + JMP LBB0_1526 + +LBB0_299: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_615 + WORD $0xf631 // xor esi, esi + JMP LBB0_1014 + +LBB0_302: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_618 + WORD $0xf631 // xor esi, esi + JMP LBB0_1019 + +LBB0_305: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_621 + WORD $0xf631 // xor esi, esi + JMP LBB0_1024 + +LBB0_308: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_624 + WORD $0xf631 // xor esi, esi + JMP LBB0_1029 + +LBB0_311: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_313 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_851 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_851 + +LBB0_313: + WORD $0xf631 // xor esi, esi + +LBB0_1370: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1372 + +LBB0_1371: + LONG $0x323cb60f // movzx edi, byte [rdx + rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1371 + +LBB0_1372: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1373: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1373 + JMP LBB0_1526 + +LBB0_314: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_316 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_854 + LONG $0x49048d4a // lea rax, [rcx + 2*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_854 + +LBB0_316: + WORD $0xf631 // xor esi, esi + +LBB0_1378: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1380 + +LBB0_1379: + LONG $0x323cb60f // movzx edi, byte [rdx + rsi] + LONG $0x713c8966 // mov word [rcx + 2*rsi], di + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1379 + +LBB0_1380: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1381: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x71448966; BYTE $0x02 // mov word [rcx + 2*rsi + 2], ax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x71448966; BYTE $0x04 // mov word [rcx + 2*rsi + 4], ax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x71448966; BYTE $0x06 // mov word [rcx + 2*rsi + 6], ax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1381 + JMP LBB0_1526 + +LBB0_317: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_633 + WORD $0xf631 // xor esi, esi + JMP LBB0_1034 + +LBB0_320: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_636 + WORD $0xf631 // xor esi, esi + JMP LBB0_1039 + +LBB0_323: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_639 + WORD $0xf631 // xor esi, esi + JMP LBB0_863 + +LBB0_326: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_641 + WORD $0xf631 // xor esi, esi + JMP LBB0_1044 + +LBB0_329: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_644 + WORD $0xff31 // xor edi, edi + JMP LBB0_646 + +LBB0_332: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_649 + WORD $0xf631 // xor esi, esi + JMP LBB0_1049 + +LBB0_335: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_337 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_864 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_864 + +LBB0_337: + WORD $0xf631 // xor esi, esi + +LBB0_1234: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1236 + +LBB0_1235: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1235 + +LBB0_1236: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1237: + LONG $0x04be0f48; BYTE $0x32 // movsx rax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x44be0f48; WORD $0x0132 // movsx rax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x44be0f48; WORD $0x0232 // movsx rax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x44be0f48; WORD $0x0332 // movsx rax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1237 + JMP LBB0_1526 + +LBB0_338: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_340 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_866 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_866 + +LBB0_340: + WORD $0xf631 // xor esi, esi + +LBB0_1386: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1388 + +LBB0_1387: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1387 + +LBB0_1388: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1389: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x04b1 // movss dword [rcx + 4*rsi + 4], xmm0 + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x08b1 // movss dword [rcx + 4*rsi + 8], xmm0 + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x0cb1 // movss dword [rcx + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1389 + JMP LBB0_1526 + +LBB0_341: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_343 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_869 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_869 + +LBB0_343: + WORD $0xf631 // xor esi, esi + +LBB0_1244: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1246 + +LBB0_1245: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1245 + +LBB0_1246: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1247: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1247 + JMP LBB0_1526 + +LBB0_344: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_661 + WORD $0xf631 // xor esi, esi + JMP LBB0_1056 + +LBB0_347: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_664 + WORD $0xf631 // xor esi, esi + JMP LBB0_877 + +LBB0_350: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_666 + WORD $0xf631 // xor esi, esi + JMP LBB0_1062 + +LBB0_353: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_669 + WORD $0xf631 // xor esi, esi + JMP LBB0_884 + +LBB0_356: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_671 + WORD $0xf631 // xor esi, esi + JMP LBB0_1067 + +LBB0_359: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_361 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_885 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_885 + +LBB0_361: + WORD $0xf631 // xor esi, esi + +LBB0_1254: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1256 + +LBB0_1255: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1255 + +LBB0_1256: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1257: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0xf2448b48; BYTE $0x08 // mov rax, qword [rdx + 8*rsi + 8] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0xf2448b48; BYTE $0x10 // mov rax, qword [rdx + 8*rsi + 16] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0xf2448b48; BYTE $0x18 // mov rax, qword [rdx + 8*rsi + 24] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1257 + JMP LBB0_1526 + +LBB0_362: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0xf089 // mov eax, esi + WORD $0xe083; BYTE $0x03 // and eax, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_677 + WORD $0xff31 // xor edi, edi + JMP LBB0_679 + +LBB0_365: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8944; BYTE $0xc6 // mov esi, r8d + LONG $0xff7e8d48 // lea rdi, [rsi - 1] + WORD $0x8941; BYTE $0xf0 // mov r8d, esi + LONG $0x03e08341 // and r8d, 3 + LONG $0x03ff8348 // cmp rdi, 3 + JAE LBB0_682 + WORD $0xff31 // xor edi, edi + JMP LBB0_684 + +LBB0_368: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_370 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_887 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_887 + +LBB0_370: + WORD $0xf631 // xor esi, esi + +LBB0_1264: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x07e78348 // and rdi, 7 + JE LBB0_1266 + +LBB0_1265: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1265 + +LBB0_1266: + LONG $0x07f88349 // cmp r8, 7 + JB LBB0_1526 + +LBB0_1267: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x10b2448b // mov eax, dword [rdx + 4*rsi + 16] + LONG $0x10b14489 // mov dword [rcx + 4*rsi + 16], eax + LONG $0x14b2448b // mov eax, dword [rdx + 4*rsi + 20] + LONG $0x14b14489 // mov dword [rcx + 4*rsi + 20], eax + LONG $0x18b2448b // mov eax, dword [rdx + 4*rsi + 24] + LONG $0x18b14489 // mov dword [rcx + 4*rsi + 24], eax + LONG $0x1cb2448b // mov eax, dword [rdx + 4*rsi + 28] + LONG $0x1cb14489 // mov dword [rcx + 4*rsi + 28], eax + LONG $0x08c68348 // add rsi, 8 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1267 + JMP LBB0_1526 + +LBB0_371: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_373 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_889 + LONG $0xc9048d4a // lea rax, [rcx + 8*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_889 + +LBB0_373: + WORD $0xf631 // xor esi, esi + +LBB0_1274: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1276 + +LBB0_1275: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1275 + +LBB0_1276: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1277: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xf1448948; BYTE $0x08 // mov qword [rcx + 8*rsi + 8], rax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xf1448948; BYTE $0x10 // mov qword [rcx + 8*rsi + 16], rax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xf1448948; BYTE $0x18 // mov qword [rcx + 8*rsi + 24], rax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1277 + JMP LBB0_1526 + +LBB0_374: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_376 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_891 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_891 + +LBB0_376: + WORD $0xf631 // xor esi, esi + +LBB0_1394: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1396 + +LBB0_1395: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1395 + +LBB0_1396: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1397: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x04b1 // movss dword [rcx + 4*rsi + 4], xmm0 + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x08b1 // movss dword [rcx + 4*rsi + 8], xmm0 + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x44110ff3; WORD $0x0cb1 // movss dword [rcx + 4*rsi + 12], xmm0 + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1397 + JMP LBB0_1526 + +LBB0_377: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_696 + WORD $0xf631 // xor esi, esi + JMP LBB0_900 + +LBB0_380: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_698 + WORD $0xf631 // xor esi, esi + JMP LBB0_1072 + +LBB0_383: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_385 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_901 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_901 + +LBB0_385: + WORD $0xf631 // xor esi, esi + +LBB0_1402: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1404 + +LBB0_1403: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1403 + +LBB0_1404: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1405: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1405 + JMP LBB0_1526 + +LBB0_386: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_388 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_904 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_904 + +LBB0_388: + WORD $0xf631 // xor esi, esi + +LBB0_1410: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1412 + +LBB0_1411: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1411 + +LBB0_1412: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1413: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442c0ff2; WORD $0x08f2 // cvttsd2si eax, qword [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442c0ff2; WORD $0x10f2 // cvttsd2si eax, qword [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442c0ff2; WORD $0x18f2 // cvttsd2si eax, qword [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1413 + JMP LBB0_1526 + +LBB0_389: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_391 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_907 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_907 + +LBB0_391: + WORD $0xf631 // xor esi, esi + +LBB0_1284: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1286 + +LBB0_1285: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1285 + +LBB0_1286: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1287: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1287 + JMP LBB0_1526 + +LBB0_392: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_394 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_909 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_909 + +LBB0_394: + WORD $0xf631 // xor esi, esi + +LBB0_1418: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1420 + +LBB0_1419: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1419 + +LBB0_1420: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1421: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1421 + JMP LBB0_1526 + +LBB0_395: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_397 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_912 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_912 + +LBB0_397: + WORD $0xf631 // xor esi, esi + +LBB0_1426: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1428 + +LBB0_1427: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1427 + +LBB0_1428: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1429: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1429 + JMP LBB0_1526 + +LBB0_398: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x10f88341 // cmp r8d, 16 + JB LBB0_400 + LONG $0x4a048d4a // lea rax, [rdx + 2*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_915 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_915 + +LBB0_400: + WORD $0xf631 // xor esi, esi + +LBB0_1434: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1436 + +LBB0_1435: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1435 + +LBB0_1436: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1437: + LONG $0x7204b60f // movzx eax, byte [rdx + 2*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x7244b60f; BYTE $0x02 // movzx eax, byte [rdx + 2*rsi + 2] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x7244b60f; BYTE $0x04 // movzx eax, byte [rdx + 2*rsi + 4] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x7244b60f; BYTE $0x06 // movzx eax, byte [rdx + 2*rsi + 6] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1437 + JMP LBB0_1526 + +LBB0_401: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JB LBB0_403 + LONG $0xca048d4a // lea rax, [rdx + 8*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_918 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_918 + +LBB0_403: + WORD $0xf631 // xor esi, esi + +LBB0_1442: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1444 + +LBB0_1443: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1443 + +LBB0_1444: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1445: + LONG $0xf204b60f // movzx eax, byte [rdx + 8*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xf244b60f; BYTE $0x08 // movzx eax, byte [rdx + 8*rsi + 8] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xf244b60f; BYTE $0x10 // movzx eax, byte [rdx + 8*rsi + 16] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xf244b60f; BYTE $0x18 // movzx eax, byte [rdx + 8*rsi + 24] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1445 + JMP LBB0_1526 + +LBB0_404: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_406 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_921 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_921 + +LBB0_406: + WORD $0xf631 // xor esi, esi + +LBB0_1450: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1452 + +LBB0_1451: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1451 + +LBB0_1452: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1453: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x442c0ff3; WORD $0x04b2 // cvttss2si eax, dword [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x442c0ff3; WORD $0x08b2 // cvttss2si eax, dword [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x442c0ff3; WORD $0x0cb2 // cvttss2si eax, dword [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1453 + JMP LBB0_1526 + +LBB0_407: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x20f88341 // cmp r8d, 32 + JB LBB0_409 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_924 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_924 + +LBB0_409: + WORD $0xf631 // xor esi, esi + +LBB0_1294: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1296 + +LBB0_1295: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1295 + +LBB0_1296: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1297: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1297 + JMP LBB0_1526 + +LBB0_410: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_412 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_926 + LONG $0x09048d4a // lea rax, [rcx + r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_926 + +LBB0_412: + WORD $0xf631 // xor esi, esi + +LBB0_1458: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1460 + +LBB0_1459: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1459 + +LBB0_1460: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1461: + LONG $0xb204b60f // movzx eax, byte [rdx + 4*rsi] + WORD $0x0488; BYTE $0x31 // mov byte [rcx + rsi], al + LONG $0xb244b60f; BYTE $0x04 // movzx eax, byte [rdx + 4*rsi + 4] + LONG $0x01314488 // mov byte [rcx + rsi + 1], al + LONG $0xb244b60f; BYTE $0x08 // movzx eax, byte [rdx + 4*rsi + 8] + LONG $0x02314488 // mov byte [rcx + rsi + 2], al + LONG $0xb244b60f; BYTE $0x0c // movzx eax, byte [rdx + 4*rsi + 12] + LONG $0x03314488 // mov byte [rcx + rsi + 3], al + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1461 + JMP LBB0_1526 + +LBB0_413: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_415 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_929 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_929 + +LBB0_415: + WORD $0xf631 // xor esi, esi + +LBB0_1304: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1306 + +LBB0_1305: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1305 + +LBB0_1306: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1307: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1307 + JMP LBB0_1526 + +LBB0_416: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_734 + WORD $0xf631 // xor esi, esi + JMP LBB0_1077 + +LBB0_419: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_421 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_931 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_931 + +LBB0_421: + WORD $0xf631 // xor esi, esi + +LBB0_1466: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1468 + +LBB0_1467: + LONG $0x323cbe0f // movsx edi, byte [rdx + rsi] + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1467 + +LBB0_1468: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1469: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244be0f; BYTE $0x01 // movsx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244be0f; BYTE $0x02 // movsx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244be0f; BYTE $0x03 // movsx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1469 + JMP LBB0_1526 + +LBB0_422: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_740 + WORD $0xf631 // xor esi, esi + JMP LBB0_943 + +LBB0_425: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_743 + WORD $0xf631 // xor esi, esi + JMP LBB0_1082 + +LBB0_428: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_746 + WORD $0xf631 // xor esi, esi + JMP LBB0_1087 + +LBB0_431: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x04f88341 // cmp r8d, 4 + JAE LBB0_749 + WORD $0xf631 // xor esi, esi + JMP LBB0_1092 + +LBB0_434: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JAE LBB0_752 + WORD $0xf631 // xor esi, esi + JMP LBB0_1097 + +LBB0_437: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_439 + LONG $0x0a048d4a // lea rax, [rdx + r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_934 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_934 + +LBB0_439: + WORD $0xf631 // xor esi, esi + +LBB0_1474: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_1476 + +LBB0_1475: + LONG $0x323cb60f // movzx edi, byte [rdx + rsi] + WORD $0x3c89; BYTE $0xb1 // mov dword [rcx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_1475 + +LBB0_1476: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1477: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1477 + JMP LBB0_1526 + +LBB0_440: + WORD $0x8545; BYTE $0xc0 // test r8d, r8d + JLE LBB0_1526 + WORD $0x8945; BYTE $0xc1 // mov r9d, r8d + LONG $0x08f88341 // cmp r8d, 8 + JB LBB0_442 + LONG $0x8a048d4a // lea rax, [rdx + 4*r9] + WORD $0x3948; BYTE $0xc8 // cmp rax, rcx + JBE LBB0_937 + LONG $0x89048d4a // lea rax, [rcx + 4*r9] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB0_937 + +LBB0_442: + WORD $0xf631 // xor esi, esi + +LBB0_1314: + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03e78348 // and rdi, 3 + JE LBB0_1316 + +LBB0_1315: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + LONG $0xffc78348 // add rdi, -1 + JNE LBB0_1315 + +LBB0_1316: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_1526 + +LBB0_1317: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x04b2448b // mov eax, dword [rdx + 4*rsi + 4] + LONG $0x04b14489 // mov dword [rcx + 4*rsi + 4], eax + LONG $0x08b2448b // mov eax, dword [rdx + 4*rsi + 8] + LONG $0x08b14489 // mov dword [rcx + 4*rsi + 8], eax + LONG $0x0cb2448b // mov eax, dword [rdx + 4*rsi + 12] + LONG $0x0cb14489 // mov dword [rcx + 4*rsi + 12], eax + LONG $0x04c68348 // add rsi, 4 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1317 + JMP LBB0_1526 + +LBB0_446: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_447: + LONG $0x2c0f48f2; WORD $0xfa04 // cvttsd2si rax, qword [rdx + 8*rdi] + WORD $0x0489; BYTE $0xb9 // mov dword [rcx + 4*rdi], eax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x08 // cvttsd2si rax, qword [rdx + 8*rdi + 8] + LONG $0x04b94489 // mov dword [rcx + 4*rdi + 4], eax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x10 // cvttsd2si rax, qword [rdx + 8*rdi + 16] + LONG $0x08b94489 // mov dword [rcx + 4*rdi + 8], eax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x18 // cvttsd2si rax, qword [rdx + 8*rdi + 24] + LONG $0x0cb94489 // mov dword [rcx + 4*rdi + 12], eax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_447 + +LBB0_448: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xb90c8d48 // lea rcx, [rcx + 4*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_450: + LONG $0x2c0f48f2; WORD $0xf204 // cvttsd2si rax, qword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_450 + JMP LBB0_1526 + +LBB0_454: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_944 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_456: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_456 + JMP LBB0_945 + +LBB0_457: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_949 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_459: + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_459 + JMP LBB0_950 + +LBB0_460: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_954 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_462: + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_462 + JMP LBB0_955 + +LBB0_463: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_959 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_465: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_465 + JMP LBB0_960 + +LBB0_466: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_964 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x204d280f // movaps xmm1, oword 32[rbp] /* [rip + .LCPI0_3] */ + LONG $0x3055280f // movaps xmm2, oword 48[rbp] /* [rip + .LCPI0_4] */ + +LBB0_468: + LONG $0xba1c100f // movups xmm3, oword [rdx + 4*rdi] + LONG $0xba64100f; BYTE $0x10 // movups xmm4, oword [rdx + 4*rdi + 16] + WORD $0x280f; BYTE $0xc3 // movaps xmm0, xmm3 + LONG $0x01c1c20f // cmpltps xmm0, xmm1 + LONG $0xeb5b0ff3 // cvttps2dq xmm5, xmm3 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0xdb5b0ff3 // cvttps2dq xmm3, xmm3 + WORD $0x570f; BYTE $0xda // xorps xmm3, xmm2 + LONG $0x14380f66; BYTE $0xdd // blendvps xmm3, xmm5, xmm0 + WORD $0x280f; BYTE $0xc4 // movaps xmm0, xmm4 + LONG $0x01c1c20f // cmpltps xmm0, xmm1 + LONG $0xec5b0ff3 // cvttps2dq xmm5, xmm4 + WORD $0x5c0f; BYTE $0xe1 // subps xmm4, xmm1 + LONG $0xe45b0ff3 // cvttps2dq xmm4, xmm4 + WORD $0x570f; BYTE $0xe2 // xorps xmm4, xmm2 + LONG $0x14380f66; BYTE $0xe5 // blendvps xmm4, xmm5, xmm0 + LONG $0xb91c110f // movups oword [rcx + 4*rdi], xmm3 + LONG $0xb964110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm4 + LONG $0xba5c100f; BYTE $0x20 // movups xmm3, oword [rdx + 4*rdi + 32] + WORD $0x280f; BYTE $0xc3 // movaps xmm0, xmm3 + LONG $0x01c1c20f // cmpltps xmm0, xmm1 + LONG $0xe35b0ff3 // cvttps2dq xmm4, xmm3 + WORD $0x5c0f; BYTE $0xd9 // subps xmm3, xmm1 + LONG $0xdb5b0ff3 // cvttps2dq xmm3, xmm3 + WORD $0x570f; BYTE $0xda // xorps xmm3, xmm2 + LONG $0x14380f66; BYTE $0xdc // blendvps xmm3, xmm4, xmm0 + LONG $0xba64100f; BYTE $0x30 // movups xmm4, oword [rdx + 4*rdi + 48] + WORD $0x280f; BYTE $0xc4 // movaps xmm0, xmm4 + LONG $0x01c1c20f // cmpltps xmm0, xmm1 + LONG $0xec5b0ff3 // cvttps2dq xmm5, xmm4 + WORD $0x5c0f; BYTE $0xe1 // subps xmm4, xmm1 + LONG $0xe45b0ff3 // cvttps2dq xmm4, xmm4 + WORD $0x570f; BYTE $0xe2 // xorps xmm4, xmm2 + LONG $0x14380f66; BYTE $0xe5 // blendvps xmm4, xmm5, xmm0 + LONG $0xb95c110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm3 + LONG $0xb964110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm4 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_468 + JMP LBB0_965 + +LBB0_475: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_476: + WORD $0x048b; BYTE $0xba // mov eax, dword [rdx + 4*rdi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd xmm0, rax + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + LONG $0x04ba448b // mov eax, dword [rdx + 4*rdi + 4] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd xmm0, rax + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + LONG $0x08ba448b // mov eax, dword [rdx + 4*rdi + 8] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd xmm0, rax + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + LONG $0x0cba448b // mov eax, dword [rdx + 4*rdi + 12] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd xmm0, rax + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_476 + +LBB0_477: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xba148d48 // lea rdx, [rdx + 4*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_479: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; BYTE $0xc0 // cvtsi2sd xmm0, rax + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_479 + JMP LBB0_1526 + +LBB0_483: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_484: + LONG $0x3a04be0f // movsx eax, byte [rdx + rdi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + LONG $0x3a44be0f; BYTE $0x01 // movsx eax, byte [rdx + rdi + 1] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + LONG $0x3a44be0f; BYTE $0x02 // movsx eax, byte [rdx + rdi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + LONG $0x3a44be0f; BYTE $0x03 // movsx eax, byte [rdx + rdi + 3] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_484 + +LBB0_485: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0x0148; BYTE $0xfa // add rdx, rdi + WORD $0xf631 // xor esi, esi + +LBB0_487: + LONG $0x3204be0f // movsx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_487 + JMP LBB0_1526 + +LBB0_488: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_969 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x4d6f0f66; BYTE $0x50 // movdqa xmm1, oword 80[rbp] /* [rip + .LCPI0_6] */ + LONG $0x556f0f66; BYTE $0x60 // movdqa xmm2, oword 96[rbp] /* [rip + .LCPI0_7] */ + LONG $0x5d280f66; BYTE $0x70 // movapd xmm3, oword 112[rbp] /* [rip + .LCPI0_8] */ + +LBB0_490: + LONG $0x246f0ff3; BYTE $0xfa // movdqu xmm4, oword [rdx + 8*rdi] + LONG $0x6c6f0ff3; WORD $0x10fa // movdqu xmm5, oword [rdx + 8*rdi + 16] + LONG $0xf46f0f66 // movdqa xmm6, xmm4 + LONG $0x0e3a0f66; WORD $0xccf0 // pblendw xmm6, xmm0, 204 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xd4730f66; BYTE $0x20 // psrlq xmm4, 32 + LONG $0xe2eb0f66 // por xmm4, xmm2 + LONG $0xe35c0f66 // subpd xmm4, xmm3 + LONG $0xe6580f66 // addpd xmm4, xmm6 + LONG $0xf56f0f66 // movdqa xmm6, xmm5 + LONG $0x0e3a0f66; WORD $0xccf0 // pblendw xmm6, xmm0, 204 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xd5730f66; BYTE $0x20 // psrlq xmm5, 32 + LONG $0xeaeb0f66 // por xmm5, xmm2 + LONG $0xeb5c0f66 // subpd xmm5, xmm3 + LONG $0xee580f66 // addpd xmm5, xmm6 + LONG $0x24110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm4 + LONG $0x6c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm5 + LONG $0x646f0ff3; WORD $0x20fa // movdqu xmm4, oword [rdx + 8*rdi + 32] + LONG $0x6c6f0ff3; WORD $0x30fa // movdqu xmm5, oword [rdx + 8*rdi + 48] + LONG $0xf46f0f66 // movdqa xmm6, xmm4 + LONG $0x0e3a0f66; WORD $0xccf0 // pblendw xmm6, xmm0, 204 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xd4730f66; BYTE $0x20 // psrlq xmm4, 32 + LONG $0xe2eb0f66 // por xmm4, xmm2 + LONG $0xe35c0f66 // subpd xmm4, xmm3 + LONG $0xe6580f66 // addpd xmm4, xmm6 + LONG $0xf56f0f66 // movdqa xmm6, xmm5 + LONG $0x0e3a0f66; WORD $0xccf0 // pblendw xmm6, xmm0, 204 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xd5730f66; BYTE $0x20 // psrlq xmm5, 32 + LONG $0xeaeb0f66 // por xmm5, xmm2 + LONG $0xeb5c0f66 // subpd xmm5, xmm3 + LONG $0xee580f66 // addpd xmm5, xmm6 + LONG $0x64110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm4 + LONG $0x6c110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm5 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_490 + JMP LBB0_970 + +LBB0_491: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_492: + LONG $0x7a04b70f // movzx eax, word [rdx + 2*rdi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + LONG $0x7a44b70f; BYTE $0x02 // movzx eax, word [rdx + 2*rdi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + LONG $0x7a44b70f; BYTE $0x04 // movzx eax, word [rdx + 2*rdi + 4] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + LONG $0x7a44b70f; BYTE $0x06 // movzx eax, word [rdx + 2*rdi + 6] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_492 + +LBB0_493: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0x7a148d48 // lea rdx, [rdx + 2*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_495: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_495 + JMP LBB0_1526 + +LBB0_496: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_497: + LONG $0x7a04bf0f // movsx eax, word [rdx + 2*rdi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + LONG $0x7a44bf0f; BYTE $0x02 // movsx eax, word [rdx + 2*rdi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + LONG $0x7a44bf0f; BYTE $0x04 // movsx eax, word [rdx + 2*rdi + 4] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + LONG $0x7a44bf0f; BYTE $0x06 // movsx eax, word [rdx + 2*rdi + 6] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_497 + +LBB0_498: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0x7a148d48 // lea rdx, [rdx + 2*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_500: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_500 + JMP LBB0_1526 + +LBB0_501: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_502: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; WORD $0xfa04 // cvtsi2sd xmm0, qword [rdx + 8*rdi] + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x08 // cvtsi2sd xmm0, qword [rdx + 8*rdi + 8] + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x10 // cvtsi2sd xmm0, qword [rdx + 8*rdi + 16] + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; WORD $0xfa44; BYTE $0x18 // cvtsi2sd xmm0, qword [rdx + 8*rdi + 24] + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_502 + +LBB0_503: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_505: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f2; WORD $0xf204 // cvtsi2sd xmm0, qword [rdx + 8*rsi] + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB0_505 + JMP LBB0_1526 + +LBB0_506: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_975 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_508: + LONG $0xba045a0f // cvtps2pd xmm0, qword [rdx + 4*rdi] + LONG $0xba4c5a0f; BYTE $0x08 // cvtps2pd xmm1, qword [rdx + 4*rdi + 8] + LONG $0xf904110f // movups oword [rcx + 8*rdi], xmm0 + LONG $0xf94c110f; BYTE $0x10 // movups oword [rcx + 8*rdi + 16], xmm1 + LONG $0xba445a0f; BYTE $0x10 // cvtps2pd xmm0, qword [rdx + 4*rdi + 16] + LONG $0xba4c5a0f; BYTE $0x18 // cvtps2pd xmm1, qword [rdx + 4*rdi + 24] + LONG $0x44110f66; WORD $0x20f9 // movupd oword [rcx + 8*rdi + 32], xmm0 + LONG $0x4c110f66; WORD $0x30f9 // movupd oword [rcx + 8*rdi + 48], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_508 + JMP LBB0_976 + +LBB0_509: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_510: + LONG $0x3a04b60f // movzx eax, byte [rdx + rdi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + LONG $0x3a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rdi + 1] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_510 + +LBB0_511: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + WORD $0x0148; BYTE $0xfa // add rdx, rdi + WORD $0xf631 // xor esi, esi + +LBB0_513: + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff2 // cvtsi2sd xmm0, eax + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_513 + JMP LBB0_1526 + +LBB0_514: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_515: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x042a0ff2; BYTE $0xba // cvtsi2sd xmm0, dword [rdx + 4*rdi] + LONG $0x04110ff2; BYTE $0xf9 // movsd qword [rcx + 8*rdi], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x442a0ff2; WORD $0x04ba // cvtsi2sd xmm0, dword [rdx + 4*rdi + 4] + LONG $0x44110ff2; WORD $0x08f9 // movsd qword [rcx + 8*rdi + 8], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x442a0ff2; WORD $0x08ba // cvtsi2sd xmm0, dword [rdx + 4*rdi + 8] + LONG $0x44110ff2; WORD $0x10f9 // movsd qword [rcx + 8*rdi + 16], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x442a0ff2; WORD $0x0cba // cvtsi2sd xmm0, dword [rdx + 4*rdi + 12] + LONG $0x44110ff2; WORD $0x18f9 // movsd qword [rcx + 8*rdi + 24], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_515 + +LBB0_516: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xba148d48 // lea rdx, [rdx + 4*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_518: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x042a0ff2; BYTE $0xb2 // cvtsi2sd xmm0, dword [rdx + 4*rsi] + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB0_518 + JMP LBB0_1526 + +LBB0_549: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_801 + WORD $0xc031 // xor eax, eax + JMP LBB0_803 + +LBB0_551: + LONG $0xfce18341 // and r9d, -4 + WORD $0xc031 // xor eax, eax + LONG $0x45100ff2; BYTE $0x00 // movsd xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_552: + LONG $0x0c100ff2; BYTE $0xc2 // movsd xmm1, qword [rdx + 8*rax] + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd05c0ff2 // subsd xmm2, xmm0 + LONG $0x2c0f48f2; BYTE $0xfa // cvttsd2si rdi, xmm2 + WORD $0x314c; BYTE $0xd7 // xor rdi, r10 + LONG $0x2c0f48f2; BYTE $0xf1 // cvttsd2si rsi, xmm1 + LONG $0xc12e0f66 // ucomisd xmm0, xmm1 + LONG $0xf7460f48 // cmovbe rsi, rdi + LONG $0xc1348948 // mov qword [rcx + 8*rax], rsi + LONG $0x4c100ff2; WORD $0x08c2 // movsd xmm1, qword [rdx + 8*rax + 8] + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd05c0ff2 // subsd xmm2, xmm0 + LONG $0x2c0f48f2; BYTE $0xf2 // cvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2c0f48f2; BYTE $0xf9 // cvttsd2si rdi, xmm1 + LONG $0xc12e0f66 // ucomisd xmm0, xmm1 + LONG $0xfe460f48 // cmovbe rdi, rsi + LONG $0xc17c8948; BYTE $0x08 // mov qword [rcx + 8*rax + 8], rdi + LONG $0x4c100ff2; WORD $0x10c2 // movsd xmm1, qword [rdx + 8*rax + 16] + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd05c0ff2 // subsd xmm2, xmm0 + LONG $0x2c0f48f2; BYTE $0xf2 // cvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2c0f48f2; BYTE $0xf9 // cvttsd2si rdi, xmm1 + LONG $0xc12e0f66 // ucomisd xmm0, xmm1 + LONG $0xfe460f48 // cmovbe rdi, rsi + LONG $0xc17c8948; BYTE $0x10 // mov qword [rcx + 8*rax + 16], rdi + LONG $0x4c100ff2; WORD $0x18c2 // movsd xmm1, qword [rdx + 8*rax + 24] + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd05c0ff2 // subsd xmm2, xmm0 + LONG $0x2c0f48f2; BYTE $0xf2 // cvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2c0f48f2; BYTE $0xf9 // cvttsd2si rdi, xmm1 + LONG $0xc12e0f66 // ucomisd xmm0, xmm1 + LONG $0xfe460f48 // cmovbe rdi, rsi + LONG $0xc17c8948; BYTE $0x18 // mov qword [rcx + 8*rax + 24], rdi + LONG $0x04c08348 // add rax, 4 + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB0_552 + +LBB0_553: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xc10c8d48 // lea rcx, [rcx + 8*rax] + LONG $0xc2048d48 // lea rax, [rdx + 8*rax] + WORD $0xd231 // xor edx, edx + LONG $0x45100ff2; BYTE $0x00 // movsd xmm0, qword 0[rbp] /* [rip + .LCPI0_0] */ + +LBB0_555: + LONG $0x0c100ff2; BYTE $0xd0 // movsd xmm1, qword [rax + 8*rdx] + LONG $0xd1280f66 // movapd xmm2, xmm1 + LONG $0xd05c0ff2 // subsd xmm2, xmm0 + LONG $0x2c0f48f2; BYTE $0xf2 // cvttsd2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2c0f48f2; BYTE $0xf9 // cvttsd2si rdi, xmm1 + LONG $0xc12e0f66 // ucomisd xmm0, xmm1 + LONG $0xfe460f48 // cmovbe rdi, rsi + LONG $0xd13c8948 // mov qword [rcx + 8*rdx], rdi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd0 // cmp r8, rdx + JNE LBB0_555 + JMP LBB0_1526 + +LBB0_562: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_812 + WORD $0xc031 // xor eax, eax + JMP LBB0_814 + +LBB0_564: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_819 + WORD $0xc031 // xor eax, eax + JMP LBB0_821 + +LBB0_569: + LONG $0xfce18341 // and r9d, -4 + WORD $0xff31 // xor edi, edi + QUAD $0x0000011085100ff3 // movss xmm0, dword 272[rbp] /* [rip + .LCPI0_2] */ + QUAD $0x000000000000ba49; WORD $0x8000 // mov r10, -9223372036854775808 + +LBB0_570: + LONG $0x0c100ff3; BYTE $0xba // movss xmm1, dword [rdx + 4*rdi] + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + LONG $0xd05c0ff3 // subss xmm2, xmm0 + LONG $0x2c0f48f3; BYTE $0xf2 // cvttss2si rsi, xmm2 + WORD $0x314c; BYTE $0xd6 // xor rsi, r10 + LONG $0x2c0f48f3; BYTE $0xc1 // cvttss2si rax, xmm1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xc6460f48 // cmovbe rax, rsi + LONG $0xf9048948 // mov qword [rcx + 8*rdi], rax + LONG $0x4c100ff3; WORD $0x04ba // movss xmm1, dword [rdx + 4*rdi + 4] + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + LONG $0xd05c0ff3 // subss xmm2, xmm0 + LONG $0x2c0f48f3; BYTE $0xc2 // cvttss2si rax, xmm2 + WORD $0x314c; BYTE $0xd0 // xor rax, r10 + LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si rsi, xmm1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xf0460f48 // cmovbe rsi, rax + LONG $0xf9748948; BYTE $0x08 // mov qword [rcx + 8*rdi + 8], rsi + LONG $0x4c100ff3; WORD $0x08ba // movss xmm1, dword [rdx + 4*rdi + 8] + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + LONG $0xd05c0ff3 // subss xmm2, xmm0 + LONG $0x2c0f48f3; BYTE $0xc2 // cvttss2si rax, xmm2 + WORD $0x314c; BYTE $0xd0 // xor rax, r10 + LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si rsi, xmm1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xf0460f48 // cmovbe rsi, rax + LONG $0xf9748948; BYTE $0x10 // mov qword [rcx + 8*rdi + 16], rsi + LONG $0x4c100ff3; WORD $0x0cba // movss xmm1, dword [rdx + 4*rdi + 12] + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + LONG $0xd05c0ff3 // subss xmm2, xmm0 + LONG $0x2c0f48f3; BYTE $0xc2 // cvttss2si rax, xmm2 + WORD $0x314c; BYTE $0xd0 // xor rax, r10 + LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si rsi, xmm1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xf0460f48 // cmovbe rsi, rax + LONG $0xf9748948; BYTE $0x18 // mov qword [rcx + 8*rdi + 24], rsi + LONG $0x04c78348 // add rdi, 4 + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB0_570 + +LBB0_571: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf9048d48 // lea rax, [rcx + 8*rdi] + LONG $0xba0c8d48 // lea rcx, [rdx + 4*rdi] + WORD $0xd231 // xor edx, edx + QUAD $0x0000011085100ff3 // movss xmm0, dword 272[rbp] /* [rip + .LCPI0_2] */ + QUAD $0x000000000000b949; WORD $0x8000 // mov r9, -9223372036854775808 + +LBB0_573: + LONG $0x0c100ff3; BYTE $0x91 // movss xmm1, dword [rcx + 4*rdx] + WORD $0x280f; BYTE $0xd1 // movaps xmm2, xmm1 + LONG $0xd05c0ff3 // subss xmm2, xmm0 + LONG $0x2c0f48f3; BYTE $0xfa // cvttss2si rdi, xmm2 + WORD $0x314c; BYTE $0xcf // xor rdi, r9 + LONG $0x2c0f48f3; BYTE $0xf1 // cvttss2si rsi, xmm1 + WORD $0x2e0f; BYTE $0xc1 // ucomiss xmm0, xmm1 + LONG $0xf7460f48 // cmovbe rsi, rdi + LONG $0xd0348948 // mov qword [rax + 8*rdx], rsi + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd0 // cmp r8, rdx + JNE LBB0_573 + JMP LBB0_1526 + +LBB0_577: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_830 + WORD $0xc031 // xor eax, eax + JMP LBB0_832 + +LBB0_579: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_980 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */ + +LBB0_581: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_581 + JMP LBB0_981 + +LBB0_582: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_985 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */ + +LBB0_584: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_584 + JMP LBB0_986 + +LBB0_585: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_990 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_587: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_587 + JMP LBB0_991 + +LBB0_588: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_995 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_590: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_590 + JMP LBB0_996 + +LBB0_597: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1000 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_599: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_599 + JMP LBB0_1001 + +LBB0_600: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1005 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_602: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_602 + JMP LBB0_1006 + +LBB0_615: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1010 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_617: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_617 + JMP LBB0_1011 + +LBB0_618: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1015 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_620: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x447e0f66; WORD $0x0879 // movd dword [rcx + 2*rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c79 // movd dword [rcx + 2*rdi + 12], xmm1 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_620 + JMP LBB0_1016 + +LBB0_621: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1020 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_623: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc1 // packusdw xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc1 // packusdw xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_623 + JMP LBB0_1021 + +LBB0_624: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1025 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_626: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc16b0f66 // packssdw xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc16b0f66 // packssdw xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm0 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_626 + JMP LBB0_1026 + +LBB0_633: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1030 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */ + +LBB0_635: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_635 + JMP LBB0_1031 + +LBB0_636: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1035 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI0_12] */ + +LBB0_638: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_638 + JMP LBB0_1036 + +LBB0_639: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_857 + WORD $0xc031 // xor eax, eax + JMP LBB0_859 + +LBB0_641: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1040 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000d0856f0f66 // movdqa xmm0, oword 208[rbp] /* [rip + .LCPI0_14] */ + QUAD $0x000000e08d6f0f66 // movdqa xmm1, oword 224[rbp] /* [rip + .LCPI0_15] */ + LONG $0xf095280f; WORD $0x0000; BYTE $0x00 // movaps xmm2, oword 240[rbp] /* [rip + .LCPI0_16] */ + +LBB0_643: + LONG $0x1c6f0ff3; BYTE $0xba // movdqu xmm3, oword [rdx + 4*rdi] + LONG $0x646f0ff3; WORD $0x10ba // movdqu xmm4, oword [rdx + 4*rdi + 16] + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0x0e3a0f66; WORD $0xaae8 // pblendw xmm5, xmm0, 170 + LONG $0xd3720f66; BYTE $0x10 // psrld xmm3, 16 + LONG $0x0e3a0f66; WORD $0xaad9 // pblendw xmm3, xmm1, 170 + WORD $0x5c0f; BYTE $0xda // subps xmm3, xmm2 + WORD $0x580f; BYTE $0xdd // addps xmm3, xmm5 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0x0e3a0f66; WORD $0xaae8 // pblendw xmm5, xmm0, 170 + LONG $0xd4720f66; BYTE $0x10 // psrld xmm4, 16 + LONG $0x0e3a0f66; WORD $0xaae1 // pblendw xmm4, xmm1, 170 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x580f; BYTE $0xe5 // addps xmm4, xmm5 + LONG $0xb91c110f // movups oword [rcx + 4*rdi], xmm3 + LONG $0xb964110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm4 + LONG $0x5c6f0ff3; WORD $0x20ba // movdqu xmm3, oword [rdx + 4*rdi + 32] + LONG $0x646f0ff3; WORD $0x30ba // movdqu xmm4, oword [rdx + 4*rdi + 48] + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0x0e3a0f66; WORD $0xaae8 // pblendw xmm5, xmm0, 170 + LONG $0xd3720f66; BYTE $0x10 // psrld xmm3, 16 + LONG $0x0e3a0f66; WORD $0xaad9 // pblendw xmm3, xmm1, 170 + WORD $0x5c0f; BYTE $0xda // subps xmm3, xmm2 + WORD $0x580f; BYTE $0xdd // addps xmm3, xmm5 + LONG $0xec6f0f66 // movdqa xmm5, xmm4 + LONG $0x0e3a0f66; WORD $0xaae8 // pblendw xmm5, xmm0, 170 + LONG $0xd4720f66; BYTE $0x10 // psrld xmm4, 16 + LONG $0x0e3a0f66; WORD $0xaae1 // pblendw xmm4, xmm1, 170 + WORD $0x5c0f; BYTE $0xe2 // subps xmm4, xmm2 + WORD $0x580f; BYTE $0xe5 // addps xmm4, xmm5 + LONG $0xb95c110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm3 + LONG $0xb964110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm4 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_643 + JMP LBB0_1041 + +LBB0_644: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_645: + LONG $0x2c0f48f2; WORD $0xfa04 // cvttsd2si rax, qword [rdx + 8*rdi] + LONG $0xf9048948 // mov qword [rcx + 8*rdi], rax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x08 // cvttsd2si rax, qword [rdx + 8*rdi + 8] + LONG $0xf9448948; BYTE $0x08 // mov qword [rcx + 8*rdi + 8], rax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x10 // cvttsd2si rax, qword [rdx + 8*rdi + 16] + LONG $0xf9448948; BYTE $0x10 // mov qword [rcx + 8*rdi + 16], rax + LONG $0x2c0f48f2; WORD $0xfa44; BYTE $0x18 // cvttsd2si rax, qword [rdx + 8*rdi + 24] + LONG $0xf9448948; BYTE $0x18 // mov qword [rcx + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_645 + +LBB0_646: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_648: + LONG $0x2c0f48f2; WORD $0xf204 // cvttsd2si rax, qword [rdx + 8*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_648 + JMP LBB0_1526 + +LBB0_649: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1045 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_651: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc05a0f66 // cvtpd2ps xmm0, xmm0 + LONG $0xc95a0f66 // cvtpd2ps xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc05a0f66 // cvtpd2ps xmm0, xmm0 + LONG $0xc95a0f66 // cvtpd2ps xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x44110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_651 + JMP LBB0_1046 + +LBB0_661: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1050 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xff31 // xor edi, edi + QUAD $0x000000a0956f0f66 // movdqa xmm2, oword 160[rbp] /* [rip + .LCPI0_11] */ + +LBB0_663: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcadb0f66 // pand xmm1, xmm2 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd3730f66; BYTE $0x01 // psrlq xmm3, 1 + LONG $0xd9eb0f66 // por xmm3, xmm1 + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0x37380f66; BYTE $0xe0 // pcmpgtq xmm4, xmm0 + LONG $0x15380f66; BYTE $0xc3 // blendvpd xmm0, xmm3, xmm0 + LONG $0x3a0f4866; WORD $0xc016; BYTE $0x01 // pextrq rax, xmm0, 1 + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0x2a0f48f3; BYTE $0xe8 // cvtsi2ss xmm5, rax + LONG $0x7e0f4866; BYTE $0xc0 // movq rax, xmm0 + WORD $0x570f; BYTE $0xdb // xorps xmm3, xmm3 + LONG $0x2a0f48f3; BYTE $0xd8 // cvtsi2ss xmm3, rax + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x213a0f66; WORD $0x1cdd // insertps xmm3, xmm5, 28 + WORD $0x280f; BYTE $0xeb // movaps xmm5, xmm3 + WORD $0x580f; BYTE $0xeb // addps xmm5, xmm3 + LONG $0xc4700f66; BYTE $0xed // pshufd xmm0, xmm4, 237 + LONG $0x14380f66; BYTE $0xdd // blendvps xmm3, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0xc2db0f66 // pand xmm0, xmm2 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xd4730f66; BYTE $0x01 // psrlq xmm4, 1 + LONG $0xe0eb0f66 // por xmm4, xmm0 + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0x37380f66; BYTE $0xe9 // pcmpgtq xmm5, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcc // blendvpd xmm1, xmm4, xmm0 + LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq rax, xmm1, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0x7e0f4866; BYTE $0xc8 // movq rax, xmm1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x2a0f48f3; BYTE $0xc8 // cvtsi2ss xmm1, rax + LONG $0x213a0f66; WORD $0x1cc8 // insertps xmm1, xmm0, 28 + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x580f; BYTE $0xe1 // addps xmm4, xmm1 + LONG $0xc5700f66; BYTE $0xed // pshufd xmm0, xmm5, 237 + LONG $0x14380f66; BYTE $0xcc // blendvps xmm1, xmm4, xmm0 + WORD $0x160f; BYTE $0xd9 // movlhps xmm3, xmm1 + LONG $0xb91c110f // movups oword [rcx + 4*rdi], xmm3 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcadb0f66 // pand xmm1, xmm2 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd3730f66; BYTE $0x01 // psrlq xmm3, 1 + LONG $0xd9eb0f66 // por xmm3, xmm1 + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x37380f66; BYTE $0xe0 // pcmpgtq xmm4, xmm0 + LONG $0x15380f66; BYTE $0xc3 // blendvpd xmm0, xmm3, xmm0 + LONG $0x3a0f4866; WORD $0xc016; BYTE $0x01 // pextrq rax, xmm0, 1 + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0x2a0f48f3; BYTE $0xe8 // cvtsi2ss xmm5, rax + LONG $0x7e0f4866; BYTE $0xc0 // movq rax, xmm0 + WORD $0x570f; BYTE $0xdb // xorps xmm3, xmm3 + LONG $0x2a0f48f3; BYTE $0xd8 // cvtsi2ss xmm3, rax + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0x213a0f66; WORD $0x1cdd // insertps xmm3, xmm5, 28 + WORD $0x280f; BYTE $0xeb // movaps xmm5, xmm3 + WORD $0x580f; BYTE $0xeb // addps xmm5, xmm3 + LONG $0xc4700f66; BYTE $0xed // pshufd xmm0, xmm4, 237 + LONG $0x14380f66; BYTE $0xdd // blendvps xmm3, xmm5, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0xc2db0f66 // pand xmm0, xmm2 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xd4730f66; BYTE $0x01 // psrlq xmm4, 1 + LONG $0xe0eb0f66 // por xmm4, xmm0 + WORD $0x570f; BYTE $0xed // xorps xmm5, xmm5 + LONG $0x37380f66; BYTE $0xe9 // pcmpgtq xmm5, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcc // blendvpd xmm1, xmm4, xmm0 + LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq rax, xmm1, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0x7e0f4866; BYTE $0xc8 // movq rax, xmm1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x2a0f48f3; BYTE $0xc8 // cvtsi2ss xmm1, rax + LONG $0x213a0f66; WORD $0x1cc8 // insertps xmm1, xmm0, 28 + WORD $0x280f; BYTE $0xe1 // movaps xmm4, xmm1 + WORD $0x580f; BYTE $0xe1 // addps xmm4, xmm1 + LONG $0xc5700f66; BYTE $0xed // pshufd xmm0, xmm5, 237 + LONG $0x14380f66; BYTE $0xcc // blendvps xmm1, xmm4, xmm0 + WORD $0x160f; BYTE $0xd9 // movlhps xmm3, xmm1 + LONG $0xb95c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm3 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_663 + JMP LBB0_1051 + +LBB0_664: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_871 + WORD $0xc031 // xor eax, eax + JMP LBB0_873 + +LBB0_666: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1058 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_668: + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd xmm1, qword [rdx + 2*rdi + 24] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb944110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm0 + LONG $0xb94c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_668 + JMP LBB0_1059 + +LBB0_669: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_878 + WORD $0xc031 // xor eax, eax + JMP LBB0_880 + +LBB0_671: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1063 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_673: + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd xmm1, qword [rdx + 2*rdi + 24] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb944110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm0 + LONG $0xb94c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_673 + JMP LBB0_1064 + +LBB0_677: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_678: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; WORD $0xfa04 // cvtsi2ss xmm0, qword [rdx + 8*rdi] + LONG $0x04110ff3; BYTE $0xb9 // movss dword [rcx + 4*rdi], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x08 // cvtsi2ss xmm0, qword [rdx + 8*rdi + 8] + LONG $0x44110ff3; WORD $0x04b9 // movss dword [rcx + 4*rdi + 4], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x10 // cvtsi2ss xmm0, qword [rdx + 8*rdi + 16] + LONG $0x44110ff3; WORD $0x08b9 // movss dword [rcx + 4*rdi + 8], xmm0 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; WORD $0xfa44; BYTE $0x18 // cvtsi2ss xmm0, qword [rdx + 8*rdi + 24] + LONG $0x44110ff3; WORD $0x0cb9 // movss dword [rcx + 4*rdi + 12], xmm0 + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_678 + +LBB0_679: + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1526 + LONG $0xb90c8d48 // lea rcx, [rcx + 4*rdi] + LONG $0xfa148d48 // lea rdx, [rdx + 8*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_681: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; WORD $0xf204 // cvtsi2ss xmm0, qword [rdx + 8*rsi] + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JNE LBB0_681 + JMP LBB0_1526 + +LBB0_682: + WORD $0xe683; BYTE $0xfc // and esi, -4 + WORD $0xff31 // xor edi, edi + +LBB0_683: + LONG $0x2c0f48f3; WORD $0xba04 // cvttss2si rax, dword [rdx + 4*rdi] + LONG $0xf9048948 // mov qword [rcx + 8*rdi], rax + LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x04 // cvttss2si rax, dword [rdx + 4*rdi + 4] + LONG $0xf9448948; BYTE $0x08 // mov qword [rcx + 8*rdi + 8], rax + LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x08 // cvttss2si rax, dword [rdx + 4*rdi + 8] + LONG $0xf9448948; BYTE $0x10 // mov qword [rcx + 8*rdi + 16], rax + LONG $0x2c0f48f3; WORD $0xba44; BYTE $0x0c // cvttss2si rax, dword [rdx + 4*rdi + 12] + LONG $0xf9448948; BYTE $0x18 // mov qword [rcx + 8*rdi + 24], rax + LONG $0x04c78348 // add rdi, 4 + WORD $0x3948; BYTE $0xfe // cmp rsi, rdi + JNE LBB0_683 + +LBB0_684: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1526 + LONG $0xf90c8d48 // lea rcx, [rcx + 8*rdi] + LONG $0xba148d48 // lea rdx, [rdx + 4*rdi] + WORD $0xf631 // xor esi, esi + +LBB0_686: + LONG $0x2c0f48f3; WORD $0xb204 // cvttss2si rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB0_686 + JMP LBB0_1526 + +LBB0_696: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_894 + WORD $0xc031 // xor eax, eax + JMP LBB0_896 + +LBB0_698: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1068 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_700: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb944110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm0 + LONG $0xb94c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_700 + JMP LBB0_1069 + +LBB0_734: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1073 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_736: + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x44100f66; WORD $0x20fa // movupd xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c100f66; WORD $0x30fa // movupd xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x44110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_736 + JMP LBB0_1074 + +LBB0_740: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_939 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_742: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_742 + JMP LBB0_940 + +LBB0_743: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1078 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_745: + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x33380f66; WORD $0x7a44; BYTE $0x10 // pmovzxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x18 // pmovzxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_745 + JMP LBB0_1079 + +LBB0_746: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1083 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_748: + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x23380f66; WORD $0x7a44; BYTE $0x10 // pmovsxwd xmm0, qword [rdx + 2*rdi + 16] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x18 // pmovsxwd xmm1, qword [rdx + 2*rdi + 24] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_748 + JMP LBB0_1084 + +LBB0_749: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1088 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_751: + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x446f0ff3; WORD $0x20fa // movdqu xmm0, oword [rdx + 8*rdi + 32] + LONG $0x4c6f0ff3; WORD $0x30fa // movdqu xmm1, oword [rdx + 8*rdi + 48] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x447f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_751 + JMP LBB0_1089 + +LBB0_752: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1093 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_754: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x44110f66; WORD $0x20b9 // movupd oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c110f66; WORD $0x30b9 // movupd oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_754 + JMP LBB0_1094 + +LBB0_761: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB0_1098 + WORD $0xc031 // xor eax, eax + JMP LBB0_1100 + +LBB0_763: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1478 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_765: + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd xmm0, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd xmm1, dword [rdx + rdi + 12] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_765 + JMP LBB0_1479 + +LBB0_766: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1486 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_768: + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd xmm0, dword [rdx + rdi + 8] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd xmm1, dword [rdx + rdi + 12] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_768 + JMP LBB0_1487 + +LBB0_769: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB0_1108 + WORD $0xc031 // xor eax, eax + JMP LBB0_1110 + +LBB0_771: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1118 + WORD $0xc031 // xor eax, eax + JMP LBB0_1120 + +LBB0_773: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1494 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000c0856f0f66 // movdqa xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */ + +LBB0_775: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x0c7e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm1 + LONG $0x547e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x4c7e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm1 + LONG $0x547e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_775 + JMP LBB0_1495 + +LBB0_776: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1502 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI0_1] */ + +LBB0_778: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_778 + JMP LBB0_1503 + +LBB0_779: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1128 + WORD $0xc031 // xor eax, eax + JMP LBB0_1130 + +LBB0_781: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1318 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x40 // movdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */ + +LBB0_783: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_783 + JMP LBB0_1319 + +LBB0_784: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1326 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */ + +LBB0_786: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_786 + JMP LBB0_1327 + +LBB0_787: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1510 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */ + +LBB0_789: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_789 + JMP LBB0_1511 + +LBB0_790: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1334 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x40 // movdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */ + +LBB0_792: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_792 + JMP LBB0_1335 + +LBB0_793: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1518 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_795: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x447e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_795 + JMP LBB0_1519 + +LBB0_796: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1138 + WORD $0xc031 // xor eax, eax + JMP LBB0_1140 + +LBB0_798: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1342 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000c0856f0f66 // movdqa xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */ + +LBB0_800: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x0c7e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm1 + LONG $0x547e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x4c7e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm1 + LONG $0x547e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_800 + JMP LBB0_1343 + +LBB0_808: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1148 + WORD $0xc031 // xor eax, eax + JMP LBB0_1150 + +LBB0_810: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1158 + WORD $0xc031 // xor eax, eax + JMP LBB0_1160 + +LBB0_826: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1168 + WORD $0xc031 // xor eax, eax + JMP LBB0_1170 + +LBB0_828: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1178 + WORD $0xc031 // xor eax, eax + JMP LBB0_1180 + +LBB0_837: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1350 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_839: + LONG $0x20380f66; WORD $0x3a04 // pmovsxbw xmm0, qword [rdx + rdi] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x20380f66; WORD $0x3a44; BYTE $0x10 // pmovsxbw xmm0, qword [rdx + rdi + 16] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbw xmm1, qword [rdx + rdi + 24] + LONG $0x447f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_839 + JMP LBB0_1351 + +LBB0_840: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1358 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_842: + LONG $0x20380f66; WORD $0x3a04 // pmovsxbw xmm0, qword [rdx + rdi] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x20380f66; WORD $0x3a44; BYTE $0x10 // pmovsxbw xmm0, qword [rdx + rdi + 16] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x18 // pmovsxbw xmm1, qword [rdx + rdi + 24] + LONG $0x447f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_842 + JMP LBB0_1359 + +LBB0_843: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB0_1188 + WORD $0xc031 // xor eax, eax + JMP LBB0_1190 + +LBB0_845: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB0_1198 + WORD $0xc031 // xor eax, eax + JMP LBB0_1200 + +LBB0_847: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB0_1208 + WORD $0xc031 // xor eax, eax + JMP LBB0_1210 + +LBB0_849: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x04efc148 // shr rdi, 4 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x30f88348 // cmp rax, 48 + JAE LBB0_1218 + WORD $0xc031 // xor eax, eax + JMP LBB0_1220 + +LBB0_851: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1366 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_853: + LONG $0x30380f66; WORD $0x3a04 // pmovzxbw xmm0, qword [rdx + rdi] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x30380f66; WORD $0x3a44; BYTE $0x10 // pmovzxbw xmm0, qword [rdx + rdi + 16] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x18 // pmovzxbw xmm1, qword [rdx + rdi + 24] + LONG $0x447f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_853 + JMP LBB0_1367 + +LBB0_854: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1374 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_856: + LONG $0x30380f66; WORD $0x3a04 // pmovzxbw xmm0, qword [rdx + rdi] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + LONG $0x30380f66; WORD $0x3a44; BYTE $0x10 // pmovzxbw xmm0, qword [rdx + rdi + 16] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x18 // pmovzxbw xmm1, qword [rdx + rdi + 24] + LONG $0x447f0ff3; WORD $0x2079 // movdqu oword [rcx + 2*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x3079 // movdqu oword [rcx + 2*rdi + 48], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_856 + JMP LBB0_1375 + +LBB0_864: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1228 + WORD $0xc031 // xor eax, eax + JMP LBB0_1230 + +LBB0_866: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1382 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_868: + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd xmm0, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd xmm1, dword [rdx + rdi + 12] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb944110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm0 + LONG $0xb94c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_868 + JMP LBB0_1383 + +LBB0_869: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1238 + WORD $0xc031 // xor eax, eax + JMP LBB0_1240 + +LBB0_885: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1248 + WORD $0xc031 // xor eax, eax + JMP LBB0_1250 + +LBB0_887: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB0_1258 + WORD $0xc031 // xor eax, eax + JMP LBB0_1260 + +LBB0_889: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x02efc148 // shr rdi, 2 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x0cf88348 // cmp rax, 12 + JAE LBB0_1268 + WORD $0xc031 // xor eax, eax + JMP LBB0_1270 + +LBB0_891: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1390 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_893: + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd xmm0, dword [rdx + rdi + 8] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd xmm1, dword [rdx + rdi + 12] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb944110f; BYTE $0x20 // movups oword [rcx + 4*rdi + 32], xmm0 + LONG $0xb94c110f; BYTE $0x30 // movups oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_893 + JMP LBB0_1391 + +LBB0_901: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1398 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000c0856f0f66 // movdqa xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */ + +LBB0_903: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x0c7e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm1 + LONG $0x547e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x4c7e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm1 + LONG $0x547e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_903 + JMP LBB0_1399 + +LBB0_904: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1406 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI0_1] */ + +LBB0_906: + LONG $0x0c100f66; BYTE $0xfa // movupd xmm1, oword [rdx + 8*rdi] + LONG $0x54100f66; WORD $0x10fa // movupd xmm2, oword [rdx + 8*rdi + 16] + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c100f66; WORD $0x20fa // movupd xmm1, oword [rdx + 8*rdi + 32] + LONG $0x54100f66; WORD $0x30fa // movupd xmm2, oword [rdx + 8*rdi + 48] + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xd2e60f66 // cvttpd2dq xmm2, xmm2 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_906 + JMP LBB0_1407 + +LBB0_907: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1278 + WORD $0xc031 // xor eax, eax + JMP LBB0_1280 + +LBB0_909: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1414 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x40 // movdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */ + +LBB0_911: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_911 + JMP LBB0_1415 + +LBB0_912: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1422 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */ + +LBB0_914: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_914 + JMP LBB0_1423 + +LBB0_915: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf0 // and esi, -16 + LONG $0xf0468d48 // lea rax, [rsi - 16] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x04e8c149 // shr r8, 4 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1430 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI0_17] */ + +LBB0_917: + LONG $0x0c6f0ff3; BYTE $0x7a // movdqu xmm1, oword [rdx + 2*rdi] + LONG $0x546f0ff3; WORD $0x107a // movdqu xmm2, oword [rdx + 2*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x0c7f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm1 + LONG $0x4c6f0ff3; WORD $0x207a // movdqu xmm1, oword [rdx + 2*rdi + 32] + LONG $0x546f0ff3; WORD $0x307a // movdqu xmm2, oword [rdx + 2*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0x4c7f0ff3; WORD $0x1039 // movdqu oword [rcx + rdi + 16], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_917 + JMP LBB0_1431 + +LBB0_918: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xfc // and esi, -4 + LONG $0xfc468d48 // lea rax, [rsi - 4] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x02e8c149 // shr r8, 2 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1438 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + LONG $0x456f0f66; BYTE $0x40 // movdqa xmm0, oword 64[rbp] /* [rip + .LCPI0_5] */ + +LBB0_920: + LONG $0x0c6f0ff3; BYTE $0xfa // movdqu xmm1, oword [rdx + 8*rdi] + LONG $0x546f0ff3; WORD $0x10fa // movdqu xmm2, oword [rdx + 8*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x153a0f66; WORD $0x390c; BYTE $0x00 // pextrw word [rcx + rdi], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00023954153a0f66 // pextrw word [rcx + rdi + 2], xmm2, 0 + LONG $0x4c6f0ff3; WORD $0x20fa // movdqu xmm1, oword [rdx + 8*rdi + 32] + LONG $0x546f0ff3; WORD $0x30fa // movdqu xmm2, oword [rdx + 8*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0004394c153a0f66 // pextrw word [rcx + rdi + 4], xmm1, 0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + QUAD $0x00063954153a0f66 // pextrw word [rcx + rdi + 6], xmm2, 0 + LONG $0x08c78348 // add rdi, 8 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_920 + JMP LBB0_1439 + +LBB0_921: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1446 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_923: + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0x2b380f66; BYTE $0xc0 // packusdw xmm0, xmm0 + LONG $0xc0670f66 // packuswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc9 // packusdw xmm1, xmm1 + LONG $0xc9670f66 // packuswb xmm1, xmm1 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + LONG $0xba44100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rdi + 32] + LONG $0xba4c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rdi + 48] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0x2b380f66; BYTE $0xc0 // packusdw xmm0, xmm0 + LONG $0xc0670f66 // packuswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc9 // packusdw xmm1, xmm1 + LONG $0xc9670f66 // packuswb xmm1, xmm1 + LONG $0x447e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm0 + LONG $0x4c7e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_923 + JMP LBB0_1447 + +LBB0_924: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xe0 // and esi, -32 + LONG $0xe0468d48 // lea rax, [rsi - 32] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x05efc148 // shr rdi, 5 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x60f88348 // cmp rax, 96 + JAE LBB0_1288 + WORD $0xc031 // xor eax, eax + JMP LBB0_1290 + +LBB0_926: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1454 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + QUAD $0x000000c0856f0f66 // movdqa xmm0, oword 192[rbp] /* [rip + .LCPI0_13] */ + +LBB0_928: + LONG $0x0c6f0ff3; BYTE $0xba // movdqu xmm1, oword [rdx + 4*rdi] + LONG $0x546f0ff3; WORD $0x10ba // movdqu xmm2, oword [rdx + 4*rdi + 16] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x0c7e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm1 + LONG $0x547e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm2 + LONG $0x4c6f0ff3; WORD $0x20ba // movdqu xmm1, oword [rdx + 4*rdi + 32] + LONG $0x546f0ff3; WORD $0x30ba // movdqu xmm2, oword [rdx + 4*rdi + 48] + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + LONG $0x00380f66; BYTE $0xd0 // pshufb xmm2, xmm0 + LONG $0x4c7e0f66; WORD $0x0839 // movd dword [rcx + rdi + 8], xmm1 + LONG $0x547e0f66; WORD $0x0c39 // movd dword [rcx + rdi + 12], xmm2 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_928 + JMP LBB0_1455 + +LBB0_929: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB0_1298 + WORD $0xc031 // xor eax, eax + JMP LBB0_1300 + +LBB0_931: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1462 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_933: + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x21380f66; WORD $0x3a44; BYTE $0x08 // pmovsxbd xmm0, dword [rdx + rdi + 8] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x0c // pmovsxbd xmm1, dword [rdx + rdi + 12] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_933 + JMP LBB0_1463 + +LBB0_934: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_1470 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0xfee08348 // and rax, -2 + WORD $0xf748; BYTE $0xd8 // neg rax + WORD $0xff31 // xor edi, edi + +LBB0_936: + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + LONG $0x31380f66; WORD $0x3a44; BYTE $0x08 // pmovzxbd xmm0, dword [rdx + rdi + 8] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x0c // pmovzxbd xmm1, dword [rdx + rdi + 12] + LONG $0x447f0ff3; WORD $0x20b9 // movdqu oword [rcx + 4*rdi + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30b9 // movdqu oword [rcx + 4*rdi + 48], xmm1 + LONG $0x10c78348 // add rdi, 16 + LONG $0x02c08348 // add rax, 2 + JNE LBB0_936 + JMP LBB0_1471 + +LBB0_937: + WORD $0x8944; BYTE $0xce // mov esi, r9d + WORD $0xe683; BYTE $0xf8 // and esi, -8 + LONG $0xf8468d48 // lea rax, [rsi - 8] + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + LONG $0x01c78348 // add rdi, 1 + WORD $0x8941; BYTE $0xf8 // mov r8d, edi + LONG $0x03e08341 // and r8d, 3 + LONG $0x18f88348 // cmp rax, 24 + JAE LBB0_1308 + WORD $0xc031 // xor eax, eax + JMP LBB0_1310 + +LBB0_801: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_802: + LONG $0x35380f66; WORD $0x8204 // pmovzxdq xmm0, qword [rdx + 4*rax] + LONG $0x35380f66; WORD $0x824c; BYTE $0x08 // pmovzxdq xmm1, qword [rdx + 4*rax + 8] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x10 // pmovzxdq xmm0, qword [rdx + 4*rax + 16] + LONG $0x35380f66; WORD $0x824c; BYTE $0x18 // pmovzxdq xmm1, qword [rdx + 4*rax + 24] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x20 // pmovzxdq xmm0, qword [rdx + 4*rax + 32] + LONG $0x35380f66; WORD $0x824c; BYTE $0x28 // pmovzxdq xmm1, qword [rdx + 4*rax + 40] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x30 // pmovzxdq xmm0, qword [rdx + 4*rax + 48] + LONG $0x35380f66; WORD $0x824c; BYTE $0x38 // pmovzxdq xmm1, qword [rdx + 4*rax + 56] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_802 + +LBB0_803: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_806 + QUAD $0x0000000885048d48 // lea rax, [4*rax + 8] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_805: + LONG $0x35380f66; WORD $0x0244; BYTE $0xf8 // pmovzxdq xmm0, qword [rdx + rax - 8] + LONG $0x35380f66; WORD $0x020c // pmovzxdq xmm1, qword [rdx + rax] + LONG $0x447f0ff3; WORD $0xf041 // movdqu oword [rcx + 2*rax - 16], xmm0 + LONG $0x0c7f0ff3; BYTE $0x41 // movdqu oword [rcx + 2*rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_805 + +LBB0_806: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_807: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_807 + JMP LBB0_1526 + +LBB0_812: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_813: + LONG $0x34380f66; WORD $0x4204 // pmovzxwq xmm0, dword [rdx + 2*rax] + LONG $0x34380f66; WORD $0x424c; BYTE $0x04 // pmovzxwq xmm1, dword [rdx + 2*rax + 4] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x08 // pmovzxwq xmm0, dword [rdx + 2*rax + 8] + LONG $0x34380f66; WORD $0x424c; BYTE $0x0c // pmovzxwq xmm1, dword [rdx + 2*rax + 12] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x10 // pmovzxwq xmm0, dword [rdx + 2*rax + 16] + LONG $0x34380f66; WORD $0x424c; BYTE $0x14 // pmovzxwq xmm1, dword [rdx + 2*rax + 20] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x18 // pmovzxwq xmm0, dword [rdx + 2*rax + 24] + LONG $0x34380f66; WORD $0x424c; BYTE $0x1c // pmovzxwq xmm1, dword [rdx + 2*rax + 28] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_813 + +LBB0_814: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_817 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x42148d4c // lea r10, [rdx + 2*rax] + LONG $0x04c28349 // add r10, 4 + WORD $0xc031 // xor eax, eax + +LBB0_816: + QUAD $0xfcc24434380f4166 // pmovzxwq xmm0, dword [r10 + 8*rax - 4] + LONG $0x380f4166; WORD $0x0c34; BYTE $0xc2 // pmovzxwq xmm1, dword [r10 + 8*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_816 + +LBB0_817: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_818: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_818 + JMP LBB0_1526 + +LBB0_819: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_820: + LONG $0x24380f66; WORD $0x4204 // pmovsxwq xmm0, dword [rdx + 2*rax] + LONG $0x24380f66; WORD $0x424c; BYTE $0x04 // pmovsxwq xmm1, dword [rdx + 2*rax + 4] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x08 // pmovsxwq xmm0, dword [rdx + 2*rax + 8] + LONG $0x24380f66; WORD $0x424c; BYTE $0x0c // pmovsxwq xmm1, dword [rdx + 2*rax + 12] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x10 // pmovsxwq xmm0, dword [rdx + 2*rax + 16] + LONG $0x24380f66; WORD $0x424c; BYTE $0x14 // pmovsxwq xmm1, dword [rdx + 2*rax + 20] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x18 // pmovsxwq xmm0, dword [rdx + 2*rax + 24] + LONG $0x24380f66; WORD $0x424c; BYTE $0x1c // pmovsxwq xmm1, dword [rdx + 2*rax + 28] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_820 + +LBB0_821: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_824 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x42148d4c // lea r10, [rdx + 2*rax] + LONG $0x04c28349 // add r10, 4 + WORD $0xc031 // xor eax, eax + +LBB0_823: + QUAD $0xfcc24424380f4166 // pmovsxwq xmm0, dword [r10 + 8*rax - 4] + LONG $0x380f4166; WORD $0x0c24; BYTE $0xc2 // pmovsxwq xmm1, dword [r10 + 8*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_823 + +LBB0_824: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_825: + LONG $0x04bf0f48; BYTE $0x72 // movsx rax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_825 + JMP LBB0_1526 + +LBB0_830: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_831: + LONG $0x25380f66; WORD $0x8204 // pmovsxdq xmm0, qword [rdx + 4*rax] + LONG $0x25380f66; WORD $0x824c; BYTE $0x08 // pmovsxdq xmm1, qword [rdx + 4*rax + 8] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x10 // pmovsxdq xmm0, qword [rdx + 4*rax + 16] + LONG $0x25380f66; WORD $0x824c; BYTE $0x18 // pmovsxdq xmm1, qword [rdx + 4*rax + 24] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x20 // pmovsxdq xmm0, qword [rdx + 4*rax + 32] + LONG $0x25380f66; WORD $0x824c; BYTE $0x28 // pmovsxdq xmm1, qword [rdx + 4*rax + 40] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x30 // pmovsxdq xmm0, qword [rdx + 4*rax + 48] + LONG $0x25380f66; WORD $0x824c; BYTE $0x38 // pmovsxdq xmm1, qword [rdx + 4*rax + 56] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_831 + +LBB0_832: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_835 + QUAD $0x0000000885048d48 // lea rax, [4*rax + 8] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_834: + LONG $0x25380f66; WORD $0x0244; BYTE $0xf8 // pmovsxdq xmm0, qword [rdx + rax - 8] + LONG $0x25380f66; WORD $0x020c // pmovsxdq xmm1, qword [rdx + rax] + LONG $0x447f0ff3; WORD $0xf041 // movdqu oword [rcx + 2*rax - 16], xmm0 + LONG $0x0c7f0ff3; BYTE $0x41 // movdqu oword [rcx + 2*rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_834 + +LBB0_835: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_836: + LONG $0xb2046348 // movsxd rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_836 + JMP LBB0_1526 + +LBB0_857: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_858: + LONG $0x35380f66; WORD $0x8204 // pmovzxdq xmm0, qword [rdx + 4*rax] + LONG $0x35380f66; WORD $0x824c; BYTE $0x08 // pmovzxdq xmm1, qword [rdx + 4*rax + 8] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x10 // pmovzxdq xmm0, qword [rdx + 4*rax + 16] + LONG $0x35380f66; WORD $0x824c; BYTE $0x18 // pmovzxdq xmm1, qword [rdx + 4*rax + 24] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x20 // pmovzxdq xmm0, qword [rdx + 4*rax + 32] + LONG $0x35380f66; WORD $0x824c; BYTE $0x28 // pmovzxdq xmm1, qword [rdx + 4*rax + 40] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x35380f66; WORD $0x8244; BYTE $0x30 // pmovzxdq xmm0, qword [rdx + 4*rax + 48] + LONG $0x35380f66; WORD $0x824c; BYTE $0x38 // pmovzxdq xmm1, qword [rdx + 4*rax + 56] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_858 + +LBB0_859: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_862 + QUAD $0x0000000885048d48 // lea rax, [4*rax + 8] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_861: + LONG $0x35380f66; WORD $0x0244; BYTE $0xf8 // pmovzxdq xmm0, qword [rdx + rax - 8] + LONG $0x35380f66; WORD $0x020c // pmovzxdq xmm1, qword [rdx + rax] + LONG $0x447f0ff3; WORD $0xf041 // movdqu oword [rcx + 2*rax - 16], xmm0 + LONG $0x0c7f0ff3; BYTE $0x41 // movdqu oword [rcx + 2*rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_861 + +LBB0_862: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_863: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_863 + JMP LBB0_1526 + +LBB0_871: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_872: + LONG $0x34380f66; WORD $0x4204 // pmovzxwq xmm0, dword [rdx + 2*rax] + LONG $0x34380f66; WORD $0x424c; BYTE $0x04 // pmovzxwq xmm1, dword [rdx + 2*rax + 4] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x08 // pmovzxwq xmm0, dword [rdx + 2*rax + 8] + LONG $0x34380f66; WORD $0x424c; BYTE $0x0c // pmovzxwq xmm1, dword [rdx + 2*rax + 12] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x10 // pmovzxwq xmm0, dword [rdx + 2*rax + 16] + LONG $0x34380f66; WORD $0x424c; BYTE $0x14 // pmovzxwq xmm1, dword [rdx + 2*rax + 20] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x34380f66; WORD $0x4244; BYTE $0x18 // pmovzxwq xmm0, dword [rdx + 2*rax + 24] + LONG $0x34380f66; WORD $0x424c; BYTE $0x1c // pmovzxwq xmm1, dword [rdx + 2*rax + 28] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_872 + +LBB0_873: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_876 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x42148d4c // lea r10, [rdx + 2*rax] + LONG $0x04c28349 // add r10, 4 + WORD $0xc031 // xor eax, eax + +LBB0_875: + QUAD $0xfcc24434380f4166 // pmovzxwq xmm0, dword [r10 + 8*rax - 4] + LONG $0x380f4166; WORD $0x0c34; BYTE $0xc2 // pmovzxwq xmm1, dword [r10 + 8*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_875 + +LBB0_876: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_877: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_877 + JMP LBB0_1526 + +LBB0_878: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_879: + LONG $0x24380f66; WORD $0x4204 // pmovsxwq xmm0, dword [rdx + 2*rax] + LONG $0x24380f66; WORD $0x424c; BYTE $0x04 // pmovsxwq xmm1, dword [rdx + 2*rax + 4] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x08 // pmovsxwq xmm0, dword [rdx + 2*rax + 8] + LONG $0x24380f66; WORD $0x424c; BYTE $0x0c // pmovsxwq xmm1, dword [rdx + 2*rax + 12] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x10 // pmovsxwq xmm0, dword [rdx + 2*rax + 16] + LONG $0x24380f66; WORD $0x424c; BYTE $0x14 // pmovsxwq xmm1, dword [rdx + 2*rax + 20] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x24380f66; WORD $0x4244; BYTE $0x18 // pmovsxwq xmm0, dword [rdx + 2*rax + 24] + LONG $0x24380f66; WORD $0x424c; BYTE $0x1c // pmovsxwq xmm1, dword [rdx + 2*rax + 28] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_879 + +LBB0_880: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_883 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x42148d4c // lea r10, [rdx + 2*rax] + LONG $0x04c28349 // add r10, 4 + WORD $0xc031 // xor eax, eax + +LBB0_882: + QUAD $0xfcc24424380f4166 // pmovsxwq xmm0, dword [r10 + 8*rax - 4] + LONG $0x380f4166; WORD $0x0c24; BYTE $0xc2 // pmovsxwq xmm1, dword [r10 + 8*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_882 + +LBB0_883: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_884: + LONG $0x04bf0f48; BYTE $0x72 // movsx rax, word [rdx + 2*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_884 + JMP LBB0_1526 + +LBB0_894: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_895: + LONG $0x25380f66; WORD $0x8204 // pmovsxdq xmm0, qword [rdx + 4*rax] + LONG $0x25380f66; WORD $0x824c; BYTE $0x08 // pmovsxdq xmm1, qword [rdx + 4*rax + 8] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x10 // pmovsxdq xmm0, qword [rdx + 4*rax + 16] + LONG $0x25380f66; WORD $0x824c; BYTE $0x18 // pmovsxdq xmm1, qword [rdx + 4*rax + 24] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x20 // pmovsxdq xmm0, qword [rdx + 4*rax + 32] + LONG $0x25380f66; WORD $0x824c; BYTE $0x28 // pmovsxdq xmm1, qword [rdx + 4*rax + 40] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x25380f66; WORD $0x8244; BYTE $0x30 // pmovsxdq xmm0, qword [rdx + 4*rax + 48] + LONG $0x25380f66; WORD $0x824c; BYTE $0x38 // pmovsxdq xmm1, qword [rdx + 4*rax + 56] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_895 + +LBB0_896: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_899 + QUAD $0x0000000885048d48 // lea rax, [4*rax + 8] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_898: + LONG $0x25380f66; WORD $0x0244; BYTE $0xf8 // pmovsxdq xmm0, qword [rdx + rax - 8] + LONG $0x25380f66; WORD $0x020c // pmovsxdq xmm1, qword [rdx + rax] + LONG $0x447f0ff3; WORD $0xf041 // movdqu oword [rcx + 2*rax - 16], xmm0 + LONG $0x0c7f0ff3; BYTE $0x41 // movdqu oword [rcx + 2*rax], xmm1 + LONG $0x10c08348 // add rax, 16 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_898 + +LBB0_899: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_900: + LONG $0xb2046348 // movsxd rax, dword [rdx + 4*rsi] + LONG $0xf1048948 // mov qword [rcx + 8*rsi], rax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_900 + JMP LBB0_1526 + +LBB0_939: + WORD $0xff31 // xor edi, edi + +LBB0_940: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_942 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + +LBB0_942: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_943: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_943 + JMP LBB0_1526 + +LBB0_944: + WORD $0xff31 // xor edi, edi + +LBB0_945: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_947 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + +LBB0_947: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_948: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_948 + JMP LBB0_1526 + +LBB0_949: + WORD $0xff31 // xor edi, edi + +LBB0_950: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_952 + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_952: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_953: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_953 + JMP LBB0_1526 + +LBB0_954: + WORD $0xff31 // xor edi, edi + +LBB0_955: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_957 + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_957: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_958: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_958 + JMP LBB0_1526 + +LBB0_959: + WORD $0xff31 // xor edi, edi + +LBB0_960: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_962 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + +LBB0_962: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_963: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_963 + JMP LBB0_1526 + +LBB0_964: + WORD $0xff31 // xor edi, edi + +LBB0_965: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_967 + LONG $0xba0c100f // movups xmm1, oword [rdx + 4*rdi] + LONG $0xba54100f; BYTE $0x10 // movups xmm2, oword [rdx + 4*rdi + 16] + LONG $0x205d280f // movaps xmm3, oword 32[rbp] /* [rip + .LCPI0_3] */ + WORD $0x280f; BYTE $0xc1 // movaps xmm0, xmm1 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xe15b0ff3 // cvttps2dq xmm4, xmm1 + WORD $0x5c0f; BYTE $0xcb // subps xmm1, xmm3 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x306d280f // movaps xmm5, oword 48[rbp] /* [rip + .LCPI0_4] */ + WORD $0x570f; BYTE $0xcd // xorps xmm1, xmm5 + LONG $0x14380f66; BYTE $0xcc // blendvps xmm1, xmm4, xmm0 + WORD $0x280f; BYTE $0xc2 // movaps xmm0, xmm2 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xe25b0ff3 // cvttps2dq xmm4, xmm2 + WORD $0x5c0f; BYTE $0xd3 // subps xmm2, xmm3 + LONG $0xd25b0ff3 // cvttps2dq xmm2, xmm2 + WORD $0x570f; BYTE $0xd5 // xorps xmm2, xmm5 + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xb90c110f // movups oword [rcx + 4*rdi], xmm1 + LONG $0xb954110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm2 + +LBB0_967: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_968: + LONG $0x2c0f48f3; WORD $0xb204 // cvttss2si rax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_968 + JMP LBB0_1526 + +LBB0_969: + WORD $0xff31 // xor edi, edi + +LBB0_970: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_972 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xd2ef0f66 // pxor xmm2, xmm2 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0x0e3a0f66; WORD $0xccda // pblendw xmm3, xmm2, 204 + LONG $0x656f0f66; BYTE $0x50 // movdqa xmm4, oword 80[rbp] /* [rip + .LCPI0_6] */ + LONG $0xdceb0f66 // por xmm3, xmm4 + LONG $0xd0730f66; BYTE $0x20 // psrlq xmm0, 32 + LONG $0x6d6f0f66; BYTE $0x60 // movdqa xmm5, oword 96[rbp] /* [rip + .LCPI0_7] */ + LONG $0xc5eb0f66 // por xmm0, xmm5 + LONG $0x75280f66; BYTE $0x70 // movapd xmm6, oword 112[rbp] /* [rip + .LCPI0_8] */ + LONG $0xc65c0f66 // subpd xmm0, xmm6 + LONG $0xc3580f66 // addpd xmm0, xmm3 + LONG $0x0e3a0f66; WORD $0x33d1 // pblendw xmm2, xmm1, 51 + LONG $0xd4eb0f66 // por xmm2, xmm4 + LONG $0xd1730f66; BYTE $0x20 // psrlq xmm1, 32 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xce5c0f66 // subpd xmm1, xmm6 + LONG $0xca580f66 // addpd xmm1, xmm2 + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB0_972: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_973: + QUAD $0x0000008085280f66 // movapd xmm0, oword 128[rbp] /* [rip + .LCPI0_9] */ + QUAD $0x000000908d280f66 // movapd xmm1, oword 144[rbp] /* [rip + .LCPI0_10] */ + +LBB0_974: + LONG $0x14100ff2; BYTE $0xf2 // movsd xmm2, qword [rdx + 8*rsi] + WORD $0x140f; BYTE $0xd0 // unpcklps xmm2, xmm0 + LONG $0xd15c0f66 // subpd xmm2, xmm1 + LONG $0xda280f66 // movapd xmm3, xmm2 + LONG $0xda150f66 // unpckhpd xmm3, xmm2 + LONG $0xda580ff2 // addsd xmm3, xmm2 + LONG $0x1c110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm3 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_974 + JMP LBB0_1526 + +LBB0_975: + WORD $0xff31 // xor edi, edi + +LBB0_976: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_978 + LONG $0xba045a0f // cvtps2pd xmm0, qword [rdx + 4*rdi] + LONG $0xba4c5a0f; BYTE $0x08 // cvtps2pd xmm1, qword [rdx + 4*rdi + 8] + LONG $0x04110f66; BYTE $0xf9 // movupd oword [rcx + 8*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10f9 // movupd oword [rcx + 8*rdi + 16], xmm1 + +LBB0_978: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_979: + LONG $0x04100ff3; BYTE $0xb2 // movss xmm0, dword [rdx + 4*rsi] + LONG $0xc05a0ff3 // cvtss2sd xmm0, xmm0 + LONG $0x04110ff2; BYTE $0xf1 // movsd qword [rcx + 8*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_979 + JMP LBB0_1526 + +LBB0_980: + WORD $0xff31 // xor edi, edi + +LBB0_981: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_983 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_983: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_984: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_984 + JMP LBB0_1526 + +LBB0_985: + WORD $0xff31 // xor edi, edi + +LBB0_986: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_988 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_988: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_989: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_989 + JMP LBB0_1526 + +LBB0_990: + WORD $0xff31 // xor edi, edi + +LBB0_991: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_993 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_993: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_994: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_994 + JMP LBB0_1526 + +LBB0_995: + WORD $0xff31 // xor edi, edi + +LBB0_996: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_998 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_998: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_999: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_999 + JMP LBB0_1526 + +LBB0_1000: + WORD $0xff31 // xor edi, edi + +LBB0_1001: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1003 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_1003: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1004: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1004 + JMP LBB0_1526 + +LBB0_1005: + WORD $0xff31 // xor edi, edi + +LBB0_1006: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1008 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_1008: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1009: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1009 + JMP LBB0_1526 + +LBB0_1010: + WORD $0xff31 // xor edi, edi + +LBB0_1011: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1013 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_1013: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1014: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1014 + JMP LBB0_1526 + +LBB0_1015: + WORD $0xff31 // xor edi, edi + +LBB0_1016: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1018 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc0700ff2; BYTE $0xe8 // pshuflw xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc9700ff2; BYTE $0xe8 // pshuflw xmm1, xmm1, 232 + LONG $0x047e0f66; BYTE $0x79 // movd dword [rcx + 2*rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0479 // movd dword [rcx + 2*rdi + 4], xmm1 + +LBB0_1018: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1019: + LONG $0xf204b70f // movzx eax, word [rdx + 8*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1019 + JMP LBB0_1526 + +LBB0_1020: + WORD $0xff31 // xor edi, edi + +LBB0_1021: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1023 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc1 // packusdw xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_1023: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1024: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1024 + JMP LBB0_1526 + +LBB0_1025: + WORD $0xff31 // xor edi, edi + +LBB0_1026: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1028 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc16b0f66 // packssdw xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_1028: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1029: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1029 + JMP LBB0_1526 + +LBB0_1030: + WORD $0xff31 // xor edi, edi + +LBB0_1031: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1033 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_1033: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1034: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1034 + JMP LBB0_1526 + +LBB0_1035: + WORD $0xff31 // xor edi, edi + +LBB0_1036: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1038 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI0_12] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + +LBB0_1038: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1039: + LONG $0xb204b70f // movzx eax, word [rdx + 4*rsi] + LONG $0x71048966 // mov word [rcx + 2*rsi], ax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1039 + JMP LBB0_1526 + +LBB0_1040: + WORD $0xff31 // xor edi, edi + +LBB0_1041: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1043 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000d0956f0f66 // movdqa xmm2, oword 208[rbp] /* [rip + .LCPI0_14] */ + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0x0e3a0f66; WORD $0xaada // pblendw xmm3, xmm2, 170 + LONG $0xd0720f66; BYTE $0x10 // psrld xmm0, 16 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI0_15] */ + LONG $0x0e3a0f66; WORD $0xaac4 // pblendw xmm0, xmm4, 170 + LONG $0xf0ad280f; WORD $0x0000; BYTE $0x00 // movaps xmm5, oword 240[rbp] /* [rip + .LCPI0_16] */ + WORD $0x5c0f; BYTE $0xc5 // subps xmm0, xmm5 + WORD $0x580f; BYTE $0xc3 // addps xmm0, xmm3 + LONG $0x0e3a0f66; WORD $0x55d1 // pblendw xmm2, xmm1, 85 + LONG $0xd1720f66; BYTE $0x10 // psrld xmm1, 16 + LONG $0x0e3a0f66; WORD $0xaacc // pblendw xmm1, xmm4, 170 + WORD $0x5c0f; BYTE $0xcd // subps xmm1, xmm5 + WORD $0x580f; BYTE $0xca // addps xmm1, xmm2 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1043: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1044: + WORD $0x048b; BYTE $0xb2 // mov eax, dword [rdx + 4*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1044 + JMP LBB0_1526 + +LBB0_1045: + WORD $0xff31 // xor edi, edi + +LBB0_1046: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1048 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc05a0f66 // cvtpd2ps xmm0, xmm0 + LONG $0xc95a0f66 // cvtpd2ps xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + +LBB0_1048: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1049: + LONG $0x04100ff2; BYTE $0xf2 // movsd xmm0, qword [rdx + 8*rsi] + LONG $0xc05a0ff2 // cvtsd2ss xmm0, xmm0 + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1049 + JMP LBB0_1526 + +LBB0_1050: + WORD $0xff31 // xor edi, edi + +LBB0_1051: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1053 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI0_11] */ + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xe3db0f66 // pand xmm4, xmm3 + LONG $0xd1730f66; BYTE $0x01 // psrlq xmm1, 1 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x15380f66; BYTE $0xd1 // blendvpd xmm2, xmm1, xmm0 + LONG $0x3a0f4866; WORD $0xd016; BYTE $0x01 // pextrq rax, xmm2, 1 + WORD $0x570f; BYTE $0xe4 // xorps xmm4, xmm4 + LONG $0x2a0f48f3; BYTE $0xe0 // cvtsi2ss xmm4, rax + LONG $0x7e0f4866; BYTE $0xd0 // movq rax, xmm2 + WORD $0x570f; BYTE $0xd2 // xorps xmm2, xmm2 + LONG $0x2a0f48f3; BYTE $0xd0 // cvtsi2ss xmm2, rax + LONG $0xedef0f66 // pxor xmm5, xmm5 + LONG $0x37380f66; BYTE $0xe8 // pcmpgtq xmm5, xmm0 + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x213a0f66; WORD $0x1cd4 // insertps xmm2, xmm4, 28 + WORD $0x280f; BYTE $0xe2 // movaps xmm4, xmm2 + WORD $0x580f; BYTE $0xe2 // addps xmm4, xmm2 + LONG $0xf6ef0f66 // pxor xmm6, xmm6 + LONG $0xc5700f66; BYTE $0xed // pshufd xmm0, xmm5, 237 + LONG $0x14380f66; BYTE $0xd4 // blendvps xmm2, xmm4, xmm0 + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0xe16f0f66 // movdqa xmm4, xmm1 + LONG $0xd4730f66; BYTE $0x01 // psrlq xmm4, 1 + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x37380f66; BYTE $0xf1 // pcmpgtq xmm6, xmm1 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x15380f66; BYTE $0xcc // blendvpd xmm1, xmm4, xmm0 + LONG $0x3a0f4866; WORD $0xc816; BYTE $0x01 // pextrq rax, xmm1, 1 + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0x7e0f4866; BYTE $0xc8 // movq rax, xmm1 + WORD $0x570f; BYTE $0xc9 // xorps xmm1, xmm1 + LONG $0x2a0f48f3; BYTE $0xc8 // cvtsi2ss xmm1, rax + LONG $0x213a0f66; WORD $0x1cc8 // insertps xmm1, xmm0, 28 + WORD $0x280f; BYTE $0xd9 // movaps xmm3, xmm1 + WORD $0x580f; BYTE $0xd9 // addps xmm3, xmm1 + LONG $0xc6700f66; BYTE $0xed // pshufd xmm0, xmm6, 237 + LONG $0x14380f66; BYTE $0xcb // blendvps xmm1, xmm3, xmm0 + WORD $0x160f; BYTE $0xd1 // movlhps xmm2, xmm1 + LONG $0xb914110f // movups oword [rcx + 4*rdi], xmm2 + +LBB0_1053: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JNE LBB0_1056 + JMP LBB0_1526 + +LBB0_1054: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JE LBB0_1526 + +LBB0_1056: + LONG $0xf2048b48 // mov rax, qword [rdx + 8*rsi] + WORD $0x8548; BYTE $0xc0 // test rax, rax + JNS LBB0_1054 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0xd148; BYTE $0xef // shr rdi, 1 + WORD $0xe083; BYTE $0x01 // and eax, 1 + WORD $0x0948; BYTE $0xf8 // or rax, rdi + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x2a0f48f3; BYTE $0xc0 // cvtsi2ss xmm0, rax + LONG $0xc0580ff3 // addss xmm0, xmm0 + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1056 + JMP LBB0_1526 + +LBB0_1058: + WORD $0xff31 // xor edi, edi + +LBB0_1059: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1061 + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1061: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1062: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1062 + JMP LBB0_1526 + +LBB0_1063: + WORD $0xff31 // xor edi, edi + +LBB0_1064: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1066 + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1066: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1067: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0xc02a0ff3 // cvtsi2ss xmm0, eax + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1067 + JMP LBB0_1526 + +LBB0_1068: + WORD $0xff31 // xor edi, edi + +LBB0_1069: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1071 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1071: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1072: + WORD $0x570f; BYTE $0xc0 // xorps xmm0, xmm0 + LONG $0x042a0ff3; BYTE $0xb2 // cvtsi2ss xmm0, dword [rdx + 4*rsi] + LONG $0x04110ff3; BYTE $0xb1 // movss dword [rcx + 4*rsi], xmm0 + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1072 + JMP LBB0_1526 + +LBB0_1073: + WORD $0xff31 // xor edi, edi + +LBB0_1074: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1076 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0xc1140f66 // unpcklpd xmm0, xmm1 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + +LBB0_1076: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1077: + LONG $0x042c0ff2; BYTE $0xf2 // cvttsd2si eax, qword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1077 + JMP LBB0_1526 + +LBB0_1078: + WORD $0xff31 // xor edi, edi + +LBB0_1079: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1081 + LONG $0x33380f66; WORD $0x7a04 // pmovzxwd xmm0, qword [rdx + 2*rdi] + LONG $0x33380f66; WORD $0x7a4c; BYTE $0x08 // pmovzxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1081: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1082: + LONG $0x7204b70f // movzx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1082 + JMP LBB0_1526 + +LBB0_1083: + WORD $0xff31 // xor edi, edi + +LBB0_1084: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1086 + LONG $0x23380f66; WORD $0x7a04 // pmovsxwd xmm0, qword [rdx + 2*rdi] + LONG $0x23380f66; WORD $0x7a4c; BYTE $0x08 // pmovsxwd xmm1, qword [rdx + 2*rdi + 8] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1086: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1087: + LONG $0x7204bf0f // movsx eax, word [rdx + 2*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1087 + JMP LBB0_1526 + +LBB0_1088: + WORD $0xff31 // xor edi, edi + +LBB0_1089: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1091 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0xc0700f66; BYTE $0xe8 // pshufd xmm0, xmm0, 232 + LONG $0xc9700f66; BYTE $0xe8 // pshufd xmm1, xmm1, 232 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + +LBB0_1091: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1092: + WORD $0x048b; BYTE $0xf2 // mov eax, dword [rdx + 8*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1092 + JMP LBB0_1526 + +LBB0_1093: + WORD $0xff31 // xor edi, edi + +LBB0_1094: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1096 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x04110f66; BYTE $0xb9 // movupd oword [rcx + 4*rdi], xmm0 + LONG $0x4c110f66; WORD $0x10b9 // movupd oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1096: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + +LBB0_1097: + LONG $0x042c0ff3; BYTE $0xb2 // cvttss2si eax, dword [rdx + 4*rsi] + WORD $0x0489; BYTE $0xb1 // mov dword [rcx + 4*rsi], eax + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB0_1097 + +LBB0_1526: + RET + +LBB0_1098: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1099: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1099 + +LBB0_1100: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1103 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1102: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1102 + +LBB0_1103: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1104 + +LBB0_1108: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1109: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1109 + +LBB0_1110: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1113 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1112: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1112 + +LBB0_1113: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1114 + +LBB0_1118: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1119: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1119 + +LBB0_1120: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1123 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1122: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1122 + +LBB0_1123: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1124 + +LBB0_1128: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1129: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1129 + +LBB0_1130: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1133 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1132: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1132 + +LBB0_1133: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1134 + +LBB0_1138: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1139: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1139 + +LBB0_1140: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1143 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1142: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1142 + +LBB0_1143: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1144 + +LBB0_1148: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1149: + LONG $0x22380f66; WORD $0x0204 // pmovsxbq xmm0, word [rdx + rax] + LONG $0x22380f66; WORD $0x024c; BYTE $0x02 // pmovsxbq xmm1, word [rdx + rax + 2] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x04 // pmovsxbq xmm0, word [rdx + rax + 4] + LONG $0x22380f66; WORD $0x024c; BYTE $0x06 // pmovsxbq xmm1, word [rdx + rax + 6] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x08 // pmovsxbq xmm0, word [rdx + rax + 8] + LONG $0x22380f66; WORD $0x024c; BYTE $0x0a // pmovsxbq xmm1, word [rdx + rax + 10] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x0c // pmovsxbq xmm0, word [rdx + rax + 12] + LONG $0x22380f66; WORD $0x024c; BYTE $0x0e // pmovsxbq xmm1, word [rdx + rax + 14] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1149 + +LBB0_1150: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1153 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x10148d4c // lea r10, [rax + rdx] + LONG $0x02c28349 // add r10, 2 + WORD $0xc031 // xor eax, eax + +LBB0_1152: + QUAD $0xfe824422380f4166 // pmovsxbq xmm0, word [r10 + 4*rax - 2] + LONG $0x380f4166; WORD $0x0c22; BYTE $0x82 // pmovsxbq xmm1, word [r10 + 4*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_1152 + +LBB0_1153: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1154 + +LBB0_1158: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1159: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1159 + +LBB0_1160: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1163 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1162: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1162 + +LBB0_1163: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1164 + +LBB0_1168: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1169: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1169 + +LBB0_1170: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1173 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1172: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1172 + +LBB0_1173: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1174 + +LBB0_1178: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1179: + LONG $0x32380f66; WORD $0x0204 // pmovzxbq xmm0, word [rdx + rax] + LONG $0x32380f66; WORD $0x024c; BYTE $0x02 // pmovzxbq xmm1, word [rdx + rax + 2] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x04 // pmovzxbq xmm0, word [rdx + rax + 4] + LONG $0x32380f66; WORD $0x024c; BYTE $0x06 // pmovzxbq xmm1, word [rdx + rax + 6] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x08 // pmovzxbq xmm0, word [rdx + rax + 8] + LONG $0x32380f66; WORD $0x024c; BYTE $0x0a // pmovzxbq xmm1, word [rdx + rax + 10] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x0c // pmovzxbq xmm0, word [rdx + rax + 12] + LONG $0x32380f66; WORD $0x024c; BYTE $0x0e // pmovzxbq xmm1, word [rdx + rax + 14] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1179 + +LBB0_1180: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1183 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x10148d4c // lea r10, [rax + rdx] + LONG $0x02c28349 // add r10, 2 + WORD $0xc031 // xor eax, eax + +LBB0_1182: + QUAD $0xfe824432380f4166 // pmovzxbq xmm0, word [r10 + 4*rax - 2] + LONG $0x380f4166; WORD $0x0c32; BYTE $0x82 // pmovzxbq xmm1, word [r10 + 4*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_1182 + +LBB0_1183: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1184 + +LBB0_1188: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1189: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1189 + +LBB0_1190: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1193 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1192: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1192 + +LBB0_1193: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1194 + +LBB0_1198: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1199: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1199 + +LBB0_1200: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1203 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1202: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1202 + +LBB0_1203: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1204 + +LBB0_1208: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1209: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1209 + +LBB0_1210: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1213 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1212: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1212 + +LBB0_1213: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1214 + +LBB0_1218: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1219: + LONG $0x4204100f // movups xmm0, oword [rdx + 2*rax] + LONG $0x424c100f; BYTE $0x10 // movups xmm1, oword [rdx + 2*rax + 16] + LONG $0x4104110f // movups oword [rcx + 2*rax], xmm0 + LONG $0x414c110f; BYTE $0x10 // movups oword [rcx + 2*rax + 16], xmm1 + LONG $0x4244100f; BYTE $0x20 // movups xmm0, oword [rdx + 2*rax + 32] + LONG $0x424c100f; BYTE $0x30 // movups xmm1, oword [rdx + 2*rax + 48] + LONG $0x4144110f; BYTE $0x20 // movups oword [rcx + 2*rax + 32], xmm0 + LONG $0x414c110f; BYTE $0x30 // movups oword [rcx + 2*rax + 48], xmm1 + LONG $0x4244100f; BYTE $0x40 // movups xmm0, oword [rdx + 2*rax + 64] + LONG $0x424c100f; BYTE $0x50 // movups xmm1, oword [rdx + 2*rax + 80] + LONG $0x4144110f; BYTE $0x40 // movups oword [rcx + 2*rax + 64], xmm0 + LONG $0x414c110f; BYTE $0x50 // movups oword [rcx + 2*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6042 // movupd xmm0, oword [rdx + 2*rax + 96] + LONG $0x4c100f66; WORD $0x7042 // movupd xmm1, oword [rdx + 2*rax + 112] + LONG $0x44110f66; WORD $0x6041 // movupd oword [rcx + 2*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7041 // movupd oword [rcx + 2*rax + 112], xmm1 + LONG $0x40c08348 // add rax, 64 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1219 + +LBB0_1220: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1223 + WORD $0x0148; BYTE $0xc0 // add rax, rax + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1222: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1222 + +LBB0_1223: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1224 + +LBB0_1228: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1229: + LONG $0x22380f66; WORD $0x0204 // pmovsxbq xmm0, word [rdx + rax] + LONG $0x22380f66; WORD $0x024c; BYTE $0x02 // pmovsxbq xmm1, word [rdx + rax + 2] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x04 // pmovsxbq xmm0, word [rdx + rax + 4] + LONG $0x22380f66; WORD $0x024c; BYTE $0x06 // pmovsxbq xmm1, word [rdx + rax + 6] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x08 // pmovsxbq xmm0, word [rdx + rax + 8] + LONG $0x22380f66; WORD $0x024c; BYTE $0x0a // pmovsxbq xmm1, word [rdx + rax + 10] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x22380f66; WORD $0x0244; BYTE $0x0c // pmovsxbq xmm0, word [rdx + rax + 12] + LONG $0x22380f66; WORD $0x024c; BYTE $0x0e // pmovsxbq xmm1, word [rdx + rax + 14] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1229 + +LBB0_1230: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1233 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x10148d4c // lea r10, [rax + rdx] + LONG $0x02c28349 // add r10, 2 + WORD $0xc031 // xor eax, eax + +LBB0_1232: + QUAD $0xfe824422380f4166 // pmovsxbq xmm0, word [r10 + 4*rax - 2] + LONG $0x380f4166; WORD $0x0c22; BYTE $0x82 // pmovsxbq xmm1, word [r10 + 4*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_1232 + +LBB0_1233: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1234 + +LBB0_1238: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1239: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1239 + +LBB0_1240: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1243 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1242: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1242 + +LBB0_1243: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1244 + +LBB0_1248: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1249: + LONG $0xc204100f // movups xmm0, oword [rdx + 8*rax] + LONG $0xc24c100f; BYTE $0x10 // movups xmm1, oword [rdx + 8*rax + 16] + LONG $0xc104110f // movups oword [rcx + 8*rax], xmm0 + LONG $0xc14c110f; BYTE $0x10 // movups oword [rcx + 8*rax + 16], xmm1 + LONG $0xc244100f; BYTE $0x20 // movups xmm0, oword [rdx + 8*rax + 32] + LONG $0xc24c100f; BYTE $0x30 // movups xmm1, oword [rdx + 8*rax + 48] + LONG $0xc144110f; BYTE $0x20 // movups oword [rcx + 8*rax + 32], xmm0 + LONG $0xc14c110f; BYTE $0x30 // movups oword [rcx + 8*rax + 48], xmm1 + LONG $0xc244100f; BYTE $0x40 // movups xmm0, oword [rdx + 8*rax + 64] + LONG $0xc24c100f; BYTE $0x50 // movups xmm1, oword [rdx + 8*rax + 80] + LONG $0xc144110f; BYTE $0x40 // movups oword [rcx + 8*rax + 64], xmm0 + LONG $0xc14c110f; BYTE $0x50 // movups oword [rcx + 8*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x60c2 // movupd xmm0, oword [rdx + 8*rax + 96] + LONG $0x4c100f66; WORD $0x70c2 // movupd xmm1, oword [rdx + 8*rax + 112] + LONG $0x44110f66; WORD $0x60c1 // movupd oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x70c1 // movupd oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1249 + +LBB0_1250: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1253 + QUAD $0x00000010c5048d48 // lea rax, [8*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1252: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1252 + +LBB0_1253: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1254 + +LBB0_1258: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1259: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1259 + +LBB0_1260: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1263 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1262: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1262 + +LBB0_1263: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1264 + +LBB0_1268: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1269: + LONG $0x32380f66; WORD $0x0204 // pmovzxbq xmm0, word [rdx + rax] + LONG $0x32380f66; WORD $0x024c; BYTE $0x02 // pmovzxbq xmm1, word [rdx + rax + 2] + LONG $0x047f0ff3; BYTE $0xc1 // movdqu oword [rcx + 8*rax], xmm0 + LONG $0x4c7f0ff3; WORD $0x10c1 // movdqu oword [rcx + 8*rax + 16], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x04 // pmovzxbq xmm0, word [rdx + rax + 4] + LONG $0x32380f66; WORD $0x024c; BYTE $0x06 // pmovzxbq xmm1, word [rdx + rax + 6] + LONG $0x447f0ff3; WORD $0x20c1 // movdqu oword [rcx + 8*rax + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x30c1 // movdqu oword [rcx + 8*rax + 48], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x08 // pmovzxbq xmm0, word [rdx + rax + 8] + LONG $0x32380f66; WORD $0x024c; BYTE $0x0a // pmovzxbq xmm1, word [rdx + rax + 10] + LONG $0x447f0ff3; WORD $0x40c1 // movdqu oword [rcx + 8*rax + 64], xmm0 + LONG $0x4c7f0ff3; WORD $0x50c1 // movdqu oword [rcx + 8*rax + 80], xmm1 + LONG $0x32380f66; WORD $0x0244; BYTE $0x0c // pmovzxbq xmm0, word [rdx + rax + 12] + LONG $0x32380f66; WORD $0x024c; BYTE $0x0e // pmovzxbq xmm1, word [rdx + rax + 14] + LONG $0x447f0ff3; WORD $0x60c1 // movdqu oword [rcx + 8*rax + 96], xmm0 + LONG $0x4c7f0ff3; WORD $0x70c1 // movdqu oword [rcx + 8*rax + 112], xmm1 + LONG $0x10c08348 // add rax, 16 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1269 + +LBB0_1270: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1273 + LONG $0xc13c8d48 // lea rdi, [rcx + 8*rax] + LONG $0x10c78348 // add rdi, 16 + LONG $0x10148d4c // lea r10, [rax + rdx] + LONG $0x02c28349 // add r10, 2 + WORD $0xc031 // xor eax, eax + +LBB0_1272: + QUAD $0xfe824432380f4166 // pmovzxbq xmm0, word [r10 + 4*rax - 2] + LONG $0x380f4166; WORD $0x0c32; BYTE $0x82 // pmovzxbq xmm1, word [r10 + 4*rax] + LONG $0x477f0ff3; BYTE $0xf0 // movdqu oword [rdi - 16], xmm0 + LONG $0x0f7f0ff3 // movdqu oword [rdi], xmm1 + LONG $0x20c78348 // add rdi, 32 + LONG $0x01c08348 // add rax, 1 + WORD $0x3949; BYTE $0xc0 // cmp r8, rax + JNE LBB0_1272 + +LBB0_1273: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1274 + +LBB0_1278: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1279: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1279 + +LBB0_1280: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1283 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1282: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1282 + +LBB0_1283: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1284 + +LBB0_1288: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1289: + LONG $0x0204100f // movups xmm0, oword [rdx + rax] + LONG $0x024c100f; BYTE $0x10 // movups xmm1, oword [rdx + rax + 16] + LONG $0x0104110f // movups oword [rcx + rax], xmm0 + LONG $0x014c110f; BYTE $0x10 // movups oword [rcx + rax + 16], xmm1 + LONG $0x0244100f; BYTE $0x20 // movups xmm0, oword [rdx + rax + 32] + LONG $0x024c100f; BYTE $0x30 // movups xmm1, oword [rdx + rax + 48] + LONG $0x0144110f; BYTE $0x20 // movups oword [rcx + rax + 32], xmm0 + LONG $0x014c110f; BYTE $0x30 // movups oword [rcx + rax + 48], xmm1 + LONG $0x0244100f; BYTE $0x40 // movups xmm0, oword [rdx + rax + 64] + LONG $0x024c100f; BYTE $0x50 // movups xmm1, oword [rdx + rax + 80] + LONG $0x0144110f; BYTE $0x40 // movups oword [rcx + rax + 64], xmm0 + LONG $0x014c110f; BYTE $0x50 // movups oword [rcx + rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6002 // movupd xmm0, oword [rdx + rax + 96] + LONG $0x4c100f66; WORD $0x7002 // movupd xmm1, oword [rdx + rax + 112] + LONG $0x44110f66; WORD $0x6001 // movupd oword [rcx + rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7001 // movupd oword [rcx + rax + 112], xmm1 + LONG $0x80e88348 // sub rax, -128 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1289 + +LBB0_1290: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1293 + LONG $0x10c08348 // add rax, 16 + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1292: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1292 + +LBB0_1293: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1294 + +LBB0_1298: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1299: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1299 + +LBB0_1300: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1303 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1302: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1302 + +LBB0_1303: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1304 + +LBB0_1308: + LONG $0xfce78348 // and rdi, -4 + WORD $0xf748; BYTE $0xdf // neg rdi + WORD $0xc031 // xor eax, eax + +LBB0_1309: + LONG $0x8204100f // movups xmm0, oword [rdx + 4*rax] + LONG $0x824c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rax + 16] + LONG $0x8104110f // movups oword [rcx + 4*rax], xmm0 + LONG $0x814c110f; BYTE $0x10 // movups oword [rcx + 4*rax + 16], xmm1 + LONG $0x8244100f; BYTE $0x20 // movups xmm0, oword [rdx + 4*rax + 32] + LONG $0x824c100f; BYTE $0x30 // movups xmm1, oword [rdx + 4*rax + 48] + LONG $0x8144110f; BYTE $0x20 // movups oword [rcx + 4*rax + 32], xmm0 + LONG $0x814c110f; BYTE $0x30 // movups oword [rcx + 4*rax + 48], xmm1 + LONG $0x8244100f; BYTE $0x40 // movups xmm0, oword [rdx + 4*rax + 64] + LONG $0x824c100f; BYTE $0x50 // movups xmm1, oword [rdx + 4*rax + 80] + LONG $0x8144110f; BYTE $0x40 // movups oword [rcx + 4*rax + 64], xmm0 + LONG $0x814c110f; BYTE $0x50 // movups oword [rcx + 4*rax + 80], xmm1 + LONG $0x44100f66; WORD $0x6082 // movupd xmm0, oword [rdx + 4*rax + 96] + LONG $0x4c100f66; WORD $0x7082 // movupd xmm1, oword [rdx + 4*rax + 112] + LONG $0x44110f66; WORD $0x6081 // movupd oword [rcx + 4*rax + 96], xmm0 + LONG $0x4c110f66; WORD $0x7081 // movupd oword [rcx + 4*rax + 112], xmm1 + LONG $0x20c08348 // add rax, 32 + LONG $0x04c78348 // add rdi, 4 + JNE LBB0_1309 + +LBB0_1310: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB0_1313 + QUAD $0x0000001085048d48 // lea rax, [4*rax + 16] + WORD $0xf749; BYTE $0xd8 // neg r8 + +LBB0_1312: + LONG $0x44100f66; WORD $0xf002 // movupd xmm0, oword [rdx + rax - 16] + LONG $0x0c100f66; BYTE $0x02 // movupd xmm1, oword [rdx + rax] + LONG $0x44110f66; WORD $0xf001 // movupd oword [rcx + rax - 16], xmm0 + LONG $0x0c110f66; BYTE $0x01 // movupd oword [rcx + rax], xmm1 + LONG $0x20c08348 // add rax, 32 + WORD $0xff49; BYTE $0xc0 // inc r8 + JNE LBB0_1312 + +LBB0_1313: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1314 + +LBB0_1318: + WORD $0xff31 // xor edi, edi + +LBB0_1319: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1321 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x40 // movdqa xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1321: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1322 + +LBB0_1326: + WORD $0xff31 // xor edi, edi + +LBB0_1327: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1329 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + QUAD $0x00000100956f0f66 // movdqa xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm0 + +LBB0_1329: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1330 + +LBB0_1334: + WORD $0xff31 // xor edi, edi + +LBB0_1335: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1337 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x40 // movdqa xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1337: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1338 + +LBB0_1342: + WORD $0xff31 // xor edi, edi + +LBB0_1343: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1345 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1345: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1346 + +LBB0_1350: + WORD $0xff31 // xor edi, edi + +LBB0_1351: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1353 + LONG $0x20380f66; WORD $0x3a04 // pmovsxbw xmm0, qword [rdx + rdi] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + +LBB0_1353: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1354 + +LBB0_1358: + WORD $0xff31 // xor edi, edi + +LBB0_1359: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1361 + LONG $0x20380f66; WORD $0x3a04 // pmovsxbw xmm0, qword [rdx + rdi] + LONG $0x20380f66; WORD $0x3a4c; BYTE $0x08 // pmovsxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + +LBB0_1361: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1362 + +LBB0_1366: + WORD $0xff31 // xor edi, edi + +LBB0_1367: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1369 + LONG $0x30380f66; WORD $0x3a04 // pmovzxbw xmm0, qword [rdx + rdi] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + +LBB0_1369: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1370 + +LBB0_1374: + WORD $0xff31 // xor edi, edi + +LBB0_1375: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1377 + LONG $0x30380f66; WORD $0x3a04 // pmovzxbw xmm0, qword [rdx + rdi] + LONG $0x30380f66; WORD $0x3a4c; BYTE $0x08 // pmovzxbw xmm1, qword [rdx + rdi + 8] + LONG $0x047f0ff3; BYTE $0x79 // movdqu oword [rcx + 2*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x1079 // movdqu oword [rcx + 2*rdi + 16], xmm1 + +LBB0_1377: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1378 + +LBB0_1382: + WORD $0xff31 // xor edi, edi + +LBB0_1383: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1385 + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1385: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1386 + +LBB0_1390: + WORD $0xff31 // xor edi, edi + +LBB0_1391: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1393 + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + WORD $0x5b0f; BYTE $0xc0 // cvtdq2ps xmm0, xmm0 + WORD $0x5b0f; BYTE $0xc9 // cvtdq2ps xmm1, xmm1 + LONG $0xb904110f // movups oword [rcx + 4*rdi], xmm0 + LONG $0xb94c110f; BYTE $0x10 // movups oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1393: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1394 + +LBB0_1398: + WORD $0xff31 // xor edi, edi + +LBB0_1399: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1401 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1401: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1402 + +LBB0_1406: + WORD $0xff31 // xor edi, edi + +LBB0_1407: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1409 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x10 // movdqa xmm2, oword 16[rbp] /* [rip + .LCPI0_1] */ + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1409: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1410 + +LBB0_1414: + WORD $0xff31 // xor edi, edi + +LBB0_1415: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1417 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x40 // movdqa xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1417: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1418 + +LBB0_1422: + WORD $0xff31 // xor edi, edi + +LBB0_1423: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1425 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + QUAD $0x00000100956f0f66 // movdqa xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm0 + +LBB0_1425: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1426 + +LBB0_1430: + WORD $0xff31 // xor edi, edi + +LBB0_1431: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1433 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + QUAD $0x00000100956f0f66 // movdqa xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm0 + +LBB0_1433: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1434 + +LBB0_1438: + WORD $0xff31 // xor edi, edi + +LBB0_1439: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1441 + LONG $0x046f0ff3; BYTE $0xfa // movdqu xmm0, oword [rdx + 8*rdi] + LONG $0x4c6f0ff3; WORD $0x10fa // movdqu xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x40 // movdqa xmm2, oword 64[rbp] /* [rip + .LCPI0_5] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1441: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1442 + +LBB0_1446: + WORD $0xff31 // xor edi, edi + +LBB0_1447: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1449 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0x2b380f66; BYTE $0xc0 // packusdw xmm0, xmm0 + LONG $0xc0670f66 // packuswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0x2b380f66; BYTE $0xc9 // packusdw xmm1, xmm1 + LONG $0xc9670f66 // packuswb xmm1, xmm1 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1449: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1450 + +LBB0_1454: + WORD $0xff31 // xor edi, edi + +LBB0_1455: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1457 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1457: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1458 + +LBB0_1462: + WORD $0xff31 // xor edi, edi + +LBB0_1463: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1465 + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1465: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1466 + +LBB0_1470: + WORD $0xff31 // xor edi, edi + +LBB0_1471: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1473 + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1473: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1474 + +LBB0_1478: + WORD $0xff31 // xor edi, edi + +LBB0_1479: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1481 + LONG $0x21380f66; WORD $0x3a04 // pmovsxbd xmm0, dword [rdx + rdi] + LONG $0x21380f66; WORD $0x3a4c; BYTE $0x04 // pmovsxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1481: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1482 + +LBB0_1486: + WORD $0xff31 // xor edi, edi + +LBB0_1487: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1489 + LONG $0x31380f66; WORD $0x3a04 // pmovzxbd xmm0, dword [rdx + rdi] + LONG $0x31380f66; WORD $0x3a4c; BYTE $0x04 // pmovzxbd xmm1, dword [rdx + rdi + 4] + LONG $0x047f0ff3; BYTE $0xb9 // movdqu oword [rcx + 4*rdi], xmm0 + LONG $0x4c7f0ff3; WORD $0x10b9 // movdqu oword [rcx + 4*rdi + 16], xmm1 + +LBB0_1489: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1490 + +LBB0_1494: + WORD $0xff31 // xor edi, edi + +LBB0_1495: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1497 + LONG $0x046f0ff3; BYTE $0xba // movdqu xmm0, oword [rdx + 4*rdi] + LONG $0x4c6f0ff3; WORD $0x10ba // movdqu xmm1, oword [rdx + 4*rdi + 16] + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI0_13] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1497: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1498 + +LBB0_1502: + WORD $0xff31 // xor edi, edi + +LBB0_1503: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1505 + LONG $0x04100f66; BYTE $0xfa // movupd xmm0, oword [rdx + 8*rdi] + LONG $0xc0e60f66 // cvttpd2dq xmm0, xmm0 + LONG $0x4c100f66; WORD $0x10fa // movupd xmm1, oword [rdx + 8*rdi + 16] + LONG $0x556f0f66; BYTE $0x10 // movdqa xmm2, oword 16[rbp] /* [rip + .LCPI0_1] */ + LONG $0xc9e60f66 // cvttpd2dq xmm1, xmm1 + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x153a0f66; WORD $0x3904; BYTE $0x00 // pextrw word [rcx + rdi], xmm0, 0 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + QUAD $0x0002394c153a0f66 // pextrw word [rcx + rdi + 2], xmm1, 0 + +LBB0_1505: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1506 + +LBB0_1510: + WORD $0xff31 // xor edi, edi + +LBB0_1511: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1513 + LONG $0x046f0ff3; BYTE $0x7a // movdqu xmm0, oword [rdx + 2*rdi] + LONG $0x4c6f0ff3; WORD $0x107a // movdqu xmm1, oword [rdx + 2*rdi + 16] + QUAD $0x00000100956f0f66 // movdqa xmm2, oword 256[rbp] /* [rip + .LCPI0_17] */ + LONG $0x00380f66; BYTE $0xc2 // pshufb xmm0, xmm2 + LONG $0x00380f66; BYTE $0xca // pshufb xmm1, xmm2 + LONG $0xc16c0f66 // punpcklqdq xmm0, xmm1 + LONG $0x047f0ff3; BYTE $0x39 // movdqu oword [rcx + rdi], xmm0 + +LBB0_1513: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1514 + +LBB0_1518: + WORD $0xff31 // xor edi, edi + +LBB0_1519: + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_1521 + LONG $0xba04100f // movups xmm0, oword [rdx + 4*rdi] + LONG $0xba4c100f; BYTE $0x10 // movups xmm1, oword [rdx + 4*rdi + 16] + LONG $0xc05b0ff3 // cvttps2dq xmm0, xmm0 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc95b0ff3 // cvttps2dq xmm1, xmm1 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x047e0f66; BYTE $0x39 // movd dword [rcx + rdi], xmm0 + LONG $0x4c7e0f66; WORD $0x0439 // movd dword [rcx + rdi + 4], xmm1 + +LBB0_1521: + WORD $0x394c; BYTE $0xce // cmp rsi, r9 + JE LBB0_1526 + JMP LBB0_1522 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_temporal.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_temporal.go new file mode 100644 index 0000000..81c03ad --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/cast_temporal.go @@ -0,0 +1,455 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "math" + "time" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" +) + +const millisecondsInDay = 86400000 + +func ShiftTime[InT, OutT int32 | int64](ctx *exec.KernelCtx, op arrow.TimestampConvertOp, factor int64, input, output *exec.ArraySpan) error { + opts := ctx.State.(CastState) + inData := exec.GetSpanValues[InT](input, 1) + outData := exec.GetSpanValues[OutT](output, 1) + + switch { + case factor == 1: + for i, v := range inData { + outData[i] = OutT(v) + } + return nil + + case op == arrow.ConvMULTIPLY: + if opts.AllowTimeOverflow { + multiplyConstant(inData, outData, factor) + return nil + } + + maxVal, minVal := math.MaxInt64/factor, math.MinInt64/factor + if input.Nulls != 0 && len(input.Buffers[0].Buf) > 0 { + bitReader := bitutil.NewBitmapReader(input.Buffers[0].Buf, int(input.Offset), int(input.Len)) + for i, v := range inData { + if bitReader.Set() && (int64(v) < minVal || int64(v) > maxVal) { + return fmt.Errorf("%w: casting from %s to %s would result in out of bounds timestamp: %v", + arrow.ErrInvalid, input.Type, output.Type, v) + } + outData[i] = OutT(v) * OutT(factor) + bitReader.Next() + } + return nil + } + + for i, v := range inData { + if int64(v) < minVal || int64(v) > maxVal { + return fmt.Errorf("%w: casting from %s to %s would result in out of bounds timestamp: %v", + arrow.ErrInvalid, input.Type, output.Type, v) + } + outData[i] = OutT(v) * OutT(factor) + } + return nil + default: + if opts.AllowTimeTruncate { + divideConstant(inData, outData, factor) + return nil + } + + if input.Nulls != 0 && len(input.Buffers[0].Buf) > 0 { + bitReader := bitutil.NewBitmapReader(input.Buffers[0].Buf, int(input.Offset), int(input.Len)) + for i, v := range inData { + outData[i] = OutT(v / InT(factor)) + if bitReader.Set() && (InT(outData[i])*InT(factor) != v) { + return fmt.Errorf("%w: casting from %s to %s would lose data: %v", + arrow.ErrInvalid, input.Type, output.Type, v) + } + bitReader.Next() + } + return nil + } + + for i, v := range inData { + outData[i] = OutT(v / InT(factor)) + if InT(outData[i])*InT(factor) != v { + return fmt.Errorf("%w: casting from %s to %s would lose data: %v", + arrow.ErrInvalid, input.Type, output.Type, v) + } + } + + return nil + } +} + +func TimestampToDate32(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + inType := batch.Values[0].Array.Type.(*arrow.TimestampType) + fnToTime, err := inType.GetToTimeFunc() + if err != nil { + return fmt.Errorf("%w: %s", arrow.ErrInvalid, err) + } + + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg0 arrow.Timestamp, _ *error) arrow.Date32 { + tm := fnToTime(arg0) + return arrow.Date32FromTime(tm) + })(ctx, batch, out) +} + +func TimestampToDate64(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + inType := batch.Values[0].Array.Type.(*arrow.TimestampType) + fnToTime, err := inType.GetToTimeFunc() + if err != nil { + return fmt.Errorf("%w: %s", arrow.ErrInvalid, err) + } + + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg0 arrow.Timestamp, _ *error) arrow.Date64 { + tm := fnToTime(arg0) + return arrow.Date64FromTime(tm) + })(ctx, batch, out) +} + +func SimpleTemporalCast[I, O arrow.Duration | arrow.Time32 | arrow.Time64 | arrow.Timestamp](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + input = &batch.Values[0].Array + inType = input.Type.(arrow.TemporalWithUnit) + outType = out.Type.(arrow.TemporalWithUnit) + ) + + if inType.TimeUnit() == outType.TimeUnit() && inType.BitWidth() == outType.BitWidth() { + dt := out.Type + for i := range out.Buffers { + if out.Buffers[i].SelfAlloc && out.Buffers[i].Owner != nil { + out.Buffers[i].Owner.Release() + } + } + + *out = *input + out.Type = dt + return nil + } + + op, factor := arrow.GetTimestampConvert(inType.TimeUnit(), outType.TimeUnit()) + inSz := unsafe.Sizeof(I(0)) + outSz := unsafe.Sizeof(O(0)) + switch inSz { + case 4: + switch outSz { + case 4: + return ShiftTime[int32, int32](ctx, op, factor, input, out) + default: + return ShiftTime[int32, int64](ctx, op, factor, input, out) + } + default: + switch outSz { + case 4: + return ShiftTime[int64, int32](ctx, op, factor, input, out) + default: + return ShiftTime[int64, int64](ctx, op, factor, input, out) + } + } +} + +func StringToTimestamp[OffsetT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + outType := out.Type.(*arrow.TimestampType) + zn, err := outType.GetZone() + if err != nil { + return err + } + + expectTimezone := outType.TimeZone != "" + + return ScalarUnaryNotNullBinaryArg[arrow.Timestamp, OffsetT](func(_ *exec.KernelCtx, input []byte, err *error) arrow.Timestamp { + v := *(*string)(unsafe.Pointer(&input)) + o, zonePresent, e := arrow.TimestampFromStringInLocation(v, outType.Unit, zn) + if e != nil { + *err = e + } + + if zonePresent != expectTimezone { + if expectTimezone { + *err = fmt.Errorf("%w: failed to parse string '%s' as a value of type %s,"+ + "expected a zone offset. If these timestamps are in local time, cast to timestamp without timezone", + arrow.ErrInvalid, v, outType) + } else { + *err = fmt.Errorf("%w: failed to parse string '%s' as a value of type %s, expected no zone offset", + arrow.ErrInvalid, v, outType) + } + } + + return o + })(ctx, batch, out) +} + +func TimestampToTime32(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + inType = batch.Values[0].Type().(*arrow.TimestampType) + outType = out.Type.(*arrow.Time32Type) + opts = ctx.State.(CastState) + ) + + fnToTime, err := inType.GetToTimeFunc() + if err != nil { + return fmt.Errorf("%w: %s", arrow.ErrInvalid, err) + } + + if inType.TimeZone != "" && inType.TimeZone != "UTC" { + origFn := fnToTime + fnToTime = func(t arrow.Timestamp) time.Time { + v := origFn(t) + _, offset := v.Zone() + return v.Add(time.Duration(offset) * time.Second).UTC() + } + } + + var fn func(time.Duration, *error) arrow.Time32 + switch outType.Unit { + case arrow.Second: + fn = func(d time.Duration, _ *error) arrow.Time32 { + return arrow.Time32(d.Seconds()) + } + case arrow.Millisecond: + fn = func(d time.Duration, _ *error) arrow.Time32 { + return arrow.Time32(d.Milliseconds()) + } + default: + return fmt.Errorf("%w: bad unit type for cast to time32: %s", + arrow.ErrInvalid, outType.Unit) + } + + op, factor := arrow.GetTimestampConvert(inType.Unit, outType.Unit) + if op == arrow.ConvDIVIDE && !opts.AllowTimeTruncate { + origFn := fn + switch inType.Unit { + case arrow.Millisecond: + fn = func(d time.Duration, err *error) arrow.Time32 { + v := origFn(d, err) + if int64(v)*factor != d.Milliseconds() { + *err = fmt.Errorf("%w: cast would lose data: %d", arrow.ErrInvalid, d.Milliseconds()) + } + return v + } + case arrow.Microsecond: + fn = func(d time.Duration, err *error) arrow.Time32 { + v := origFn(d, err) + if int64(v)*factor != d.Microseconds() { + *err = fmt.Errorf("%w: cast would lose data: %d", arrow.ErrInvalid, d.Microseconds()) + } + return v + } + case arrow.Nanosecond: + fn = func(d time.Duration, err *error) arrow.Time32 { + v := origFn(d, err) + if int64(v)*factor != d.Nanoseconds() { + *err = fmt.Errorf("%w: cast would lose data: %d", arrow.ErrInvalid, d.Nanoseconds()) + } + return v + } + } + } + + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg0 arrow.Timestamp, err *error) arrow.Time32 { + t := fnToTime(arg0) + dur := t.Sub(t.Truncate(24 * time.Hour)) + return fn(dur, err) + })(ctx, batch, out) +} + +func TimestampToTime64(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + inType = batch.Values[0].Type().(*arrow.TimestampType) + outType = out.Type.(*arrow.Time64Type) + opts = ctx.State.(CastState) + ) + + fnToTime, err := inType.GetToTimeFunc() + if err != nil { + return fmt.Errorf("%w: %s", arrow.ErrInvalid, err) + } + + if inType.TimeZone != "" && inType.TimeZone != "UTC" { + origFn := fnToTime + fnToTime = func(t arrow.Timestamp) time.Time { + v := origFn(t) + _, offset := v.Zone() + return v.Add(time.Duration(offset) * time.Second).UTC() + } + } + + var fn func(time.Duration, *error) arrow.Time64 + op, _ := arrow.GetTimestampConvert(inType.Unit, outType.Unit) + if op == arrow.ConvDIVIDE && !opts.AllowTimeTruncate { + // only one case can happen here, microseconds. nanoseconds + // wouldn't be a downscale + fn = func(d time.Duration, err *error) arrow.Time64 { + if d.Nanoseconds() != d.Microseconds()*int64(time.Microsecond) { + *err = fmt.Errorf("%w: cast would lose data: %d", arrow.ErrInvalid, d.Nanoseconds()) + } + return arrow.Time64(d.Microseconds()) + } + } else { + switch outType.Unit { + case arrow.Microsecond: + fn = func(d time.Duration, _ *error) arrow.Time64 { + return arrow.Time64(d.Microseconds()) + } + case arrow.Nanosecond: + fn = func(d time.Duration, _ *error) arrow.Time64 { + return arrow.Time64(d.Nanoseconds()) + } + default: + return fmt.Errorf("%w: bad unit type for cast to time64: %s", + arrow.ErrInvalid, outType.Unit) + } + } + + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, arg0 arrow.Timestamp, err *error) arrow.Time64 { + t := fnToTime(arg0) + dur := t.Sub(t.Truncate(24 * time.Hour)) + return fn(dur, err) + })(ctx, batch, out) +} + +func GetDate32CastKernels() []exec.ScalarKernel { + outType := exec.NewOutputType(arrow.FixedWidthTypes.Date32) + out := GetCommonCastKernels(arrow.DATE32, outType) + out = append(out, GetZeroCastKernel(arrow.INT32, exec.NewExactInput(arrow.PrimitiveTypes.Int32), outType)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.FixedWidthTypes.Date64)}, outType, + func(ctx *exec.KernelCtx, input *exec.ExecSpan, out *exec.ExecResult) error { + return ShiftTime[int64, int32](ctx, arrow.ConvDIVIDE, millisecondsInDay, &input.Values[0].Array, out) + }, nil)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIMESTAMP)}, outType, + TimestampToDate32, nil)) + + return out +} + +func GetDate64CastKernels() []exec.ScalarKernel { + outType := exec.NewOutputType(arrow.FixedWidthTypes.Date64) + out := GetCommonCastKernels(arrow.DATE64, outType) + out = append(out, GetZeroCastKernel(arrow.INT64, exec.NewExactInput(arrow.PrimitiveTypes.Int64), outType)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.FixedWidthTypes.Date32)}, outType, + func(ctx *exec.KernelCtx, input *exec.ExecSpan, out *exec.ExecResult) error { + return ShiftTime[int32, int64](ctx, arrow.ConvMULTIPLY, millisecondsInDay, &input.Values[0].Array, out) + }, nil)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIMESTAMP)}, outType, + TimestampToDate64, nil)) + return out +} + +func GetTime32CastKernels() []exec.ScalarKernel { + out := GetCommonCastKernels(arrow.TIME32, OutputTargetType) + out = append(out, GetZeroCastKernel(arrow.INT32, exec.NewExactInput(arrow.PrimitiveTypes.Int32), OutputTargetType)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIME64)}, OutputTargetType, + SimpleTemporalCast[arrow.Time64, arrow.Time32], nil)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIME32)}, OutputTargetType, + SimpleTemporalCast[arrow.Time32, arrow.Time32], nil)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIMESTAMP)}, OutputTargetType, + TimestampToTime32, nil)) + + return out +} + +func GetTime64CastKernels() []exec.ScalarKernel { + out := GetCommonCastKernels(arrow.TIME64, OutputTargetType) + out = append(out, GetZeroCastKernel(arrow.INT64, exec.NewExactInput(arrow.PrimitiveTypes.Int64), OutputTargetType)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIME64)}, OutputTargetType, + SimpleTemporalCast[arrow.Time64, arrow.Time64], nil)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIME32)}, OutputTargetType, + SimpleTemporalCast[arrow.Time32, arrow.Time64], nil)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIMESTAMP)}, OutputTargetType, + TimestampToTime64, nil)) + + return out +} + +func GetDurationCastKernels() []exec.ScalarKernel { + out := GetCommonCastKernels(arrow.DURATION, OutputTargetType) + out = append(out, GetZeroCastKernel(arrow.INT64, + exec.NewExactInput(arrow.PrimitiveTypes.Int64), OutputTargetType)) + + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DURATION)}, OutputTargetType, + SimpleTemporalCast[arrow.Duration, arrow.Duration], nil)) + return out +} + +func GetIntervalCastKernels() []exec.ScalarKernel { + return GetCommonCastKernels(arrow.INTERVAL_MONTH_DAY_NANO, OutputTargetType) +} + +func GetTimestampCastKernels() []exec.ScalarKernel { + out := GetCommonCastKernels(arrow.TIMESTAMP, OutputTargetType) + + // same integer representation + out = append(out, GetZeroCastKernel(arrow.INT64, exec.NewExactInput(arrow.PrimitiveTypes.Int64), OutputTargetType)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DATE32)}, OutputTargetType, + func(ctx *exec.KernelCtx, input *exec.ExecSpan, out *exec.ExecResult) error { + op, factor := arrow.GetTimestampConvert(arrow.Second, out.Type.(arrow.TemporalWithUnit).TimeUnit()) + debug.Assert(op == arrow.ConvMULTIPLY, "date32 -> timestamp should be multiply operation") + + // multiply to achieve days -> unit + factor *= millisecondsInDay / 1000 + return ShiftTime[int32, int64](ctx, op, factor, &input.Values[0].Array, out) + }, nil)) + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DATE64)}, OutputTargetType, + func(ctx *exec.KernelCtx, input *exec.ExecSpan, out *exec.ExecResult) error { + // date64 is ms since epoch + op, factor := arrow.GetTimestampConvert(arrow.Millisecond, out.Type.(arrow.TemporalWithUnit).TimeUnit()) + debug.Assert(op == arrow.ConvMULTIPLY, "date64 -> timestamp should be multiply operation") + + return ShiftTime[int64, int64](ctx, op, factor, &input.Values[0].Array, out) + }, nil)) + + // string -> timestamp + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.BinaryTypes.String)}, OutputTargetType, + StringToTimestamp[int32], nil)) + // large_string -> timestamp + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.BinaryTypes.LargeString)}, OutputTargetType, + StringToTimestamp[int64], nil)) + // from one timestamp to another + out = append(out, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.TIMESTAMP)}, OutputTargetType, + SimpleTemporalCast[arrow.Timestamp, arrow.Timestamp], nil)) + return out +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/compareoperator_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/compareoperator_string.go new file mode 100644 index 0000000..0368598 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/compareoperator_string.go @@ -0,0 +1,30 @@ +// Code generated by "stringer -type=CompareOperator -linecomment"; DO NOT EDIT. + +//go:build go1.18 + +package kernels + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[CmpEQ-0] + _ = x[CmpNE-1] + _ = x[CmpGT-2] + _ = x[CmpGE-3] + _ = x[CmpLT-4] + _ = x[CmpLE-5] +} + +const _CompareOperator_name = "equalnot_equalgreatergreater_equallessless_equal" + +var _CompareOperator_index = [...]uint8{0, 5, 14, 21, 34, 38, 48} + +func (i CompareOperator) String() string { + if i < 0 || i >= CompareOperator(len(_CompareOperator_index)-1) { + return "CompareOperator(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _CompareOperator_name[_CompareOperator_index[i]:_CompareOperator_index[i+1]] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor.go new file mode 100644 index 0000000..c57902d --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor.go @@ -0,0 +1,81 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +var ( + multiplyConstantInt32Int32 func([]int32, []int32, int64) = multiplyConstantGo[int32, int32] + multiplyConstantInt32Int64 func([]int32, []int64, int64) = multiplyConstantGo[int32, int64] + multiplyConstantInt64Int32 func([]int64, []int32, int64) = multiplyConstantGo[int64, int32] + multiplyConstantInt64Int64 func([]int64, []int64, int64) = multiplyConstantGo[int64, int64] + + divideConstantInt32Int32 func([]int32, []int32, int64) = divideConstantGo[int32, int32] + divideConstantInt32Int64 func([]int32, []int64, int64) = divideConstantGo[int32, int64] + divideConstantInt64Int32 func([]int64, []int32, int64) = divideConstantGo[int64, int32] + divideConstantInt64Int64 func([]int64, []int64, int64) = divideConstantGo[int64, int64] +) + +func multiplyConstantGo[InT, OutT ~int32 | ~int64](input []InT, output []OutT, factor int64) { + for i, v := range input { + output[i] = OutT(v) * OutT(factor) + } +} + +func divideConstantGo[InT, OutT ~int32 | ~int64](input []InT, output []OutT, factor int64) { + for i, v := range input { + output[i] = OutT(v / InT(factor)) + } +} + +func multiplyConstant(input, output any, factor int64) { + switch in := input.(type) { + case []int32: + switch out := output.(type) { + case []int32: + multiplyConstantInt32Int32(in, out, factor) + case []int64: + multiplyConstantInt32Int64(in, out, factor) + } + case []int64: + switch out := output.(type) { + case []int32: + multiplyConstantInt64Int32(in, out, factor) + case []int64: + multiplyConstantInt64Int64(in, out, factor) + } + } +} + +func divideConstant(input, output any, factor int64) { + switch in := input.(type) { + case []int32: + switch out := output.(type) { + case []int32: + divideConstantInt32Int32(in, out, factor) + case []int64: + divideConstantInt32Int64(in, out, factor) + } + case []int64: + switch out := output.(type) { + case []int32: + divideConstantInt64Int32(in, out, factor) + case []int64: + divideConstantInt64Int64(in, out, factor) + } + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_amd64.go new file mode 100644 index 0000000..7229632 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_amd64.go @@ -0,0 +1,57 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "golang.org/x/sys/cpu" +) + +func init() { + if cpu.X86.HasAVX2 { + multiplyConstantInt32Int32 = multiplyConstantInt32Int32Avx2 + multiplyConstantInt32Int64 = multiplyConstantInt32Int64Avx2 + multiplyConstantInt64Int32 = multiplyConstantInt64Int32Avx2 + multiplyConstantInt64Int64 = multiplyConstantInt64Int64Avx2 + + divideConstantInt32Int32 = divideConstantInt32Int32Avx2 + divideConstantInt32Int64 = divideConstantInt32Int64Avx2 + divideConstantInt64Int32 = divideConstantInt64Int32Avx2 + divideConstantInt64Int64 = divideConstantInt64Int64Avx2 + } else if cpu.X86.HasSSE42 { + multiplyConstantInt32Int32 = multiplyConstantInt32Int32SSE4 + multiplyConstantInt32Int64 = multiplyConstantInt32Int64SSE4 + multiplyConstantInt64Int32 = multiplyConstantInt64Int32SSE4 + multiplyConstantInt64Int64 = multiplyConstantInt64Int64SSE4 + + divideConstantInt32Int32 = divideConstantInt32Int32SSE4 + divideConstantInt32Int64 = divideConstantInt32Int64SSE4 + divideConstantInt64Int32 = divideConstantInt64Int32SSE4 + divideConstantInt64Int64 = divideConstantInt64Int64SSE4 + } else { + multiplyConstantInt32Int32 = multiplyConstantGo[int32, int32] + multiplyConstantInt32Int64 = multiplyConstantGo[int32, int64] + multiplyConstantInt64Int32 = multiplyConstantGo[int64, int32] + multiplyConstantInt64Int64 = multiplyConstantGo[int64, int64] + + divideConstantInt32Int32 = divideConstantGo[int32, int32] + divideConstantInt32Int64 = divideConstantGo[int32, int64] + divideConstantInt64Int32 = divideConstantGo[int64, int32] + divideConstantInt64Int64 = divideConstantGo[int64, int64] + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.go new file mode 100644 index 0000000..7d35746 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.go @@ -0,0 +1,77 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import "unsafe" + +//go:noescape +func _multiply_constant_int32_int32_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt32Int32Avx2(in []int32, out []int32, factor int64) { + _multiply_constant_int32_int32_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int32_int64_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt32Int64Avx2(in []int32, out []int64, factor int64) { + _multiply_constant_int32_int64_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int64_int32_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt64Int32Avx2(in []int64, out []int32, factor int64) { + _multiply_constant_int64_int32_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int64_int64_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt64Int64Avx2(in []int64, out []int64, factor int64) { + _multiply_constant_int64_int64_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int32_int32_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt32Int32Avx2(in []int32, out []int32, factor int64) { + _divide_constant_int32_int32_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int32_int64_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt32Int64Avx2(in []int32, out []int64, factor int64) { + _divide_constant_int32_int64_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int64_int32_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt64Int32Avx2(in []int64, out []int32, factor int64) { + _divide_constant_int64_int32_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int64_int64_avx2(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt64Int64Avx2(in []int64, out []int64, factor int64) { + _divide_constant_int64_int64_avx2(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.s new file mode 100644 index 0000000..c7c747b --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_avx2_amd64.s @@ -0,0 +1,781 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +TEXT ·_multiply_constant_int32_int32_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB0_16 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x1f // cmp edx, 31 + JBE LBB0_2 + LONG $0x8f048d4a // lea rax, [rdi + 4*r9] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB0_9 + LONG $0x8e048d4a // lea rax, [rsi + 4*r9] + WORD $0x3948; BYTE $0xf8 // cmp rax, rdi + JBE LBB0_9 + +LBB0_2: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB0_3: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_5 + +LBB0_4: + LONG $0x9f148b42 // mov edx, dword [rdi + 4*r11] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + LONG $0x9e148942 // mov dword [rsi + 4*r11], edx + LONG $0x01c38349 // add r11, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_4 + +LBB0_5: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_16 + +LBB0_6: + LONG $0x9f048b42 // mov eax, dword [rdi + 4*r11] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e048942 // mov dword [rsi + 4*r11], eax + LONG $0x9f448b42; BYTE $0x04 // mov eax, dword [rdi + 4*r11 + 4] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x04 // mov dword [rsi + 4*r11 + 4], eax + LONG $0x9f448b42; BYTE $0x08 // mov eax, dword [rdi + 4*r11 + 8] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x08 // mov dword [rsi + 4*r11 + 8], eax + LONG $0x9f448b42; BYTE $0x0c // mov eax, dword [rdi + 4*r11 + 12] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x0c // mov dword [rsi + 4*r11 + 12], eax + LONG $0x04c38349 // add r11, 4 + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB0_6 + JMP LBB0_16 + +LBB0_9: + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0xe0e38341 // and r11d, -32 + LONG $0xc16ef9c5 // vmovd xmm0, ecx + LONG $0x587de2c4; BYTE $0xc0 // vpbroadcastd ymm0, xmm0 + LONG $0xe0438d49 // lea rax, [r11 - 32] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x05e8c149 // shr r8, 5 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_10 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + +LBB0_12: + LONG $0x407de2c4; WORD $0x870c // vpmulld ymm1, ymm0, yword [rdi + 4*rax] + LONG $0x407de2c4; WORD $0x8754; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdi + 4*rax + 32] + LONG $0x407de2c4; WORD $0x875c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdi + 4*rax + 64] + LONG $0x407de2c4; WORD $0x8764; BYTE $0x60 // vpmulld ymm4, ymm0, yword [rdi + 4*rax + 96] + LONG $0x0c7ffec5; BYTE $0x86 // vmovdqu yword [rsi + 4*rax], ymm1 + LONG $0x547ffec5; WORD $0x2086 // vmovdqu yword [rsi + 4*rax + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4086 // vmovdqu yword [rsi + 4*rax + 64], ymm3 + LONG $0x647ffec5; WORD $0x6086 // vmovdqu yword [rsi + 4*rax + 96], ymm4 + QUAD $0x0080878c407de2c4; WORD $0x0000 // vpmulld ymm1, ymm0, yword [rdi + 4*rax + 128] + QUAD $0x00a08794407de2c4; WORD $0x0000 // vpmulld ymm2, ymm0, yword [rdi + 4*rax + 160] + QUAD $0x00c0879c407de2c4; WORD $0x0000 // vpmulld ymm3, ymm0, yword [rdi + 4*rax + 192] + QUAD $0x00e087a4407de2c4; WORD $0x0000 // vpmulld ymm4, ymm0, yword [rdi + 4*rax + 224] + QUAD $0x000080868c7ffec5; BYTE $0x00 // vmovdqu yword [rsi + 4*rax + 128], ymm1 + QUAD $0x0000a086947ffec5; BYTE $0x00 // vmovdqu yword [rsi + 4*rax + 160], ymm2 + QUAD $0x0000c0869c7ffec5; BYTE $0x00 // vmovdqu yword [rsi + 4*rax + 192], ymm3 + QUAD $0x0000e086a47ffec5; BYTE $0x00 // vmovdqu yword [rsi + 4*rax + 224], ymm4 + LONG $0x40c08348 // add rax, 64 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_12 + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_15 + +LBB0_14: + LONG $0x407de2c4; WORD $0x870c // vpmulld ymm1, ymm0, yword [rdi + 4*rax] + LONG $0x407de2c4; WORD $0x8754; BYTE $0x20 // vpmulld ymm2, ymm0, yword [rdi + 4*rax + 32] + LONG $0x407de2c4; WORD $0x875c; BYTE $0x40 // vpmulld ymm3, ymm0, yword [rdi + 4*rax + 64] + LONG $0x407de2c4; WORD $0x8744; BYTE $0x60 // vpmulld ymm0, ymm0, yword [rdi + 4*rax + 96] + LONG $0x0c7ffec5; BYTE $0x86 // vmovdqu yword [rsi + 4*rax], ymm1 + LONG $0x547ffec5; WORD $0x2086 // vmovdqu yword [rsi + 4*rax + 32], ymm2 + LONG $0x5c7ffec5; WORD $0x4086 // vmovdqu yword [rsi + 4*rax + 64], ymm3 + LONG $0x447ffec5; WORD $0x6086 // vmovdqu yword [rsi + 4*rax + 96], ymm0 + +LBB0_15: + WORD $0x394d; BYTE $0xcb // cmp r11, r9 + JNE LBB0_3 + +LBB0_16: + VZEROUPPER + RET + +LBB0_10: + WORD $0xc031 // xor eax, eax + LONG $0x01c0f641 // test r8b, 1 + JNE LBB0_14 + JMP LBB0_15 + +TEXT ·_divide_constant_int32_int32_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB1_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB1_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB1_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_8 + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB1_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB1_7 + +LBB1_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB1_10 + +LBB1_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB1_16: + LONG $0x86448942; BYTE $0x04 // mov dword [rsi + 4*r8 + 4], eax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB1_3 + +LBB1_10: + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB1_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB1_13 + +LBB1_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB1_13: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + LONG $0x8744634a; BYTE $0x04 // movsxd rax, dword [rdi + 4*r8 + 4] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB1_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB1_16 + +LBB1_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB1_7: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + +LBB1_8: + RET + +TEXT ·_multiply_constant_int32_int64_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB2_7 + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + WORD $0xfa83; BYTE $0x0f // cmp edx, 15 + JA LBB2_3 + WORD $0xd231 // xor edx, edx + JMP LBB2_6 + +LBB2_3: + WORD $0x8944; BYTE $0xc2 // mov edx, r8d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x6ef9e1c4; BYTE $0xc1 // vmovq xmm0, rcx + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + WORD $0xc031 // xor eax, eax + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + +LBB2_4: + LONG $0x257de2c4; WORD $0x8714 // vpmovsxdq ymm2, oword [rdi + 4*rax] + LONG $0x257de2c4; WORD $0x875c; BYTE $0x10 // vpmovsxdq ymm3, oword [rdi + 4*rax + 16] + LONG $0x257de2c4; WORD $0x8764; BYTE $0x20 // vpmovsxdq ymm4, oword [rdi + 4*rax + 32] + LONG $0x257de2c4; WORD $0x876c; BYTE $0x30 // vpmovsxdq ymm5, oword [rdi + 4*rax + 48] + LONG $0xf2f4f5c5 // vpmuludq ymm6, ymm1, ymm2 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xfff4fdc5 // vpmuludq ymm7, ymm0, ymm7 + LONG $0xf6d4c5c5 // vpaddq ymm6, ymm7, ymm6 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd2f4fdc5 // vpmuludq ymm2, ymm0, ymm2 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf3f4f5c5 // vpmuludq ymm6, ymm1, ymm3 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xfff4fdc5 // vpmuludq ymm7, ymm0, ymm7 + LONG $0xf6d4c5c5 // vpaddq ymm6, ymm7, ymm6 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xdbf4fdc5 // vpmuludq ymm3, ymm0, ymm3 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf4f4f5c5 // vpmuludq ymm6, ymm1, ymm4 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xfff4fdc5 // vpmuludq ymm7, ymm0, ymm7 + LONG $0xf6d4c5c5 // vpaddq ymm6, ymm7, ymm6 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe4f4fdc5 // vpmuludq ymm4, ymm0, ymm4 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf5f4f5c5 // vpmuludq ymm6, ymm1, ymm5 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xfff4fdc5 // vpmuludq ymm7, ymm0, ymm7 + LONG $0xf6d4c5c5 // vpaddq ymm6, ymm7, ymm6 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xedf4fdc5 // vpmuludq ymm5, ymm0, ymm5 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x147ffec5; BYTE $0xc6 // vmovdqu yword [rsi + 8*rax], ymm2 + LONG $0x5c7ffec5; WORD $0x20c6 // vmovdqu yword [rsi + 8*rax + 32], ymm3 + LONG $0x647ffec5; WORD $0x40c6 // vmovdqu yword [rsi + 8*rax + 64], ymm4 + LONG $0x6c7ffec5; WORD $0x60c6 // vmovdqu yword [rsi + 8*rax + 96], ymm5 + LONG $0x10c08348 // add rax, 16 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JNE LBB2_4 + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JE LBB2_7 + +LBB2_6: + LONG $0x97046348 // movsxd rax, dword [rdi + 4*rdx] + LONG $0xc1af0f48 // imul rax, rcx + LONG $0xd6048948 // mov qword [rsi + 8*rdx], rax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd0 // cmp r8, rdx + JNE LBB2_6 + +LBB2_7: + VZEROUPPER + RET + +TEXT ·_divide_constant_int32_int64_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB3_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB3_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB3_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_8 + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB3_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB3_7 + +LBB3_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB3_10 + +LBB3_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB3_16: + LONG $0xc644894a; BYTE $0x08 // mov qword [rsi + 8*r8 + 8], rax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB3_3 + +LBB3_10: + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB3_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB3_13 + +LBB3_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB3_13: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + LONG $0x8744634a; BYTE $0x04 // movsxd rax, dword [rdi + 4*r8 + 4] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB3_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB3_16 + +LBB3_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB3_7: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + +LBB3_8: + RET + +TEXT ·_multiply_constant_int64_int32_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB4_7 + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + WORD $0xfa83; BYTE $0x0f // cmp edx, 15 + JA LBB4_3 + WORD $0xd231 // xor edx, edx + JMP LBB4_6 + +LBB4_3: + WORD $0x8944; BYTE $0xc2 // mov edx, r8d + WORD $0xe283; BYTE $0xf0 // and edx, -16 + LONG $0x6ef9e1c4; BYTE $0xc1 // vmovq xmm0, rcx + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + WORD $0xc031 // xor eax, eax + LONG $0x397de3c4; WORD $0x01c1 // vextracti128 xmm1, ymm0, 1 + +LBB4_4: + LONG $0x1410f8c5; BYTE $0xc7 // vmovups xmm2, oword [rdi + 8*rax] + LONG $0x5c10f8c5; WORD $0x20c7 // vmovups xmm3, oword [rdi + 8*rax + 32] + LONG $0x6410f8c5; WORD $0x40c7 // vmovups xmm4, oword [rdi + 8*rax + 64] + LONG $0x6c10f8c5; WORD $0x60c7 // vmovups xmm5, oword [rdi + 8*rax + 96] + LONG $0x54c6e8c5; WORD $0x10c7; BYTE $0x88 // vshufps xmm2, xmm2, oword [rdi + 8*rax + 16], 136 + LONG $0xf1c6f8c5; BYTE $0x88 // vshufps xmm6, xmm0, xmm1, 136 + LONG $0x4069e2c4; BYTE $0xd6 // vpmulld xmm2, xmm2, xmm6 + LONG $0x5cc6e0c5; WORD $0x30c7; BYTE $0x88 // vshufps xmm3, xmm3, oword [rdi + 8*rax + 48], 136 + LONG $0xf1c6f8c5; BYTE $0x88 // vshufps xmm6, xmm0, xmm1, 136 + LONG $0x4061e2c4; BYTE $0xde // vpmulld xmm3, xmm3, xmm6 + LONG $0x64c6d8c5; WORD $0x50c7; BYTE $0x88 // vshufps xmm4, xmm4, oword [rdi + 8*rax + 80], 136 + LONG $0xf1c6f8c5; BYTE $0x88 // vshufps xmm6, xmm0, xmm1, 136 + LONG $0x4059e2c4; BYTE $0xe6 // vpmulld xmm4, xmm4, xmm6 + LONG $0x6cc6d0c5; WORD $0x70c7; BYTE $0x88 // vshufps xmm5, xmm5, oword [rdi + 8*rax + 112], 136 + LONG $0xf1c6f8c5; BYTE $0x88 // vshufps xmm6, xmm0, xmm1, 136 + LONG $0x4051e2c4; BYTE $0xee // vpmulld xmm5, xmm5, xmm6 + LONG $0x147ffac5; BYTE $0x86 // vmovdqu oword [rsi + 4*rax], xmm2 + LONG $0x5c7ffac5; WORD $0x1086 // vmovdqu oword [rsi + 4*rax + 16], xmm3 + LONG $0x647ffac5; WORD $0x2086 // vmovdqu oword [rsi + 4*rax + 32], xmm4 + LONG $0x6c7ffac5; WORD $0x3086 // vmovdqu oword [rsi + 4*rax + 48], xmm5 + LONG $0x10c08348 // add rax, 16 + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JNE LBB4_4 + WORD $0x394c; BYTE $0xc2 // cmp rdx, r8 + JE LBB4_7 + +LBB4_6: + WORD $0x048b; BYTE $0xd7 // mov eax, dword [rdi + 8*rdx] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + WORD $0x0489; BYTE $0x96 // mov dword [rsi + 4*rdx], eax + LONG $0x01c28348 // add rdx, 1 + WORD $0x3949; BYTE $0xd0 // cmp r8, rdx + JNE LBB4_6 + +LBB4_7: + VZEROUPPER + RET + +TEXT ·_divide_constant_int64_int32_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB5_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB5_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB5_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB5_8 + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB5_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB5_7 + +LBB5_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB5_10 + +LBB5_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB5_16: + LONG $0x86448942; BYTE $0x04 // mov dword [rsi + 4*r8 + 4], eax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB5_3 + +LBB5_10: + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB5_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB5_13 + +LBB5_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB5_13: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + LONG $0xc7448b4a; BYTE $0x08 // mov rax, qword [rdi + 8*r8 + 8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB5_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB5_16 + +LBB5_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB5_7: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + +LBB5_8: + RET + +TEXT ·_multiply_constant_int64_int64_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB6_16 + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + WORD $0xfa83; BYTE $0x0f // cmp edx, 15 + JBE LBB6_2 + LONG $0xc7048d4a // lea rax, [rdi + 8*r8] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB6_9 + LONG $0xc6048d4a // lea rax, [rsi + 8*r8] + WORD $0x3948; BYTE $0xf8 // cmp rax, rdi + JBE LBB6_9 + +LBB6_2: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB6_3: + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + WORD $0xf749; BYTE $0xd1 // not r9 + WORD $0x014d; BYTE $0xc1 // add r9, r8 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + LONG $0x03e08348 // and rax, 3 + JE LBB6_5 + +LBB6_4: + LONG $0xdf148b4a // mov rdx, qword [rdi + 8*r11] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xde14894a // mov qword [rsi + 8*r11], rdx + LONG $0x01c38349 // add r11, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB6_4 + +LBB6_5: + LONG $0x03f98349 // cmp r9, 3 + JB LBB6_16 + +LBB6_6: + LONG $0xdf048b4a // mov rax, qword [rdi + 8*r11] + LONG $0xc1af0f48 // imul rax, rcx + LONG $0xde04894a // mov qword [rsi + 8*r11], rax + LONG $0xdf448b4a; BYTE $0x08 // mov rax, qword [rdi + 8*r11 + 8] + LONG $0xc1af0f48 // imul rax, rcx + LONG $0xde44894a; BYTE $0x08 // mov qword [rsi + 8*r11 + 8], rax + LONG $0xdf448b4a; BYTE $0x10 // mov rax, qword [rdi + 8*r11 + 16] + LONG $0xc1af0f48 // imul rax, rcx + LONG $0xde44894a; BYTE $0x10 // mov qword [rsi + 8*r11 + 16], rax + LONG $0xdf448b4a; BYTE $0x18 // mov rax, qword [rdi + 8*r11 + 24] + LONG $0xc1af0f48 // imul rax, rcx + LONG $0xde44894a; BYTE $0x18 // mov qword [rsi + 8*r11 + 24], rax + LONG $0x04c38349 // add r11, 4 + WORD $0x394d; BYTE $0xd8 // cmp r8, r11 + JNE LBB6_6 + JMP LBB6_16 + +LBB6_9: + WORD $0x8945; BYTE $0xc3 // mov r11d, r8d + LONG $0xf0e38341 // and r11d, -16 + LONG $0x6ef9e1c4; BYTE $0xc1 // vmovq xmm0, rcx + LONG $0x597de2c4; BYTE $0xc0 // vpbroadcastq ymm0, xmm0 + LONG $0xf0438d49 // lea rax, [r11 - 16] + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x04e9c149 // shr r9, 4 + LONG $0x01c18349 // add r9, 1 + LONG $0xd073f5c5; BYTE $0x20 // vpsrlq ymm1, ymm0, 32 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB6_10 + WORD $0x894d; BYTE $0xca // mov r10, r9 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + +LBB6_12: + LONG $0x146ffec5; BYTE $0xc7 // vmovdqu ymm2, yword [rdi + 8*rax] + LONG $0x5c6ffec5; WORD $0x20c7 // vmovdqu ymm3, yword [rdi + 8*rax + 32] + LONG $0x646ffec5; WORD $0x40c7 // vmovdqu ymm4, yword [rdi + 8*rax + 64] + LONG $0x6c6ffec5; WORD $0x60c7 // vmovdqu ymm5, yword [rdi + 8*rax + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + LONG $0x147ffec5; BYTE $0xc6 // vmovdqu yword [rsi + 8*rax], ymm2 + LONG $0x5c7ffec5; WORD $0x20c6 // vmovdqu yword [rsi + 8*rax + 32], ymm3 + LONG $0x647ffec5; WORD $0x40c6 // vmovdqu yword [rsi + 8*rax + 64], ymm4 + LONG $0x6c7ffec5; WORD $0x60c6 // vmovdqu yword [rsi + 8*rax + 96], ymm5 + QUAD $0x000080c7946ffec5; BYTE $0x00 // vmovdqu ymm2, yword [rdi + 8*rax + 128] + QUAD $0x0000a0c79c6ffec5; BYTE $0x00 // vmovdqu ymm3, yword [rdi + 8*rax + 160] + QUAD $0x0000c0c7a46ffec5; BYTE $0x00 // vmovdqu ymm4, yword [rdi + 8*rax + 192] + QUAD $0x0000e0c7ac6ffec5; BYTE $0x00 // vmovdqu ymm5, yword [rdi + 8*rax + 224] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xf1f4d5c5 // vpmuludq ymm6, ymm5, ymm1 + LONG $0xd573c5c5; BYTE $0x20 // vpsrlq ymm7, ymm5, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe8f4d5c5 // vpmuludq ymm5, ymm5, ymm0 + LONG $0xeed4d5c5 // vpaddq ymm5, ymm5, ymm6 + QUAD $0x000080c6947ffec5; BYTE $0x00 // vmovdqu yword [rsi + 8*rax + 128], ymm2 + QUAD $0x0000a0c69c7ffec5; BYTE $0x00 // vmovdqu yword [rsi + 8*rax + 160], ymm3 + QUAD $0x0000c0c6a47ffec5; BYTE $0x00 // vmovdqu yword [rsi + 8*rax + 192], ymm4 + QUAD $0x0000e0c6ac7ffec5; BYTE $0x00 // vmovdqu yword [rsi + 8*rax + 224], ymm5 + LONG $0x20c08348 // add rax, 32 + LONG $0x02c28349 // add r10, 2 + JNE LBB6_12 + LONG $0x01c1f641 // test r9b, 1 + JE LBB6_15 + +LBB6_14: + LONG $0x146ffec5; BYTE $0xc7 // vmovdqu ymm2, yword [rdi + 8*rax] + LONG $0x5c6ffec5; WORD $0x20c7 // vmovdqu ymm3, yword [rdi + 8*rax + 32] + LONG $0x646ffec5; WORD $0x40c7 // vmovdqu ymm4, yword [rdi + 8*rax + 64] + LONG $0x6c6ffec5; WORD $0x60c7 // vmovdqu ymm5, yword [rdi + 8*rax + 96] + LONG $0xf1f4edc5 // vpmuludq ymm6, ymm2, ymm1 + LONG $0xd273c5c5; BYTE $0x20 // vpsrlq ymm7, ymm2, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd0f4edc5 // vpmuludq ymm2, ymm2, ymm0 + LONG $0xd6d4edc5 // vpaddq ymm2, ymm2, ymm6 + LONG $0xf1f4e5c5 // vpmuludq ymm6, ymm3, ymm1 + LONG $0xd373c5c5; BYTE $0x20 // vpsrlq ymm7, ymm3, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xd8f4e5c5 // vpmuludq ymm3, ymm3, ymm0 + LONG $0xded4e5c5 // vpaddq ymm3, ymm3, ymm6 + LONG $0xf1f4ddc5 // vpmuludq ymm6, ymm4, ymm1 + LONG $0xd473c5c5; BYTE $0x20 // vpsrlq ymm7, ymm4, 32 + LONG $0xf8f4c5c5 // vpmuludq ymm7, ymm7, ymm0 + LONG $0xf7d4cdc5 // vpaddq ymm6, ymm6, ymm7 + LONG $0xf673cdc5; BYTE $0x20 // vpsllq ymm6, ymm6, 32 + LONG $0xe0f4ddc5 // vpmuludq ymm4, ymm4, ymm0 + LONG $0xe6d4ddc5 // vpaddq ymm4, ymm4, ymm6 + LONG $0xc9f4d5c5 // vpmuludq ymm1, ymm5, ymm1 + LONG $0xd573cdc5; BYTE $0x20 // vpsrlq ymm6, ymm5, 32 + LONG $0xf0f4cdc5 // vpmuludq ymm6, ymm6, ymm0 + LONG $0xced4f5c5 // vpaddq ymm1, ymm1, ymm6 + LONG $0xf173f5c5; BYTE $0x20 // vpsllq ymm1, ymm1, 32 + LONG $0xc0f4d5c5 // vpmuludq ymm0, ymm5, ymm0 + LONG $0xc1d4fdc5 // vpaddq ymm0, ymm0, ymm1 + LONG $0x147ffec5; BYTE $0xc6 // vmovdqu yword [rsi + 8*rax], ymm2 + LONG $0x5c7ffec5; WORD $0x20c6 // vmovdqu yword [rsi + 8*rax + 32], ymm3 + LONG $0x647ffec5; WORD $0x40c6 // vmovdqu yword [rsi + 8*rax + 64], ymm4 + LONG $0x447ffec5; WORD $0x60c6 // vmovdqu yword [rsi + 8*rax + 96], ymm0 + +LBB6_15: + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_3 + +LBB6_16: + VZEROUPPER + RET + +LBB6_10: + WORD $0xc031 // xor eax, eax + LONG $0x01c1f641 // test r9b, 1 + JNE LBB6_14 + JMP LBB6_15 + +TEXT ·_divide_constant_int64_int64_avx2(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB7_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB7_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB7_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB7_8 + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB7_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB7_7 + +LBB7_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB7_10 + +LBB7_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB7_16: + LONG $0xc644894a; BYTE $0x08 // mov qword [rsi + 8*r8 + 8], rax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB7_3 + +LBB7_10: + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB7_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB7_13 + +LBB7_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB7_13: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + LONG $0xc7448b4a; BYTE $0x08 // mov rax, qword [rdi + 8*r8 + 8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB7_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB7_16 + +LBB7_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB7_7: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + +LBB7_8: + RET diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.go new file mode 100644 index 0000000..1f42f37 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.go @@ -0,0 +1,77 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import "unsafe" + +//go:noescape +func _multiply_constant_int32_int32_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt32Int32SSE4(in []int32, out []int32, factor int64) { + _multiply_constant_int32_int32_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int32_int64_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt32Int64SSE4(in []int32, out []int64, factor int64) { + _multiply_constant_int32_int64_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int64_int32_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt64Int32SSE4(in []int64, out []int32, factor int64) { + _multiply_constant_int64_int32_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _multiply_constant_int64_int64_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func multiplyConstantInt64Int64SSE4(in []int64, out []int64, factor int64) { + _multiply_constant_int64_int64_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int32_int32_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt32Int32SSE4(in []int32, out []int32, factor int64) { + _divide_constant_int32_int32_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int32_int64_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt32Int64SSE4(in []int32, out []int64, factor int64) { + _divide_constant_int32_int64_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int64_int32_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt64Int32SSE4(in []int64, out []int32, factor int64) { + _divide_constant_int64_int32_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} + +//go:noescape +func _divide_constant_int64_int64_sse4(src, dest unsafe.Pointer, len int, factor int64) + +func divideConstantInt64Int64SSE4(in []int64, out []int64, factor int64) { + _divide_constant_int64_int64_sse4(unsafe.Pointer(&in[0]), unsafe.Pointer(&out[0]), len(out), factor) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.s new file mode 100644 index 0000000..2d42edf --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/constant_factor_sse4_amd64.s @@ -0,0 +1,597 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +TEXT ·_multiply_constant_int32_int32_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB0_16 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x07 // cmp edx, 7 + JBE LBB0_2 + LONG $0x8f048d4a // lea rax, [rdi + 4*r9] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB0_9 + LONG $0x8e048d4a // lea rax, [rsi + 4*r9] + WORD $0x3948; BYTE $0xf8 // cmp rax, rdi + JBE LBB0_9 + +LBB0_2: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB0_3: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0xf749; BYTE $0xd0 // not r8 + WORD $0x014d; BYTE $0xc8 // add r8, r9 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x03e08348 // and rax, 3 + JE LBB0_5 + +LBB0_4: + LONG $0x9f148b42 // mov edx, dword [rdi + 4*r11] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + LONG $0x9e148942 // mov dword [rsi + 4*r11], edx + LONG $0x01c38349 // add r11, 1 + LONG $0xffc08348 // add rax, -1 + JNE LBB0_4 + +LBB0_5: + LONG $0x03f88349 // cmp r8, 3 + JB LBB0_16 + +LBB0_6: + LONG $0x9f048b42 // mov eax, dword [rdi + 4*r11] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e048942 // mov dword [rsi + 4*r11], eax + LONG $0x9f448b42; BYTE $0x04 // mov eax, dword [rdi + 4*r11 + 4] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x04 // mov dword [rsi + 4*r11 + 4], eax + LONG $0x9f448b42; BYTE $0x08 // mov eax, dword [rdi + 4*r11 + 8] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x08 // mov dword [rsi + 4*r11 + 8], eax + LONG $0x9f448b42; BYTE $0x0c // mov eax, dword [rdi + 4*r11 + 12] + WORD $0xaf0f; BYTE $0xc1 // imul eax, ecx + LONG $0x9e448942; BYTE $0x0c // mov dword [rsi + 4*r11 + 12], eax + LONG $0x04c38349 // add r11, 4 + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB0_6 + JMP LBB0_16 + +LBB0_9: + WORD $0x8945; BYTE $0xcb // mov r11d, r9d + LONG $0xf8e38341 // and r11d, -8 + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + LONG $0xf8438d49 // lea rax, [r11 - 8] + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x03e8c149 // shr r8, 3 + LONG $0x01c08349 // add r8, 1 + WORD $0x8548; BYTE $0xc0 // test rax, rax + JE LBB0_10 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf749; BYTE $0xda // neg r10 + WORD $0xc031 // xor eax, eax + +LBB0_12: + LONG $0x0c6f0ff3; BYTE $0x87 // movdqu xmm1, oword [rdi + 4*rax] + LONG $0x546f0ff3; WORD $0x1087 // movdqu xmm2, oword [rdi + 4*rax + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x0c7f0ff3; BYTE $0x86 // movdqu oword [rsi + 4*rax], xmm1 + LONG $0x547f0ff3; WORD $0x1086 // movdqu oword [rsi + 4*rax + 16], xmm2 + LONG $0x4c6f0ff3; WORD $0x2087 // movdqu xmm1, oword [rdi + 4*rax + 32] + LONG $0x546f0ff3; WORD $0x3087 // movdqu xmm2, oword [rdi + 4*rax + 48] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x4c7f0ff3; WORD $0x2086 // movdqu oword [rsi + 4*rax + 32], xmm1 + LONG $0x547f0ff3; WORD $0x3086 // movdqu oword [rsi + 4*rax + 48], xmm2 + LONG $0x10c08348 // add rax, 16 + LONG $0x02c28349 // add r10, 2 + JNE LBB0_12 + LONG $0x01c0f641 // test r8b, 1 + JE LBB0_15 + +LBB0_14: + LONG $0x0c6f0ff3; BYTE $0x87 // movdqu xmm1, oword [rdi + 4*rax] + LONG $0x546f0ff3; WORD $0x1087 // movdqu xmm2, oword [rdi + 4*rax + 16] + LONG $0x40380f66; BYTE $0xc8 // pmulld xmm1, xmm0 + LONG $0x40380f66; BYTE $0xd0 // pmulld xmm2, xmm0 + LONG $0x0c7f0ff3; BYTE $0x86 // movdqu oword [rsi + 4*rax], xmm1 + LONG $0x547f0ff3; WORD $0x1086 // movdqu oword [rsi + 4*rax + 16], xmm2 + +LBB0_15: + WORD $0x394d; BYTE $0xcb // cmp r11, r9 + JNE LBB0_3 + +LBB0_16: + RET + +LBB0_10: + WORD $0xc031 // xor eax, eax + LONG $0x01c0f641 // test r8b, 1 + JNE LBB0_14 + JMP LBB0_15 + +TEXT ·_divide_constant_int32_int32_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB1_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB1_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB1_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB1_8 + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB1_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB1_7 + +LBB1_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB1_10 + +LBB1_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB1_16: + LONG $0x86448942; BYTE $0x04 // mov dword [rsi + 4*r8 + 4], eax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB1_3 + +LBB1_10: + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB1_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB1_13 + +LBB1_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB1_13: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + LONG $0x8744634a; BYTE $0x04 // movsxd rax, dword [rdi + 4*r8 + 4] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB1_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB1_16 + +LBB1_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB1_7: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + +LBB1_8: + RET + +TEXT ·_multiply_constant_int32_int64_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB2_6 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0xff418d49 // lea rax, [r9 - 1] + WORD $0x8945; BYTE $0xc8 // mov r8d, r9d + LONG $0x03e08341 // and r8d, 3 + LONG $0x03f88348 // cmp rax, 3 + JAE LBB2_7 + WORD $0xc031 // xor eax, eax + JMP LBB2_3 + +LBB2_7: + LONG $0xfce18341 // and r9d, -4 + WORD $0xc031 // xor eax, eax + +LBB2_8: + LONG $0x87146348 // movsxd rdx, dword [rdi + 4*rax] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6148948 // mov qword [rsi + 8*rax], rdx + LONG $0x87546348; BYTE $0x04 // movsxd rdx, dword [rdi + 4*rax + 4] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x08 // mov qword [rsi + 8*rax + 8], rdx + LONG $0x87546348; BYTE $0x08 // movsxd rdx, dword [rdi + 4*rax + 8] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x10 // mov qword [rsi + 8*rax + 16], rdx + LONG $0x87546348; BYTE $0x0c // movsxd rdx, dword [rdi + 4*rax + 12] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x18 // mov qword [rsi + 8*rax + 24], rdx + LONG $0x04c08348 // add rax, 4 + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB2_8 + +LBB2_3: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB2_6 + LONG $0xc6148d48 // lea rdx, [rsi + 8*rax] + LONG $0x87048d48 // lea rax, [rdi + 4*rax] + WORD $0xf631 // xor esi, esi + +LBB2_5: + LONG $0xb03c6348 // movsxd rdi, dword [rax + 4*rsi] + LONG $0xf9af0f48 // imul rdi, rcx + LONG $0xf23c8948 // mov qword [rdx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB2_5 + +LBB2_6: + RET + +TEXT ·_divide_constant_int32_int64_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB3_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB3_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB3_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB3_8 + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB3_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB3_7 + +LBB3_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB3_10 + +LBB3_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB3_16: + LONG $0xc644894a; BYTE $0x08 // mov qword [rsi + 8*r8 + 8], rax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB3_3 + +LBB3_10: + LONG $0x8704634a // movsxd rax, dword [rdi + 4*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB3_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB3_13 + +LBB3_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB3_13: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + LONG $0x8744634a; BYTE $0x04 // movsxd rax, dword [rdi + 4*r8 + 4] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB3_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB3_16 + +LBB3_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB3_7: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + +LBB3_8: + RET + +TEXT ·_multiply_constant_int64_int32_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB4_6 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0xff418d49 // lea rax, [r9 - 1] + WORD $0x8945; BYTE $0xc8 // mov r8d, r9d + LONG $0x03e08341 // and r8d, 3 + LONG $0x03f88348 // cmp rax, 3 + JAE LBB4_7 + WORD $0xc031 // xor eax, eax + JMP LBB4_3 + +LBB4_7: + LONG $0xfce18341 // and r9d, -4 + WORD $0xc031 // xor eax, eax + +LBB4_8: + WORD $0x148b; BYTE $0xc7 // mov edx, dword [rdi + 8*rax] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + WORD $0x1489; BYTE $0x86 // mov dword [rsi + 4*rax], edx + LONG $0x08c7548b // mov edx, dword [rdi + 8*rax + 8] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + LONG $0x04865489 // mov dword [rsi + 4*rax + 4], edx + LONG $0x10c7548b // mov edx, dword [rdi + 8*rax + 16] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + LONG $0x08865489 // mov dword [rsi + 4*rax + 8], edx + LONG $0x18c7548b // mov edx, dword [rdi + 8*rax + 24] + WORD $0xaf0f; BYTE $0xd1 // imul edx, ecx + LONG $0x0c865489 // mov dword [rsi + 4*rax + 12], edx + LONG $0x04c08348 // add rax, 4 + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB4_8 + +LBB4_3: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB4_6 + LONG $0x86148d48 // lea rdx, [rsi + 4*rax] + LONG $0xc7048d48 // lea rax, [rdi + 8*rax] + WORD $0xf631 // xor esi, esi + +LBB4_5: + WORD $0x3c8b; BYTE $0xf0 // mov edi, dword [rax + 8*rsi] + WORD $0xaf0f; BYTE $0xf9 // imul edi, ecx + WORD $0x3c89; BYTE $0xb2 // mov dword [rdx + 4*rsi], edi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB4_5 + +LBB4_6: + RET + +TEXT ·_divide_constant_int64_int32_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB5_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB5_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB5_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB5_8 + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB5_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB5_7 + +LBB5_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB5_10 + +LBB5_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB5_16: + LONG $0x86448942; BYTE $0x04 // mov dword [rsi + 4*r8 + 4], eax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB5_3 + +LBB5_10: + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB5_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB5_13 + +LBB5_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB5_13: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + LONG $0xc7448b4a; BYTE $0x08 // mov rax, qword [rdi + 8*r8 + 8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB5_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB5_16 + +LBB5_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB5_7: + LONG $0x86048942 // mov dword [rsi + 4*r8], eax + +LBB5_8: + RET + +TEXT ·_multiply_constant_int64_int64_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB6_6 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0xff418d49 // lea rax, [r9 - 1] + WORD $0x8945; BYTE $0xc8 // mov r8d, r9d + LONG $0x03e08341 // and r8d, 3 + LONG $0x03f88348 // cmp rax, 3 + JAE LBB6_7 + WORD $0xc031 // xor eax, eax + JMP LBB6_3 + +LBB6_7: + LONG $0xfce18341 // and r9d, -4 + WORD $0xc031 // xor eax, eax + +LBB6_8: + LONG $0xc7148b48 // mov rdx, qword [rdi + 8*rax] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6148948 // mov qword [rsi + 8*rax], rdx + LONG $0xc7548b48; BYTE $0x08 // mov rdx, qword [rdi + 8*rax + 8] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x08 // mov qword [rsi + 8*rax + 8], rdx + LONG $0xc7548b48; BYTE $0x10 // mov rdx, qword [rdi + 8*rax + 16] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x10 // mov qword [rsi + 8*rax + 16], rdx + LONG $0xc7548b48; BYTE $0x18 // mov rdx, qword [rdi + 8*rax + 24] + LONG $0xd1af0f48 // imul rdx, rcx + LONG $0xc6548948; BYTE $0x18 // mov qword [rsi + 8*rax + 24], rdx + LONG $0x04c08348 // add rax, 4 + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB6_8 + +LBB6_3: + WORD $0x854d; BYTE $0xc0 // test r8, r8 + JE LBB6_6 + LONG $0xc6148d48 // lea rdx, [rsi + 8*rax] + LONG $0xc7048d48 // lea rax, [rdi + 8*rax] + WORD $0xf631 // xor esi, esi + +LBB6_5: + LONG $0xf03c8b48 // mov rdi, qword [rax + 8*rsi] + LONG $0xf9af0f48 // imul rdi, rcx + LONG $0xf23c8948 // mov qword [rdx + 8*rsi], rdi + LONG $0x01c68348 // add rsi, 1 + WORD $0x3949; BYTE $0xf0 // cmp r8, rsi + JNE LBB6_5 + +LBB6_6: + RET + +TEXT ·_divide_constant_int64_int64_sse4(SB), $0-32 + + MOVQ src+0(FP), DI + MOVQ dest+8(FP), SI + MOVQ len+16(FP), DX + MOVQ factor+24(FP), CX + + WORD $0xd285 // test edx, edx + JLE LBB7_8 + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + WORD $0xfa83; BYTE $0x01 // cmp edx, 1 + JNE LBB7_9 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + +LBB7_3: + LONG $0x01c1f641 // test r9b, 1 + JE LBB7_8 + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB7_5 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB7_7 + +LBB7_9: + WORD $0x8945; BYTE $0xca // mov r10d, r9d + LONG $0xfee28341 // and r10d, -2 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + JMP LBB7_10 + +LBB7_15: + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + +LBB7_16: + LONG $0xc644894a; BYTE $0x08 // mov qword [rsi + 8*r8 + 8], rax + LONG $0x02c08349 // add r8, 2 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JE LBB7_3 + +LBB7_10: + LONG $0xc7048b4a // mov rax, qword [rdi + 8*r8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JE LBB7_11 + WORD $0x9948 // cqo + WORD $0xf748; BYTE $0xf9 // idiv rcx + JMP LBB7_13 + +LBB7_11: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB7_13: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + LONG $0xc7448b4a; BYTE $0x08 // mov rax, qword [rdi + 8*r8 + 8] + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x0948; BYTE $0xca // or rdx, rcx + LONG $0x20eac148 // shr rdx, 32 + JNE LBB7_15 + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + JMP LBB7_16 + +LBB7_5: + WORD $0xd231 // xor edx, edx + WORD $0xf1f7 // div ecx + +LBB7_7: + LONG $0xc604894a // mov qword [rsi + 8*r8], rax + +LBB7_8: + RET diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/doc.go new file mode 100644 index 0000000..4a9334b --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/doc.go @@ -0,0 +1,19 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 kernels defines all of the computation kernels for the compute +// library. This requires >= go1.18 since it utilizes Go generics. +package kernels diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/helpers.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/helpers.go new file mode 100644 index 0000000..ca1ee61 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/helpers.go @@ -0,0 +1,989 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/scalar" + "github.com/apache/arrow/go/v12/internal/bitutils" + "golang.org/x/exp/constraints" +) + +// ScalarUnary returns a kernel for performing a unary operation on +// FixedWidth types which is implemented using the passed in function +// which will receive a slice containing the raw input data along with +// a slice to populate for the output data. +// +// Note that bool is not included in exec.FixedWidthTypes since it is +// represented as a bitmap, not as a slice of bool. +func ScalarUnary[OutT, Arg0T exec.FixedWidthTypes](op func(*exec.KernelCtx, []Arg0T, []OutT) error) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, in *exec.ExecSpan, out *exec.ExecResult) error { + arg0 := in.Values[0].Array + inData := exec.GetSpanValues[Arg0T](&arg0, 1) + outData := exec.GetSpanValues[OutT](out, 1) + return op(ctx, inData, outData) + } +} + +// ScalarUnaryNotNull is for generating a kernel to operate only on the +// non-null values in the input array. The zerovalue of the output type +// is used for any null input values. +func ScalarUnaryNotNull[OutT, Arg0T exec.FixedWidthTypes](op func(*exec.KernelCtx, Arg0T, *error) OutT) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, in *exec.ExecSpan, out *exec.ExecResult) error { + var ( + arg0 = &in.Values[0].Array + arg0Data = exec.GetSpanValues[Arg0T](arg0, 1) + outPos = 0 + def OutT + outData = exec.GetSpanValues[OutT](out, 1) + bitmap = arg0.Buffers[0].Buf + err error + ) + + bitutils.VisitBitBlocks(bitmap, arg0.Offset, arg0.Len, + func(pos int64) { + outData[outPos] = op(ctx, arg0Data[pos], &err) + outPos++ + }, func() { + outData[outPos] = def + outPos++ + }) + return err + } +} + +// ScalarUnaryBoolOutput is like ScalarUnary only it is for cases of boolean +// output. The function should take in a slice of the input type and a slice +// of bytes to fill with the output boolean bitmap. +func ScalarUnaryBoolOutput[Arg0T exec.FixedWidthTypes](op func(*exec.KernelCtx, []Arg0T, []byte) error) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, in *exec.ExecSpan, out *exec.ExecResult) error { + arg0 := in.Values[0].Array + inData := exec.GetSpanValues[Arg0T](&arg0, 1) + return op(ctx, inData, out.Buffers[1].Buf) + } +} + +// ScalarUnaryNotNullBinaryArgBoolOut creates a unary kernel that accepts +// a binary type input (Binary [offset int32], String [offset int32], +// LargeBinary [offset int64], LargeString [offset int64]) and returns +// a boolean output which is never null. +// +// It implements the handling to iterate the offsets and values calling +// the provided function on each byte slice. The provided default value +// will be used as the output for elements of the input that are null. +func ScalarUnaryNotNullBinaryArgBoolOut[OffsetT int32 | int64](defVal bool, op func(*exec.KernelCtx, []byte, *error) bool) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, in *exec.ExecSpan, out *exec.ExecResult) error { + var ( + arg0 = in.Values[0].Array + outData = out.Buffers[1].Buf + outPos = 0 + arg0Offsets = exec.GetSpanOffsets[OffsetT](&arg0, 1) + arg0Data = arg0.Buffers[2].Buf + bitmap = arg0.Buffers[0].Buf + err error + ) + + bitutils.VisitBitBlocks(bitmap, arg0.Offset, arg0.Len, + func(pos int64) { + v := arg0Data[arg0Offsets[pos]:arg0Offsets[pos+1]] + bitutil.SetBitTo(outData, int(out.Offset)+outPos, op(ctx, v, &err)) + outPos++ + }, func() { + bitutil.SetBitTo(outData, int(out.Offset)+outPos, defVal) + outPos++ + }) + return err + } +} + +// ScalarUnaryNotNullBinaryArg creates a unary kernel that accepts +// a binary type input (Binary [offset int32], String [offset int32], +// LargeBinary [offset int64], LargeString [offset int64]) and returns +// a FixedWidthType output which is never null. +// +// It implements the handling to iterate the offsets and values calling +// the provided function on each byte slice. The zero value of the OutT +// will be used as the output for elements of the input that are null. +func ScalarUnaryNotNullBinaryArg[OutT exec.FixedWidthTypes, OffsetT int32 | int64](op func(*exec.KernelCtx, []byte, *error) OutT) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, in *exec.ExecSpan, out *exec.ExecResult) error { + var ( + arg0 = &in.Values[0].Array + outData = exec.GetSpanValues[OutT](out, 1) + outPos = 0 + arg0Offsets = exec.GetSpanOffsets[OffsetT](arg0, 1) + def OutT + arg0Data = arg0.Buffers[2].Buf + bitmap = arg0.Buffers[0].Buf + err error + ) + + bitutils.VisitBitBlocks(bitmap, arg0.Offset, arg0.Len, + func(pos int64) { + v := arg0Data[arg0Offsets[pos]:arg0Offsets[pos+1]] + outData[outPos] = op(ctx, v, &err) + outPos++ + }, func() { + outData[outPos] = def + outPos++ + }) + return err + } +} + +// ScalarUnaryBoolArg is like ScalarUnary except it specifically expects a +// function that takes a byte slice since booleans arrays are represented +// as a bitmap. +func ScalarUnaryBoolArg[OutT exec.FixedWidthTypes](op func(*exec.KernelCtx, []byte, []OutT) error) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, input *exec.ExecSpan, out *exec.ExecResult) error { + outData := exec.GetSpanValues[OutT](out, 1) + return op(ctx, input.Values[0].Array.Buffers[1].Buf, outData) + } +} + +func UnboxScalar[T exec.FixedWidthTypes](val scalar.PrimitiveScalar) T { + return *(*T)(unsafe.Pointer(&val.Data()[0])) +} + +func UnboxBinaryScalar(val scalar.BinaryScalar) []byte { + if !val.IsValid() { + return nil + } + return val.Data() +} + +type arrArrFn[OutT, Arg0T, Arg1T exec.FixedWidthTypes] func(*exec.KernelCtx, []Arg0T, []Arg1T, []OutT) error +type arrScalarFn[OutT, Arg0T, Arg1T exec.FixedWidthTypes] func(*exec.KernelCtx, []Arg0T, Arg1T, []OutT) error +type scalarArrFn[OutT, Arg0T, Arg1T exec.FixedWidthTypes] func(*exec.KernelCtx, Arg0T, []Arg1T, []OutT) error + +type binaryOps[OutT, Arg0T, Arg1T exec.FixedWidthTypes] struct { + arrArr arrArrFn[OutT, Arg0T, Arg1T] + arrScalar arrScalarFn[OutT, Arg0T, Arg1T] + scalarArr scalarArrFn[OutT, Arg0T, Arg1T] +} + +type binaryBoolOps struct { + arrArr func(ctx *exec.KernelCtx, lhs, rhs, out bitutil.Bitmap) error + arrScalar func(ctx *exec.KernelCtx, lhs bitutil.Bitmap, rhs bool, out bitutil.Bitmap) error + scalarArr func(ctx *exec.KernelCtx, lhs bool, rhs, out bitutil.Bitmap) error +} + +func ScalarBinary[OutT, Arg0T, Arg1T exec.FixedWidthTypes](ops binaryOps[OutT, Arg0T, Arg1T]) exec.ArrayKernelExec { + arrayArray := func(ctx *exec.KernelCtx, arg0, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + a0 = exec.GetSpanValues[Arg0T](arg0, 1) + a1 = exec.GetSpanValues[Arg1T](arg1, 1) + outData = exec.GetSpanValues[OutT](out, 1) + ) + return ops.arrArr(ctx, a0, a1, outData) + } + + arrayScalar := func(ctx *exec.KernelCtx, arg0 *exec.ArraySpan, arg1 scalar.Scalar, out *exec.ExecResult) error { + var ( + a0 = exec.GetSpanValues[Arg0T](arg0, 1) + a1 = UnboxScalar[Arg1T](arg1.(scalar.PrimitiveScalar)) + outData = exec.GetSpanValues[OutT](out, 1) + ) + return ops.arrScalar(ctx, a0, a1, outData) + } + + scalarArray := func(ctx *exec.KernelCtx, arg0 scalar.Scalar, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + a0 = UnboxScalar[Arg0T](arg0.(scalar.PrimitiveScalar)) + a1 = exec.GetSpanValues[Arg1T](arg1, 1) + outData = exec.GetSpanValues[OutT](out, 1) + ) + return ops.scalarArr(ctx, a0, a1, outData) + } + + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return arrayArray(ctx, &batch.Values[0].Array, &batch.Values[1].Array, out) + } + return arrayScalar(ctx, &batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return scalarArray(ctx, batch.Values[0].Scalar, &batch.Values[1].Array, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: scalar binary with two scalars?", arrow.ErrInvalid) + } +} + +func ScalarBinaryBools(ops *binaryBoolOps) exec.ArrayKernelExec { + arrayArray := func(ctx *exec.KernelCtx, arg0, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + a0Bm = bitutil.Bitmap{Data: arg0.Buffers[1].Buf, Offset: arg0.Offset, Len: arg0.Len} + a1Bm = bitutil.Bitmap{Data: arg1.Buffers[1].Buf, Offset: arg1.Offset, Len: arg1.Len} + outBm = bitutil.Bitmap{Data: out.Buffers[1].Buf, Offset: out.Offset, Len: out.Len} + ) + + return ops.arrArr(ctx, a0Bm, a1Bm, outBm) + } + + arrayScalar := func(ctx *exec.KernelCtx, arg0 *exec.ArraySpan, arg1 scalar.Scalar, out *exec.ExecResult) error { + var ( + a0Bm = bitutil.Bitmap{Data: arg0.Buffers[1].Buf, Offset: arg0.Offset, Len: arg0.Len} + a1 = arg1.(*scalar.Boolean).Value + outBm = bitutil.Bitmap{Data: out.Buffers[1].Buf, Offset: out.Offset, Len: out.Len} + ) + return ops.arrScalar(ctx, a0Bm, a1, outBm) + } + + scalarArray := func(ctx *exec.KernelCtx, arg0 scalar.Scalar, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + a0 = arg0.(*scalar.Boolean).Value + a1Bm = bitutil.Bitmap{Data: arg1.Buffers[1].Buf, Offset: arg1.Offset, Len: arg1.Len} + outBm = bitutil.Bitmap{Data: out.Buffers[1].Buf, Offset: out.Offset, Len: out.Len} + ) + return ops.scalarArr(ctx, a0, a1Bm, outBm) + } + + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return arrayArray(ctx, &batch.Values[0].Array, &batch.Values[1].Array, out) + } + return arrayScalar(ctx, &batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return scalarArray(ctx, batch.Values[0].Scalar, &batch.Values[1].Array, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: scalar binary with two scalars?", arrow.ErrInvalid) + } +} + +func ScalarBinaryNotNull[OutT, Arg0T, Arg1T exec.FixedWidthTypes](op func(*exec.KernelCtx, Arg0T, Arg1T, *error) OutT) exec.ArrayKernelExec { + arrayArray := func(ctx *exec.KernelCtx, arg0, arg1 *exec.ArraySpan, out *exec.ExecResult) (err error) { + // fast path if one side is entirely null + if arg0.UpdateNullCount() == arg0.Len || arg1.UpdateNullCount() == arg1.Len { + return nil + } + + var ( + a0 = exec.GetSpanValues[Arg0T](arg0, 1) + a1 = exec.GetSpanValues[Arg1T](arg1, 1) + outData = exec.GetSpanValues[OutT](out, 1) + outPos int64 + def OutT + ) + bitutils.VisitTwoBitBlocks(arg0.Buffers[0].Buf, arg1.Buffers[0].Buf, arg0.Offset, arg1.Offset, out.Len, + func(pos int64) { + outData[outPos] = op(ctx, a0[pos], a1[pos], &err) + outPos++ + }, func() { + outData[outPos] = def + outPos++ + }) + return + } + + arrayScalar := func(ctx *exec.KernelCtx, arg0 *exec.ArraySpan, arg1 scalar.Scalar, out *exec.ExecResult) (err error) { + // fast path if one side is entirely null + if arg0.UpdateNullCount() == arg0.Len || !arg1.IsValid() { + return nil + } + + var ( + a0 = exec.GetSpanValues[Arg0T](arg0, 1) + outData = exec.GetSpanValues[OutT](out, 1) + outPos int64 + def OutT + ) + if !arg1.IsValid() { + return nil + } + + a1 := UnboxScalar[Arg1T](arg1.(scalar.PrimitiveScalar)) + bitutils.VisitBitBlocks(arg0.Buffers[0].Buf, arg0.Offset, arg0.Len, + func(pos int64) { + outData[outPos] = op(ctx, a0[pos], a1, &err) + outPos++ + }, func() { + outData[outPos] = def + outPos++ + }) + return + } + + scalarArray := func(ctx *exec.KernelCtx, arg0 scalar.Scalar, arg1 *exec.ArraySpan, out *exec.ExecResult) (err error) { + // fast path if one side is entirely null + if arg1.UpdateNullCount() == arg1.Len || !arg0.IsValid() { + return nil + } + + var ( + a1 = exec.GetSpanValues[Arg1T](arg1, 1) + outData = exec.GetSpanValues[OutT](out, 1) + outPos int64 + def OutT + ) + if !arg0.IsValid() { + return nil + } + + a0 := UnboxScalar[Arg0T](arg0.(scalar.PrimitiveScalar)) + bitutils.VisitBitBlocks(arg1.Buffers[0].Buf, arg1.Offset, arg1.Len, + func(pos int64) { + outData[outPos] = op(ctx, a0, a1[pos], &err) + outPos++ + }, func() { + outData[outPos] = def + outPos++ + }) + return + } + + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return arrayArray(ctx, &batch.Values[0].Array, &batch.Values[1].Array, out) + } + return arrayScalar(ctx, &batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return scalarArray(ctx, batch.Values[0].Scalar, &batch.Values[1].Array, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: scalar binary with two scalars?", arrow.ErrInvalid) + } +} + +type binaryBinOp[T exec.FixedWidthTypes | bool] func(ctx *exec.KernelCtx, arg0, arg1 []byte) T + +func ScalarBinaryBinaryArgsBoolOut(itrFn func(*exec.ArraySpan) exec.ArrayIter[[]byte], op binaryBinOp[bool]) exec.ArrayKernelExec { + arrArr := func(ctx *exec.KernelCtx, arg0, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + arg0It = itrFn(arg0) + arg1It = itrFn(arg1) + ) + + bitutils.GenerateBitsUnrolled(out.Buffers[1].Buf, out.Offset, out.Len, func() bool { + return op(ctx, arg0It.Next(), arg1It.Next()) + }) + return nil + } + + arrScalar := func(ctx *exec.KernelCtx, arg0 *exec.ArraySpan, arg1 scalar.Scalar, out *exec.ExecResult) error { + var ( + arg0It = itrFn(arg0) + a1 = UnboxBinaryScalar(arg1.(scalar.BinaryScalar)) + ) + + bitutils.GenerateBitsUnrolled(out.Buffers[1].Buf, out.Offset, out.Len, func() bool { + return op(ctx, arg0It.Next(), a1) + }) + return nil + } + + scalarArr := func(ctx *exec.KernelCtx, arg0 scalar.Scalar, arg1 *exec.ArraySpan, out *exec.ExecResult) error { + var ( + arg1It = itrFn(arg1) + a0 = UnboxBinaryScalar(arg0.(scalar.BinaryScalar)) + ) + + bitutils.GenerateBitsUnrolled(out.Buffers[1].Buf, out.Offset, out.Len, func() bool { + return op(ctx, a0, arg1It.Next()) + }) + return nil + } + + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return arrArr(ctx, &batch.Values[0].Array, &batch.Values[1].Array, out) + } + return arrScalar(ctx, &batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return scalarArr(ctx, batch.Values[0].Scalar, &batch.Values[1].Array, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: scalar binary with two scalars?", arrow.ErrInvalid) + } +} + +// SizeOf determines the size in number of bytes for an integer +// based on the generic value in a way that the compiler should +// be able to easily evaluate and create as a constant. +func SizeOf[T constraints.Integer]() uint { + x := uint16(1 << 8) + y := uint32(2 << 16) + z := uint64(4 << 32) + return 1 + uint(T(x))>>8 + uint(T(y))>>16 + uint(T(z))>>32 +} + +// MinOf returns the minimum value for a given type since there is not +// currently a generic way to do this with Go generics yet. +func MinOf[T constraints.Integer]() T { + if ones := ^T(0); ones < 0 { + return ones << (8*SizeOf[T]() - 1) + } + return 0 +} + +// MaxOf determines the max value for a given type since there is not +// currently a generic way to do this for Go generics yet as all of the +// math.Max/Min values are constants. +func MaxOf[T constraints.Integer]() T { + ones := ^T(0) + if ones < 0 { + return ones ^ (ones << (8*SizeOf[T]() - 1)) + } + return ones +} + +func getSafeMinSameSign[I, O constraints.Integer]() I { + if SizeOf[I]() > SizeOf[O]() { + return I(MinOf[O]()) + } + return MinOf[I]() +} + +func getSafeMaxSameSign[I, O constraints.Integer]() I { + if SizeOf[I]() > SizeOf[O]() { + return I(MaxOf[O]()) + } + return MaxOf[I]() +} + +func getSafeMaxSignedUnsigned[I constraints.Signed, O constraints.Unsigned]() I { + if SizeOf[I]() <= SizeOf[O]() { + return MaxOf[I]() + } + return I(MaxOf[O]()) +} + +func getSafeMaxUnsignedSigned[I constraints.Unsigned, O constraints.Signed]() I { + if SizeOf[I]() < SizeOf[O]() { + return MaxOf[I]() + } + return I(MaxOf[O]()) +} + +func getSafeMinMaxSigned[T constraints.Signed](target arrow.Type) (min, max T) { + switch target { + case arrow.UINT8: + min, max = 0, getSafeMaxSignedUnsigned[T, uint8]() + case arrow.UINT16: + min, max = 0, getSafeMaxSignedUnsigned[T, uint16]() + case arrow.UINT32: + min, max = 0, getSafeMaxSignedUnsigned[T, uint32]() + case arrow.UINT64: + min, max = 0, getSafeMaxSignedUnsigned[T, uint64]() + case arrow.INT8: + min = getSafeMinSameSign[T, int8]() + max = getSafeMaxSameSign[T, int8]() + case arrow.INT16: + min = getSafeMinSameSign[T, int16]() + max = getSafeMaxSameSign[T, int16]() + case arrow.INT32: + min = getSafeMinSameSign[T, int32]() + max = getSafeMaxSameSign[T, int32]() + case arrow.INT64: + min = getSafeMinSameSign[T, int64]() + max = getSafeMaxSameSign[T, int64]() + } + return +} + +func getSafeMinMaxUnsigned[T constraints.Unsigned](target arrow.Type) (min, max T) { + min = 0 + switch target { + case arrow.UINT8: + max = getSafeMaxSameSign[T, uint8]() + case arrow.UINT16: + max = getSafeMaxSameSign[T, uint16]() + case arrow.UINT32: + max = getSafeMaxSameSign[T, uint32]() + case arrow.UINT64: + max = getSafeMaxSameSign[T, uint64]() + case arrow.INT8: + max = getSafeMaxUnsignedSigned[T, int8]() + case arrow.INT16: + max = getSafeMaxUnsignedSigned[T, int16]() + case arrow.INT32: + max = getSafeMaxUnsignedSigned[T, int32]() + case arrow.INT64: + max = getSafeMaxUnsignedSigned[T, int64]() + } + return +} + +func intsCanFit(data *exec.ArraySpan, target arrow.Type) error { + if !arrow.IsInteger(target) { + return fmt.Errorf("%w: target type is not an integer type %s", arrow.ErrInvalid, target) + } + + switch data.Type.ID() { + case arrow.INT8: + min, max := getSafeMinMaxSigned[int8](target) + return intsInRange(data, min, max) + case arrow.UINT8: + min, max := getSafeMinMaxUnsigned[uint8](target) + return intsInRange(data, min, max) + case arrow.INT16: + min, max := getSafeMinMaxSigned[int16](target) + return intsInRange(data, min, max) + case arrow.UINT16: + min, max := getSafeMinMaxUnsigned[uint16](target) + return intsInRange(data, min, max) + case arrow.INT32: + min, max := getSafeMinMaxSigned[int32](target) + return intsInRange(data, min, max) + case arrow.UINT32: + min, max := getSafeMinMaxUnsigned[uint32](target) + return intsInRange(data, min, max) + case arrow.INT64: + min, max := getSafeMinMaxSigned[int64](target) + return intsInRange(data, min, max) + case arrow.UINT64: + min, max := getSafeMinMaxUnsigned[uint64](target) + return intsInRange(data, min, max) + default: + return fmt.Errorf("%w: invalid type for int bounds checking", arrow.ErrInvalid) + } +} + +func intsInRange[T exec.IntTypes | exec.UintTypes](data *exec.ArraySpan, lowerBound, upperBound T) error { + if MinOf[T]() >= lowerBound && MaxOf[T]() <= upperBound { + return nil + } + + isOutOfBounds := func(val T) bool { + return val < lowerBound || val > upperBound + } + isOutOfBoundsMaybeNull := func(val T, isValid bool) bool { + return isValid && (val < lowerBound || val > upperBound) + } + getError := func(val T) error { + return fmt.Errorf("%w: integer value %d not in range: %d to %d", + arrow.ErrInvalid, val, lowerBound, upperBound) + } + + values := exec.GetSpanValues[T](data, 1) + bitmap := data.Buffers[0].Buf + + bitCounter := bitutils.NewOptionalBitBlockCounter(bitmap, data.Offset, data.Len) + pos, offsetPos := 0, data.Offset + for pos < int(data.Len) { + block := bitCounter.NextBlock() + outOfBounds := false + + if block.Popcnt == block.Len { + // fast path: branchless + i := 0 + for chunk := 0; chunk < int(block.Len)/8; chunk++ { + for j := 0; j < 8; j++ { + outOfBounds = outOfBounds || isOutOfBounds(values[i]) + i++ + } + } + for ; i < int(block.Len); i++ { + outOfBounds = outOfBounds || isOutOfBounds(values[i]) + } + } else if block.Popcnt > 0 { + // values may be null, only bounds check non-null vals + i := 0 + for chunk := 0; chunk < int(block.Len)/8; chunk++ { + for j := 0; j < 8; j++ { + outOfBounds = outOfBounds || isOutOfBoundsMaybeNull( + values[i], bitutil.BitIsSet(bitmap, int(offsetPos)+i)) + i++ + } + } + for ; i < int(block.Len); i++ { + outOfBounds = outOfBounds || isOutOfBoundsMaybeNull( + values[i], bitutil.BitIsSet(bitmap, int(offsetPos)+i)) + } + } + if outOfBounds { + if data.Nulls > 0 { + for i := 0; i < int(block.Len); i++ { + if isOutOfBoundsMaybeNull(values[i], bitutil.BitIsSet(bitmap, int(offsetPos)+i)) { + return getError(values[i]) + } + } + } else { + for i := 0; i < int(block.Len); i++ { + if isOutOfBounds(values[i]) { + return getError(values[i]) + } + } + } + } + + values = values[block.Len:] + pos += int(block.Len) + offsetPos += int64(block.Len) + } + return nil +} + +type numeric interface { + exec.IntTypes | exec.UintTypes | constraints.Float +} + +func memCpySpan[T numeric](in, out *exec.ArraySpan) { + inData := exec.GetSpanValues[T](in, 1) + outData := exec.GetSpanValues[T](out, 1) + copy(outData, inData) +} + +func castNumberMemCpy(in, out *exec.ArraySpan) { + switch in.Type.ID() { + case arrow.INT8: + memCpySpan[int8](in, out) + case arrow.UINT8: + memCpySpan[uint8](in, out) + case arrow.INT16: + memCpySpan[int16](in, out) + case arrow.UINT16: + memCpySpan[uint16](in, out) + case arrow.INT32: + memCpySpan[int32](in, out) + case arrow.UINT32: + memCpySpan[uint32](in, out) + case arrow.INT64: + memCpySpan[int64](in, out) + case arrow.UINT64: + memCpySpan[uint64](in, out) + case arrow.FLOAT32: + memCpySpan[float32](in, out) + case arrow.FLOAT64: + memCpySpan[float64](in, out) + } +} + +func castNumberToNumberUnsafe(in, out *exec.ArraySpan) { + if in.Type.ID() == out.Type.ID() { + castNumberMemCpy(in, out) + return + } + + inputOffset := in.Type.(arrow.FixedWidthDataType).Bytes() * int(in.Offset) + outputOffset := out.Type.(arrow.FixedWidthDataType).Bytes() * int(out.Offset) + castNumericUnsafe(in.Type.ID(), out.Type.ID(), in.Buffers[1].Buf[inputOffset:], out.Buffers[1].Buf[outputOffset:], int(in.Len)) +} + +func MaxDecimalDigitsForInt(id arrow.Type) (int32, error) { + switch id { + case arrow.INT8, arrow.UINT8: + return 3, nil + case arrow.INT16, arrow.UINT16: + return 5, nil + case arrow.INT32, arrow.UINT32: + return 10, nil + case arrow.INT64: + return 19, nil + case arrow.UINT64: + return 20, nil + } + return -1, fmt.Errorf("%w: not an integer type: %s", arrow.ErrInvalid, id) +} + +func ResolveOutputFromOptions(ctx *exec.KernelCtx, _ []arrow.DataType) (arrow.DataType, error) { + opts := ctx.State.(CastState) + return opts.ToType, nil +} + +var OutputTargetType = exec.NewComputedOutputType(ResolveOutputFromOptions) + +var OutputFirstType = exec.NewComputedOutputType(func(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + return args[0], nil +}) + +var OutputLastType = exec.NewComputedOutputType(func(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + return args[len(args)-1], nil +}) + +func resolveDecimalBinaryOpOutput(types []arrow.DataType, resolver func(prec1, scale1, prec2, scale2 int32) (prec, scale int32)) (arrow.DataType, error) { + leftType, rightType := types[0].(arrow.DecimalType), types[1].(arrow.DecimalType) + debug.Assert(leftType.ID() == rightType.ID(), "decimal binary ops should have casted to the same type") + + prec, scale := resolver(leftType.GetPrecision(), leftType.GetScale(), + rightType.GetPrecision(), rightType.GetScale()) + + return arrow.NewDecimalType(leftType.ID(), prec, scale) +} + +func resolveDecimalAddOrSubtractType(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + return resolveDecimalBinaryOpOutput(args, + func(prec1, scale1, prec2, scale2 int32) (prec int32, scale int32) { + debug.Assert(scale1 == scale2, "decimal operations should use the same scale") + scale = scale1 + prec = exec.Max(prec1-scale1, prec2-scale2) + scale + 1 + return + }) +} + +func resolveDecimalMultiplyOutput(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + return resolveDecimalBinaryOpOutput(args, + func(prec1, scale1, prec2, scale2 int32) (prec int32, scale int32) { + scale = scale1 + scale2 + prec = prec1 + prec2 + 1 + return + }) +} + +func resolveDecimalDivideOutput(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + return resolveDecimalBinaryOpOutput(args, + func(prec1, scale1, prec2, scale2 int32) (prec int32, scale int32) { + debug.Assert(scale1 >= scale2, "when dividing decimal values numerator scale should be greater/equal to denom scale") + scale = scale1 - scale2 + prec = prec1 + return + }) +} + +func resolveTemporalOutput(_ *exec.KernelCtx, args []arrow.DataType) (arrow.DataType, error) { + debug.Assert(args[0].ID() == args[1].ID(), "should only be used on the same types") + leftType, rightType := args[0].(*arrow.TimestampType), args[1].(*arrow.TimestampType) + debug.Assert(leftType.Unit == rightType.Unit, "should match units") + + if (leftType.TimeZone == "" || rightType.TimeZone == "") && (leftType.TimeZone != rightType.TimeZone) { + return nil, fmt.Errorf("%w: subtraction of zoned and non-zoned times is ambiguous (%s, %s)", + arrow.ErrInvalid, leftType.TimeZone, rightType.TimeZone) + } + + return &arrow.DurationType{Unit: rightType.Unit}, nil +} + +var OutputResolveTemporal = exec.NewComputedOutputType(resolveTemporalOutput) + +type validityBuilder struct { + mem memory.Allocator + buffer *memory.Buffer + + data []byte + bitLength int + falseCount int +} + +func (v *validityBuilder) Resize(n int64) { + if v.buffer == nil { + v.buffer = memory.NewResizableBuffer(v.mem) + } + + v.buffer.ResizeNoShrink(int(bitutil.BytesForBits(n))) + v.data = v.buffer.Bytes() +} + +func (v *validityBuilder) Reserve(n int64) { + if v.buffer == nil { + v.buffer = memory.NewResizableBuffer(v.mem) + } + + v.buffer.Reserve(v.buffer.Cap() + int(bitutil.BytesForBits(n))) + v.data = v.buffer.Buf() +} + +func (v *validityBuilder) UnsafeAppend(val bool) { + bitutil.SetBitTo(v.data, v.bitLength, val) + if !val { + v.falseCount++ + } + v.bitLength++ +} + +func (v *validityBuilder) UnsafeAppendN(n int64, val bool) { + bitutil.SetBitsTo(v.data, int64(v.bitLength), n, val) + if !val { + v.falseCount += int(n) + } + v.bitLength += int(n) +} + +func (v *validityBuilder) Append(val bool) { + v.Reserve(1) + v.UnsafeAppend(val) +} + +func (v *validityBuilder) AppendN(n int64, val bool) { + v.Reserve(n) + v.UnsafeAppendN(n, val) +} + +func (v *validityBuilder) Finish() (buf *memory.Buffer) { + if v.bitLength > 0 { + v.buffer.Resize(int(bitutil.BytesForBits(int64(v.bitLength)))) + } + + v.bitLength, v.falseCount = 0, 0 + buf = v.buffer + v.buffer = nil + return +} + +type execBufBuilder struct { + mem memory.Allocator + buffer *memory.Buffer + data []byte + sz int +} + +func (bldr *execBufBuilder) reserve(additional int) { + if bldr.buffer == nil { + bldr.buffer = memory.NewResizableBuffer(bldr.mem) + } + + mincap := bldr.sz + additional + if mincap <= cap(bldr.data) { + return + } + bldr.buffer.ResizeNoShrink(mincap) + bldr.data = bldr.buffer.Buf() +} + +func (bldr *execBufBuilder) unsafeAppend(data []byte) { + copy(bldr.data[bldr.sz:], data) + bldr.sz += len(data) +} + +func (bldr *execBufBuilder) finish() (buf *memory.Buffer) { + if bldr.buffer == nil { + buf = memory.NewBufferBytes(nil) + return + } + bldr.buffer.Resize(bldr.sz) + buf = bldr.buffer + bldr.buffer, bldr.sz = nil, 0 + return +} + +type bufferBuilder[T exec.FixedWidthTypes] struct { + execBufBuilder + zero T +} + +func newBufferBuilder[T exec.FixedWidthTypes](mem memory.Allocator) *bufferBuilder[T] { + return &bufferBuilder[T]{ + execBufBuilder: execBufBuilder{ + mem: mem, + }, + } +} + +func (b *bufferBuilder[T]) reserve(additional int) { + b.execBufBuilder.reserve(additional * int(unsafe.Sizeof(b.zero))) +} + +func (b *bufferBuilder[T]) unsafeAppend(value T) { + b.execBufBuilder.unsafeAppend(exec.GetBytes([]T{value})) +} + +func (b *bufferBuilder[T]) unsafeAppendSlice(values []T) { + b.execBufBuilder.unsafeAppend(exec.GetBytes(values)) +} + +func (b *bufferBuilder[T]) len() int { return b.sz / int(unsafe.Sizeof(b.zero)) } + +func (b *bufferBuilder[T]) cap() int { + return cap(b.data) / int(unsafe.Sizeof(b.zero)) +} + +func checkIndexBoundsImpl[T exec.IntTypes | exec.UintTypes](values *exec.ArraySpan, upperLimit uint64) error { + // for unsigned integers, if the values array is larger + // than the maximum index value, then there's no need to bounds check + isSigned := !arrow.IsUnsignedInteger(values.Type.ID()) + if !isSigned && upperLimit > uint64(MaxOf[T]()) { + return nil + } + + valuesData := exec.GetSpanValues[T](values, 1) + bitmap := values.Buffers[0].Buf + isOutOfBounds := func(val T) bool { + return ((isSigned && val < 0) || val >= 0 && uint64(val) >= upperLimit) + } + return bitutils.VisitSetBitRuns(bitmap, values.Offset, values.Len, + func(pos, length int64) error { + outOfBounds := false + for i := int64(0); i < length; i++ { + outOfBounds = outOfBounds || isOutOfBounds(valuesData[pos+i]) + } + if outOfBounds { + for i := int64(0); i < length; i++ { + if isOutOfBounds(valuesData[pos+i]) { + return fmt.Errorf("%w: %d out of bounds", + arrow.ErrIndex, valuesData[pos+i]) + } + } + } + return nil + }) +} + +func checkIndexBounds(values *exec.ArraySpan, upperLimit uint64) error { + switch values.Type.ID() { + case arrow.INT8: + return checkIndexBoundsImpl[int8](values, upperLimit) + case arrow.UINT8: + return checkIndexBoundsImpl[uint8](values, upperLimit) + case arrow.INT16: + return checkIndexBoundsImpl[int16](values, upperLimit) + case arrow.UINT16: + return checkIndexBoundsImpl[uint16](values, upperLimit) + case arrow.INT32: + return checkIndexBoundsImpl[int32](values, upperLimit) + case arrow.UINT32: + return checkIndexBoundsImpl[uint32](values, upperLimit) + case arrow.INT64: + return checkIndexBoundsImpl[int64](values, upperLimit) + case arrow.UINT64: + return checkIndexBoundsImpl[uint64](values, upperLimit) + default: + return fmt.Errorf("%w: invalid index type for bounds checking", arrow.ErrInvalid) + } +} + +func checkIndexBoundsChunked(values *arrow.Chunked, upperLimit uint64) error { + var span exec.ArraySpan + for _, v := range values.Chunks() { + span.SetMembers(v.Data()) + if err := checkIndexBounds(&span, upperLimit); err != nil { + return err + } + } + return nil +} + +func packBits(vals [32]uint32, out []byte) { + const batchSize = 32 + for i := 0; i < batchSize; i += 8 { + out[0] = byte(vals[i] | vals[i+1]<<1 | vals[i+2]<<2 | vals[i+3]<<3 | + vals[i+4]<<4 | vals[i+5]<<5 | vals[i+6]<<6 | vals[i+7]<<7) + out = out[1:] + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/numeric_cast.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/numeric_cast.go new file mode 100644 index 0000000..5a55cc6 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/numeric_cast.go @@ -0,0 +1,866 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "strconv" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/internal/bitutils" + "golang.org/x/exp/constraints" +) + +func CastIntToInt(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(CastOptions) + if !opts.AllowIntOverflow { + if err := intsCanFit(&batch.Values[0].Array, out.Type.ID()); err != nil { + return err + } + } + castNumberToNumberUnsafe(&batch.Values[0].Array, out) + return nil +} + +func CastFloatingToFloating(_ *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + castNumberToNumberUnsafe(&batch.Values[0].Array, out) + return nil +} + +func CastFloatingToInteger(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(CastOptions) + castNumberToNumberUnsafe(&batch.Values[0].Array, out) + if !opts.AllowFloatTruncate { + return checkFloatToIntTrunc(&batch.Values[0].Array, out) + } + return nil +} + +func CastIntegerToFloating(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(CastOptions) + if !opts.AllowFloatTruncate { + if err := checkIntToFloatTrunc(&batch.Values[0].Array, out.Type.ID()); err != nil { + return err + } + } + castNumberToNumberUnsafe(&batch.Values[0].Array, out) + return nil +} + +type decimal[T exec.DecimalTypes] interface { + Less(T) bool + GreaterEqual(T) bool + LowBits() uint64 +} + +func decimalToIntImpl[InT exec.DecimalTypes, OutT exec.IntTypes | exec.UintTypes](allowOverflow bool, min, max InT, v decimal[InT], err *error) OutT { + if !allowOverflow && (v.Less(min) || v.GreaterEqual(max)) { + debug.Log("integer value out of bounds from decimal") + *err = fmt.Errorf("%w: integer value out of bounds", arrow.ErrInvalid) + return OutT(0) + } + return OutT(v.LowBits()) +} + +func CastDecimal256ToInteger[T exec.IntTypes | exec.UintTypes](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + opts = ctx.State.(CastState) + inputType = batch.Values[0].Type().(*arrow.Decimal256Type) + inScale = inputType.Scale + ex exec.ArrayKernelExec + minLowBits = uint64(MinOf[T]()) + minHiBits int64 + max = decimal256.FromU64(uint64(MaxOf[T]())) + ) + + if MinOf[T]() < 0 { + minHiBits = -1 + } + min := decimal256.New(uint64(minHiBits), uint64(minHiBits), uint64(minHiBits), minLowBits) + if opts.AllowDecimalTruncate { + if inScale < 0 { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) T { + v := val.IncreaseScaleBy(-inScale) + return decimalToIntImpl[decimal256.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } else { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) T { + v := val.ReduceScaleBy(inScale, true) + return decimalToIntImpl[decimal256.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } + } else { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) T { + v, e := val.Rescale(inScale, 0) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + return T(0) + } + return decimalToIntImpl[decimal256.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } + + return ex(ctx, batch, out) +} + +func CastDecimal128ToInteger[T exec.IntTypes | exec.UintTypes](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + opts = ctx.State.(CastState) + inputType = batch.Values[0].Type().(*arrow.Decimal128Type) + inScale = inputType.Scale + ex exec.ArrayKernelExec + minLowBits = uint64(MinOf[T]()) + minHiBits int64 + max = decimal128.FromU64(uint64(MaxOf[T]())) + ) + + if MinOf[T]() < 0 { + minHiBits = -1 + } + min := decimal128.New(minHiBits, minLowBits) + if opts.AllowDecimalTruncate { + if inScale < 0 { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) T { + v := val.IncreaseScaleBy(-inScale) + return decimalToIntImpl[decimal128.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } else { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) T { + v := val.ReduceScaleBy(inScale, true) + return decimalToIntImpl[decimal128.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } + } else { + ex = ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) T { + v, e := val.Rescale(inScale, 0) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + return T(0) + } + return decimalToIntImpl[decimal128.Num, T](opts.AllowIntOverflow, min, max, v, err) + }) + } + + return ex(ctx, batch, out) +} + +func integerToDecimal128[T exec.IntTypes | exec.UintTypes](inType arrow.Type, outScale int32) exec.ArrayKernelExec { + var getDecimal func(v T) decimal128.Num + switch inType { + case arrow.UINT8, arrow.UINT16, arrow.UINT32, arrow.UINT64: + getDecimal = func(v T) decimal128.Num { return decimal128.FromU64(uint64(v)) } + default: + getDecimal = func(v T) decimal128.Num { return decimal128.FromI64(int64(v)) } + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val T, err *error) decimal128.Num { + out, e := getDecimal(val).Rescale(0, outScale) + if e != nil { + *err = e + } + return out + }) +} + +func integerToDecimal256[T exec.IntTypes | exec.UintTypes](inType arrow.Type, outScale int32) exec.ArrayKernelExec { + var getDecimal func(v T) decimal256.Num + switch inType { + case arrow.UINT8, arrow.UINT16, arrow.UINT32, arrow.UINT64: + getDecimal = func(v T) decimal256.Num { return decimal256.FromU64(uint64(v)) } + default: + getDecimal = func(v T) decimal256.Num { return decimal256.FromI64(int64(v)) } + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val T, err *error) decimal256.Num { + out, e := getDecimal(val).Rescale(0, outScale) + if e != nil { + *err = e + } + return out + }) +} + +func CastIntegerToDecimal[OutT exec.DecimalTypes, Arg0 exec.IntTypes | exec.UintTypes](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + precision, scale int32 + executor exec.ArrayKernelExec + ) + switch dt := out.Type.(type) { + case *arrow.Decimal128Type: + precision = dt.Precision + scale = dt.Scale + executor = integerToDecimal128[Arg0](batch.Values[0].Array.Type.ID(), scale) + case *arrow.Decimal256Type: + precision = dt.Precision + scale = dt.Scale + executor = integerToDecimal256[Arg0](batch.Values[0].Array.Type.ID(), scale) + } + + if scale < 0 { + return fmt.Errorf("%w: scale must be non-negative", arrow.ErrInvalid) + } + + minPrecision, err := MaxDecimalDigitsForInt(batch.Values[0].Type().ID()) + if err != nil { + return err + } + + minPrecision += scale + if precision < minPrecision { + return fmt.Errorf("%w: precision is not great enough for result. It should be at least %d", + arrow.ErrInvalid, minPrecision) + } + + return executor(ctx, batch, out) +} + +func getCastIntToDecimal[T exec.DecimalTypes](inType arrow.Type) exec.ArrayKernelExec { + switch inType { + case arrow.UINT8: + return CastIntegerToDecimal[T, uint8] + case arrow.INT8: + return CastIntegerToDecimal[T, int8] + case arrow.UINT16: + return CastIntegerToDecimal[T, uint16] + case arrow.INT16: + return CastIntegerToDecimal[T, int16] + case arrow.UINT32: + return CastIntegerToDecimal[T, uint32] + case arrow.INT32: + return CastIntegerToDecimal[T, int32] + case arrow.UINT64: + return CastIntegerToDecimal[T, uint64] + case arrow.INT64: + return CastIntegerToDecimal[T, int64] + } + debug.Assert(false, "invalid integer type") + return nil +} + +func unsafeUpscaleDecimal256Out(inputType arrow.Type, by int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal256.Num { + return decimal256.FromDecimal128(val).IncreaseScaleBy(by) + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal256.Num { + return val.IncreaseScaleBy(by) + }) +} + +func unsafeUpscaleDecimal128Out(inputType arrow.Type, by int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal128.Num { + return val.IncreaseScaleBy(by) + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal128.Num { + vals := val.IncreaseScaleBy(by).Array() + return decimal128.New(int64(vals[1]), vals[0]) + }) +} + +func unsafeDownscaleDecimal256Out(inputType arrow.Type, by int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal256.Num { + return decimal256.FromDecimal128(val).ReduceScaleBy(by, false) + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal256.Num { + return val.ReduceScaleBy(by, false) + }) +} + +func unsafeDownscaleDecimal128Out(inputType arrow.Type, by int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal128.Num { + return val.ReduceScaleBy(by, false) + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal128.Num { + vals := val.ReduceScaleBy(by, false).Array() + return decimal128.New(int64(vals[1]), vals[0]) + }) +} + +func safeRescaleDecimal256Out(inputType arrow.Type, outScale, outPrecision, inScale int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal256.Num { + out, e := decimal256.FromDecimal128(val).Rescale(inScale, outScale) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, *err) + return decimal256.Num{} + } + + if out.FitsInPrecision(outPrecision) { + return out + } + + *err = fmt.Errorf("%w: decimal value does not fit in precision", arrow.ErrInvalid) + return decimal256.Num{} + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal256.Num { + out, e := val.Rescale(inScale, outScale) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, *err) + return decimal256.Num{} + } + + if out.FitsInPrecision(outPrecision) { + return out + } + + *err = fmt.Errorf("%w: decimal value does not fit in precision", arrow.ErrInvalid) + return decimal256.Num{} + }) +} + +func safeRescaleDecimal128Out(inputType arrow.Type, outScale, outPrecision, inScale int32) exec.ArrayKernelExec { + if inputType == arrow.DECIMAL128 { + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal128.Num, err *error) decimal128.Num { + out, e := val.Rescale(inScale, outScale) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, *err) + return decimal128.Num{} + } + + if out.FitsInPrecision(outPrecision) { + return out + } + + *err = fmt.Errorf("%w: decimal value does not fit in precision", arrow.ErrInvalid) + return decimal128.Num{} + }) + } + return ScalarUnaryNotNull(func(_ *exec.KernelCtx, val decimal256.Num, err *error) decimal128.Num { + out, e := val.Rescale(inScale, outScale) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, *err) + return decimal128.Num{} + } + + if out.FitsInPrecision(outPrecision) { + arr := out.Array() + return decimal128.New(int64(arr[1]), arr[0]) + } + + *err = fmt.Errorf("%w: decimal value does not fit in precision", arrow.ErrInvalid) + return decimal128.Num{} + }) +} + +func CastDecimalToDecimal(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + opts = ctx.State.(CastState) + inType = batch.Values[0].Type() + outType = out.Type + inScale, outScale int32 + outPrecision int32 + ) + + switch dt := inType.(type) { + case *arrow.Decimal128Type: + inScale = dt.Scale + case *arrow.Decimal256Type: + inScale = dt.Scale + } + + switch dt := outType.(type) { + case *arrow.Decimal128Type: + outScale = dt.Scale + outPrecision = dt.Precision + case *arrow.Decimal256Type: + outScale = dt.Scale + outPrecision = dt.Precision + } + + if opts.AllowDecimalTruncate { + if inScale < outScale { + // unsafe upscale + if outType.ID() == arrow.DECIMAL128 { + ex := unsafeUpscaleDecimal128Out(inType.ID(), outScale-inScale) + return ex(ctx, batch, out) + } + ex := unsafeUpscaleDecimal256Out(inType.ID(), outScale-inScale) + return ex(ctx, batch, out) + } else { + // unsafe downscale + if outType.ID() == arrow.DECIMAL128 { + ex := unsafeDownscaleDecimal128Out(inType.ID(), inScale-outScale) + return ex(ctx, batch, out) + } + ex := unsafeDownscaleDecimal256Out(inType.ID(), inScale-outScale) + return ex(ctx, batch, out) + } + } + + // safe rescale + if outType.ID() == arrow.DECIMAL128 { + ex := safeRescaleDecimal128Out(inType.ID(), outScale, outPrecision, inScale) + return ex(ctx, batch, out) + } + ex := safeRescaleDecimal256Out(inType.ID(), outScale, outPrecision, inScale) + return ex(ctx, batch, out) +} + +func CastFloat32ToDecimal(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + prec, scale int32 + allowTrunc bool + executor exec.ArrayKernelExec + opts = ctx.State.(CastState) + ) + + allowTrunc = opts.AllowDecimalTruncate + switch dt := out.Type.(type) { + case *arrow.Decimal128Type: + prec, scale = dt.Precision, dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v float32, err *error) decimal128.Num { + out, e := decimal128.FromFloat32(v, prec, scale) + if e == nil { + return out + } + + if !allowTrunc { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + } + return decimal128.Num{} + }) + case *arrow.Decimal256Type: + prec, scale = dt.Precision, dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v float32, err *error) decimal256.Num { + out, e := decimal256.FromFloat32(v, prec, scale) + if e == nil { + return out + } + + if !allowTrunc { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + } + return decimal256.Num{} + }) + } + + return executor(ctx, batch, out) +} + +func CastFloat64ToDecimal(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + prec, scale int32 + allowTrunc bool + executor exec.ArrayKernelExec + opts = ctx.State.(CastState) + ) + + allowTrunc = opts.AllowDecimalTruncate + switch dt := out.Type.(type) { + case *arrow.Decimal128Type: + prec, scale = dt.Precision, dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v float64, err *error) decimal128.Num { + out, e := decimal128.FromFloat64(v, prec, scale) + if e == nil { + return out + } + + if !allowTrunc { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + } + return decimal128.Num{} + }) + case *arrow.Decimal256Type: + prec, scale = dt.Precision, dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v float64, err *error) decimal256.Num { + out, e := decimal256.FromFloat64(v, prec, scale) + if e == nil { + return out + } + + if !allowTrunc { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + } + return decimal256.Num{} + }) + } + + return executor(ctx, batch, out) +} + +func CastDecimalToFloating[OutT constraints.Float](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + executor exec.ArrayKernelExec + ) + + switch dt := batch.Values[0].Array.Type.(type) { + case *arrow.Decimal128Type: + scale := dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v decimal128.Num, err *error) OutT { + return OutT(v.ToFloat64(scale)) + }) + case *arrow.Decimal256Type: + scale := dt.Scale + executor = ScalarUnaryNotNull(func(_ *exec.KernelCtx, v decimal256.Num, err *error) OutT { + return OutT(v.ToFloat64(scale)) + }) + } + + return executor(ctx, batch, out) +} + +func boolToNum[T numeric](_ *exec.KernelCtx, in []byte, out []T) error { + var ( + zero T + one = T(1) + ) + + for i := range out { + if bitutil.BitIsSet(in, i) { + out[i] = one + } else { + out[i] = zero + } + } + return nil +} + +func checkFloatTrunc[InT constraints.Float, OutT exec.IntTypes | exec.UintTypes](in, out *exec.ArraySpan) error { + wasTrunc := func(out OutT, in InT) bool { + return InT(out) != in + } + wasTruncMaybeNull := func(out OutT, in InT, isValid bool) bool { + return isValid && (InT(out) != in) + } + getError := func(val InT) error { + return fmt.Errorf("%w: float value %f was truncated converting to %s", + arrow.ErrInvalid, val, out.Type) + } + + inData := exec.GetSpanValues[InT](in, 1) + outData := exec.GetSpanValues[OutT](out, 1) + + bitmap := in.Buffers[0].Buf + bitCounter := bitutils.NewOptionalBitBlockCounter(bitmap, in.Offset, in.Len) + pos, offsetPos := int64(0), int64(0) + for pos < in.Len { + block := bitCounter.NextBlock() + outOfBounds := false + if block.Popcnt == block.Len { + // fast path: branchless + for i := 0; i < int(block.Len); i++ { + outOfBounds = outOfBounds || wasTrunc(outData[i], inData[i]) + } + } else if block.Popcnt > 0 { + // must only bounds check non-null + for i := 0; i < int(block.Len); i++ { + outOfBounds = outOfBounds || wasTruncMaybeNull(outData[i], inData[i], bitutil.BitIsSet(bitmap, int(offsetPos)+i)) + } + } + if outOfBounds { + if in.Nulls > 0 { + for i := 0; i < int(block.Len); i++ { + if wasTruncMaybeNull(outData[i], inData[i], bitutil.BitIsSet(bitmap, int(offsetPos)+i)) { + return getError(inData[i]) + } + } + } else { + for i := 0; i < int(block.Len); i++ { + if wasTrunc(outData[i], inData[i]) { + return getError(inData[i]) + } + } + } + } + inData = inData[block.Len:] + outData = outData[block.Len:] + pos += int64(block.Len) + offsetPos += int64(block.Len) + } + return nil +} + +func checkFloatToIntTruncImpl[T constraints.Float](in, out *exec.ArraySpan) error { + switch out.Type.ID() { + case arrow.INT8: + return checkFloatTrunc[T, int8](in, out) + case arrow.UINT8: + return checkFloatTrunc[T, uint8](in, out) + case arrow.INT16: + return checkFloatTrunc[T, int16](in, out) + case arrow.UINT16: + return checkFloatTrunc[T, uint16](in, out) + case arrow.INT32: + return checkFloatTrunc[T, int32](in, out) + case arrow.UINT32: + return checkFloatTrunc[T, uint32](in, out) + case arrow.INT64: + return checkFloatTrunc[T, int64](in, out) + case arrow.UINT64: + return checkFloatTrunc[T, uint64](in, out) + } + debug.Assert(false, "float to int truncation only for integer output") + return nil +} + +func checkFloatToIntTrunc(in, out *exec.ArraySpan) error { + switch in.Type.ID() { + case arrow.FLOAT32: + return checkFloatToIntTruncImpl[float32](in, out) + case arrow.FLOAT64: + return checkFloatToIntTruncImpl[float64](in, out) + } + debug.Assert(false, "float to int truncation only for float32 and float64") + return nil +} + +func checkIntToFloatTrunc(in *exec.ArraySpan, outType arrow.Type) error { + switch in.Type.ID() { + case arrow.INT8, arrow.INT16, arrow.UINT8, arrow.UINT16: + // small integers are all exactly representable as whole numbers + return nil + case arrow.INT32: + if outType == arrow.FLOAT64 { + return nil + } + const limit = int32(1 << 24) + return intsInRange(in, -limit, limit) + case arrow.UINT32: + if outType == arrow.FLOAT64 { + return nil + } + return intsInRange(in, 0, uint32(1<<24)) + case arrow.INT64: + if outType == arrow.FLOAT32 { + const limit = int64(1 << 24) + return intsInRange(in, -limit, limit) + } + const limit = int64(1 << 53) + return intsInRange(in, -limit, limit) + case arrow.UINT64: + if outType == arrow.FLOAT32 { + return intsInRange(in, 0, uint64(1<<24)) + } + return intsInRange(in, 0, uint64(1<<53)) + } + debug.Assert(false, "intToFloatTrunc should only be called with int input") + return nil +} + +func parseStringToNumberImpl[T exec.IntTypes | exec.UintTypes | exec.FloatTypes, OffsetT int32 | int64](parseFn func(string) (T, error)) exec.ArrayKernelExec { + return ScalarUnaryNotNullBinaryArg[T, OffsetT](func(_ *exec.KernelCtx, in []byte, err *error) T { + st := *(*string)(unsafe.Pointer(&in)) + v, e := parseFn(st) + if e != nil { + *err = fmt.Errorf("%w: %s", arrow.ErrInvalid, e) + } + return v + }) +} + +func getParseStringExec[OffsetT int32 | int64](out arrow.Type) exec.ArrayKernelExec { + switch out { + case arrow.INT8: + return parseStringToNumberImpl[int8, OffsetT](func(s string) (int8, error) { + v, err := strconv.ParseInt(s, 0, 8) + return int8(v), err + }) + case arrow.UINT8: + return parseStringToNumberImpl[uint8, OffsetT](func(s string) (uint8, error) { + v, err := strconv.ParseUint(s, 0, 8) + return uint8(v), err + }) + case arrow.INT16: + return parseStringToNumberImpl[int16, OffsetT](func(s string) (int16, error) { + v, err := strconv.ParseInt(s, 0, 16) + return int16(v), err + }) + case arrow.UINT16: + return parseStringToNumberImpl[uint16, OffsetT](func(s string) (uint16, error) { + v, err := strconv.ParseUint(s, 0, 16) + return uint16(v), err + }) + case arrow.INT32: + return parseStringToNumberImpl[int32, OffsetT](func(s string) (int32, error) { + v, err := strconv.ParseInt(s, 0, 32) + return int32(v), err + }) + case arrow.UINT32: + return parseStringToNumberImpl[uint32, OffsetT](func(s string) (uint32, error) { + v, err := strconv.ParseUint(s, 0, 32) + return uint32(v), err + }) + case arrow.INT64: + return parseStringToNumberImpl[int64, OffsetT](func(s string) (int64, error) { + return strconv.ParseInt(s, 0, 64) + }) + case arrow.UINT64: + return parseStringToNumberImpl[uint64, OffsetT](func(s string) (uint64, error) { + return strconv.ParseUint(s, 0, 64) + }) + case arrow.FLOAT32: + return parseStringToNumberImpl[float32, OffsetT](func(s string) (float32, error) { + v, err := strconv.ParseFloat(s, 32) + return float32(v), err + }) + case arrow.FLOAT64: + return parseStringToNumberImpl[float64, OffsetT](func(s string) (float64, error) { + return strconv.ParseFloat(s, 64) + }) + } + panic("invalid type for getParseStringExec") +} + +func addCommonNumberCasts[T numeric](outTy arrow.DataType, kernels []exec.ScalarKernel) []exec.ScalarKernel { + kernels = append(kernels, GetCommonCastKernels(outTy.ID(), exec.NewOutputType(outTy))...) + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.FixedWidthTypes.Boolean)}, + exec.NewOutputType(outTy), ScalarUnaryBoolArg(boolToNum[T]), nil)) + + for _, inTy := range []arrow.DataType{arrow.BinaryTypes.Binary, arrow.BinaryTypes.String} { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, exec.NewOutputType(outTy), + getParseStringExec[int32](outTy.ID()), nil)) + } + for _, inTy := range []arrow.DataType{arrow.BinaryTypes.LargeBinary, arrow.BinaryTypes.LargeString} { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, exec.NewOutputType(outTy), + getParseStringExec[int64](outTy.ID()), nil)) + } + return kernels +} + +func GetCastToInteger[T exec.IntTypes | exec.UintTypes](outType arrow.DataType) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + + output := exec.NewOutputType(outType) + for _, inTy := range intTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, output, + CastIntToInt, nil)) + } + + for _, inTy := range floatingTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, output, + CastFloatingToInteger, nil)) + } + + kernels = addCommonNumberCasts[T](outType, kernels) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, output, + CastDecimal128ToInteger[T], nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, output, + CastDecimal256ToInteger[T], nil)) + return kernels +} + +func GetCastToFloating[T constraints.Float](outType arrow.DataType) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + + output := exec.NewOutputType(outType) + for _, inTy := range intTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, output, + CastIntegerToFloating, nil)) + } + + for _, inTy := range floatingTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, output, + CastFloatingToFloating, nil)) + } + + kernels = addCommonNumberCasts[T](outType, kernels) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, output, + CastDecimalToFloating[T], nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, output, + CastDecimalToFloating[T], nil)) + return kernels +} + +func resolveOutputFromOptions(ctx *exec.KernelCtx, _ []arrow.DataType) (arrow.DataType, error) { + return ctx.State.(CastState).ToType, nil +} + +func GetCastToDecimal128() []exec.ScalarKernel { + outputType := exec.NewComputedOutputType(resolveOutputFromOptions) + + kernels := make([]exec.ScalarKernel, 0) + kernels = append(kernels, GetCommonCastKernels(arrow.DECIMAL128, outputType)...) + + // cast from floating point + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.PrimitiveTypes.Float32)}, + outputType, CastFloat32ToDecimal, nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.PrimitiveTypes.Float64)}, + outputType, CastFloat64ToDecimal, nil)) + + // cast from integer + for _, inTy := range intTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, outputType, + getCastIntToDecimal[decimal128.Num](inTy.ID()), nil)) + } + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, outputType, + CastDecimalToDecimal, nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, outputType, + CastDecimalToDecimal, nil)) + return kernels +} + +func GetCastToDecimal256() []exec.ScalarKernel { + outputType := exec.NewComputedOutputType(resolveOutputFromOptions) + + kernels := make([]exec.ScalarKernel, 0) + kernels = append(kernels, GetCommonCastKernels(arrow.DECIMAL256, outputType)...) + + // cast from floating point + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.PrimitiveTypes.Float32)}, + outputType, CastFloat32ToDecimal, nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(arrow.PrimitiveTypes.Float64)}, + outputType, CastFloat64ToDecimal, nil)) + + // cast from integer + for _, inTy := range intTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(inTy)}, outputType, + getCastIntToDecimal[decimal256.Num](inTy.ID()), nil)) + } + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, outputType, + CastDecimalToDecimal, nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, outputType, + CastDecimalToDecimal, nil)) + return kernels +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/rounding.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/rounding.go new file mode 100644 index 0000000..2bcfc56 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/rounding.go @@ -0,0 +1,809 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "math" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/scalar" + "golang.org/x/exp/constraints" +) + +//go:generate stringer -type=RoundMode + +type RoundMode int8 + +const ( + // Round to nearest integer less than or equal in magnitude (aka "floor") + RoundDown RoundMode = iota + // Round to nearest integer greater than or equal in magnitude (aka "ceil") + RoundUp + // Get integral part without fractional digits (aka "trunc") + TowardsZero + // Round negative values with DOWN and positive values with UP + AwayFromZero + // Round ties with DOWN (aka "round half towards negative infinity") + HalfDown + // Round ties with UP (aka "round half towards positive infinity") + HalfUp + // Round ties with TowardsZero (aka "round half away from infinity") + HalfTowardsZero + // Round ties with AwayFromZero (aka "round half towards infinity") + HalfAwayFromZero + // Round ties to nearest even integer + HalfToEven + // Round ties to nearest odd integer + HalfToOdd +) + +type RoundOptions struct { + NDigits int64 + Mode RoundMode +} + +func (RoundOptions) TypeName() string { return "RoundOptions" } + +type RoundState struct { + RoundOptions + Pow10 float64 +} + +func InitRoundState(_ *exec.KernelCtx, args exec.KernelInitArgs) (exec.KernelState, error) { + var rs RoundState + + opts, ok := args.Options.(*RoundOptions) + if ok { + rs.RoundOptions = *opts + } else { + if rs.RoundOptions, ok = args.Options.(RoundOptions); !ok { + return nil, fmt.Errorf("%w: attempted to initialize kernel state from invalid function options", + arrow.ErrInvalid) + } + } + + // Only positive exponents for powers of 10 are used because combining + // multiply and division operations produced more stable rounding than + // using multiply-only. Refer to NumPy's round implementation: + // https://github.com/numpy/numpy/blob/7b2f20b406d27364c812f7a81a9c901afbd3600c/numpy/core/src/multiarray/calculation.c#L589 + rs.Pow10 = math.Pow10(int(math.Abs(float64(rs.NDigits)))) + return rs, nil +} + +type RoundToMultipleOptions struct { + // Multiple is the multiple to round to. + // + // Should be a positive numeric scalar of a type compatible + // with the argument to be rounded. The cast kernel is used + // to convert the rounding multiple to match the result type. + Multiple scalar.Scalar + // Mode is the rounding and tie-breaking mode + Mode RoundMode +} + +func (RoundToMultipleOptions) TypeName() string { return "RoundToMultipleOptions" } + +type RoundToMultipleState = RoundToMultipleOptions + +func isPositive(s scalar.Scalar) bool { + switch s := s.(type) { + case *scalar.Decimal128: + return s.Value.Greater(decimal128.Num{}) + case *scalar.Decimal256: + return s.Value.Greater(decimal256.Num{}) + case *scalar.Int8: + return s.Value > 0 + case *scalar.Uint8, *scalar.Uint16, *scalar.Uint32, *scalar.Uint64: + return true + case *scalar.Int16: + return s.Value > 0 + case *scalar.Int32: + return s.Value > 0 + case *scalar.Int64: + return s.Value > 0 + case *scalar.Float32: + return s.Value > 0 + case *scalar.Float64: + return s.Value > 0 + default: + return false + } +} + +func InitRoundToMultipleState(_ *exec.KernelCtx, args exec.KernelInitArgs) (exec.KernelState, error) { + var rs RoundToMultipleState + + opts, ok := args.Options.(*RoundToMultipleOptions) + if ok { + rs = *opts + } else { + if rs, ok = args.Options.(RoundToMultipleOptions); !ok { + return nil, fmt.Errorf("%w: attempted to initialize kernel state from invalid function options", + arrow.ErrInvalid) + } + } + + mult := rs.Multiple + if mult == nil || !mult.IsValid() { + return nil, fmt.Errorf("%w: rounding multiple must be non-null and valid", + arrow.ErrInvalid) + } + + if !isPositive(mult) { + return nil, fmt.Errorf("%w: rounding multiple must be positive", arrow.ErrInvalid) + } + + // ensure the rounding multiple option matches the kernel's output type. + // the output type is not available here, so we use the following rule: + // if "multiple" is neither a floating-point nor decimal type, + // then cast to float64, else cast to the kernel's input type. + var toType arrow.DataType + if !arrow.IsFloating(mult.DataType().ID()) && !arrow.IsDecimal(mult.DataType().ID()) { + toType = arrow.PrimitiveTypes.Float64 + } else { + toType = args.Inputs[0] + } + + if !arrow.TypeEqual(mult.DataType(), toType) { + castedMultiple, err := mult.CastTo(toType) + if err != nil { + return nil, err + } + + rs.Multiple = castedMultiple + } + + return rs, nil +} + +func getFloatRoundImpl[T constraints.Float](mode RoundMode) func(T) T { + switch mode { + case RoundDown: + return func(t T) T { return T(math.Floor(float64(t))) } + case RoundUp: + return func(t T) T { return T(math.Ceil(float64(t))) } + case TowardsZero: // truncate + return func(t T) T { return T(math.Trunc(float64(t))) } + case AwayFromZero: + return func(t T) T { + v := float64(t) + if math.Signbit(v) { + return T(math.Floor(v)) + } + return T(math.Ceil(v)) + } + // the Half variants are only called when the fractional portion + // was 0.5 + case HalfDown: + return func(t T) T { return T(math.Floor(float64(t))) } + case HalfUp: + return func(t T) T { return T(math.Ceil(float64(t))) } + case HalfTowardsZero: + return func(t T) T { return T(math.Trunc(float64(t))) } + case HalfAwayFromZero: + return func(t T) T { + v := float64(t) + if math.Signbit(v) { + return T(math.Floor(v)) + } + return T(math.Ceil(v)) + } + case HalfToEven: + return func(t T) T { return T(math.RoundToEven(float64(t))) } + case HalfToOdd: + return func(t T) T { + v := float64(t) + return T(math.Floor(v*0.5) + math.Ceil(v*0.5)) + } + } + panic("invalid rounding mode") +} + +func getDecRounding[T decimal128.Num | decimal256.Num](mode RoundMode, opsImpl *roundDecImpl[T]) func(val, remainder T, pow10 T, scale int32) T { + var ( + z T + one = opsImpl.fromI64(1) + neg = opsImpl.fromI64(-1) + ) + + switch mode { + case RoundDown: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(val) < 0 { + val = opsImpl.Sub(val, pow10) + } + return val + } + case RoundUp: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(val) > 0 && remainder != z { + val = opsImpl.Add(val, pow10) + } + return val + } + case TowardsZero: + return func(val, remainder, _ T, _ int32) T { + return opsImpl.Sub(val, remainder) + } + case AwayFromZero: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(remainder) < 0 { + val = opsImpl.Sub(val, pow10) + } else if opsImpl.Sign(remainder) > 0 && remainder != z { + val = opsImpl.Add(val, pow10) + } + return val + } + // variants for Half_* modes are only invoked when the fractional part + // is equal to 0.5 + case HalfDown: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(val) < 0 { + val = opsImpl.Sub(val, pow10) + } + return val + } + case HalfUp: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(val) > 0 && remainder != z { + val = opsImpl.Add(val, pow10) + } + return val + } + case HalfTowardsZero: + return func(val, remainder, _ T, _ int32) T { + return opsImpl.Sub(val, remainder) + } + case HalfAwayFromZero: + return func(val, remainder, pow10 T, _ int32) T { + val = opsImpl.Sub(val, remainder) + if opsImpl.Sign(remainder) < 0 { + val = opsImpl.Sub(val, pow10) + } else if opsImpl.Sign(remainder) > 0 && remainder != z { + val = opsImpl.Add(val, pow10) + } + return val + } + case HalfToEven: + return func(val, remainder, _ T, scale int32) T { + scaled := opsImpl.reduceScale(val, scale, false) + if opsImpl.lowBits(scaled)%2 != 0 { + if opsImpl.Sign(remainder) >= 0 { + scaled = opsImpl.Add(scaled, one) + } else { + scaled = opsImpl.Add(scaled, neg) + } + } + return opsImpl.increaseScale(scaled, scale) + } + case HalfToOdd: + return func(val, remainder, _ T, scale int32) T { + scaled := opsImpl.reduceScale(val, scale, false) + if opsImpl.lowBits(scaled)%2 == 0 { + if opsImpl.Sign(remainder) != 0 { + scaled = opsImpl.Add(scaled, one) + } else { + scaled = opsImpl.Add(scaled, neg) + } + } + return opsImpl.increaseScale(scaled, scale) + } + } + panic("invalid rounding mode") +} + +type round[T constraints.Float] struct { + pow10 T + ndigits int64 + mode RoundMode + + fn func(T) T +} + +func (rnd *round[T]) call(_ *exec.KernelCtx, arg T, e *error) T { + val := float64(arg) + // do not process INF or NaN because they will trigger overflow errors + // at the end of this + if math.IsInf(val, 0) || math.IsNaN(val) { + return arg + } + + var roundVal T + if rnd.ndigits >= 0 { + roundVal = arg * rnd.pow10 + } else { + roundVal = arg / rnd.pow10 + } + + frac := roundVal - T(math.Floor(float64(roundVal))) + if frac == 0 { + // scaled value has no fractional component + // no rounding is needed. + return arg + } + + if rnd.mode >= HalfDown && frac != 0.5 { + roundVal = T(math.Round(float64(roundVal))) + } else { + roundVal = rnd.fn(roundVal) + } + + // equality check is omitted so that the common case of 10^0 + // (integer rounding) uses multiply-only + if rnd.ndigits > 0 { + roundVal /= rnd.pow10 + } else { + roundVal *= rnd.pow10 + } + if math.IsInf(float64(roundVal), 0) || math.IsNaN(float64(roundVal)) { + *e = errOverflow + return arg + } + + return roundVal +} + +func roundKernelFloating[T constraints.Float](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(RoundState) + rnd := round[T]{ + pow10: T(opts.Pow10), + ndigits: opts.NDigits, + mode: opts.Mode, + fn: getFloatRoundImpl[T](opts.Mode), + } + + return ScalarUnaryNotNull(rnd.call)(ctx, batch, out) +} + +func roundToMultipleFloating[T constraints.Float](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(RoundToMultipleState) + rnd := roundToMultiple[T]{ + mode: opts.Mode, + multiple: UnboxScalar[T](opts.Multiple.(scalar.PrimitiveScalar)), + fn: getFloatRoundImpl[T](opts.Mode), + } + + return ScalarUnaryNotNull(rnd.call)(ctx, batch, out) +} + +type roundDecImpl[T decimal128.Num | decimal256.Num] struct { + *decOps[T] + scaleMultiplier func(int) T + halfScaleMultiplier func(int) T + divide func(a, b T) (res, rem T) + fitsInPrec func(T, int32) bool + less func(a, b T) bool + reduceScale func(T, int32, bool) T + increaseScale func(T, int32) T + lowBits func(T) uint64 + fromI64 func(int64) T + str func(T, int32) string +} + +var ( + roundDec128 = roundDecImpl[decimal128.Num]{ + decOps: &dec128Ops, + scaleMultiplier: decimal128.GetScaleMultiplier, + halfScaleMultiplier: decimal128.GetHalfScaleMultiplier, + divide: func(a, b decimal128.Num) (res, rem decimal128.Num) { return a.Div(b) }, + fitsInPrec: func(a decimal128.Num, prec int32) bool { return a.FitsInPrecision(prec) }, + less: func(a, b decimal128.Num) bool { return a.Less(b) }, + reduceScale: func(a decimal128.Num, scale int32, round bool) decimal128.Num { return a.ReduceScaleBy(scale, round) }, + increaseScale: func(a decimal128.Num, scale int32) decimal128.Num { return a.IncreaseScaleBy(scale) }, + lowBits: func(a decimal128.Num) uint64 { return a.LowBits() }, + fromI64: func(v int64) decimal128.Num { return decimal128.FromI64(v) }, + str: func(a decimal128.Num, scale int32) string { return a.ToString(scale) }, + } + roundDec256 = roundDecImpl[decimal256.Num]{ + decOps: &dec256Ops, + scaleMultiplier: decimal256.GetScaleMultiplier, + halfScaleMultiplier: decimal256.GetHalfScaleMultiplier, + divide: func(a, b decimal256.Num) (res, rem decimal256.Num) { return a.Div(b) }, + fitsInPrec: func(a decimal256.Num, prec int32) bool { return a.FitsInPrecision(prec) }, + less: func(a, b decimal256.Num) bool { return a.Less(b) }, + reduceScale: func(a decimal256.Num, scale int32, round bool) decimal256.Num { return a.ReduceScaleBy(scale, round) }, + increaseScale: func(a decimal256.Num, scale int32) decimal256.Num { return a.IncreaseScaleBy(scale) }, + lowBits: func(a decimal256.Num) uint64 { return a.LowBits() }, + fromI64: func(v int64) decimal256.Num { return decimal256.FromI64(v) }, + str: func(a decimal256.Num, scale int32) string { return a.ToString(scale) }, + } +) + +type roundDec[T decimal128.Num | decimal256.Num] struct { + ty arrow.DecimalType + mode RoundMode + ndigits int64 + pow int32 + // pow10 is "1" for the given decimal scale. Similarly halfPow10 is "0.5" + pow10, halfPow10, negHalfPow10 T + + opsImpl *roundDecImpl[T] + fn func(T, T, T, int32) T +} + +func (rnd *roundDec[T]) call(_ *exec.KernelCtx, arg T, e *error) T { + var def T + if rnd.pow >= rnd.ty.GetPrecision() { + *e = fmt.Errorf("%w: rounding to %d digits will not fit in precision of %s", + arrow.ErrInvalid, rnd.ndigits, rnd.ty) + return def + } else if rnd.pow < 0 { + // no-op copy output to input + return arg + } + + _, remainder := rnd.opsImpl.divide(arg, rnd.pow10) + // the remainder is effectively the scaled fractional part after division + if remainder == def { + return arg + } + + if rnd.mode >= HalfDown { + if remainder == rnd.halfPow10 || remainder == rnd.negHalfPow10 { + // on the halfway point, use tiebreaker + arg = rnd.fn(arg, remainder, rnd.pow10, rnd.pow) + } else if rnd.opsImpl.Sign(remainder) >= 0 { + // positive, round up/down + arg = rnd.opsImpl.Sub(arg, remainder) + if rnd.opsImpl.less(rnd.halfPow10, remainder) { + arg = rnd.opsImpl.Add(arg, rnd.pow10) + } + } else { + // negative, round up/down + arg = rnd.opsImpl.Sub(arg, remainder) + if rnd.opsImpl.less(remainder, rnd.negHalfPow10) { + arg = rnd.opsImpl.Sub(arg, rnd.pow10) + } + } + } else { + arg = rnd.fn(arg, remainder, rnd.pow10, rnd.pow) + } + + if !rnd.opsImpl.fitsInPrec(arg, rnd.ty.GetPrecision()) { + *e = fmt.Errorf("%w: rounded value %s does not fit in precision of %s", + arrow.ErrInvalid, rnd.opsImpl.str(arg, rnd.ty.GetScale()), rnd.ty) + return def + } + return arg +} + +func getRoundKernelDecimal[T decimal128.Num | decimal256.Num]() exec.ArrayKernelExec { + var def T + switch any(def).(type) { + case decimal128.Num: + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + return roundKernelDecimal(&roundDec128, ctx, batch, out) + } + case decimal256.Num: + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + return roundKernelDecimal(&roundDec256, ctx, batch, out) + } + } + panic("should never get here") +} + +func roundKernelDecimal[T decimal128.Num | decimal256.Num](opsImpl *roundDecImpl[T], ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(RoundState) + rnd := roundDec[T]{ + ty: out.Type.(arrow.DecimalType), + ndigits: opts.NDigits, + mode: opts.Mode, + opsImpl: opsImpl, + fn: getDecRounding(opts.Mode, opsImpl), + } + + rnd.pow = rnd.ty.GetScale() - int32(rnd.ndigits) + if rnd.pow < rnd.ty.GetPrecision() && rnd.pow >= 0 { + rnd.pow10 = opsImpl.scaleMultiplier(int(rnd.pow)) + rnd.halfPow10 = opsImpl.halfScaleMultiplier(int(rnd.pow)) + rnd.negHalfPow10 = opsImpl.Neg(rnd.halfPow10) + } + + return ScalarUnaryNotNull(rnd.call)(ctx, batch, out) +} + +func getRoundToMultipleKernelDecimal[T decimal128.Num | decimal256.Num]() exec.ArrayKernelExec { + var def T + switch any(def).(type) { + case decimal128.Num: + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + return roundToMultipleDecimal(&roundDec128, ctx, batch, out) + } + case decimal256.Num: + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + return roundToMultipleDecimal(&roundDec256, ctx, batch, out) + } + } + panic("should never get here") +} + +func roundToMultipleDecimal[T decimal128.Num | decimal256.Num](opsImpl *roundDecImpl[T], ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(RoundToMultipleState) + rnd := roundToMultipleDec[T]{ + ty: out.Type.(arrow.DecimalType), + mode: opts.Mode, + opsImpl: opsImpl, + fn: getDecRounding(opts.Mode, opsImpl), + mult: UnboxScalar[T](opts.Multiple.(scalar.PrimitiveScalar)), + } + + rnd.halfMult = opsImpl.Div(rnd.mult, opsImpl.fromI64(2)) + rnd.negHalfMult = opsImpl.Neg(rnd.halfMult) + rnd.hasHalfwayPoint = opsImpl.lowBits(rnd.mult)%2 == 0 + + return ScalarUnaryNotNull(rnd.call)(ctx, batch, out) +} + +type roundToMultiple[T constraints.Float] struct { + multiple T + mode RoundMode + + fn func(T) T +} + +func (rnd *roundToMultiple[T]) call(_ *exec.KernelCtx, arg T, e *error) T { + val := float64(arg) + // do not process Inf or NaN because they will trigger the overflow error + // at the end of this. + if math.IsInf(val, 0) || math.IsNaN(val) { + return arg + } + + roundVal := arg / rnd.multiple + frac := roundVal - T(math.Floor(float64(roundVal))) + if frac == 0 { + // scaled value is an integer, no rounding needed + return arg + } + + if rnd.mode >= HalfDown && frac != 0.5 { + roundVal = T(math.Round(float64(roundVal))) + } else { + roundVal = rnd.fn(roundVal) + } + roundVal *= rnd.multiple + + if math.IsInf(float64(roundVal), 0) || math.IsNaN(float64(roundVal)) { + *e = errOverflow + return arg + } + + return roundVal +} + +type roundToMultipleDec[T decimal128.Num | decimal256.Num] struct { + ty arrow.DecimalType + mode RoundMode + + mult, halfMult, negHalfMult T + hasHalfwayPoint bool + + opsImpl *roundDecImpl[T] + fn func(T, T, T, int32) T +} + +func (rnd *roundToMultipleDec[T]) call(_ *exec.KernelCtx, arg T, e *error) T { + var def T + + val, remainder := rnd.opsImpl.divide(arg, rnd.mult) + if remainder == def { + return arg + } + + one := rnd.opsImpl.fromI64(1) + if rnd.mode >= HalfDown { + if rnd.hasHalfwayPoint && (remainder == rnd.halfMult || remainder == rnd.negHalfMult) { + // on the halfway point, use tiebreaker + // manually implement rounding since we're not actually rounding + // a decimal value, but rather manipulating the multiple + switch rnd.mode { + case HalfDown: + if rnd.opsImpl.Sign(remainder) < 0 { + val = rnd.opsImpl.Sub(val, one) + } + case HalfUp: + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } + case HalfTowardsZero: + case HalfAwayFromZero: + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } else { + val = rnd.opsImpl.Sub(val, one) + } + case HalfToEven: + if rnd.opsImpl.lowBits(val)%2 != 0 { + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } else { + val = rnd.opsImpl.Sub(val, one) + } + } + case HalfToOdd: + if rnd.opsImpl.lowBits(val)%2 == 0 { + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } else { + val = rnd.opsImpl.Sub(val, one) + } + } + } + } else if rnd.opsImpl.Sign(remainder) >= 0 { + // positive, round up/down + if rnd.opsImpl.less(rnd.halfMult, remainder) { + val = rnd.opsImpl.Add(val, one) + } + } else { + // negative, round up/down + if rnd.opsImpl.less(remainder, rnd.negHalfMult) { + val = rnd.opsImpl.Sub(val, one) + } + } + } else { + // manually implement rounding since we're not actually rounding + // a decimal value, but rather manipulating the multiple + switch rnd.mode { + case RoundDown: + if rnd.opsImpl.Sign(remainder) < 0 { + val = rnd.opsImpl.Sub(val, one) + } + case RoundUp: + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } + case TowardsZero: + case AwayFromZero: + if rnd.opsImpl.Sign(remainder) >= 0 { + val = rnd.opsImpl.Add(val, one) + } else { + val = rnd.opsImpl.Sub(val, one) + } + } + } + + roundVal := rnd.opsImpl.Mul(val, rnd.mult) + if !rnd.opsImpl.fitsInPrec(roundVal, rnd.ty.GetPrecision()) { + *e = fmt.Errorf("%w: rounded value %s does not fit in precision of %s", + arrow.ErrInvalid, rnd.opsImpl.str(roundVal, rnd.ty.GetScale()), rnd.ty) + return def + } + return roundVal +} + +func UnaryRoundExec(ty arrow.Type) exec.ArrayKernelExec { + switch ty { + case arrow.FLOAT32: + return roundKernelFloating[float32] + case arrow.FLOAT64: + return roundKernelFloating[float64] + case arrow.DECIMAL128: + return getRoundKernelDecimal[decimal128.Num]() + case arrow.DECIMAL256: + return getRoundKernelDecimal[decimal256.Num]() + } + panic("should never get here") +} + +func UnaryRoundToMultipleExec(ty arrow.Type) exec.ArrayKernelExec { + switch ty { + case arrow.FLOAT32: + return roundToMultipleFloating[float32] + case arrow.FLOAT64: + return roundToMultipleFloating[float64] + case arrow.DECIMAL128: + return getRoundToMultipleKernelDecimal[decimal128.Num]() + case arrow.DECIMAL256: + return getRoundToMultipleKernelDecimal[decimal256.Num]() + } + panic("should never get here") +} + +func GetRoundUnaryKernels(init exec.KernelInitFn, knFn func(arrow.Type) exec.ArrayKernelExec) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range []arrow.DataType{arrow.PrimitiveTypes.Float32, arrow.PrimitiveTypes.Float64, + &arrow.Decimal128Type{Precision: 1}, &arrow.Decimal256Type{Precision: 1}} { + tyID := ty.ID() + + var out exec.OutputType + if arrow.IsDecimal(tyID) { + out = OutputFirstType + } else { + out = exec.NewOutputType(ty) + } + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(tyID)}, out, knFn(tyID), init)) + } + + return append(kernels, NullExecKernel(1)) +} + +func GetSimpleRoundKernels(mode RoundMode) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range floatingTypes { + var ex exec.ArrayKernelExec + switch ty.ID() { + case arrow.FLOAT32: + fn := getFloatRoundImpl[float32](mode) + ex = ScalarUnary(func(_ *exec.KernelCtx, in []float32, out []float32) error { + for i, v := range in { + out[i] = fn(v) + } + return nil + }) + case arrow.FLOAT64: + fn := getFloatRoundImpl[float64](mode) + ex = ScalarUnary(func(_ *exec.KernelCtx, in []float64, out []float64) error { + for i, v := range in { + out[i] = fn(v) + } + return nil + }) + } + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, exec.NewOutputType(ty), + ex, nil)) + } + return append(kernels, NullExecKernel(1)) +} + +func fixedRoundDecimalExec[T decimal128.Num | decimal256.Num](opsImpl *roundDecImpl[T], mode RoundMode) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + rnd := roundDec[T]{ + ty: out.Type.(arrow.DecimalType), + mode: mode, + opsImpl: opsImpl, + fn: getDecRounding(mode, opsImpl), + } + + rnd.pow = rnd.ty.GetScale() - int32(rnd.ndigits) + if rnd.pow < rnd.ty.GetPrecision() && rnd.pow >= 0 { + rnd.pow10 = opsImpl.scaleMultiplier(int(rnd.pow)) + rnd.halfPow10 = opsImpl.halfScaleMultiplier(int(rnd.pow)) + rnd.negHalfPow10 = opsImpl.Neg(rnd.halfPow10) + } + + return ScalarUnaryNotNull(rnd.call)(ctx, batch, out) + } +} + +func FixedRoundDecimalExec[T decimal128.Num | decimal256.Num](mode RoundMode) exec.ArrayKernelExec { + var def T + switch any(def).(type) { + case decimal128.Num: + return func() exec.ArrayKernelExec { + return fixedRoundDecimalExec(&roundDec128, mode) + }() + case decimal256.Num: + return func() exec.ArrayKernelExec { + return fixedRoundDecimalExec(&roundDec256, mode) + }() + } + panic("should never get here") +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/roundmode_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/roundmode_string.go new file mode 100644 index 0000000..87c6a6e --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/roundmode_string.go @@ -0,0 +1,34 @@ +// Code generated by "stringer -type=RoundMode"; DO NOT EDIT. + +//go:build go1.18 + +package kernels + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[RoundDown-0] + _ = x[RoundUp-1] + _ = x[TowardsZero-2] + _ = x[AwayFromZero-3] + _ = x[HalfDown-4] + _ = x[HalfUp-5] + _ = x[HalfTowardsZero-6] + _ = x[HalfAwayFromZero-7] + _ = x[HalfToEven-8] + _ = x[HalfToOdd-9] +} + +const _RoundMode_name = "RoundDownRoundUpTowardsZeroAwayFromZeroHalfDownHalfUpHalfTowardsZeroHalfAwayFromZeroHalfToEvenHalfToOdd" + +var _RoundMode_index = [...]uint8{0, 9, 16, 27, 39, 47, 53, 68, 84, 94, 103} + +func (i RoundMode) String() string { + if i < 0 || i >= RoundMode(len(_RoundMode_index)-1) { + return "RoundMode(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _RoundMode_name[_RoundMode_index[i]:_RoundMode_index[i+1]] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_arithmetic.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_arithmetic.go new file mode 100644 index 0000000..06744f9 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_arithmetic.go @@ -0,0 +1,412 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "time" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +// scalar kernel that ignores (assumed all-null inputs) and returns null +func NullToNullExec(_ *exec.KernelCtx, _ *exec.ExecSpan, _ *exec.ExecResult) error { + return nil +} + +func NullExecKernel(nargs int) exec.ScalarKernel { + in := make([]exec.InputType, nargs) + for i := range in { + in[i] = exec.NewIDInput(arrow.NULL) + } + return exec.NewScalarKernel(in, exec.NewOutputType(arrow.Null), NullToNullExec, nil) +} + +func GetArithmeticFunctionTimeDuration(op ArithmeticOp) []exec.ScalarKernel { + mult := (time.Hour * 24) + return []exec.ScalarKernel{exec.NewScalarKernel([]exec.InputType{ + exec.NewExactInput(arrow.FixedWidthTypes.Time32s), + exec.NewExactInput(&arrow.DurationType{Unit: arrow.Second})}, OutputFirstType, + timeDurationOp[arrow.Time32, arrow.Time32, arrow.Duration](int64(mult.Seconds()), op), nil), + exec.NewScalarKernel([]exec.InputType{ + exec.NewExactInput(arrow.FixedWidthTypes.Time32ms), + exec.NewExactInput(&arrow.DurationType{Unit: arrow.Millisecond})}, OutputFirstType, + timeDurationOp[arrow.Time32, arrow.Time32, arrow.Duration](int64(mult.Milliseconds()), op), nil), + exec.NewScalarKernel([]exec.InputType{ + exec.NewExactInput(arrow.FixedWidthTypes.Time64us), + exec.NewExactInput(&arrow.DurationType{Unit: arrow.Microsecond})}, OutputFirstType, + timeDurationOp[arrow.Time64, arrow.Time64, arrow.Duration](int64(mult.Microseconds()), op), nil), + exec.NewScalarKernel([]exec.InputType{ + exec.NewExactInput(arrow.FixedWidthTypes.Time64ns), + exec.NewExactInput(&arrow.DurationType{Unit: arrow.Nanosecond})}, OutputFirstType, + timeDurationOp[arrow.Time64, arrow.Time64, arrow.Duration](int64(mult.Nanoseconds()), op), nil)} +} + +func GetDecimalBinaryKernels(op ArithmeticOp) []exec.ScalarKernel { + var outType exec.OutputType + switch op { + case OpAdd, OpSub, OpAddChecked, OpSubChecked: + outType = exec.NewComputedOutputType(resolveDecimalAddOrSubtractType) + case OpMul, OpMulChecked: + outType = exec.NewComputedOutputType(resolveDecimalMultiplyOutput) + case OpDiv, OpDivChecked: + outType = exec.NewComputedOutputType(resolveDecimalDivideOutput) + } + + in128, in256 := exec.NewIDInput(arrow.DECIMAL128), exec.NewIDInput(arrow.DECIMAL256) + exec128, exec256 := getArithmeticDecimal[decimal128.Num](op), getArithmeticDecimal[decimal256.Num](op) + return []exec.ScalarKernel{ + exec.NewScalarKernel([]exec.InputType{in128, in128}, outType, exec128, nil), + exec.NewScalarKernel([]exec.InputType{in256, in256}, outType, exec256, nil), + } +} + +func GetArithmeticBinaryKernels(op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range numericTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty), exec.NewExactInput(ty)}, + exec.NewOutputType(ty), ArithmeticExecSameType(ty.ID(), op), nil)) + } + + return append(kernels, NullExecKernel(2)) +} + +func GetDecimalUnaryKernels(op ArithmeticOp) []exec.ScalarKernel { + outType := OutputFirstType + in128 := exec.NewIDInput(arrow.DECIMAL128) + in256 := exec.NewIDInput(arrow.DECIMAL256) + + exec128, exec256 := getArithmeticDecimal[decimal128.Num](op), getArithmeticDecimal[decimal256.Num](op) + return []exec.ScalarKernel{ + exec.NewScalarKernel([]exec.InputType{in128}, outType, exec128, nil), + exec.NewScalarKernel([]exec.InputType{in256}, outType, exec256, nil), + } +} + +func GetArithmeticUnaryKernels(op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range numericTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, exec.NewOutputType(ty), + ArithmeticExec(ty.ID(), ty.ID(), op), nil)) + } + + return append(kernels, NullExecKernel(1)) +} + +func GetArithmeticUnarySignedKernels(op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range append(signedIntTypes, floatingTypes...) { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, exec.NewOutputType(ty), + ArithmeticExec(ty.ID(), ty.ID(), op), nil)) + } + + return append(kernels, NullExecKernel(1)) +} + +func GetArithmeticUnaryFloatingPointKernels(op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range floatingTypes { + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, exec.NewOutputType(ty), + ArithmeticExec(ty.ID(), ty.ID(), op), nil)) + } + + return append(kernels, NullExecKernel(1)) +} + +func GetArithmeticFloatingPointKernels(op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range floatingTypes { + in := exec.NewExactInput(ty) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{in, in}, exec.NewOutputType(ty), + ArithmeticExecSameType(ty.ID(), op), nil)) + } + + return append(kernels, NullExecKernel(2)) +} + +func GetArithmeticUnaryFixedIntOutKernels(otype arrow.DataType, op ArithmeticOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + + out := exec.NewOutputType(otype) + for _, ty := range numericTypes { + otype := otype + out := out + if arrow.IsFloating(ty.ID()) { + otype = ty + out = exec.NewOutputType(ty) + } + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, out, + ArithmeticExec(ty.ID(), otype.ID(), op), nil)) + } + + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL128)}, + exec.NewOutputType(arrow.PrimitiveTypes.Int64), + getArithmeticDecimal[decimal128.Num](op), nil)) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewIDInput(arrow.DECIMAL256)}, + exec.NewOutputType(arrow.PrimitiveTypes.Int64), + getArithmeticDecimal[decimal256.Num](op), nil)) + + return append(kernels, NullExecKernel(1)) +} + +type BitwiseOp int8 + +const ( + OpBitAnd BitwiseOp = iota + OpBitOr + OpBitXor +) + +func bitwiseKernelOp(op BitwiseOp) exec.ArrayKernelExec { + var fn func([]byte, []byte, int64, int64, []byte, int64, int64) + switch op { + case OpBitOr: + fn = bitutil.BitmapOr + case OpBitAnd: + fn = bitutil.BitmapAnd + case OpBitXor: + fn = bitutil.BitmapXor + } + + arrayArray := func(left, right *exec.ArraySpan, out *exec.ExecResult) error { + bits := int64(left.Type.(arrow.FixedWidthDataType).BitWidth()) + fn(left.Buffers[1].Buf, right.Buffers[1].Buf, + bits*left.Offset, bits*right.Offset, + out.Buffers[1].Buf, bits*out.Offset, bits*left.Len) + return nil + } + + arrayScalar := func(arr *exec.ArraySpan, sc scalar.Scalar, out *exec.ExecResult) error { + if !sc.IsValid() { + // no work to be done, everything is null + return nil + } + + val := sc.(scalar.PrimitiveScalar).Data() + byteWidth := int64(len(val)) + bitWidth := byteWidth * 8 + arrBuf := arr.Buffers[1].Buf[byteWidth*arr.Offset:] + outBuf := out.Buffers[1].Buf[byteWidth*out.Offset:] + + for i := int64(0); i < arr.Len; i++ { + fn(arrBuf, val, 0, 0, outBuf, 0, bitWidth) + arrBuf, outBuf = arrBuf[byteWidth:], outBuf[byteWidth:] + } + return nil + } + + return func(_ *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return arrayArray(&batch.Values[0].Array, &batch.Values[1].Array, out) + } + return arrayScalar(&batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return arrayScalar(&batch.Values[1].Array, batch.Values[0].Scalar, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: scalar binary with two scalars?", arrow.ErrInvalid) + } +} + +func GetBitwiseBinaryKernels(op BitwiseOp) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range intTypes { + ex := bitwiseKernelOp(op) + inType := exec.NewExactInput(ty) + kernels = append(kernels, exec.NewScalarKernel([]exec.InputType{ + inType, inType}, exec.NewOutputType(ty), ex, nil)) + } + return append(kernels, NullExecKernel(2)) +} + +func bitwiseNot[T exec.IntTypes | exec.UintTypes](_ *exec.KernelCtx, arg T, _ *error) T { + return ^arg +} + +func getBitwiseNotExec(ty arrow.DataType) exec.ArrayKernelExec { + switch ty.ID() { + case arrow.INT8, arrow.UINT8: + return ScalarUnaryNotNull(bitwiseNot[uint8]) + case arrow.INT16, arrow.UINT16: + return ScalarUnaryNotNull(bitwiseNot[uint16]) + case arrow.INT32, arrow.UINT32: + return ScalarUnaryNotNull(bitwiseNot[uint32]) + case arrow.INT64, arrow.UINT64: + return ScalarUnaryNotNull(bitwiseNot[uint64]) + } + panic("only integral types for bitwise not kernels") +} + +func GetBitwiseUnaryKernels() []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range intTypes { + ex := getBitwiseNotExec(ty) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{exec.NewExactInput(ty)}, exec.NewOutputType(ty), + ex, nil)) + } + return append(kernels, NullExecKernel(1)) +} + +type ShiftDir int8 + +const ( + ShiftLeft ShiftDir = iota + ShiftRight +) + +func shiftKernelSignedImpl[T exec.IntTypes, Unsigned exec.UintTypes](dir ShiftDir, checked bool) exec.ArrayKernelExec { + errShift := fmt.Errorf("%w: shift amount must be >= 0 and less than precision of type", arrow.ErrInvalid) + maxShift := T(8*SizeOf[T]() - 1) + + switch dir { + case ShiftLeft: + if checked { + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, e *error) T { + if rhs < 0 || rhs >= maxShift { + *e = errShift + return lhs + } + return T(Unsigned(lhs) << Unsigned(rhs)) + }) + } + + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, _ *error) T { + if rhs < 0 || rhs >= maxShift { + return lhs + } + + return T(Unsigned(lhs) << Unsigned(rhs)) + }) + case ShiftRight: + if checked { + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, e *error) T { + if rhs < 0 || rhs >= maxShift { + *e = errShift + return lhs + } + return lhs >> rhs + }) + } + + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, e *error) T { + if rhs < 0 || rhs >= maxShift { + return lhs + } + return lhs >> rhs + }) + } + return nil +} + +func shiftKernelUnsignedImpl[T exec.UintTypes](dir ShiftDir, checked bool) exec.ArrayKernelExec { + errShift := fmt.Errorf("%w: shift amount must be >= 0 and less than precision of type", arrow.ErrInvalid) + maxShift := T(8 * SizeOf[T]()) + + switch dir { + case ShiftLeft: + if checked { + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, e *error) T { + if rhs < 0 || rhs >= maxShift { + *e = errShift + return lhs + } + return lhs << rhs + }) + } + + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, _ *error) T { + if rhs < 0 || rhs >= maxShift { + return lhs + } + return lhs << rhs + }) + case ShiftRight: + if checked { + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, e *error) T { + if rhs < 0 || rhs >= maxShift { + *e = errShift + return lhs + } + return lhs >> rhs + }) + } + + return ScalarBinaryNotNull(func(_ *exec.KernelCtx, lhs, rhs T, _ *error) T { + if rhs < 0 || rhs >= maxShift { + return lhs + } + return lhs >> rhs + }) + } + return nil +} + +func shiftKernel(dir ShiftDir, checked bool, ty arrow.Type) exec.ArrayKernelExec { + switch ty { + case arrow.INT8: + return shiftKernelSignedImpl[int8, uint8](dir, checked) + case arrow.UINT8: + return shiftKernelUnsignedImpl[uint8](dir, checked) + case arrow.INT16: + return shiftKernelSignedImpl[int16, uint16](dir, checked) + case arrow.UINT16: + return shiftKernelUnsignedImpl[uint16](dir, checked) + case arrow.INT32: + return shiftKernelSignedImpl[int32, uint32](dir, checked) + case arrow.UINT32: + return shiftKernelUnsignedImpl[uint32](dir, checked) + case arrow.INT64: + return shiftKernelSignedImpl[int64, uint64](dir, checked) + case arrow.UINT64: + return shiftKernelUnsignedImpl[uint64](dir, checked) + } + panic("invalid type for shift kernels") +} + +func GetShiftKernels(dir ShiftDir, checked bool) []exec.ScalarKernel { + kernels := make([]exec.ScalarKernel, 0) + for _, ty := range intTypes { + inType := exec.NewExactInput(ty) + ex := shiftKernel(dir, checked, ty.ID()) + kernels = append(kernels, exec.NewScalarKernel( + []exec.InputType{inType, inType}, exec.NewOutputType(ty), + ex, nil)) + } + return append(kernels, NullExecKernel(2)) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_boolean.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_boolean.go new file mode 100644 index 0000000..db6636a --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_boolean.go @@ -0,0 +1,334 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +type computeWordFN func(leftTrue, leftFalse, rightTrue, rightFalse uint64) (outValid, outData uint64) + +func computeKleene(computeWord computeWordFN, ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + var ( + inBMs = [4]bitutil.Bitmap{ + {Data: left.Buffers[0].Buf, Offset: left.Offset, Len: left.Len}, + {Data: left.Buffers[1].Buf, Offset: left.Offset, Len: left.Len}, + {Data: right.Buffers[1].Buf, Offset: right.Offset, Len: right.Len}, + {Data: right.Buffers[0].Buf, Offset: right.Offset, Len: right.Len}, + } + outBMs = [2]bitutil.Bitmap{ + {Data: out.Buffers[0].Buf, Offset: out.Offset, Len: out.Len}, + {Data: out.Buffers[1].Buf, Offset: out.Offset, Len: out.Len}, + } + apply = func(leftValid, leftData uint64, rightValid, rightData uint64) (outValidity, outData uint64) { + leftTrue, leftFalse := leftValid&leftData, leftValid&^leftData + rightTrue, rightFalse := rightValid&rightData, rightValid&^rightData + return computeWord(leftTrue, leftFalse, rightTrue, rightFalse) + } + ) + + switch { + case right.UpdateNullCount() == 0: + return bitutil.VisitWordsAndWrite(inBMs[:3], outBMs[:], + func(in, out []uint64) { + out[0], out[1] = apply(in[0], in[1], ^uint64(0), in[2]) + }) + case left.UpdateNullCount() == 0: + return bitutil.VisitWordsAndWrite(inBMs[1:], outBMs[:], + func(in, out []uint64) { + out[0], out[1] = apply(^uint64(0), in[0], in[2], in[1]) + }) + default: + return bitutil.VisitWordsAndWrite(inBMs[:], outBMs[:], + func(in, out []uint64) { + out[0], out[1] = apply(in[0], in[1], in[3], in[2]) + }) + } +} + +type AndOpKernel struct { + commutativeBinaryKernel[AndOpKernel] +} + +func (AndOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + bitutil.BitmapAnd(left.Buffers[1].Buf, right.Buffers[1].Buf, + left.Offset, right.Offset, out.Buffers[1].Buf, out.Offset, left.Len) + return nil +} + +func (AndOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + if !left.IsValid() { + return nil + } + + outBM := out.Buffers[1].Buf + if left.(*scalar.Boolean).Value { + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), + int(right.Len), outBM, int(out.Offset)) + } else { + bitutil.SetBitsTo(outBM, out.Offset, out.Len, false) + } + return nil +} + +type KleeneAndOpKernel struct { + commutativeBinaryKernel[KleeneAndOpKernel] +} + +func (KleeneAndOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + if left.UpdateNullCount() == 0 && right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + return (AndOpKernel{}).Call(ctx, left, right, out) + } + + computeWord := func(leftTrue, leftFalse, rightTrue, rightFalse uint64) (outValid, outData uint64) { + return leftFalse | rightFalse | (leftTrue & rightTrue), leftTrue & rightTrue + } + return computeKleene(computeWord, ctx, left, right, out) +} + +func (KleeneAndOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + var ( + leftTrue = left.IsValid() && left.(*scalar.Boolean).Value + leftFalse = left.IsValid() && !left.(*scalar.Boolean).Value + ) + + switch { + case leftFalse: + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + bitutil.SetBitsTo(out.Buffers[1].Buf, out.Offset, out.Len, false) + case leftTrue: + if right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + } else { + bitutil.CopyBitmap(right.Buffers[0].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + default: // scalar was null: out[i] is valid iff right[i] was false + if right.UpdateNullCount() == 0 { + bitutil.InvertBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } else { + bitutil.BitmapAndNot(right.Buffers[0].Buf, right.Buffers[1].Buf, right.Offset, + right.Offset, out.Buffers[0].Buf, out.Offset, right.Len) + } + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + } + return nil +} + +type OrOpKernel struct { + commutativeBinaryKernel[OrOpKernel] +} + +func (OrOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + bitutil.BitmapOr(left.Buffers[1].Buf, right.Buffers[1].Buf, + left.Offset, right.Offset, out.Buffers[1].Buf, out.Offset, left.Len) + return nil +} + +func (OrOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + if !left.IsValid() { + return nil + } + + outBM := out.Buffers[1].Buf + if left.(*scalar.Boolean).Value { + bitutil.SetBitsTo(outBM, out.Offset, out.Len, true) + } else { + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), + int(right.Len), outBM, int(out.Offset)) + } + return nil +} + +type KleeneOrOpKernel struct { + commutativeBinaryKernel[KleeneOrOpKernel] +} + +func (KleeneOrOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + if left.UpdateNullCount() == 0 && right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + return (OrOpKernel{}).Call(ctx, left, right, out) + } + + computeWord := func(leftTrue, leftFalse, rightTrue, rightFalse uint64) (outValid, outData uint64) { + return leftTrue | rightTrue | (leftFalse & rightFalse), leftTrue | rightTrue + } + return computeKleene(computeWord, ctx, left, right, out) +} + +func (KleeneOrOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + var ( + leftTrue = left.IsValid() && left.(*scalar.Boolean).Value + leftFalse = left.IsValid() && !left.(*scalar.Boolean).Value + ) + + switch { + case leftTrue: + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + bitutil.SetBitsTo(out.Buffers[1].Buf, out.Offset, out.Len, true) // all true case + case leftFalse: + if right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + } else { + bitutil.CopyBitmap(right.Buffers[0].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + default: // scalar was null: out[i] is valid iff right[i] was true + if right.UpdateNullCount() == 0 { + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } else { + bitutil.BitmapAnd(right.Buffers[0].Buf, right.Buffers[1].Buf, right.Offset, + right.Offset, out.Buffers[0].Buf, out.Offset, right.Len) + } + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + } + return nil +} + +type XorOpKernel struct { + commutativeBinaryKernel[XorOpKernel] +} + +func (XorOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + bitutil.BitmapXor(left.Buffers[1].Buf, right.Buffers[1].Buf, + left.Offset, right.Offset, out.Buffers[1].Buf, out.Offset, out.Len) + return nil +} + +func (XorOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + if !left.IsValid() { + return nil + } + + outBM := out.Buffers[1].Buf + if left.(*scalar.Boolean).Value { + bitutil.InvertBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + outBM, int(out.Offset)) + } else { + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + outBM, int(out.Offset)) + } + return nil +} + +func invertScalar(in scalar.Scalar) *scalar.Boolean { + if in.IsValid() { + return scalar.NewBooleanScalar(!in.(*scalar.Boolean).Value) + } + return in.(*scalar.Boolean) +} + +type AndNotOpKernel struct{} + +func (AndNotOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + bitutil.BitmapAndNot(left.Buffers[1].Buf, right.Buffers[1].Buf, left.Offset, right.Offset, + out.Buffers[1].Buf, out.Offset, right.Len) + return nil +} + +func (AndNotOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + if !left.IsValid() { + return nil + } + + outBM := out.Buffers[1].Buf + if left.(*scalar.Boolean).Value { + bitutil.InvertBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + outBM, int(out.Offset)) + } else { + bitutil.SetBitsTo(outBM, out.Offset, out.Len, false) + } + return nil +} + +func (AndNotOpKernel) CallScalarRight(ctx *exec.KernelCtx, left *exec.ArraySpan, right scalar.Scalar, out *exec.ExecResult) error { + return (AndOpKernel{}).CallScalarRight(ctx, left, invertScalar(right), out) +} + +type KleeneAndNotOpKernel struct{} + +func (KleeneAndNotOpKernel) Call(ctx *exec.KernelCtx, left, right *exec.ArraySpan, out *exec.ExecResult) error { + if left.UpdateNullCount() == 0 && right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + return (AndNotOpKernel{}).Call(ctx, left, right, out) + } + + computeWord := func(leftTrue, leftFalse, rightTrue, rightFalse uint64) (outValid, outData uint64) { + return leftFalse | rightTrue | (leftTrue & rightFalse), leftTrue & rightFalse + } + + return computeKleene(computeWord, ctx, left, right, out) +} + +func (KleeneAndNotOpKernel) CallScalarLeft(ctx *exec.KernelCtx, left scalar.Scalar, right *exec.ArraySpan, out *exec.ExecResult) error { + var ( + leftTrue = left.IsValid() && left.(*scalar.Boolean).Value + leftFalse = left.IsValid() && !left.(*scalar.Boolean).Value + ) + + switch { + case leftFalse: + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + bitutil.SetBitsTo(out.Buffers[1].Buf, out.Offset, out.Len, false) + case leftTrue: + if right.UpdateNullCount() == 0 { + bitutil.SetBitsTo(out.Buffers[0].Buf, out.Offset, out.Len, true) + out.Nulls = 0 + } else { + bitutil.CopyBitmap(right.Buffers[0].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } + bitutil.InvertBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + default: // scalar was null: out[i] is valid iff right[i] was true + if right.UpdateNullCount() == 0 { + bitutil.CopyBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[0].Buf, int(out.Offset)) + } else { + bitutil.BitmapAnd(right.Buffers[0].Buf, right.Buffers[1].Buf, right.Offset, right.Offset, + out.Buffers[0].Buf, out.Offset, right.Len) + } + bitutil.InvertBitmap(right.Buffers[1].Buf, int(right.Offset), int(right.Len), + out.Buffers[1].Buf, int(out.Offset)) + } + return nil +} + +func (KleeneAndNotOpKernel) CallScalarRight(ctx *exec.KernelCtx, left *exec.ArraySpan, right scalar.Scalar, out *exec.ExecResult) error { + return (KleeneAndOpKernel{}).CallScalarRight(ctx, left, invertScalar(right), out) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_amd64.go new file mode 100644 index 0000000..bf24682 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_amd64.go @@ -0,0 +1,110 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "golang.org/x/sys/cpu" +) + +var pureGo bool + +type cmpfn func(arrow.Type, []byte, []byte, []byte, int64, int) + +var comparisonMap map[CompareOperator][3]cmpfn + +func genCompareKernel[T exec.NumericTypes](op CompareOperator) *CompareData { + if pureGo { + return genGoCompareKernel(getCmpOp[T](op)) + } + + ty := exec.GetType[T]() + byteWidth := int(unsafe.Sizeof(T(0))) + comparisonFns := comparisonMap[op] + return &CompareData{ + funcAA: func(left, right, out []byte, offset int) { + length := int64(len(left) / byteWidth) + comparisonFns[0](ty, left, right, out, length, offset) + }, + funcAS: func(left, right, out []byte, offset int) { + length := int64(len(left) / byteWidth) + comparisonFns[1](ty, left, right, out, length, offset) + }, + funcSA: func(left, right, out []byte, offset int) { + length := int64(len(right) / byteWidth) + comparisonFns[2](ty, left, right, out, length, offset) + }, + } +} + +func init() { + if cpu.X86.HasAVX2 { + comparisonMap = map[CompareOperator][3]cmpfn{ + CmpEQ: { + comparisonEqualArrArrAvx2, + comparisonEqualArrScalarAvx2, + comparisonEqualScalarArrAvx2, + }, + CmpNE: { + comparisonNotEqualArrArrAvx2, + comparisonNotEqualArrScalarAvx2, + comparisonNotEqualScalarArrAvx2, + }, + CmpGT: { + comparisonGreaterArrArrAvx2, + comparisonGreaterArrScalarAvx2, + comparisonGreaterScalarArrAvx2, + }, + CmpGE: { + comparisonGreaterEqualArrArrAvx2, + comparisonGreaterEqualArrScalarAvx2, + comparisonGreaterEqualScalarArrAvx2, + }, + } + + } else if cpu.X86.HasSSE42 { + comparisonMap = map[CompareOperator][3]cmpfn{ + CmpEQ: { + comparisonEqualArrArrSSE4, + comparisonEqualArrScalarSSE4, + comparisonEqualScalarArrSSE4, + }, + CmpNE: { + comparisonNotEqualArrArrSSE4, + comparisonNotEqualArrScalarSSE4, + comparisonNotEqualScalarArrSSE4, + }, + CmpGT: { + comparisonGreaterArrArrSSE4, + comparisonGreaterArrScalarSSE4, + comparisonGreaterScalarArrSSE4, + }, + CmpGE: { + comparisonGreaterEqualArrArrSSE4, + comparisonGreaterEqualArrScalarSSE4, + comparisonGreaterEqualScalarArrSSE4, + }, + } + } else { + pureGo = true + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.go new file mode 100644 index 0000000..c9a951b --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.go @@ -0,0 +1,109 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _comparison_equal_arr_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualArrArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_arr_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_equal_arr_scalar_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualArrScalarAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_arr_scalar_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_equal_scalar_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualScalarArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_scalar_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_arr_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualArrArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_arr_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_arr_scalar_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualArrScalarAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_arr_scalar_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_scalar_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualScalarArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_scalar_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_arr_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterArrArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_arr_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_arr_scalar_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterArrScalarAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_arr_scalar_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_scalar_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterScalarArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_scalar_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_arr_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualArrArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_arr_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_arr_scalar_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualArrScalarAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_arr_scalar_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_scalar_arr_avx2(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualScalarArrAvx2(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_scalar_arr_avx2(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.s new file mode 100644 index 0000000..bfc999b --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_avx2_amd64.s @@ -0,0 +1,67310 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +TEXT ·_comparison_equal_arr_arr_avx2(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_20 + LONG $0x01c68349 // add r14, 1 + +LBB0_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5940f41 // sete r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0940f41 // sete r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3940f41 // sete r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7940f41 // sete r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2940f41 // sete r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6940f41 // sete r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4940f41 // sete r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1940f41 // sete r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_28 + JMP LBB0_123 + +LBB0_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_48: + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_48 + LONG $0x01c68349 // add r14, 1 + +LBB0_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB0_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x4e10fbc5; BYTE $0x08 // vmovsd xmm1, qword [rsi + 8] + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x4a2ef9c5; BYTE $0x08 // vucomisd xmm1, qword [rdx + 8] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x4610fbc5; BYTE $0x10 // vmovsd xmm0, qword [rsi + 16] + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0x4610fbc5; BYTE $0x18 // vmovsd xmm0, qword [rsi + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x4610fbc5; BYTE $0x20 // vmovsd xmm0, qword [rsi + 32] + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x4610fbc5; BYTE $0x28 // vmovsd xmm0, qword [rsi + 40] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x4610fbc5; BYTE $0x30 // vmovsd xmm0, qword [rsi + 48] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + LONG $0x4610fbc5; BYTE $0x38 // vmovsd xmm0, qword [rsi + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd7940f41 // sete r15b + LONG $0x4610fbc5; BYTE $0x40 // vmovsd xmm0, qword [rsi + 64] + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x4610fbc5; BYTE $0x48 // vmovsd xmm0, qword [rsi + 72] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x4610fbc5; BYTE $0x50 // vmovsd xmm0, qword [rsi + 80] + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0x4610fbc5; BYTE $0x58 // vmovsd xmm0, qword [rsi + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd3940f41 // sete r11b + LONG $0x4610fbc5; BYTE $0x60 // vmovsd xmm0, qword [rsi + 96] + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0x4610fbc5; BYTE $0x68 // vmovsd xmm0, qword [rsi + 104] + LONG $0xd2940f41 // sete r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x4610fbc5; BYTE $0x70 // vmovsd xmm0, qword [rsi + 112] + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x4610fbc5; BYTE $0x78 // vmovsd xmm0, qword [rsi + 120] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + QUAD $0x000000808610fbc5 // vmovsd xmm0, qword [rsi + 128] + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + QUAD $0x000000888610fbc5 // vmovsd xmm0, qword [rsi + 136] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + QUAD $0x000000908610fbc5 // vmovsd xmm0, qword [rsi + 144] + LONG $0xd6940f41 // sete r14b + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + QUAD $0x000000988610fbc5 // vmovsd xmm0, qword [rsi + 152] + LONG $0xd4940f41 // sete r12b + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a08610fbc5 // vmovsd xmm0, qword [rsi + 160] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a88610fbc5 // vmovsd xmm0, qword [rsi + 168] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b08610fbc5 // vmovsd xmm0, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b88610fbc5 // vmovsd xmm0, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c08610fbc5 // vmovsd xmm0, qword [rsi + 192] + LONG $0xd0940f41 // sete r8b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c88610fbc5 // vmovsd xmm0, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d08610fbc5 // vmovsd xmm0, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d88610fbc5 // vmovsd xmm0, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e08610fbc5 // vmovsd xmm0, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e88610fbc5 // vmovsd xmm0, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f08610fbc5 // vmovsd xmm0, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f88610fbc5 // vmovsd xmm0, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB0_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB0_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_56: + LONG $0x0410fbc5; BYTE $0xce // vmovsd xmm0, qword [rsi + 8*rcx] + LONG $0x042ef9c5; BYTE $0xca // vucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_56 + JMP LBB0_123 + +LBB0_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_6 + LONG $0x01c68349 // add r14, 1 + +LBB0_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB0_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7940f41 // sete r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7940f40 // sete dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2940f41 // sete r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3940f41 // sete r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4940f41 // sete r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5940f41 // sete r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1940f41 // sete r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0940f41 // sete r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB0_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB0_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_14 + JMP LBB0_123 + +LBB0_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_34 + LONG $0x01c68349 // add r14, 1 + +LBB0_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0940f41 // sete r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3940f41 // sete r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7940f41 // sete r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2940f41 // sete r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6940f41 // sete r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4940f41 // sete r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1940f41 // sete r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_42 + JMP LBB0_123 + +LBB0_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_70 + LONG $0x01c68349 // add r14, 1 + +LBB0_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5940f41 // sete r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0940f41 // sete r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3940f41 // sete r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7940f41 // sete r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2940f41 // sete r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6940f41 // sete r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4940f41 // sete r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1940f41 // sete r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_78 + JMP LBB0_123 + +LBB0_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_81 + LONG $0x01c68349 // add r14, 1 + +LBB0_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5940f41 // sete r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0940f41 // sete r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3940f41 // sete r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7940f41 // sete r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2940f41 // sete r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6940f41 // sete r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4940f41 // sete r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1940f41 // sete r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_89 + JMP LBB0_123 + +LBB0_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_103 + LONG $0x01c68349 // add r14, 1 + +LBB0_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0940f41 // sete r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3940f41 // sete r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7940f41 // sete r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2940f41 // sete r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6940f41 // sete r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4940f41 // sete r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1940f41 // sete r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_111 + JMP LBB0_123 + +LBB0_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_114: + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_114 + LONG $0x01c68349 // add r14, 1 + +LBB0_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB0_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x4e10fac5; BYTE $0x04 // vmovss xmm1, dword [rsi + 4] + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x4a2ef8c5; BYTE $0x04 // vucomiss xmm1, dword [rdx + 4] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x4610fac5; BYTE $0x08 // vmovss xmm0, dword [rsi + 8] + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0x4610fac5; BYTE $0x0c // vmovss xmm0, dword [rsi + 12] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x4610fac5; BYTE $0x10 // vmovss xmm0, dword [rsi + 16] + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x4610fac5; BYTE $0x14 // vmovss xmm0, dword [rsi + 20] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x4610fac5; BYTE $0x18 // vmovss xmm0, dword [rsi + 24] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + LONG $0x4610fac5; BYTE $0x1c // vmovss xmm0, dword [rsi + 28] + LONG $0xd5940f41 // sete r13b + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd7940f41 // sete r15b + LONG $0x4610fac5; BYTE $0x20 // vmovss xmm0, dword [rsi + 32] + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x4610fac5; BYTE $0x24 // vmovss xmm0, dword [rsi + 36] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x4610fac5; BYTE $0x28 // vmovss xmm0, dword [rsi + 40] + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0x4610fac5; BYTE $0x2c // vmovss xmm0, dword [rsi + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd3940f41 // sete r11b + LONG $0x4610fac5; BYTE $0x30 // vmovss xmm0, dword [rsi + 48] + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0x4610fac5; BYTE $0x34 // vmovss xmm0, dword [rsi + 52] + LONG $0xd2940f41 // sete r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x4610fac5; BYTE $0x38 // vmovss xmm0, dword [rsi + 56] + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x4610fac5; BYTE $0x3c // vmovss xmm0, dword [rsi + 60] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x4610fac5; BYTE $0x40 // vmovss xmm0, dword [rsi + 64] + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x4610fac5; BYTE $0x44 // vmovss xmm0, dword [rsi + 68] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x4610fac5; BYTE $0x48 // vmovss xmm0, dword [rsi + 72] + LONG $0xd6940f41 // sete r14b + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x4610fac5; BYTE $0x4c // vmovss xmm0, dword [rsi + 76] + LONG $0xd4940f41 // sete r12b + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x4610fac5; BYTE $0x50 // vmovss xmm0, dword [rsi + 80] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x4610fac5; BYTE $0x54 // vmovss xmm0, dword [rsi + 84] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x4610fac5; BYTE $0x58 // vmovss xmm0, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x4610fac5; BYTE $0x5c // vmovss xmm0, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0x4610fac5; BYTE $0x60 // vmovss xmm0, dword [rsi + 96] + LONG $0xd0940f41 // sete r8b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x4610fac5; BYTE $0x64 // vmovss xmm0, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x4610fac5; BYTE $0x68 // vmovss xmm0, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x4610fac5; BYTE $0x6c // vmovss xmm0, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x4610fac5; BYTE $0x70 // vmovss xmm0, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + LONG $0x4610fac5; BYTE $0x74 // vmovss xmm0, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + LONG $0x4610fac5; BYTE $0x78 // vmovss xmm0, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x4610fac5; BYTE $0x7c // vmovss xmm0, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB0_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB0_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_122: + LONG $0x0410fac5; BYTE $0x8e // vmovss xmm0, dword [rsi + 4*rcx] + LONG $0x042ef8c5; BYTE $0x8a // vucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_122 + JMP LBB0_123 + +LBB0_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_59 + LONG $0x01c68349 // add r14, 1 + +LBB0_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB0_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7940f41 // sete r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7940f40 // sete dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2940f41 // sete r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3940f41 // sete r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4940f41 // sete r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5940f41 // sete r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1940f41 // sete r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0940f41 // sete r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB0_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB0_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_67 + JMP LBB0_123 + +LBB0_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_92 + LONG $0x01c68349 // add r14, 1 + +LBB0_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5940f41 // sete r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0940f41 // sete r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3940f41 // sete r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7940f41 // sete r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2940f41 // sete r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6940f41 // sete r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4940f41 // sete r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1940f41 // sete r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_100 + +LBB0_123: + SUBQ $8, SP + RET + +DATA LCDATA1<>+0x000(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x008(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x010(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x018(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA1<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA1<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA1<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA1<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA1<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA1<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA1<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA1<>(SB), 8, $224 + +TEXT ·_comparison_equal_arr_scalar_avx2(SB), $1320-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1280(SP) + LEAQ LCDATA1<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_25 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_49 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_57 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_164 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_7: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_7 + LONG $0x01c38349 // add r11, 1 + +LBB1_9: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_101 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_11: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7940f40 // sete dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6940f41 // sete r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1940f41 // sete r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2940f41 // sete r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3940f41 // sete r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4940f41 // sete r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7940f41 // sete r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_11 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_102 + JMP LBB1_164 + +LBB1_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_39 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_65 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_73 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_164 + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_21 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_19: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_19 + LONG $0x01c38349 // add r11, 1 + +LBB1_21: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_105 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_23: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0xd1940f41 // sete r9b + LONG $0x462ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rsi + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x462ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rsi + 24] + LONG $0xd5940f41 // sete r13b + LONG $0x462ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rsi + 32] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x462ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rsi + 40] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x462ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rsi + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x462ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rsi + 56] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x462ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rsi + 64] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x462ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rsi + 72] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x462ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rsi + 80] + LONG $0xd7940f40 // sete dil + LONG $0x462ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rsi + 88] + LONG $0xd2940f41 // sete r10b + LONG $0x462ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rsi + 96] + LONG $0xd3940f41 // sete r11b + LONG $0x462ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rsi + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x462ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rsi + 112] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x462ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rsi + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + QUAD $0x00000080862ef9c5 // vucomisd xmm0, qword [rsi + 128] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + QUAD $0x00000088862ef9c5 // vucomisd xmm0, qword [rsi + 136] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + QUAD $0x00000090862ef9c5 // vucomisd xmm0, qword [rsi + 144] + QUAD $0x000000802494940f // sete byte [rsp + 128] + QUAD $0x00000098862ef9c5 // vucomisd xmm0, qword [rsi + 152] + QUAD $0x000000902494940f // sete byte [rsp + 144] + QUAD $0x000000a0862ef9c5 // vucomisd xmm0, qword [rsi + 160] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + QUAD $0x000000a8862ef9c5 // vucomisd xmm0, qword [rsi + 168] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + QUAD $0x000000b0862ef9c5 // vucomisd xmm0, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + QUAD $0x000000b8862ef9c5 // vucomisd xmm0, qword [rsi + 184] + LONG $0xd7940f41 // sete r15b + QUAD $0x000000c0862ef9c5 // vucomisd xmm0, qword [rsi + 192] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + QUAD $0x000000c8862ef9c5 // vucomisd xmm0, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + QUAD $0x000000d0862ef9c5 // vucomisd xmm0, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + QUAD $0x000000d8862ef9c5 // vucomisd xmm0, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + QUAD $0x000000e0862ef9c5 // vucomisd xmm0, qword [rsi + 224] + QUAD $0x000001402494940f // sete byte [rsp + 320] + QUAD $0x000000e8862ef9c5 // vucomisd xmm0, qword [rsi + 232] + QUAD $0x000001202494940f // sete byte [rsp + 288] + QUAD $0x000000f0862ef9c5 // vucomisd xmm0, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + QUAD $0x000000f8862ef9c5 // vucomisd xmm0, qword [rsi + 248] + LONG $0xd0940f41 // sete r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a0248c0244 // add r9b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_23 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_106 + JMP LBB1_164 + +LBB1_25: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_81 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_164 + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f6a8d4d // lea r13, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + WORD $0x894d; BYTE $0xd7 // mov r15, r10 + LONG $0xea490f4d // cmovns r13, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_31 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_29: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_29 + LONG $0x01c38349 // add r11, 1 + +LBB1_31: + LONG $0x05fdc149 // sar r13, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB1_108 + LONG $0x20fd8349 // cmp r13, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x0000011824bc894c // mov qword [rsp + 280], r15 + QUAD $0x0000018824ac894c // mov qword [rsp + 392], r13 + JB LBB1_35 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB1_165 + LONG $0xab048d4b // lea rax, [r11 + 4*r13] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB1_165 + +LBB1_35: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + +LBB1_36: + QUAD $0x0000018024ac2b4c // sub r13, qword [rsp + 384] + QUAD $0x0000009824ac894c // mov qword [rsp + 152], r13 + +LBB1_37: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0940f41 // sete r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7940f41 // sete r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5940f41 // sete r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3940f41 // sete r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6940f40 // sete sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7940f40 // sete dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2940f41 // sete r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4940f41 // sete r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1940f41 // sete r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6940f41 // sete r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000001102494940f // sete byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x30 // add r8b, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x40249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 320] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x58 // movzx edi, byte [rsp + 88] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x20 // movzx edx, byte [rsp + 32] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_37 + QUAD $0x0000011824bc8b4c // mov r15, qword [rsp + 280] + QUAD $0x0000018824ac8b4c // mov r13, qword [rsp + 392] + JMP LBB1_109 + +LBB1_39: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_93 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_164 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_45 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_43: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_43 + LONG $0x01c38349 // add r11, 1 + +LBB1_45: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_112 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB1_47: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7940f40 // sete dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6940f41 // sete r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1940f41 // sete r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2940f41 // sete r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3940f41 // sete r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4940f41 // sete r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7940f41 // sete r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_47 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_113 + JMP LBB1_164 + +LBB1_49: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_53 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_51: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_51 + LONG $0x01c38349 // add r11, 1 + +LBB1_53: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_116 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_55: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7940f40 // sete dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6940f41 // sete r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1940f41 // sete r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2940f41 // sete r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3940f41 // sete r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4940f41 // sete r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7940f41 // sete r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x68 // movzx edi, byte [rsp + 104] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_55 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_117 + JMP LBB1_164 + +LBB1_57: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_59: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_59 + LONG $0x01c38349 // add r11, 1 + +LBB1_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_120 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_63: + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7940f40 // sete dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6940f41 // sete r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1940f41 // sete r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2940f41 // sete r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3940f41 // sete r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4940f41 // sete r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7940f41 // sete r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_63 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_121 + JMP LBB1_164 + +LBB1_65: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_69 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_67: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_67 + LONG $0x01c38349 // add r11, 1 + +LBB1_69: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_123 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_71: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7940f40 // sete dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6940f41 // sete r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1940f41 // sete r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2940f41 // sete r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3940f41 // sete r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4940f41 // sete r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7940f41 // sete r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_71 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_124 + JMP LBB1_164 + +LBB1_73: + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_77 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_75: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_75 + LONG $0x01c38349 // add r11, 1 + +LBB1_77: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_126 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_79: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0xd1940f41 // sete r9b + LONG $0x462ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rsi + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x462ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rsi + 12] + LONG $0xd5940f41 // sete r13b + LONG $0x462ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rsi + 16] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x462ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rsi + 20] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x462ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rsi + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x462ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rsi + 28] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x462ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rsi + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x462ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rsi + 36] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x462ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rsi + 40] + LONG $0xd7940f40 // sete dil + LONG $0x462ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rsi + 44] + LONG $0xd2940f41 // sete r10b + LONG $0x462ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rsi + 48] + LONG $0xd3940f41 // sete r11b + LONG $0x462ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rsi + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x462ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rsi + 56] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x462ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rsi + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x462ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rsi + 64] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x462ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rsi + 68] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x462ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rsi + 72] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x462ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rsi + 76] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x462ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rsi + 80] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x462ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rsi + 84] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x462ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x462ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rsi + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x462ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rsi + 96] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x462ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x462ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x462ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x462ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rsi + 112] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x462ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rsi + 116] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x462ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x462ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rsi + 124] + LONG $0xd0940f41 // sete r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a0248c0244 // add r9b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_79 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_127 + JMP LBB1_164 + +LBB1_81: + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_85 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_83: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_83 + LONG $0x01c38349 // add r11, 1 + +LBB1_85: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_129 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018824bc894c // mov qword [rsp + 392], r15 + JB LBB1_89 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB1_168 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB1_168 + +LBB1_89: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + +LBB1_90: + QUAD $0x0000018024bc2b4c // sub r15, qword [rsp + 384] + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + +LBB1_91: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0940f41 // sete r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7940f41 // sete r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5940f41 // sete r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3940f41 // sete r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6940f40 // sete sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7940f40 // sete dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2940f41 // sete r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4940f41 // sete r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1940f41 // sete r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6940f41 // sete r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000001102494940f // sete byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x20 // add r8b, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x40249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 320] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x50 // movzx edi, byte [rsp + 80] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_91 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + JMP LBB1_130 + +LBB1_93: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_97 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_95: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_95 + LONG $0x01c38349 // add r11, 1 + +LBB1_97: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_133 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB1_99: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7940f40 // sete dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6940f41 // sete r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1940f41 // sete r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2940f41 // sete r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3940f41 // sete r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4940f41 // sete r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7940f41 // sete r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB1_99 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB1_134 + JMP LBB1_164 + +LBB1_101: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_102: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB1_135 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_104: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_104 + JMP LBB1_161 + +LBB1_105: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_106: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_136 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_138 + +LBB1_108: + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB1_109: + LONG $0x05e5c149 // shl r13, 5 + WORD $0x394d; BYTE $0xfd // cmp r13, r15 + JGE LBB1_164 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xe8 // sub r8, r13 + WORD $0xf749; BYTE $0xd5 // not r13 + WORD $0x014d; BYTE $0xfd // add r13, r15 + JE LBB1_132 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB1_141: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_141 + JMP LBB1_156 + +LBB1_112: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_113: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB1_125 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_115: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_115 + JMP LBB1_148 + +LBB1_116: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_117: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB1_122 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_119: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_119 + JMP LBB1_144 + +LBB1_120: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_121: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_142 + +LBB1_122: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_144 + +LBB1_123: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_124: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_146 + +LBB1_125: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_148 + +LBB1_126: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_127: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_150 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_152 + +LBB1_129: + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB1_130: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_154 + +LBB1_132: + WORD $0xf631 // xor esi, esi + JMP LBB1_157 + +LBB1_133: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_164 + +LBB1_134: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_159 + +LBB1_135: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_161 + +LBB1_136: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_137: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_137 + +LBB1_138: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + JMP LBB1_163 + +LBB1_142: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_143: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_143 + +LBB1_144: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + LONG $0x2e394466 // cmp word [rsi], r13w + JMP LBB1_163 + +LBB1_146: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_147: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_147 + +LBB1_148: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB1_163 + +LBB1_150: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_151: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_151 + +LBB1_152: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + JMP LBB1_163 + +LBB1_154: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB1_155: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_155 + +LBB1_156: + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB1_157: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000017824848b4c // mov r8, qword [rsp + 376] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB1_164 + +LBB1_159: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_160: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_160 + +LBB1_161: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_164 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + +LBB1_163: + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB1_164: + MOVQ 1280(SP), SP + VZEROUPPER + RET + +LBB1_165: + LONG $0xe0e58349 // and r13, -32 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024ac894c // mov qword [rsp + 384], r13 + LONG $0xab048d4b // lea rax, [r11 + 4*r13] + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_166: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc06ef9c5 // vmovd xmm0, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x1644b60f; BYTE $0x01 // movzx eax, byte [rsi + rdx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x1644b60f; BYTE $0x02 // movzx eax, byte [rsi + rdx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x80cf8149; WORD $0x0002; BYTE $0x00 // or r15, 640 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0xa0cb8149; WORD $0x0002; BYTE $0x00 // or r11, 672 + QUAD $0x000000c8249c894c // mov qword [rsp + 200], r11 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0xc0c88149; WORD $0x0002; BYTE $0x00 // or r8, 704 + QUAD $0x000000a82484894c // mov qword [rsp + 168], r8 + WORD $0x8948; BYTE $0xda // mov rdx, rbx + LONG $0xe0ca8148; WORD $0x0002; BYTE $0x00 // or rdx, 736 + QUAD $0x000000c024948948 // mov qword [rsp + 192], rdx + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x00cc8149; WORD $0x0003; BYTE $0x00 // or r12, 768 + QUAD $0x000000d824a4894c // mov qword [rsp + 216], r12 + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x20ce8149; WORD $0x0003; BYTE $0x00 // or r14, 800 + QUAD $0x000000b824b4894c // mov qword [rsp + 184], r14 + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0x40ca8149; WORD $0x0003; BYTE $0x00 // or r10, 832 + LONG $0x2454894c; BYTE $0x50 // mov qword [rsp + 80], r10 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0x60c98149; WORD $0x0003; BYTE $0x00 // or r9, 864 + LONG $0x244c894c; BYTE $0x48 // mov qword [rsp + 72], r9 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03800d48; WORD $0x0000 // or rax, 896 + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + LONG $0xa0cf8148; WORD $0x0003; BYTE $0x00 // or rdi, 928 + LONG $0x247c8948; BYTE $0x70 // mov qword [rsp + 112], rdi + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x00000100249c8948 // mov qword [rsp + 256], rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x38 // mov qword [rsp + 56], rcx + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + LONG $0x2031e3c4; WORD $0x1e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + rbx], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 3 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r15], 4 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r11], 5 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + r8], 6 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 7 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r12], 8 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r14], 9 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r10], 10 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r9], 11 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + LONG $0x2079a3c4; WORD $0x2e04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r13], 12 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + rdi], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r14], 1 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r12], 2 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r10], 3 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r11], 4 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r8], 5 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r9], 6 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r15], 7 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rbx], 10 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + rdx], 14 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x040116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 4 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x070116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 7 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x080116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 8 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x090116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 9 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0b0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 11 + QUAD $0x0c012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0e012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0f0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 15 + QUAD $0x0101366c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r14 + 1], 1 + QUAD $0x0201266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 2 + QUAD $0x0301166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 3 + QUAD $0x04011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 4 + QUAD $0x0501066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 5 + QUAD $0x06010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 6 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + QUAD $0x07013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0a011e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x02020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x060206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x070206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 7 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x080226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 2], 8 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x09022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 9 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0a020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 10 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0c0236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 12 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + QUAD $0x0602065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 2], 6 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x08021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 8 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x09021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x0b02065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 2], 11 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x010316642021e3c4 // vpinsrb xmm4, xmm11, byte [rsi + rdx + 3], 1 + QUAD $0x02030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x04030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 4 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x05030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x06030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 6 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x070306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 7 + QUAD $0x080326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 8 + QUAD $0x09032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 9 + QUAD $0x0a030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0203066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 2 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0303166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 3], 3 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x04033e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 3], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0603066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + QUAD $0x08031e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 3], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0903066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + QUAD $0x0f031e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x010406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x020406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 3 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x05040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x060406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 6 + QUAD $0x070406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 7 + QUAD $0x080426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 4], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 12 + QUAD $0x0d0436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 4], 13 + QUAD $0x0e0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 14 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 4], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0104065c2011e3c4 // vpinsrb xmm3, xmm13, byte [rsi + rax + 4], 1 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0204165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 2 + QUAD $0x0304165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 3 + QUAD $0x04043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 4 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0504165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06043e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 4], 6 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0704365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 7 + QUAD $0x08041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 8 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x09041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 10 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0b041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 11 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0c04065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 4], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 13 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0e043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 14 + QUAD $0x0f040e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 4], 15 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x01050e642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r9 + 5], 1 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x02053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 2 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x03050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + QUAD $0x05050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x06050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 6 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x07050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 7 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x080506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 14 + QUAD $0x0f0526642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 5], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0105066c2049e3c4 // vpinsrb xmm5, xmm6, byte [rsi + rax + 5], 1 + QUAD $0x0205166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0305066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0405166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 4 + QUAD $0x0505166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + QUAD $0x0705366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 7 + QUAD $0x0000010824b48b4c // mov r14, qword [rsp + 264] + QUAD $0x0805366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 8 + QUAD $0x09051e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 5], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + QUAD $0x0b051e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 5], 11 + QUAD $0x0c05066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 5], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0506442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 5], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x010606442019e3c4 // vpinsrb xmm0, xmm12, byte [rsi + rax + 6], 1 + QUAD $0x02063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 2 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x03060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 3 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x04061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 4 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x050616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 5 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x06061e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 6], 6 + QUAD $0x07062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 7 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x08060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 8 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x09062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 9 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0a060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 11 + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x0c0626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 6], 12 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0d0606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 6], 13 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0e060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01060e6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rcx + 6], 1 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x02060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x03060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 4 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + QUAD $0x0606166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 6], 6 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x07060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 7 + WORD $0x894d; BYTE $0xf2 // mov r10, r14 + QUAD $0x0806366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 8 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x09060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 10 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0b06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0d06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 13 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0e06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 14 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0f06366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 15 + QUAD $0x010706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 1 + QUAD $0x02073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 2 + QUAD $0x03070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 3 + QUAD $0x04071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 4 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x050736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 5 + QUAD $0x06071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x070716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 7 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x08071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 8 + QUAD $0x09072e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 7], 9 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0a0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 11 + QUAD $0x0c0726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 7], 12 + QUAD $0x0d0706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0f0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 15 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0107164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 1 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0207164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 2 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0307164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0407164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0607164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 6 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x07073e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 7], 7 + QUAD $0x0807164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 7], 8 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0907164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 9 + QUAD $0x0a070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 10 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x0b072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 11 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0c070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0e070e442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rcx + 7], 14 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f070e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010806442031e3c4 // vpinsrb xmm0, xmm9, byte [rsi + rax + 8], 1 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x020826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 8], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x03080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 3 + QUAD $0x04081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 4 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + QUAD $0x050836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x060806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x070816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 7 + QUAD $0x08081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 8 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x090806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 8], 9 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0a0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 10 + QUAD $0x0b080e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 8], 11 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x0c081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 15 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0108166c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rdx + 8], 1 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0208366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 8], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x03083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0508166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 5 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0608166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 6 + QUAD $0x07083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 7 + QUAD $0x0808166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 8], 8 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x09080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 9 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x0a083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 10 + QUAD $0x0b082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0f082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 15 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x01092e742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r13 + 9], 1 + QUAD $0x020926742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r12 + 9], 2 + QUAD $0x03090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 3 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x04090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 4 + QUAD $0x05091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 5 + QUAD $0x060906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x070916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x080906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 8 + QUAD $0x090906742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r8 + 9], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 11 + QUAD $0x0c091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0109067c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rax + 9], 1 + QUAD $0x0209367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0309067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0509067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0609067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0709067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 7 + QUAD $0x0809167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 9], 8 + QUAD $0x09090e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 9], 9 + QUAD $0x0a093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 12 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0d093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00044024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm5 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x010a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 1 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x020a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 3 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x040a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 4 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x050a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x060a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 6 + QUAD $0x070a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 7 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x080a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 8 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x090a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 10 + QUAD $0x0b0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 11 + QUAD $0x0c0a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0e0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 15 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x010a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x020a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + QUAD $0x040a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x050a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 5 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x060a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 7 + QUAD $0x080a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x090a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 9 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0a0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 11 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0c0a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 12 + QUAD $0x0d0a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 13 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0e0a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 15 + QUAD $0x010b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 1 + QUAD $0x020b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 3 + QUAD $0x040b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 4 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x050b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 5 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x060b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 6 + QUAD $0x070b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 7 + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + QUAD $0x080b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 8 + QUAD $0x090b264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 11], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x0d0b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 14 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x0f0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 15 + QUAD $0x010b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 11], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x020b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 4 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x050b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 5 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x060b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 6 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x070b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 7 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x080b26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 11], 8 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x090b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 9 + QUAD $0x0a0b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 10 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0b0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 11 + QUAD $0x0c0b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 11], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000420249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm3 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0e0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 14 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000400248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm1 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x010c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x020c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x030c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 3 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x040c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 4 + QUAD $0x050c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 5 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x060c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 6 + QUAD $0x070c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 7 + QUAD $0x080c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 8 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x090c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 9 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0a0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 11 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x0c0c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 12], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 13 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0e0c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 12], 14 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + QUAD $0x0f0c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 15 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x010c2e542051a3c4 // vpinsrb xmm2, xmm5, byte [rsi + r13 + 12], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x030c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 3 + QUAD $0x040c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x050c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x060c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 6 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x070c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 7 + QUAD $0x080c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x090c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 10 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0b0c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 11 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0c0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 13 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0e0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 15 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x010d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x020d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x030d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 3 + QUAD $0x040d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 4 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x050d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 5 + QUAD $0x060d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 6 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x070d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 7 + QUAD $0x080d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 8 + QUAD $0x090d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 9 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0a0d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 11 + QUAD $0x0c0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 12 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0d0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 13 + QUAD $0x0e0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 14 + QUAD $0x0f0d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 15 + QUAD $0x010d2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x030d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x040d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 4 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x050d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 5 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x060d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 6 + QUAD $0x070d3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 13], 7 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x080d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 8 + QUAD $0x090d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 10 + QUAD $0x0b0d264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 13], 11 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0c0d164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 13], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0d06442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 13], 15 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x0e2e // movzx edi, byte [rsi + r13 + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x0e36 // movzx edi, byte [rsi + r14 + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x010e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 1 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x020e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x030e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 3 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x040e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 14], 4 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x060e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 9 + QUAD $0x0a0e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 10 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0b0e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 12 + QUAD $0x0d0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 15 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x010e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 14], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x020e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x030e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 3 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x040e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 14], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x050e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 5 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x060e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 14], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 7 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x080e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x090e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 10 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0c0e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 13 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + LONG $0x7cb60f42; WORD $0x0f2e // movzx edi, byte [rsi + r13 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x010f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 1 + QUAD $0x020f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 2 + QUAD $0x030f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 3 + QUAD $0x040f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 4 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x050f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 5 + QUAD $0x060f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x070f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 7 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x080f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x090f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 9 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0a0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 10 + QUAD $0x0b0f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 11 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x0c0f2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 15], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 13 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0e0f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 15 + LONG $0x7cb60f42; WORD $0x0f36 // movzx edi, byte [rsi + r14 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x010f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 1 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x030f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 3 + QUAD $0x040f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 4 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x050f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 5 + QUAD $0x060f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 6 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x070f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 7 + QUAD $0x080f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x090f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 10 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0b0f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 14 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0f0f3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x10 // movzx edi, byte [rsi + rax + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x011036442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 16], 1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x021006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 2 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x03101e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 16], 3 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x041006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 4 + QUAD $0x05101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 5 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x06100e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 16], 6 + QUAD $0x071016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 7 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x081016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 9 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0a101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 11 + QUAD $0x0c102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 13 + QUAD $0x0e1006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdi + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x01103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x02103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x03103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 4 + QUAD $0x05100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 5 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x06100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 6 + QUAD $0x0710164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 16], 7 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x08100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x09103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 10 + QUAD $0x0b10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0c103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 12 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0d10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 13 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0e102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 14 + QUAD $0x0f103e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 16], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rdi + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011136542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 17], 1 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x021106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 2 + QUAD $0x03111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 3 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x041116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 4 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x05113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 5 + QUAD $0x06110e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 17], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x07113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 7 + QUAD $0x081116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 8 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x091116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 9 + QUAD $0x0a111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 10 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0b111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 11 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x0c1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 14 + QUAD $0x0f1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x11 // movzx edi, byte [rsi + rax + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0111365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 1 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x02113e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 17], 2 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x03110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0411165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0511065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0611065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 6 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x07111e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 17], 7 + QUAD $0x08110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 8 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x09110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 12 + QUAD $0x0d11265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 17], 13 + QUAD $0x0e112e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f1106442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x12 // movzx edi, byte [rsi + rax + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 1 + QUAD $0x021206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x031206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 3 + QUAD $0x041216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 4 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x051206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 5 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x061206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x071206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x081206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 9 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0a1216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 10 + QUAD $0x0b121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 11 + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x0c1226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 12 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0d121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0e123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rdi + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0112364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 1 + QUAD $0x02123e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 18], 2 + QUAD $0x03120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 3 + QUAD $0x0412164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 4 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0512164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 5 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x0612364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 6 + QUAD $0x07121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 7 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + QUAD $0x0812164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 8 + QUAD $0x09120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 10 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x0b123e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 18], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 13 + QUAD $0x0e122e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 18], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x02133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 3 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x04133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 4 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x05132e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 19], 5 + QUAD $0x061306542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 19], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + QUAD $0x091306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 9 + QUAD $0x0a1316542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 19], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 11 + QUAD $0x0c1326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 12 + QUAD $0x0d131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 13 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0e130e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 19], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 15 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1316 // movzx edi, byte [rsi + r10 + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0113065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 1 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0213065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0313065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0413065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0513065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 5 + QUAD $0x0613365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0713065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 7 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0813065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0913065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 9 + QUAD $0x0a130e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 19], 10 + QUAD $0x0b133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 11 + QUAD $0x0c13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 14 + QUAD $0x0f131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x141e // movzx edi, byte [rsi + r11 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 1 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 3 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x04143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 4 + QUAD $0x05142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x06143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 6 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x07142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 7 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x08143e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 20], 8 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x09143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 9 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0a1426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 11 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x0c143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 13 + QUAD $0x0e140e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 20], 14 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x0f1436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 20], 15 + LONG $0x7cb60f42; WORD $0x1416 // movzx edi, byte [rsi + r10 + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x01141e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 20], 1 + QUAD $0x0214064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 2 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0314064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 4 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x05143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 6 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x0714164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 7 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x08143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x09143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 10 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x0c140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 13 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0e143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 15 + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 1 + QUAD $0x021516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 2 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x041506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 4 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x051506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x061506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 6 + QUAD $0x07152e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 21], 7 + QUAD $0x08153e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 21], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 9 + QUAD $0x0a1526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 10 + QUAD $0x0b150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 11 + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x0c1526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 14 + QUAD $0x0f1536542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 21], 15 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0215065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 2 + QUAD $0x0315065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0515065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0615065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 6 + QUAD $0x0715165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 7 + QUAD $0x0000010824ac8b4c // mov r13, qword [rsp + 264] + QUAD $0x08152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x09153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 9 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x0a153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 10 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x0b151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 11 + QUAD $0x0c150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 12 + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x0d15065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 13 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0e153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0f1516442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r10 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdi + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x02163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 2 + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x041616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 4 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x061616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x071616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 7 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x081616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 8 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x091616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 9 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0a1636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 22], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 11 + QUAD $0x0c1626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 22], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 13 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0e160e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 22], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 15 + LONG $0x7cb60f42; WORD $0x161e // movzx edi, byte [rsi + r11 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x01163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x02163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 2 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x0316264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 3 + QUAD $0x04160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 4 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x05160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 5 + QUAD $0x0616064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 6 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x07161e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 22], 7 + QUAD $0x08162e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 22], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0916064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 9 + QUAD $0x0a163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 10 + QUAD $0x0b161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 11 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x0c163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 12 + QUAD $0x0d16064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 22], 13 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0e160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 14 + QUAD $0x0f16164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rdi + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x011716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 23], 1 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x021706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 3 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x04173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 4 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x05173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 5 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x06172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x07173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x08173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 8 + QUAD $0x091716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 9 + QUAD $0x0a1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 10 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0b1716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 11 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0c1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 12 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0d171e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 23], 13 + QUAD $0x0e170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0f1716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rdi + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x01170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x02173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 2 + QUAD $0x0317265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 4 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x05173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 6 + QUAD $0x07171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 7 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x0817265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 8 + QUAD $0x0917065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 9 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0a171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 11 + QUAD $0x0c173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 13 + QUAD $0x0e170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 24], 1 + QUAD $0x021806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 2 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x031816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 24], 3 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x04183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 4 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x05183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 5 + QUAD $0x06182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 6 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x071806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x08183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 8 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x09182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 9 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0a183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 11 + QUAD $0x0c1836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 12 + QUAD $0x0d181e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 24], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0e183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 14 + QUAD $0x0f1816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 15 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x18 // movzx edi, byte [rsi + rdx + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x01180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 1 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x02180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x03183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 4 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x05183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 6 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x07183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 7 + QUAD $0x0818264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x09183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 9 + QUAD $0x0a181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 10 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0b183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 11 + QUAD $0x0c183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 12 + QUAD $0x0d18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 14 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0f181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 15 + LONG $0x0e7cb60f; BYTE $0x19 // movzx edi, byte [rsi + rcx + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 1 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x02191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 2 + QUAD $0x031916542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 25], 3 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x041906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 4 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x051936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x061906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 6 + QUAD $0x071906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 7 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x08190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 8 + QUAD $0x09192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 9 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0a193e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 25], 10 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0b1906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 15 + LONG $0x167cb60f; BYTE $0x19 // movzx edi, byte [rsi + rdx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x0119265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 1 + QUAD $0x02190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0319065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0419065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0519065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 5 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x06192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0719065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 7 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0819065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 8 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0919165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0d19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 13 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0e19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + QUAD $0x0f191e442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r11 + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1a1e // movzx edi, byte [rsi + r11 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x011a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 1 + QUAD $0x021a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x031a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 3 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x041a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 4 + QUAD $0x051a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 5 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x061a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x071a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 7 + QUAD $0x081a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x091a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 9 + QUAD $0x0a1a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 10 + QUAD $0x0b1a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 11 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0c1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 12 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x0d1a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 13 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0e1a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f1a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x1a // movzx edi, byte [rsi + rcx + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 1 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x021a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x031a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x041a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 4 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x051a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 5 + QUAD $0x061a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 6 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x071a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 7 + QUAD $0x0000010824ac8b4c // mov r13, qword [rsp + 264] + QUAD $0x081a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 8 + QUAD $0x091a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a1a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 10 + QUAD $0x0b1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 12 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0d1a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 13 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0e1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 15 + LONG $0x7cb60f42; WORD $0x1b1e // movzx edi, byte [rsi + r11 + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x011b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x021b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 2 + QUAD $0x031b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 3 + QUAD $0x041b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 4 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x051b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 5 + QUAD $0x061b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x071b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 7 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x081b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 8 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x091b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 9 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0a1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 10 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0b1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 11 + QUAD $0x0c1b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 12 + QUAD $0x0d1b3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 27], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0f1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 15 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x1b // movzx edi, byte [rsi + rdx + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x011b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 1 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x021b0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 27], 2 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x031b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 3 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x041b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 4 + QUAD $0x051b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 5 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x061b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 6 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x071b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 7 + QUAD $0x081b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x091b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 9 + QUAD $0x0a1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 10 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0b1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 11 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0c1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 12 + QUAD $0x0d1b165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 27], 13 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0e1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x1c // movzx edi, byte [rsi + rcx + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x021c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x031c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 3 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x041c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 4 + QUAD $0x051c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x061c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 6 + QUAD $0x071c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x081c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 8 + QUAD $0x091c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 11 + QUAD $0x000000f8249c8b48 // mov rbx, qword [rsp + 248] + QUAD $0x0c1c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0e1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 15 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1c26 // movzx edi, byte [rsi + r12 + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x011c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 1 + QUAD $0x021c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 2 + QUAD $0x031c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 3 + QUAD $0x041c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 4 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x051c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 5 + QUAD $0x061c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 6 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x071c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 7 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + QUAD $0x081c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x091c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 9 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0a1c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 10 + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x0b1c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 28], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c1c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 13 + QUAD $0x0e1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdi + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x011d2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 29], 1 + QUAD $0x021d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x031d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 3 + QUAD $0x041d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 4 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x051d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x061d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x071d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x081d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 8 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x091d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 9 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0a1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 11 + QUAD $0x0c1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0e1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 15 + LONG $0x7cb60f42; WORD $0x1d26 // movzx edi, byte [rsi + r12 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x011d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 29], 1 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x021d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x031d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 3 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x041d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 4 + QUAD $0x051d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x061d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 6 + QUAD $0x071d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 29], 7 + QUAD $0x081d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 29], 8 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x091d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 9 + QUAD $0x0a1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 10 + QUAD $0x0b1d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 11 + QUAD $0x0c1d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 12 + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + QUAD $0x0d1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 13 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x0e1d16642061a3c4 // vpinsrb xmm4, xmm3, byte [rsi + r10 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0f1d16442059e3c4 // vpinsrb xmm0, xmm4, byte [rsi + rdx + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1e06 // movzx edi, byte [rsi + r8 + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 30], 1 + LONG $0x7cb60f42; WORD $0x1f06 // movzx edi, byte [rsi + r8 + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 31], 1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + QUAD $0x031e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 3 + QUAD $0x031f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 3 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x051e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 30], 5 + QUAD $0x051f1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 31], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x061e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 6 + QUAD $0x061f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 6 + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0a1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 10 + QUAD $0x0a1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 14 + QUAD $0x0e1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e44b60f; BYTE $0x1e // movzx eax, byte [rsi + rcx + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 30], 1 + LONG $0x0e44b60f; BYTE $0x1f // movzx eax, byte [rsi + rcx + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f1e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 31], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 30], 4 + QUAD $0x041f267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 31], 4 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 7 + QUAD $0x071f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 7 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x081e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 8 + QUAD $0x081f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 8 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x091e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 30], 9 + QUAD $0x091f0e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 31], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + QUAD $0x0c1e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 12 + QUAD $0x0c1f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + QUAD $0x0e1e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 30], 14 + QUAD $0x0e1f167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 31], 14 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x0f1e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 30], 15 + QUAD $0x0f1f167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 512] + QUAD $0x0004c0249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 1216] + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0xf87485c5 // vpcmpeqb ymm7, ymm15, ymm0 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x0001e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI1_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 448] + LONG $0x556ffdc5; BYTE $0x40 // vmovdqa ymm2, yword 64[rbp] /* [rip + .LCPI1_2] */ + LONG $0xfadbc5c5 // vpand ymm7, ymm7, ymm2 + LONG $0xe0740dc5 // vpcmpeqb ymm12, ymm14, ymm0 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI1_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 416] + QUAD $0x00000080ad6f7dc5 // vmovdqa ymm13, yword 128[rbp] /* [rip + .LCPI1_4] */ + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0x6f7d41c4; BYTE $0xf5 // vmovdqa ymm14, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0004a024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1184] + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI1_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x00048024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1152] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI1_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x00044024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1088] + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x00046024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1120] + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000420249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1056] + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000400249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1024] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0003e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 992] + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x0003c024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 960] + LONG $0xdb1d41c4; BYTE $0xe6 // vpand ymm12, ymm12, ymm14 + LONG $0x6f7dc1c4; BYTE $0xde // vmovdqa ymm3, ymm14 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000380249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 896] + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x0003a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 928] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x00034024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 832] + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x000360249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 864] + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00030024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 768] + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000320249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 800] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0002c024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 704] + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x0002e024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 736] + LONG $0xf3db0dc5 // vpand ymm14, ymm14, ymm3 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x0002a0249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 672] + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x00022024ac74fdc5; BYTE $0x00 // vpcmpeqb ymm5, ymm0, yword [rsp + 544] + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x00024024b474fdc5; BYTE $0x00 // vpcmpeqb ymm6, ymm0, yword [rsp + 576] + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + QUAD $0x000280249c74fdc5; BYTE $0x00 // vpcmpeqb ymm3, ymm0, yword [rsp + 640] + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x00026024a474fdc5; BYTE $0x00 // vpcmpeqb ymm4, ymm0, yword [rsp + 608] + QUAD $0x00000080a5dbddc5 // vpand ymm4, ymm4, yword 128[rbp] /* [rip + .LCPI1_4] */ + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000140248c74fdc5; BYTE $0x00 // vpcmpeqb ymm1, ymm0, yword [rsp + 320] + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x000120249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 288] + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB1_166 + QUAD $0x0000018824ac8b4c // mov r13, qword [rsp + 392] + QUAD $0x0000018024ac3b4c // cmp r13, qword [rsp + 384] + QUAD $0x0000011824bc8b4c // mov r15, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB1_36 + JMP LBB1_109 + +LBB1_168: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB1_169: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rcx + 2] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x000000f824948948 // mov qword [rsp + 248], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + LONG $0x40cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 576 + QUAD $0x00000100249c8948 // mov qword [rsp + 256], rbx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0x80cc8149; WORD $0x0002; BYTE $0x00 // or r12, 640 + QUAD $0x000000d024a4894c // mov qword [rsp + 208], r12 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0xa0ce8149; WORD $0x0002; BYTE $0x00 // or r14, 672 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xe0cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 736 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x00c98149; WORD $0x0003; BYTE $0x00 // or r9, 768 + QUAD $0x000000e0248c894c // mov qword [rsp + 224], r9 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + LONG $0x247c894c; BYTE $0x70 // mov qword [rsp + 112], r15 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x40cb8149; WORD $0x0003; BYTE $0x00 // or r11, 832 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x60ca8149; WORD $0x0003; BYTE $0x00 // or r10, 864 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000802484894c // mov qword [rsp + 128], r8 + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xa0ca8148; WORD $0x0003; BYTE $0x00 // or rdx, 928 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000108248c8948 // mov qword [rsp + 264], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x50 // mov qword [rsp + 80], rcx + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + LONG $0x2031e3c4; WORD $0x1e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + rbx], 2 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 3 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r12], 4 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r14], 5 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 6 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdi], 7 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x000000a024bc8948 // mov qword [rsp + 160], rdi + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r9], 8 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r15], 9 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r11], 10 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r10], 11 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r8], 12 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + rdx], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r14], 1 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r10], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r12], 3 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r8], 4 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r11], 5 + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r9], 6 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r15], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rbx], 10 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + rdx], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x040116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x07012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 7 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x08012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 8 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x09012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0b0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 12 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0e0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 14 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0f0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 15 + QUAD $0x0101366c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r14 + 1], 1 + QUAD $0x0201166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 2 + QUAD $0x0301266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 3 + QUAD $0x0401066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 4 + QUAD $0x05011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 5 + QUAD $0x06010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 6 + QUAD $0x07013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0a011e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 1 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x02020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x06020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x070216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x080206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 8 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x09022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 9 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0a022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 10 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0c0236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 12 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x08021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x09021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0b021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x010306642021a3c4 // vpinsrb xmm4, xmm11, byte [rsi + r8 + 3], 1 + QUAD $0x02030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x04031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 5 + QUAD $0x06030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 6 + QUAD $0x070316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x080316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 8 + QUAD $0x090326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 9 + QUAD $0x0a032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0e030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0f031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x02031e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 3], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0303066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0503166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 3], 5 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x0603366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0803066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 8 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x09033e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 3], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f0326442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x010406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x020406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 3 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + QUAD $0x05040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 5 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x060406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x070406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 7 + QUAD $0x080416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 13 + QUAD $0x0e040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 14 + QUAD $0x0f041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 15 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0104065c2011e3c4 // vpinsrb xmm3, xmm13, byte [rsi + rax + 4], 1 + QUAD $0x02041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 2 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x03041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0404065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 4 + QUAD $0x0504165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 5 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x0604365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 6 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0704165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 7 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x08040e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 4], 8 + QUAD $0x09043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0a041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 10 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0b04365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 13 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x0e043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 14 + QUAD $0x0f04265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 4], 15 + QUAD $0x010506642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r8 + 5], 1 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x02053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 2 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x03051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + QUAD $0x05050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 5 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x06052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x07050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 7 + QUAD $0x080516642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 5], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 9 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0a050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0b0516642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 5], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 12 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x0d0506642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 5], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 15 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x0105266c2049a3c4 // vpinsrb xmm5, xmm6, byte [rsi + r12 + 5], 1 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0205166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 2 + QUAD $0x03051e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 5], 3 + QUAD $0x0405066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 4 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0505066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + QUAD $0x0705166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 5], 7 + QUAD $0x08050e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 5], 8 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x09050e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 5], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + QUAD $0x0b05366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0506442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 5], 15 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x01061e442019a3c4 // vpinsrb xmm0, xmm12, byte [rsi + r11 + 6], 1 + QUAD $0x02063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 2 + QUAD $0x03061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x040606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 5 + QUAD $0x06062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x070616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x080606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 9 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0a0636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 6], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b0616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 12 + QUAD $0x0d0606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 6], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 14 + QUAD $0x0f060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 15 + QUAD $0x0106266c2041a3c4 // vpinsrb xmm5, xmm7, byte [rsi + r12 + 6], 1 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x02060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x04060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x06061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 6 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x07060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 7 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0806266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 6], 8 + QUAD $0x09060e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 6], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 10 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x0b060e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 6], 11 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + QUAD $0x0c06066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 6], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d062e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 6], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 14 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 15 + QUAD $0x01071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 1 + QUAD $0x02073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 3 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x04071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 5 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x06070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 6 + QUAD $0x070716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x080716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 9 + QUAD $0x0a0736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 10 + QUAD $0x0b0716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 11 + QUAD $0x0c0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 13 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0e073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 15 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x01070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 1 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x02070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 3 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0407164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + QUAD $0x06071e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 7], 6 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x07072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 7 + QUAD $0x0807264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 7], 8 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0907164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 10 + QUAD $0x0b070e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 7], 11 + QUAD $0x0c07064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 7], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e070e442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rcx + 7], 14 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f070e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x01080e442031e3c4 // vpinsrb xmm0, xmm9, byte [rsi + rcx + 8], 1 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x020806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 8], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 3 + QUAD $0x04081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 5 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x06080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x070816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 7 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x080836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 8 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x090816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 8], 9 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0a081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0b0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 11 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0c0826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 8], 12 + QUAD $0x0d0806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 13 + QUAD $0x0e083e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 8], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 15 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0108066c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rax + 8], 1 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x02080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0308066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0508066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 5 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x06083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 6 + QUAD $0x07082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0808066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0908066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a08066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 10 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0b08066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0f08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 15 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x01092e742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r13 + 9], 1 + QUAD $0x020906742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r8 + 9], 2 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x030916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 3 + QUAD $0x04091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x050916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 5 + QUAD $0x06090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x07090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 7 + QUAD $0x080936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 8 + QUAD $0x090916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 9 + QUAD $0x0a091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 11 + QUAD $0x0c0926742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r12 + 9], 12 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x0d090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 14 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0f092e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r13 + 9], 15 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x01090e7c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rcx + 9], 1 + QUAD $0x02090e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 9], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x05091e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r11 + 9], 5 + QUAD $0x06093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 6 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x07091e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 9], 7 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x08090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x09090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 10 + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00044024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm5 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x010a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 1 + QUAD $0x020a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x030a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x040a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 4 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x050a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 5 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x060a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 6 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x070a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 7 + QUAD $0x080a365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 10], 8 + QUAD $0x090a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 12 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x0d0a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 13 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0e0a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 14 + QUAD $0x0f0a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 15 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x010a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 1 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x020a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 2 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x040a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 4 + QUAD $0x050a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 5 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x060a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 6 + QUAD $0x070a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x080a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x090a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0a0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 10 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0b0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 14 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0f0a2e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 10], 15 + QUAD $0x010b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 1 + QUAD $0x020b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 2 + QUAD $0x030b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 3 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x040b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 4 + QUAD $0x050b264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 11], 5 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x060b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 6 + QUAD $0x070b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 7 + WORD $0x894d; BYTE $0xcc // mov r12, r9 + QUAD $0x080b364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 11], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x090b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a0b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0b0b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 12 + QUAD $0x0d0b164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 11], 13 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x0e0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 14 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0f0b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 15 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x010b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 11], 1 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x020b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x040b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x050b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 5 + QUAD $0x060b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 11], 6 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x070b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 11], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x080b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 8 + QUAD $0x090b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 10 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0b0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000420249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm3 + QUAD $0x0e0b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 11], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000400248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm1 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x010c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x020c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 2 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x030c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 3 + QUAD $0x040c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 4 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x050c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 12], 5 + QUAD $0x060c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 6 + QUAD $0x070c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 12], 7 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x080c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 12], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 12 + QUAD $0x0d0c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 13 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0e0c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 15 + QUAD $0x010c16542051e3c4 // vpinsrb xmm2, xmm5, byte [rsi + rdx + 12], 1 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x020c36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 12], 2 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x030c1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 12], 3 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x040c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 4 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x050c36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 12], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 6 + QUAD $0x070c0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 12], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x080c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x090c1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 12], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0a0c1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 12], 10 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0b0c1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 12], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c0c1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 12], 12 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0d0c0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 12], 13 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x0e0c06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 12], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f0c1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 12], 15 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x010d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 1 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x020d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 2 + QUAD $0x030d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 13], 3 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x040d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 4 + QUAD $0x050d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 5 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x060d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 13], 6 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x070d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 7 + QUAD $0x080d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 8 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x090d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 9 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0a0d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b0d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 11 + QUAD $0x0c0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 12 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x0d0d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 13 + QUAD $0x0e0d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 13], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 15 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x010d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + QUAD $0x030d1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 13], 3 + QUAD $0x040d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 4 + QUAD $0x050d364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 13], 5 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x060d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 6 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x070d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 7 + QUAD $0x080d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x090d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 10 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0b0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 12 + QUAD $0x0d0d0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 13], 13 + QUAD $0x0e0d064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0d06442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 13], 15 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x0e2e // movzx edi, byte [rsi + r13 + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x010e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 1 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + QUAD $0x020e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x030e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 3 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x040e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 4 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x050e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 14], 5 + QUAD $0x060e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x070e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 7 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x080e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 8 + QUAD $0x090e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 14], 9 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0a0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c0e3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 14], 12 + QUAD $0x0d0e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 14], 13 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0e0e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 14 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0f0e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 15 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x010e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 1 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x020e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x030e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 14], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x040e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 4 + QUAD $0x050e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x060e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 6 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x070e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x080e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 8 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x090e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 9 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0a0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 10 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + LONG $0x7cb60f42; WORD $0x0f2e // movzx edi, byte [rsi + r13 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 1 + QUAD $0x020f1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 15], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 3 + QUAD $0x040f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 4 + QUAD $0x050f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 5 + QUAD $0x060f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 6 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x070f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 7 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + QUAD $0x080f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 9 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0a0f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 10 + QUAD $0x0b0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 13 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0e0f2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 15], 14 + QUAD $0x0f0f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0f // movzx edi, byte [rsi + rax + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x010f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 1 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x020f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 2 + QUAD $0x030f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x040f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 4 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x050f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 6 + QUAD $0x070f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x080f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 8 + QUAD $0x090f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 10 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0b0f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d0f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 13 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x0e0f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 14 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f0f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x1016 // movzx edi, byte [rsi + r10 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x01100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 1 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x02100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 3 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x04100e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 16], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 5 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x06100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 6 + QUAD $0x07103e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 16], 7 + QUAD $0x081006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09100e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 16], 9 + QUAD $0x0a101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 12 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x0d1006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 13 + QUAD $0x0e102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rbx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x01103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 1 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x02103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 2 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x03103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 3 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x04102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 4 + QUAD $0x0510164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 5 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0610164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 6 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x0710164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 7 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0810164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 8 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0910164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a10164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 10 + QUAD $0x0b10364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 16], 11 + QUAD $0x0c10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 12 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0d103e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 16], 13 + QUAD $0x0e101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 14 + QUAD $0x0f10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 15 + LONG $0x7cb60f42; WORD $0x1116 // movzx edi, byte [rsi + r10 + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x011106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 1 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x021116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 2 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x031116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 3 + QUAD $0x04110e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 17], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 5 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x06111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x071106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 7 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x081136542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 17], 8 + QUAD $0x09110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 11 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0c1126542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 17], 12 + QUAD $0x0d1106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 15 + LONG $0x1e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rbx + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x01110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 1 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x02110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 2 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0311065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 17], 3 + QUAD $0x04112e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 17], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x05113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x08113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 8 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x09113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 9 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0a110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 10 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0b113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 12 + QUAD $0x0d113e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 17], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f113e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rdi + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rdi + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x01123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 1 + QUAD $0x021216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 2 + QUAD $0x031216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 3 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x04123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x05123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 5 + QUAD $0x06121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x071216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 7 + QUAD $0x081236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 18], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x091216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a1216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 10 + QUAD $0x0b1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 11 + QUAD $0x0c1226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 15 + LONG $0x1e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rbx + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x01122e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 18], 1 + QUAD $0x02120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 2 + QUAD $0x0312064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 3 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0412164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 18], 4 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0512364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0612064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 6 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x07121e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 18], 7 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x08120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0912064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 9 + QUAD $0x0a120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 10 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0b123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 15 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x021326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x03133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 3 + QUAD $0x04133e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 19], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x05133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 5 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x06133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x09133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 9 + QUAD $0x0a1316542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 19], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 12 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x0d133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 13 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0e130e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 19], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1306542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 19], 15 + LONG $0x1e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rbx + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01132e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 19], 1 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0213165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 2 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0313165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 3 + QUAD $0x0413165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 4 + QUAD $0x0513365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 5 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x06131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 6 + QUAD $0x07131e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 19], 7 + QUAD $0x08130e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 19], 8 + QUAD $0x0913065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 9 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0a131e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 19], 10 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0b13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 11 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0c132e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 19], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 14 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + QUAD $0x0f13365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x143e // movzx edi, byte [rsi + r15 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x01140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 1 + QUAD $0x021426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x031406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 3 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x041426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 4 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x051416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 20], 5 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x061406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x071406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 13 + QUAD $0x0e140e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 20], 14 + QUAD $0x0f1406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 20], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x14 // movzx edi, byte [rsi + rax + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0114064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 20], 1 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0214064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 2 + QUAD $0x0314164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0414064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 20], 4 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0514164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 5 + QUAD $0x06141e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 20], 6 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x0714164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 7 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0814164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 8 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0914164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 9 + QUAD $0x0a141e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 20], 10 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x0b141e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 20], 11 + QUAD $0x0c142e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 20], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d142e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 20], 13 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x0e140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 14 + QUAD $0x0f14364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 15 + LONG $0x7cb60f42; WORD $0x153e // movzx edi, byte [rsi + r15 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 1 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x02150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 3 + QUAD $0x041526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 4 + QUAD $0x051516542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 21], 5 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x061516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 6 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x071526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 7 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x08150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 8 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x091516542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 21], 9 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0a153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 10 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0b1536542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 21], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 12 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x0d151e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 21], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 15 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3e7cb60f; BYTE $0x15 // movzx edi, byte [rsi + rdi + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x01153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 1 + QUAD $0x0215065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 2 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x03153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 3 + QUAD $0x0415065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 4 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0515065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 5 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x0615065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 6 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x07153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0815065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0915065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a15065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 10 + QUAD $0x0b151e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 21], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c15065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 12 + QUAD $0x0d152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 13 + QUAD $0x0e150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1506442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x16 // movzx edi, byte [rsi + rax + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x02163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x03163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 3 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x04163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 4 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x05162e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 22], 5 + QUAD $0x061616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 6 + QUAD $0x071626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 22], 7 + QUAD $0x08160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 8 + QUAD $0x091616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 22], 9 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0a1626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 22], 10 + QUAD $0x0b1636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 22], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 12 + QUAD $0x0d161e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 22], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rbx + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0116164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 1 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x02160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 2 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0316164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 3 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0416164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 4 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0516164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 5 + QUAD $0x0616064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 22], 6 + QUAD $0x07163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 7 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0816164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 8 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0916364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a16164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 10 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x0b160e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 22], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c16164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 12 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0d16164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 13 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x0e163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0f16164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 22], 15 + LONG $0x067cb60f; BYTE $0x17 // movzx edi, byte [rsi + rax + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x011706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x021706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 2 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x031716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x041706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 4 + QUAD $0x05172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 5 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x06173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x08173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x09173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 9 + QUAD $0x0a1726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 23], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 11 + QUAD $0x0c171e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 23], 12 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x0d173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 14 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0f172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 15 + LONG $0x1e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rbx + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0117165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 1 + QUAD $0x02170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 3 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x04171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 4 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0517165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 5 + QUAD $0x0617065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 7 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0817065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 8 + QUAD $0x0917365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 9 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0a17265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 10 + QUAD $0x0b170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 11 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0c171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 12 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0d17365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 13 + QUAD $0x0e173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 14 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0f170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rdi + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x01183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 1 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x02183e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 24], 2 + QUAD $0x031816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 3 + QUAD $0x041806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 5 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x061806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x071816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a1806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d1806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 14 + QUAD $0x0f182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x18 // movzx edi, byte [rsi + rax + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0118064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 1 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0218064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 2 + QUAD $0x03180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 3 + QUAD $0x04181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 4 + QUAD $0x0518164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 5 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x0618164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0718064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 7 + QUAD $0x0818064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 8 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x09182e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 24], 9 + QUAD $0x0a18264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 10 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0b18264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 11 + QUAD $0x0c181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 12 + QUAD $0x0d18364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 24], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 14 + QUAD $0x0f180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 15 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x1906 // movzx edi, byte [rsi + r8 + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x01190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 1 + QUAD $0x02193e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 25], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 3 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x04193e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 25], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 5 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x06190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 6 + QUAD $0x071916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 7 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x08190e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 25], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x091916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 9 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x0a191e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 25], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c1916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 12 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x0d1936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 13 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0e1916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 14 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0f1916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 15 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + LONG $0x167cb60f; BYTE $0x19 // movzx edi, byte [rsi + rdx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0119165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 1 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x02193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 2 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x03193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x05193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 5 + QUAD $0x0619165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x08193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 8 + QUAD $0x09192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 9 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0a192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 10 + QUAD $0x0b19265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 12 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0d19165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 13 + QUAD $0x0e19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f193e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rdi + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + LONG $0x7cb60f42; WORD $0x1a06 // movzx edi, byte [rsi + r8 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x011a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x021a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x031a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 3 + QUAD $0x041a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 5 + QUAD $0x061a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x071a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 7 + QUAD $0x081a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 9 + QUAD $0x0a1a1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 26], 10 + QUAD $0x0b1a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 11 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x0c1a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 12 + QUAD $0x0d1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 13 + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 15 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x1a26 // movzx edi, byte [rsi + r12 + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 1 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x021a364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 26], 2 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x031a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x041a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 4 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x051a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x061a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x071a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 7 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x081a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x091a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 9 + QUAD $0x0a1a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 10 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x0b1a1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 26], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 12 + QUAD $0x0d1a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0f1a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 15 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + LONG $0x167cb60f; BYTE $0x1b // movzx edi, byte [rsi + rdx + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 1 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x021b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 2 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x031b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 3 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x041b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 4 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x051b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 5 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x061b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x071b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x081b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x091b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 9 + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + QUAD $0x0a1b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 27], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 11 + QUAD $0x0c1b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 12 + QUAD $0x0d1b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e1b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 15 + LONG $0x7cb60f42; WORD $0x1b26 // movzx edi, byte [rsi + r12 + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x011b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 1 + QUAD $0x021b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 2 + QUAD $0x031b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x041b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 4 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x051b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 5 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x061b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 6 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x071b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x081b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 8 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x091b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 9 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0a1b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 10 + QUAD $0x0b1b1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 27], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c1b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d1b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 13 + QUAD $0x0e1b065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 27], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1b065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x1c // movzx edi, byte [rsi + rax + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x011c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 1 + QUAD $0x021c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 2 + QUAD $0x031c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x041c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 4 + QUAD $0x051c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 5 + QUAD $0x061c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 28], 6 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x071c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 8 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x091c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 9 + QUAD $0x0a1c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 10 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0b1c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 12 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x0d1c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 13 + QUAD $0x0e1c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f1c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x1c // movzx edi, byte [rsi + rax + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x011c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 1 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x021c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 2 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x031c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x041c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 4 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x051c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 28], 5 + QUAD $0x061c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 6 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x071c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x081c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 8 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x091c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 9 + QUAD $0x0a1c264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 28], 10 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0b1c264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 28], 11 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0c1c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 15 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3e7cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdi + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 1 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + QUAD $0x021d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x031d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 3 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x041d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x051d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 5 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x061d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 6 + QUAD $0x071d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x081d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 8 + QUAD $0x091d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 9 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0a1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 10 + QUAD $0x0b1d06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 29], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c1d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 12 + QUAD $0x0d1d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 14 + QUAD $0x0f1d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 15 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x1d06 // movzx edi, byte [rsi + r8 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x011d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 1 + QUAD $0x021d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 2 + QUAD $0x031d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 3 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x041d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 4 + QUAD $0x051d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 5 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x061d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 6 + QUAD $0x071d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 7 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x081d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x091d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 10 + QUAD $0x0b1d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 11 + QUAD $0x0c1d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 29], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 13 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x0e1d3e642061a3c4 // vpinsrb xmm4, xmm3, byte [rsi + r15 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1d06442059e3c4 // vpinsrb xmm0, xmm4, byte [rsi + rax + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x067cb60f; BYTE $0x1e // movzx edi, byte [rsi + rax + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x011e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 1 + LONG $0x067cb60f; BYTE $0x1f // movzx edi, byte [rsi + rax + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 1 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x021e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 30], 2 + QUAD $0x021f1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 31], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x061e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 6 + QUAD $0x061f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 6 + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + QUAD $0x0a1e1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 30], 10 + QUAD $0x0a1f1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 31], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x0c1e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 30], 12 + QUAD $0x0c1f164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 31], 12 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 14 + QUAD $0x0e1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + LONG $0x44b60f42; WORD $0x1e06 // movzx eax, byte [rsi + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 30], 1 + LONG $0x44b60f42; WORD $0x1f06 // movzx eax, byte [rsi + r8 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f0e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 31], 1 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 30], 4 + QUAD $0x041f2e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r13 + 31], 4 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + QUAD $0x061e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 30], 6 + QUAD $0x061f167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 31], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x071e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 7 + QUAD $0x071f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 7 + QUAD $0x081e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 8 + QUAD $0x081f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x091e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 9 + QUAD $0x091f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x0b1e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 30], 11 + QUAD $0x0b1f267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 31], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 12 + QUAD $0x0c1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + QUAD $0x0e1e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 14 + QUAD $0x0e1f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 15 + QUAD $0x0f1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 512] + QUAD $0x0004c0249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 1216] + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0xf87485c5 // vpcmpeqb ymm7, ymm15, ymm0 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x0001e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI1_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 448] + LONG $0x556ffdc5; BYTE $0x40 // vmovdqa ymm2, yword 64[rbp] /* [rip + .LCPI1_2] */ + LONG $0xfadbc5c5 // vpand ymm7, ymm7, ymm2 + LONG $0xe0740dc5 // vpcmpeqb ymm12, ymm14, ymm0 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI1_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 416] + QUAD $0x00000080ad6f7dc5 // vmovdqa ymm13, yword 128[rbp] /* [rip + .LCPI1_4] */ + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0x6f7d41c4; BYTE $0xf5 // vmovdqa ymm14, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0004a024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1184] + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI1_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x00048024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1152] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI1_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x00044024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1088] + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x00046024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1120] + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000420249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1056] + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000400249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1024] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0003e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 992] + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x0003c024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 960] + LONG $0xdb1d41c4; BYTE $0xe6 // vpand ymm12, ymm12, ymm14 + LONG $0x6f7dc1c4; BYTE $0xde // vmovdqa ymm3, ymm14 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000380249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 896] + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x0003a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 928] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x00034024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 832] + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x000360249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 864] + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00030024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 768] + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000320249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 800] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0002c024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 704] + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x0002e024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 736] + LONG $0xf3db0dc5 // vpand ymm14, ymm14, ymm3 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x0002a0249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 672] + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x00022024ac74fdc5; BYTE $0x00 // vpcmpeqb ymm5, ymm0, yword [rsp + 544] + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x00024024b474fdc5; BYTE $0x00 // vpcmpeqb ymm6, ymm0, yword [rsp + 576] + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + QUAD $0x000280249c74fdc5; BYTE $0x00 // vpcmpeqb ymm3, ymm0, yword [rsp + 640] + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x00026024a474fdc5; BYTE $0x00 // vpcmpeqb ymm4, ymm0, yword [rsp + 608] + QUAD $0x00000080a5dbddc5 // vpand ymm4, ymm4, yword 128[rbp] /* [rip + .LCPI1_4] */ + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000140248c74fdc5; BYTE $0x00 // vpcmpeqb ymm1, ymm0, yword [rsp + 320] + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x000120249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 288] + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB1_169 + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB1_90 + JMP LBB1_130 + +DATA LCDATA2<>+0x000(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x008(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x010(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x018(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA2<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA2<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA2<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA2<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA2<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA2<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA2<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA2<>(SB), 8, $224 + +TEXT ·_comparison_equal_scalar_arr_avx2(SB), $1320-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1280(SP) + LEAQ LCDATA2<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_17 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_32 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_60 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_72 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_157 + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_7: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_7 + LONG $0x01c38349 // add r11, 1 + +LBB2_9: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_13 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_11: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7940f40 // sete dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6940f40 // sete sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0940f41 // sete r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_13: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JE LBB2_127 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_16: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_16 + JMP LBB2_154 + +LBB2_17: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_46 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_83 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_94 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_157 + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_25 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_23: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_23 + LONG $0x01c38349 // add r11, 1 + +LBB2_25: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_29 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + +LBB2_27: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0xd0940f41 // sete r8b + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0xd5940f41 // sete r13b + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd3940f41 // sete r11b + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0xd7940f40 // sete dil + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + QUAD $0x000000802494940f // sete byte [rsp + 128] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + QUAD $0x000000882494940f // sete byte [rsp + 136] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000001402494940f // sete byte [rsp + 320] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000001202494940f // sete byte [rsp + 288] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000a024840244 // add r8b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x58 // add sil, byte [rsp + 88] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x60 // movzx esi, byte [rsp + 96] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x38 // movzx esi, byte [rsp + 56] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB2_27 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + +LBB2_29: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_136 + WORD $0xff31 // xor edi, edi + JMP LBB2_138 + +LBB2_32: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_105 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_157 + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_38 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_36: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xdc // mov r12, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_36 + LONG $0x01c38349 // add r11, 1 + +LBB2_38: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_128 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018824bc894c // mov qword [rsp + 392], r15 + JB LBB2_42 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB2_165 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB2_165 + +LBB2_42: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + +LBB2_43: + QUAD $0x0000018024bc2b4c // sub r15, qword [rsp + 384] + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + +LBB2_44: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343a45 // cmp r14b, byte [r12] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x24743a45; BYTE $0x01 // cmp r14b, byte [r12 + 1] + LONG $0xd2940f41 // sete r10b + LONG $0x24743a45; BYTE $0x02 // cmp r14b, byte [r12 + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x24743a45; BYTE $0x03 // cmp r14b, byte [r12 + 3] + LONG $0xd5940f41 // sete r13b + LONG $0x24743a45; BYTE $0x04 // cmp r14b, byte [r12 + 4] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x24743a45; BYTE $0x05 // cmp r14b, byte [r12 + 5] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x24743a45; BYTE $0x06 // cmp r14b, byte [r12 + 6] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x24743a45; BYTE $0x07 // cmp r14b, byte [r12 + 7] + LONG $0xd4940f41 // sete r12b + LONG $0x08713a44 // cmp r14b, byte [rcx + 8] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x09713a44 // cmp r14b, byte [rcx + 9] + LONG $0xd6940f40 // sete sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd7940f40 // sete dil + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd1940f41 // sete r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd3940f41 // sete r11b + LONG $0x0d713a44 // cmp r14b, byte [rcx + 13] + LONG $0xd7940f41 // sete r15b + LONG $0x0e713a44 // cmp r14b, byte [rcx + 14] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x0f713a44 // cmp r14b, byte [rcx + 15] + LONG $0xd0940f41 // sete r8b + LONG $0x10713a44 // cmp r14b, byte [rcx + 16] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x11713a44 // cmp r14b, byte [rcx + 17] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x12713a44 // cmp r14b, byte [rcx + 18] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x13713a44 // cmp r14b, byte [rcx + 19] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x14713a44 // cmp r14b, byte [rcx + 20] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x15713a44 // cmp r14b, byte [rcx + 21] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x16713a44 // cmp r14b, byte [rcx + 22] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x17713a44 // cmp r14b, byte [rcx + 23] + LONG $0xd6940f41 // sete r14b + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + QUAD $0x000001102494940f // sete byte [rsp + 272] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000014024940244 // add r10b, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xc4 // or r12b, al + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xd3 // or bl, r10b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000a024b40240 // add sil, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0845; BYTE $0xf8 // or r8b, r15b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xc308 // or bl, al + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x26 // mov byte [rsi], r12b + QUAD $0x0000009024bcb60f // movzx edi, byte [rsp + 144] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x01468844 // mov byte [rsi + 1], r8b + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + LONG $0x245cb60f; BYTE $0x20 // movzx ebx, byte [rsp + 32] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5688; BYTE $0x03 // mov byte [rsi + 3], dl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB2_44 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + JMP LBB2_129 + +LBB2_46: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_117 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_157 + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_50: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_50 + LONG $0x01c38349 // add r11, 1 + +LBB2_52: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_56 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_54: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7940f40 // sete dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3940f41 // sete r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0940f41 // sete r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_54 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_56: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JE LBB2_93 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_59: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_59 + JMP LBB2_146 + +LBB2_60: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_64 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_62: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_62 + LONG $0x01c38349 // add r11, 1 + +LBB2_64: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_68 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_66: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + LONG $0x2a3b4466 // cmp r13w, word [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0xd7940f40 // sete dil + LONG $0x6a3b4466; BYTE $0x04 // cmp r13w, word [rdx + 4] + LONG $0xd6940f41 // sete r14b + LONG $0x6a3b4466; BYTE $0x06 // cmp r13w, word [rdx + 6] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x6a3b4466; BYTE $0x08 // cmp r13w, word [rdx + 8] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6a3b4466; BYTE $0x0a // cmp r13w, word [rdx + 10] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x6a3b4466; BYTE $0x0c // cmp r13w, word [rdx + 12] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6a3b4466; BYTE $0x0e // cmp r13w, word [rdx + 14] + LONG $0xd3940f41 // sete r11b + LONG $0x6a3b4466; BYTE $0x10 // cmp r13w, word [rdx + 16] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6a3b4466; BYTE $0x12 // cmp r13w, word [rdx + 18] + LONG $0xd6940f40 // sete sil + LONG $0x6a3b4466; BYTE $0x14 // cmp r13w, word [rdx + 20] + LONG $0xd0940f41 // sete r8b + LONG $0x6a3b4466; BYTE $0x16 // cmp r13w, word [rdx + 22] + LONG $0xd1940f41 // sete r9b + LONG $0x6a3b4466; BYTE $0x18 // cmp r13w, word [rdx + 24] + LONG $0xd2940f41 // sete r10b + LONG $0x6a3b4466; BYTE $0x1a // cmp r13w, word [rdx + 26] + LONG $0xd4940f41 // sete r12b + LONG $0x6a3b4466; BYTE $0x1c // cmp r13w, word [rdx + 28] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6a3b4466; BYTE $0x1e // cmp r13w, word [rdx + 30] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6a3b4466; BYTE $0x20 // cmp r13w, word [rdx + 32] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6a3b4466; BYTE $0x22 // cmp r13w, word [rdx + 34] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6a3b4466; BYTE $0x24 // cmp r13w, word [rdx + 36] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6a3b4466; BYTE $0x26 // cmp r13w, word [rdx + 38] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6a3b4466; BYTE $0x28 // cmp r13w, word [rdx + 40] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6a3b4466; BYTE $0x2a // cmp r13w, word [rdx + 42] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6a3b4466; BYTE $0x2c // cmp r13w, word [rdx + 44] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6a3b4466; BYTE $0x2e // cmp r13w, word [rdx + 46] + LONG $0xd7940f41 // sete r15b + LONG $0x6a3b4466; BYTE $0x30 // cmp r13w, word [rdx + 48] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6a3b4466; BYTE $0x32 // cmp r13w, word [rdx + 50] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6a3b4466; BYTE $0x34 // cmp r13w, word [rdx + 52] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6a3b4466; BYTE $0x36 // cmp r13w, word [rdx + 54] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6a3b4466; BYTE $0x38 // cmp r13w, word [rdx + 56] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x6a3b4466; BYTE $0x3a // cmp r13w, word [rdx + 58] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x6a3b4466; BYTE $0x3c // cmp r13w, word [rdx + 60] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x6a3b4466; BYTE $0x3e // cmp r13w, word [rdx + 62] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x58 // add sil, byte [rsp + 88] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_66 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_68: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JE LBB2_82 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_71: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_71 + JMP LBB2_142 + +LBB2_72: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_74: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_74 + LONG $0x01c38349 // add r11, 1 + +LBB2_76: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_80 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_78: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + LONG $0x2a3b4466 // cmp r13w, word [rdx] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0xd7940f40 // sete dil + LONG $0x6a3b4466; BYTE $0x04 // cmp r13w, word [rdx + 4] + LONG $0xd6940f41 // sete r14b + LONG $0x6a3b4466; BYTE $0x06 // cmp r13w, word [rdx + 6] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6a3b4466; BYTE $0x08 // cmp r13w, word [rdx + 8] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6a3b4466; BYTE $0x0a // cmp r13w, word [rdx + 10] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x6a3b4466; BYTE $0x0c // cmp r13w, word [rdx + 12] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6a3b4466; BYTE $0x0e // cmp r13w, word [rdx + 14] + LONG $0xd3940f41 // sete r11b + LONG $0x6a3b4466; BYTE $0x10 // cmp r13w, word [rdx + 16] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6a3b4466; BYTE $0x12 // cmp r13w, word [rdx + 18] + LONG $0xd6940f40 // sete sil + LONG $0x6a3b4466; BYTE $0x14 // cmp r13w, word [rdx + 20] + LONG $0xd0940f41 // sete r8b + LONG $0x6a3b4466; BYTE $0x16 // cmp r13w, word [rdx + 22] + LONG $0xd1940f41 // sete r9b + LONG $0x6a3b4466; BYTE $0x18 // cmp r13w, word [rdx + 24] + LONG $0xd2940f41 // sete r10b + LONG $0x6a3b4466; BYTE $0x1a // cmp r13w, word [rdx + 26] + LONG $0xd4940f41 // sete r12b + LONG $0x6a3b4466; BYTE $0x1c // cmp r13w, word [rdx + 28] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6a3b4466; BYTE $0x1e // cmp r13w, word [rdx + 30] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6a3b4466; BYTE $0x20 // cmp r13w, word [rdx + 32] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6a3b4466; BYTE $0x22 // cmp r13w, word [rdx + 34] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6a3b4466; BYTE $0x24 // cmp r13w, word [rdx + 36] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6a3b4466; BYTE $0x26 // cmp r13w, word [rdx + 38] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6a3b4466; BYTE $0x28 // cmp r13w, word [rdx + 40] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6a3b4466; BYTE $0x2a // cmp r13w, word [rdx + 42] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6a3b4466; BYTE $0x2c // cmp r13w, word [rdx + 44] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6a3b4466; BYTE $0x2e // cmp r13w, word [rdx + 46] + LONG $0xd7940f41 // sete r15b + LONG $0x6a3b4466; BYTE $0x30 // cmp r13w, word [rdx + 48] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6a3b4466; BYTE $0x32 // cmp r13w, word [rdx + 50] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6a3b4466; BYTE $0x34 // cmp r13w, word [rdx + 52] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6a3b4466; BYTE $0x36 // cmp r13w, word [rdx + 54] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6a3b4466; BYTE $0x38 // cmp r13w, word [rdx + 56] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x6a3b4466; BYTE $0x3a // cmp r13w, word [rdx + 58] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x6a3b4466; BYTE $0x3c // cmp r13w, word [rdx + 60] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x6a3b4466; BYTE $0x3e // cmp r13w, word [rdx + 62] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_78 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_80: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_140 + +LBB2_82: + WORD $0xff31 // xor edi, edi + JMP LBB2_142 + +LBB2_83: + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_87 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_85: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_85 + LONG $0x01c38349 // add r11, 1 + +LBB2_87: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_91 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_89: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7940f40 // sete dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3940f41 // sete r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0940f41 // sete r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_89 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_91: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_144 + +LBB2_93: + WORD $0xff31 // xor edi, edi + JMP LBB2_146 + +LBB2_94: + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_98 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_96: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_96 + LONG $0x01c38349 // add r11, 1 + +LBB2_98: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_102 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + +LBB2_100: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0xd0940f41 // sete r8b + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0xd3940f41 // sete r11b + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0xd5940f41 // sete r13b + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd6940f41 // sete r14b + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + LONG $0xd6940f40 // sete sil + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0xd7940f40 // sete dil + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000a024840244 // add r8b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x58 // add sil, byte [rsp + 88] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x60 // movzx esi, byte [rsp + 96] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc6 // or r14b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x33 // mov byte [r11], r14b + LONG $0x2474b60f; BYTE $0x38 // movzx esi, byte [rsp + 56] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB2_100 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + +LBB2_102: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_148 + WORD $0xff31 // xor edi, edi + JMP LBB2_150 + +LBB2_105: + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_109 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_107: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xdc // mov r12, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_107 + LONG $0x01c38349 // add r11, 1 + +LBB2_109: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_132 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018824bc894c // mov qword [rsp + 392], r15 + JB LBB2_113 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB2_168 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB2_168 + +LBB2_113: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + +LBB2_114: + QUAD $0x0000018024bc2b4c // sub r15, qword [rsp + 384] + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + +LBB2_115: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343a45 // cmp r14b, byte [r12] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x24743a45; BYTE $0x01 // cmp r14b, byte [r12 + 1] + LONG $0xd2940f41 // sete r10b + LONG $0x24743a45; BYTE $0x02 // cmp r14b, byte [r12 + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x24743a45; BYTE $0x03 // cmp r14b, byte [r12 + 3] + LONG $0xd5940f41 // sete r13b + LONG $0x24743a45; BYTE $0x04 // cmp r14b, byte [r12 + 4] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x24743a45; BYTE $0x05 // cmp r14b, byte [r12 + 5] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x24743a45; BYTE $0x06 // cmp r14b, byte [r12 + 6] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x24743a45; BYTE $0x07 // cmp r14b, byte [r12 + 7] + LONG $0xd4940f41 // sete r12b + LONG $0x08713a44 // cmp r14b, byte [rcx + 8] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x09713a44 // cmp r14b, byte [rcx + 9] + LONG $0xd6940f40 // sete sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd7940f40 // sete dil + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd1940f41 // sete r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd3940f41 // sete r11b + LONG $0x0d713a44 // cmp r14b, byte [rcx + 13] + LONG $0xd7940f41 // sete r15b + LONG $0x0e713a44 // cmp r14b, byte [rcx + 14] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x0f713a44 // cmp r14b, byte [rcx + 15] + LONG $0xd0940f41 // sete r8b + LONG $0x10713a44 // cmp r14b, byte [rcx + 16] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x11713a44 // cmp r14b, byte [rcx + 17] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x12713a44 // cmp r14b, byte [rcx + 18] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x13713a44 // cmp r14b, byte [rcx + 19] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x14713a44 // cmp r14b, byte [rcx + 20] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x15713a44 // cmp r14b, byte [rcx + 21] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x16713a44 // cmp r14b, byte [rcx + 22] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x17713a44 // cmp r14b, byte [rcx + 23] + LONG $0xd6940f41 // sete r14b + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + QUAD $0x000001102494940f // sete byte [rsp + 272] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x1c24548b // mov edx, dword [rsp + 28] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000014024940244 // add r10b, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xc4 // or r12b, al + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xd3 // or bl, r10b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000a024b40240 // add sil, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0845; BYTE $0xf8 // or r8b, r15b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xc308 // or bl, al + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x26 // mov byte [rsi], r12b + QUAD $0x0000009024bcb60f // movzx edi, byte [rsp + 144] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x01468844 // mov byte [rsi + 1], r8b + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + LONG $0x245cb60f; BYTE $0x20 // movzx ebx, byte [rsp + 32] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5688; BYTE $0x03 // mov byte [rsi + 3], dl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB2_115 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + JMP LBB2_133 + +LBB2_117: + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_121 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB2_119: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_119 + LONG $0x01c38349 // add r11, 1 + +LBB2_121: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_125 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + +LBB2_123: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000982494940f // sete byte [rsp + 152] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7940f40 // sete dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + QUAD $0x000000902494940f // sete byte [rsp + 144] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6940f40 // sete sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0940f41 // sete r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + QUAD $0x000001402494940f // sete byte [rsp + 320] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + QUAD $0x000001202494940f // sete byte [rsp + 288] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2454940f; BYTE $0x1c // sete byte [rsp + 28] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x0000011024848b48 // mov rax, qword [rsp + 272] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x1c // movzx ecx, byte [rsp + 28] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB2_123 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + +LBB2_125: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_152 + +LBB2_127: + WORD $0xff31 // xor edi, edi + JMP LBB2_154 + +LBB2_128: + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + +LBB2_129: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB2_135 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB2_159: + LONG $0x34343a45 // cmp r14b, byte [r12 + rsi] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743a45; BYTE $0x01 // cmp r14b, byte [r12 + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_159 + JMP LBB2_162 + +LBB2_132: + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + +LBB2_133: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB2_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB2_160 + +LBB2_135: + WORD $0xf631 // xor esi, esi + JMP LBB2_163 + +LBB2_136: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_137: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_137 + +LBB2_138: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + JMP LBB2_156 + +LBB2_140: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_141: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_141 + +LBB2_142: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + LONG $0x2a3b4466 // cmp r13w, word [rdx] + JMP LBB2_156 + +LBB2_144: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_145: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_145 + +LBB2_146: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + JMP LBB2_156 + +LBB2_148: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_149: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_149 + +LBB2_150: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + JMP LBB2_156 + +LBB2_152: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB2_153: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_153 + +LBB2_154: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + +LBB2_156: + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x13348a41 // mov sil, byte [r11 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x131c8841 // mov byte [r11 + rdx], bl + +LBB2_157: + MOVQ 1280(SP), SP + VZEROUPPER + RET + +LBB2_160: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB2_161: + LONG $0x34343a45 // cmp r14b, byte [r12 + rsi] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743a45; BYTE $0x01 // cmp r14b, byte [r12 + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_161 + +LBB2_162: + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB2_163: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_157 + LONG $0x24343a45 // cmp r14b, byte [r12] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000017824848b4c // mov r8, qword [rsp + 376] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB2_157 + +LBB2_165: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB2_166: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x3a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rdi + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x3a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rdi + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x3a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rdi + 6] + QUAD $0x0000010024bc8948 // mov qword [rsp + 256], rdi + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x3a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rdi + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + LONG $0x40cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 576 + QUAD $0x000000a8249c8948 // mov qword [rsp + 168], rbx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0x80cc8149; WORD $0x0002; BYTE $0x00 // or r12, 640 + QUAD $0x000000f024a4894c // mov qword [rsp + 240], r12 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0xa0ce8149; WORD $0x0002; BYTE $0x00 // or r14, 672 + QUAD $0x000000f824b4894c // mov qword [rsp + 248], r14 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02e00d48; WORD $0x0000 // or rax, 736 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x00c98149; WORD $0x0003; BYTE $0x00 // or r9, 768 + QUAD $0x000000c0248c894c // mov qword [rsp + 192], r9 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + QUAD $0x000000b824bc894c // mov qword [rsp + 184], r15 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x40cb8149; WORD $0x0003; BYTE $0x00 // or r11, 832 + QUAD $0x000000e0249c894c // mov qword [rsp + 224], r11 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x60ca8149; WORD $0x0003; BYTE $0x00 // or r10, 864 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000802484894c // mov qword [rsp + 128], r8 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0xa0ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 928 + QUAD $0x000000d024b48948 // mov qword [rsp + 208], rsi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000108248c8948 // mov qword [rsp + 264], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x50 // mov qword [rsp + 80], rcx + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + LONG $0x207923c4; WORD $0x2a0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r13], 1 + LONG $0x2031e3c4; WORD $0x1a04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + rbx], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 3 + LONG $0x2079a3c4; WORD $0x2204; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + r12], 4 + LONG $0x2079a3c4; WORD $0x3204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r14], 5 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 6 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + rdi], 7 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x000000c824bc8948 // mov qword [rsp + 200], rdi + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + r9], 8 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + r15], 9 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r11], 10 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + r10], 11 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + r8], 12 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + rsi], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rcx], 15 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r14], 1 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + r10], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + LONG $0x2061a3c4; WORD $0x221c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + r12], 3 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r11], 5 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + r9], 6 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + r15], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rax], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rbx], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + rcx], 11 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rdi], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rdi], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rdi], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + rdi], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 1 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x02013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x04013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x05013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x06013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 6 + QUAD $0x07012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 7 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x08012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 8 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x09012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 9 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0a013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 12 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0d013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 15 + QUAD $0x0101326c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r14 + 1], 1 + QUAD $0x0201126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 1], 2 + QUAD $0x0301226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05011a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 1], 5 + QUAD $0x06010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 6 + QUAD $0x07013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 7 + QUAD $0x0801326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 8 + QUAD $0x0901026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 9 + QUAD $0x0a011a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 1], 10 + QUAD $0x0b010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0102442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xce6e79c5 // vmovd xmm9, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xd66e79c5 // vmovd xmm10, esi + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x02020a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x030212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x050202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 5 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x06020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07023a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 2], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 8 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x09022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 10 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0b021a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 2], 11 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0c0232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 2], 12 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x0d023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0202325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0302325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0402325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0502325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0602325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0702325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 7 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x08021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 10 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0b021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0e021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 15 + QUAD $0x010302642021a3c4 // vpinsrb xmm4, xmm11, byte [rdx + r8 + 3], 1 + QUAD $0x02030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 2 + QUAD $0x030312642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 3], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x04031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 4 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x05030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 5 + QUAD $0x06030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 6 + QUAD $0x07033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x08033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 8 + QUAD $0x090322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 3], 9 + QUAD $0x0a032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 10 + QUAD $0x0b031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 11 + QUAD $0x0c0332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 3], 12 + QUAD $0x0d033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 13 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x0e030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 14 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0f033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 15 + QUAD $0x0103026c2039e3c4 // vpinsrb xmm5, xmm8, byte [rdx + rax + 3], 1 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x02031a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 3], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0403026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 4 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0503126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 3], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0603326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 6 + QUAD $0x0703326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0803026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09031a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 3], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e0302442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 3], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xc66e79c5 // vmovd xmm8, esi + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0322442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xde6e79c5 // vmovd xmm11, esi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x010402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x030402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 3 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x04042a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 4], 4 + QUAD $0x05040a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 4], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 7 + QUAD $0x08043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 13 + QUAD $0x0e040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 14 + QUAD $0x0f043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0104025c2011e3c4 // vpinsrb xmm3, xmm13, byte [rdx + rax + 4], 1 + QUAD $0x02041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 2 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x03041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0404025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 4 + QUAD $0x0504125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 5 + WORD $0x894c; BYTE $0xf6 // mov rsi, r14 + QUAD $0x0604325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 6 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0704125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 7 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x08040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 8 + QUAD $0x09041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 10 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0b04325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 13 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0e043a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 4], 14 + QUAD $0x0f04225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 4], 15 + QUAD $0x010502642009a3c4 // vpinsrb xmm4, xmm14, byte [rdx + r8 + 5], 1 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x02053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x03051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 3 + QUAD $0x04052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 4 + QUAD $0x05050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 7 + QUAD $0x08053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 12 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x0d052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 15 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01053a6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rdx + rdi + 5], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 2 + QUAD $0x03051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 3 + QUAD $0x0405026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0505026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 5 + QUAD $0x0605326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 5], 6 + QUAD $0x0705126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 5], 7 + QUAD $0x08050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 8 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x09050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 10 + QUAD $0x0b05326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0f0522442051a3c4 // vpinsrb xmm0, xmm5, byte [rdx + r12 + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xe66ef9c5 // vmovd xmm4, esi + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + QUAD $0x010602442019a3c4 // vpinsrb xmm0, xmm12, byte [rdx + r8 + 6], 1 + QUAD $0x02063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 2 + QUAD $0x03061a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 6], 3 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x04061a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 6], 4 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x050602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07063a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 6], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 9 + QUAD $0x0a060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b0612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 6], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 12 + QUAD $0x0d062a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 6], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01060a6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rcx + 6], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0506326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 5 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x06061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x07060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 8 + QUAD $0x09060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 10 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0b06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 11 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0c060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 14 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x0f062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 15 + QUAD $0x010732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 1 + QUAD $0x02073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 2 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x03072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 3 + QUAD $0x04071a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 7], 4 + QUAD $0x050702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 6 + QUAD $0x07073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x080732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 10 + QUAD $0x0b0712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 11 + QUAD $0x0c0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 13 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0e073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 4 + QUAD $0x0507324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 5 + QUAD $0x06071a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 7], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0707324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 10 + QUAD $0x0b07224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 11 + QUAD $0x0c070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e070a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rcx + 7], 14 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0722442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01080a442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rcx + 8], 1 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x020802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 2 + QUAD $0x03082a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 8], 3 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x04081a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 8], 4 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x05081a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 8], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x070832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 7 + QUAD $0x080832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 8], 8 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x090812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 9 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0a081a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 8], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b0832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c0832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 12 + QUAD $0x0d0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 13 + QUAD $0x0e083a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 8], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0108026c2029e3c4 // vpinsrb xmm5, xmm10, byte [rdx + rax + 8], 1 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x02080a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 8], 2 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x03083a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 8], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0408326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0508026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0608326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0708026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0808026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 8 + QUAD $0x09083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 11 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0c083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 14 + QUAD $0x0f08226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 15 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x010922742039a3c4 // vpinsrb xmm6, xmm8, byte [rdx + r12 + 9], 1 + QUAD $0x020902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03093a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 9], 3 + QUAD $0x04092a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r13 + 9], 4 + QUAD $0x05091a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 9], 5 + QUAD $0x06090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x08090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 8 + QUAD $0x090912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 9 + QUAD $0x0a091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c091a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 9], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 14 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0f0922742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 9], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01090a7c2021e3c4 // vpinsrb xmm7, xmm11, byte [rdx + rcx + 9], 1 + QUAD $0x02090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 2 + QUAD $0x03093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 3 + QUAD $0x0409327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 4 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x05092a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 9], 5 + QUAD $0x0609327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 6 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x07091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 7 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x08093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 10 + QUAD $0x0b09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f09026c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00044024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm5 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xee6ef9c5 // vmovd xmm5, esi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x010a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 1 + QUAD $0x020a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 2 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x030a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x050a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 6 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x070a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x080a325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 10], 8 + QUAD $0x090a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 11 + QUAD $0x0c0a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 12 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x0d0a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 13 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0e0a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 14 + QUAD $0x0f0a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x030a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 3 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x040a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 4 + QUAD $0x050a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x060a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 6 + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x080a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 10 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x0b0a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 13 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0e0a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 15 + QUAD $0x010b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 1 + QUAD $0x020b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 2 + QUAD $0x030b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x040b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x050b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x060b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 6 + QUAD $0x070b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 7 + QUAD $0x080b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 8 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x090b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 9 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0a0b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 10 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0b0b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c0b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 12 + QUAD $0x0d0b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 13 + QUAD $0x0e0b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0f0b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 15 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x010b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x020b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 2 + QUAD $0x030b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 3 + QUAD $0x040b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 5 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x060b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 6 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x070b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 11], 7 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x080b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 8 + QUAD $0x090b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 10 + QUAD $0x0b0b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000420249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm3 + QUAD $0x0e0b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0d // movzx esi, byte [rdx + rax + 13] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000400248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm1 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0d // movzx esi, byte [rdx + rax + 13] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x010c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x030c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 3 + QUAD $0x040c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x050c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 9 + QUAD $0x0a0c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 12], 10 + QUAD $0x0b0c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 12], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c0c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 13 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0e0c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 12], 14 + QUAD $0x0f0c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 12], 15 + QUAD $0x010c3a542051e3c4 // vpinsrb xmm2, xmm5, byte [rdx + rdi + 12], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 2 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x030c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x040c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x050c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 5 + QUAD $0x060c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 6 + QUAD $0x070c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 7 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x080c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x090c1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 12], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 10 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 12 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0d0c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 13 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0e0c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 14 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 15 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x010d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 1 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x020d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x030d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x040d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 4 + QUAD $0x050d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 5 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x060d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 6 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x070d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 7 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x080d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 8 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x090d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 9 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0a0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 11 + QUAD $0x0c0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 12 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x0d0d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 13 + QUAD $0x0e0d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 13], 14 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0f0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x010d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + QUAD $0x030d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 3 + QUAD $0x040d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 4 + QUAD $0x050d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x060d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x070d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 7 + QUAD $0x080d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 8 + QUAD $0x090d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 12 + QUAD $0x0d0d0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 13], 13 + QUAD $0x0e0d024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0d02442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rax + 13], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x0e2a // movzx esi, byte [rdx + r13 + 14] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0e // movzx esi, byte [rdx + rax + 14] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x010e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x020e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 2 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x030e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 3 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x040e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x050e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 5 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x060e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x070e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x080e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 8 + QUAD $0x090e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 12 + QUAD $0x0d0e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 14 + QUAD $0x0f0e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 14], 15 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x010e1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 14], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x030e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x040e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 5 + QUAD $0x060e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 6 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x070e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 14], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x080e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 8 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x090e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 14], 9 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0a0e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 12 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x0d0e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 14], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 15 + LONG $0x74b60f42; WORD $0x0f2a // movzx esi, byte [rdx + r13 + 15] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x010f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 2 + QUAD $0x030f02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 15], 3 + QUAD $0x040f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 4 + QUAD $0x050f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 5 + QUAD $0x060f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 15], 6 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x070f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 15], 7 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x080f02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 15], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 9 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0a0f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 10 + QUAD $0x0b0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0f // movzx esi, byte [rdx + rax + 15] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x010f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x030f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x050f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x060f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 6 + QUAD $0x070f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 7 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x080f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 8 + QUAD $0x090f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 9 + QUAD $0x0a0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 10 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0b0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 12 + QUAD $0x0d0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 13 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0e0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 14 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x10 // movzx esi, byte [rdx + rsi + 16] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x01100a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 16], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 6 + QUAD $0x07102a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 16], 7 + QUAD $0x081002442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 16], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 9 + QUAD $0x0a103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 13 + QUAD $0x0e100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1a74b60f; BYTE $0x10 // movzx esi, byte [rdx + rbx + 16] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0110024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 16], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0210324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0310324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0410324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 4 + QUAD $0x05103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0610324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0710324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 7 + QUAD $0x0810124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a10324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 10 + QUAD $0x0b10324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 11 + QUAD $0x0c10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 13 + QUAD $0x0e101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 14 + QUAD $0x0f10224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x01110a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 17], 1 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x02111a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 17], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x031112542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 17], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 4 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x05112a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 17], 5 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x06110a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 17], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x081132542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 17], 8 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x09113a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 17], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 11 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0c1122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 14 + QUAD $0x0f110a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 17], 15 + LONG $0x1a74b60f; BYTE $0x11 // movzx esi, byte [rdx + rbx + 17] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0111025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 2 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0311025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0411325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0511325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0611325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0711325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0811325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 8 + QUAD $0x09113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 9 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0a113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f1132442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rsi + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x12 // movzx esi, byte [rdx + rsi + 18] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 1 + QUAD $0x02121a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 18], 2 + QUAD $0x031212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 4 + QUAD $0x05122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 5 + QUAD $0x06120a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 18], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x071232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 7 + QUAD $0x081232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 18], 8 + QUAD $0x09123a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 18], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 10 + QUAD $0x0b1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 11 + QUAD $0x0c1222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 18], 12 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x0d120a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 18], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 15 + LONG $0x1a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rbx + 18] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0112324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 1 + QUAD $0x02120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 2 + QUAD $0x0312024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0412024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0512024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0612024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 6 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x07121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0912024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 9 + QUAD $0x0a123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 12 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0d12224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 14 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0f12124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 15 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x133a // movzx esi, byte [rdx + r15 + 19] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x071332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x081332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 9 + QUAD $0x0a132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 12 + QUAD $0x0d130a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 19], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e133a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 19], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1302542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 19], 15 + LONG $0x1a74b60f; BYTE $0x13 // movzx esi, byte [rdx + rbx + 19] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0113325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0213325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 2 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x03131a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 19], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0413325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0513325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 5 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x06132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 6 + QUAD $0x07131a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 19], 7 + QUAD $0x08130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 8 + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 11 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0c130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 12 + QUAD $0x0d13225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 13 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0e13325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 14 + QUAD $0x0f13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x74b60f42; WORD $0x143a // movzx esi, byte [rdx + r15 + 20] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x01141a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 20], 1 + QUAD $0x000000a824a48b4c // mov r12, qword [rsp + 168] + QUAD $0x021422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 20], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x04140a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 20], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x051412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 20], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x081402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 13 + QUAD $0x0e143a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 20], 14 + QUAD $0x0f1402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 20], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x14 // movzx esi, byte [rdx + rax + 20] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0114024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0214024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 2 + QUAD $0x03141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0414024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x05143a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 20], 5 + QUAD $0x06142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0714324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0814324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0914324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a14324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 10 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x0b14024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 20], 11 + QUAD $0x0c140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 13 + QUAD $0x0e14324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 20], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f14324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 15 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x15 // movzx esi, byte [rdx + rsi + 21] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x01151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 1 + QUAD $0x021522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 3 + QUAD $0x04150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 4 + QUAD $0x051512542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 21], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x06153a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 21], 6 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x07151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 7 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x081522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 8 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x091512542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 21], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 10 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0b1532542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 21], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 12 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x0d151a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 21], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 15 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a74b60f; BYTE $0x15 // movzx esi, byte [rdx + rcx + 21] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 3 + QUAD $0x0415025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 4 + QUAD $0x05153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0615025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 6 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x07153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0915025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 10 + QUAD $0x0b15025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 21], 11 + QUAD $0x0c150a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 21], 12 + QUAD $0x0d152a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 21], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0f1502442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r8 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 4 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x05162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 5 + QUAD $0x06163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 6 + QUAD $0x07161a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 22], 7 + QUAD $0x081622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 8 + QUAD $0x091612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 22], 9 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x0a1622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 10 + QUAD $0x0b1632442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 22], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c161a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 22], 12 + QUAD $0x0d161a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 22], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 14 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0f1632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 15 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + LONG $0x74b60f42; WORD $0x1612 // movzx esi, byte [rdx + r10 + 22] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0116324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x02161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0316324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0416324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0516324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0616324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 6 + QUAD $0x07163a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 22], 7 + QUAD $0x08160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 10 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x0b160a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 22], 11 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0c160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 14 + QUAD $0x0f16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 15 + LONG $0x0274b60f; BYTE $0x17 // movzx esi, byte [rdx + rax + 23] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x011702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 2 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x03173a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 23], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 4 + QUAD $0x05172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x08170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 9 + QUAD $0x0a1722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 23], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 11 + QUAD $0x0c171a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 23], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 14 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0f1722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 23], 15 + LONG $0x74b60f42; WORD $0x1712 // movzx esi, byte [rdx + r10 + 23] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x01171a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 23], 1 + QUAD $0x02171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 3 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x04171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 4 + QUAD $0x0517325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 5 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x06172a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 23], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0717325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0817325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 8 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0917025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 9 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0a17125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 10 + QUAD $0x0b170a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 23], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 12 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0d17325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 13 + QUAD $0x0e173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x00000100248c8b4c // mov r9, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x180a // movzx esi, byte [rdx + r9 + 24] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 2 + QUAD $0x03183a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 24], 3 + QUAD $0x041802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x08183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 9 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x0a1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 14 + QUAD $0x0f1822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 15 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + LONG $0x3274b60f; BYTE $0x18 // movzx esi, byte [rdx + rsi + 24] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x01181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0218324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 2 + QUAD $0x03180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 3 + QUAD $0x04181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 5 + QUAD $0x06182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x07180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 7 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x08183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 8 + QUAD $0x0918024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 9 + QUAD $0x0a18124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0b180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 11 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0c180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 12 + QUAD $0x0d18324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 13 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0e18024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 15 + LONG $0x74b60f42; WORD $0x190a // movzx esi, byte [rdx + r9 + 25] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x02190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 2 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x03190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 3 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x04191a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 25], 4 + QUAD $0x000000f8248c8b4c // mov r9, qword [rsp + 248] + QUAD $0x05190a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 25], 5 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x061922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 6 + QUAD $0x071902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 7 + QUAD $0x08193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a192a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 25], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b191a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 25], 11 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0c1932542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 25], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0219025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0319025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0419025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0519025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0619025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0719025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 7 + QUAD $0x08193a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 25], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0919025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 9 + QUAD $0x0a19125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 12 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0d19125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 13 + QUAD $0x0e19025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0f1902442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r8 + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x1a // movzx esi, byte [rdx + rsi + 26] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 2 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x031a3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 26], 3 + QUAD $0x041a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 4 + QUAD $0x051a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 5 + QUAD $0x061a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 6 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x071a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x081a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 9 + QUAD $0x0a1a2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 26], 10 + QUAD $0x0b1a1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 26], 11 + QUAD $0x0c1a32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 26], 12 + QUAD $0x0d1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1a74b60f; BYTE $0x1a // movzx esi, byte [rdx + rbx + 26] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x021a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x031a224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 26], 3 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x041a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x051a324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 26], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x061a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x071a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x081a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 10 + QUAD $0x0b1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 12 + QUAD $0x0d1a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 14 + QUAD $0x0f1a024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 26], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x1b // movzx esi, byte [rdx + rax + 27] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x011b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 2 + QUAD $0x031b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 3 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x041b12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 27], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 6 + QUAD $0x071b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 27], 7 + QUAD $0x081b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 27], 8 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x091b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 9 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x0a1b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 27], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 15 + LONG $0x1a74b60f; BYTE $0x1b // movzx esi, byte [rdx + rbx + 27] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x011b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 1 + QUAD $0x021b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 2 + QUAD $0x031b225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 27], 3 + QUAD $0x041b2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 27], 4 + QUAD $0x051b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 5 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x061b225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 27], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x081b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 13 + QUAD $0x0e1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x1c2a // movzx esi, byte [rdx + r13 + 28] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x021c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 2 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x031c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 3 + QUAD $0x041c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 4 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x051c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 28], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 6 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x071c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x081c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 8 + QUAD $0x091c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 9 + QUAD $0x0a1c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 28], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b1c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 11 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x0c1c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 12 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0d1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 15 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + LONG $0x3274b60f; BYTE $0x1c // movzx esi, byte [rdx + rsi + 28] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x011c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x021c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 2 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x031c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x041c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 5 + QUAD $0x061c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 6 + QUAD $0x071c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x081c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 13 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0e1c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 15 + LONG $0x74b60f42; WORD $0x1d2a // movzx esi, byte [rdx + r13 + 29] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x011d2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 29], 1 + QUAD $0x021d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 2 + QUAD $0x031d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x041d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 4 + QUAD $0x051d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 5 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x061d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 6 + QUAD $0x071d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x081d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x091d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 9 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0a1d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 10 + QUAD $0x0b1d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 11 + QUAD $0x0c1d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 12 + QUAD $0x0d1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e1d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 14 + QUAD $0x0f1d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 15 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + LONG $0x74b60f42; WORD $0x1d02 // movzx esi, byte [rdx + r8 + 29] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x011d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 29], 1 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x021d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 29], 2 + QUAD $0x031d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 3 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x041d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x061d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x071d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x081d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 10 + QUAD $0x0b1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 13 + QUAD $0x0e1d22642061a3c4 // vpinsrb xmm4, xmm3, byte [rdx + r12 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f1d22442059a3c4 // vpinsrb xmm0, xmm4, byte [rdx + r12 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a74b60f; BYTE $0x1e // movzx esi, byte [rdx + rdi + 30] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011e2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 30], 1 + LONG $0x3a74b60f; BYTE $0x1f // movzx esi, byte [rdx + rdi + 31] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011f2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 31], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 5 + QUAD $0x051f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 5 + QUAD $0x061e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 30], 6 + QUAD $0x061f1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 31], 6 + QUAD $0x0000011024bc8b48 // mov rdi, qword [rsp + 272] + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + QUAD $0x091e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 30], 9 + QUAD $0x091f0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 31], 9 + QUAD $0x0a1e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 30], 10 + QUAD $0x0a1f324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 31], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 11 + QUAD $0x0b1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 12 + QUAD $0x0c1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 13 + QUAD $0x0d1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 13 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0e1e1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 30], 14 + QUAD $0x0e1f1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 31], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542071e3c4 // vpinsrb xmm2, xmm1, byte [rdx + rax + 31], 15 + WORD $0x894c; BYTE $0xc6 // mov rsi, r8 + LONG $0x44b60f42; WORD $0x1e02 // movzx eax, byte [rdx + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 30], 1 + LONG $0x44b60f42; WORD $0x1f02 // movzx eax, byte [rdx + r8 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f3a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 31], 1 + QUAD $0x021e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 2 + QUAD $0x021f127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 31], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 3 + QUAD $0x041e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 30], 4 + QUAD $0x041f0a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 31], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x061e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 6 + QUAD $0x061f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 7 + QUAD $0x071f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 12 + QUAD $0x0c1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 13 + QUAD $0x0d1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x0f1e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 30], 15 + QUAD $0x0f1f227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 512] + QUAD $0x0004c0249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 1216] + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0xf87485c5 // vpcmpeqb ymm7, ymm15, ymm0 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x0001e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI2_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 448] + LONG $0x556ffdc5; BYTE $0x40 // vmovdqa ymm2, yword 64[rbp] /* [rip + .LCPI2_2] */ + LONG $0xfadbc5c5 // vpand ymm7, ymm7, ymm2 + LONG $0xe0740dc5 // vpcmpeqb ymm12, ymm14, ymm0 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI2_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 416] + QUAD $0x00000080ad6f7dc5 // vmovdqa ymm13, yword 128[rbp] /* [rip + .LCPI2_4] */ + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0x6f7d41c4; BYTE $0xf5 // vmovdqa ymm14, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0004a024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1184] + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI2_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x00048024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1152] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI2_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x00044024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1088] + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x00046024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1120] + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000420249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1056] + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000400249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1024] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0003e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 992] + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x0003c024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 960] + LONG $0xdb1d41c4; BYTE $0xe6 // vpand ymm12, ymm12, ymm14 + LONG $0x6f7dc1c4; BYTE $0xde // vmovdqa ymm3, ymm14 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000380249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 896] + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x0003a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 928] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x00034024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 832] + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x000360249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 864] + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00030024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 768] + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000320249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 800] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0002c024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 704] + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x0002e024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 736] + LONG $0xf3db0dc5 // vpand ymm14, ymm14, ymm3 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x0002a0249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 672] + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x00022024ac74fdc5; BYTE $0x00 // vpcmpeqb ymm5, ymm0, yword [rsp + 544] + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x00024024b474fdc5; BYTE $0x00 // vpcmpeqb ymm6, ymm0, yword [rsp + 576] + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + QUAD $0x000280249c74fdc5; BYTE $0x00 // vpcmpeqb ymm3, ymm0, yword [rsp + 640] + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x00026024a474fdc5; BYTE $0x00 // vpcmpeqb ymm4, ymm0, yword [rsp + 608] + QUAD $0x00000080a5dbddc5 // vpand ymm4, ymm4, yword 128[rbp] /* [rip + .LCPI2_4] */ + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000140248c74fdc5; BYTE $0x00 // vpcmpeqb ymm1, ymm0, yword [rsp + 320] + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x000120249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 288] + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x447ffec5; WORD $0x608f // vmovdqu yword [rdi + 4*rcx + 96], ymm0 + LONG $0x547ffec5; WORD $0x408f // vmovdqu yword [rdi + 4*rcx + 64], ymm2 + LONG $0x647ffec5; WORD $0x208f // vmovdqu yword [rdi + 4*rcx + 32], ymm4 + LONG $0x0c7ffec5; BYTE $0x8f // vmovdqu yword [rdi + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB2_166 + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB2_43 + JMP LBB2_129 + +LBB2_168: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB2_169: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x3a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rdi + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x3a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rdi + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x3a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rdi + 6] + QUAD $0x0000010024bc8948 // mov qword [rsp + 256], rdi + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x3a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rdi + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + LONG $0x40cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 576 + QUAD $0x000000a8249c8948 // mov qword [rsp + 168], rbx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0x80cc8149; WORD $0x0002; BYTE $0x00 // or r12, 640 + QUAD $0x000000f024a4894c // mov qword [rsp + 240], r12 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0xa0ce8149; WORD $0x0002; BYTE $0x00 // or r14, 672 + QUAD $0x000000f824b4894c // mov qword [rsp + 248], r14 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02e00d48; WORD $0x0000 // or rax, 736 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x00c98149; WORD $0x0003; BYTE $0x00 // or r9, 768 + QUAD $0x000000c0248c894c // mov qword [rsp + 192], r9 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + QUAD $0x000000b824bc894c // mov qword [rsp + 184], r15 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x40cb8149; WORD $0x0003; BYTE $0x00 // or r11, 832 + QUAD $0x000000e0249c894c // mov qword [rsp + 224], r11 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x60ca8149; WORD $0x0003; BYTE $0x00 // or r10, 864 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000802484894c // mov qword [rsp + 128], r8 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0xa0ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 928 + QUAD $0x000000d024b48948 // mov qword [rsp + 208], rsi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000108248c8948 // mov qword [rsp + 264], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x50 // mov qword [rsp + 80], rcx + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + LONG $0x207923c4; WORD $0x2a0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r13], 1 + LONG $0x2031e3c4; WORD $0x1a04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + rbx], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 3 + LONG $0x2079a3c4; WORD $0x2204; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + r12], 4 + LONG $0x2079a3c4; WORD $0x3204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r14], 5 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 6 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + rdi], 7 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x000000c824bc8948 // mov qword [rsp + 200], rdi + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + r9], 8 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + r15], 9 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r11], 10 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + r10], 11 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + r8], 12 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + rsi], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rcx], 15 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r14], 1 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + r10], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + LONG $0x2061a3c4; WORD $0x221c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + r12], 3 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r11], 5 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + r9], 6 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + r15], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rax], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rbx], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + rcx], 11 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rdi], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rdi], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rdi], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + rdi], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 1 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x02013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x04013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x05013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x06013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 6 + QUAD $0x07012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 7 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x08012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 8 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x09012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 9 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0a013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 12 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0d013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 15 + QUAD $0x0101326c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r14 + 1], 1 + QUAD $0x0201126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 1], 2 + QUAD $0x0301226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05011a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 1], 5 + QUAD $0x06010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 6 + QUAD $0x07013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 7 + QUAD $0x0801326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 8 + QUAD $0x0901026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 9 + QUAD $0x0a011a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 1], 10 + QUAD $0x0b010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0102442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xce6e79c5 // vmovd xmm9, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xd66e79c5 // vmovd xmm10, esi + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x02020a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x030212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x050202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 5 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x06020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07023a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 2], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 8 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x09022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 10 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0b021a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 2], 11 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0c0232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 2], 12 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x0d023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0202325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0302325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0402325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0502325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0602325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0702325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 7 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x08021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 10 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0b021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0e021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 15 + QUAD $0x010302642021a3c4 // vpinsrb xmm4, xmm11, byte [rdx + r8 + 3], 1 + QUAD $0x02030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 2 + QUAD $0x030312642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 3], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x04031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 4 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x05030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 5 + QUAD $0x06030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 6 + QUAD $0x07033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x08033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 8 + QUAD $0x090322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 3], 9 + QUAD $0x0a032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 10 + QUAD $0x0b031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 11 + QUAD $0x0c0332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 3], 12 + QUAD $0x0d033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 13 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x0e030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 14 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0f033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 15 + QUAD $0x0103026c2039e3c4 // vpinsrb xmm5, xmm8, byte [rdx + rax + 3], 1 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x02031a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 3], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0403026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 4 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0503126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 3], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0603326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 6 + QUAD $0x0703326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0803026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09031a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 3], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e0302442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 3], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xc66e79c5 // vmovd xmm8, esi + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0322442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xde6e79c5 // vmovd xmm11, esi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x010402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x030402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 3 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x04042a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 4], 4 + QUAD $0x05040a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 4], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 7 + QUAD $0x08043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 13 + QUAD $0x0e040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 14 + QUAD $0x0f043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0104025c2011e3c4 // vpinsrb xmm3, xmm13, byte [rdx + rax + 4], 1 + QUAD $0x02041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 2 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x03041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0404025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 4 + QUAD $0x0504125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 5 + WORD $0x894c; BYTE $0xf6 // mov rsi, r14 + QUAD $0x0604325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 6 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0704125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 7 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x08040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 8 + QUAD $0x09041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 10 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0b04325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 13 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0e043a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 4], 14 + QUAD $0x0f04225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 4], 15 + QUAD $0x010502642009a3c4 // vpinsrb xmm4, xmm14, byte [rdx + r8 + 5], 1 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x02053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x03051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 3 + QUAD $0x04052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 4 + QUAD $0x05050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 7 + QUAD $0x08053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 12 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x0d052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 15 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01053a6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rdx + rdi + 5], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 2 + QUAD $0x03051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 3 + QUAD $0x0405026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0505026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 5 + QUAD $0x0605326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 5], 6 + QUAD $0x0705126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 5], 7 + QUAD $0x08050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 8 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x09050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 10 + QUAD $0x0b05326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0f0522442051a3c4 // vpinsrb xmm0, xmm5, byte [rdx + r12 + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xe66ef9c5 // vmovd xmm4, esi + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + QUAD $0x010602442019a3c4 // vpinsrb xmm0, xmm12, byte [rdx + r8 + 6], 1 + QUAD $0x02063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 2 + QUAD $0x03061a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 6], 3 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x04061a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 6], 4 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x050602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07063a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 6], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 9 + QUAD $0x0a060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b0612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 6], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 12 + QUAD $0x0d062a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 6], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01060a6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rcx + 6], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0506326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 5 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x06061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x07060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 8 + QUAD $0x09060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 10 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0b06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 11 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0c060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 14 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x0f062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 15 + QUAD $0x010732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 1 + QUAD $0x02073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 2 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x03072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 3 + QUAD $0x04071a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 7], 4 + QUAD $0x050702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 6 + QUAD $0x07073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x080732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 10 + QUAD $0x0b0712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 11 + QUAD $0x0c0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 13 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0e073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 4 + QUAD $0x0507324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 5 + QUAD $0x06071a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 7], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0707324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 10 + QUAD $0x0b07224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 11 + QUAD $0x0c070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e070a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rcx + 7], 14 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0722442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01080a442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rcx + 8], 1 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x020802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 2 + QUAD $0x03082a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 8], 3 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x04081a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 8], 4 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x05081a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 8], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x070832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 7 + QUAD $0x080832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 8], 8 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x090812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 9 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0a081a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 8], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b0832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c0832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 12 + QUAD $0x0d0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 13 + QUAD $0x0e083a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 8], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0108026c2029e3c4 // vpinsrb xmm5, xmm10, byte [rdx + rax + 8], 1 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x02080a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 8], 2 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x03083a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 8], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0408326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0508026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0608326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0708026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0808026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 8 + QUAD $0x09083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 11 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0c083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 12 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0d083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 14 + QUAD $0x0f08226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 15 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x010922742039a3c4 // vpinsrb xmm6, xmm8, byte [rdx + r12 + 9], 1 + QUAD $0x020902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03093a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 9], 3 + QUAD $0x04092a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r13 + 9], 4 + QUAD $0x05091a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 9], 5 + QUAD $0x06090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x08090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 8 + QUAD $0x090912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 9 + QUAD $0x0a091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c091a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 9], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 14 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0f0922742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 9], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01090a7c2021e3c4 // vpinsrb xmm7, xmm11, byte [rdx + rcx + 9], 1 + QUAD $0x02090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 2 + QUAD $0x03093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 3 + QUAD $0x0409327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 4 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x05092a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 9], 5 + QUAD $0x0609327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 6 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x07091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 7 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x08093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 10 + QUAD $0x0b09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f09026c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00044024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm5 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xee6ef9c5 // vmovd xmm5, esi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x010a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 1 + QUAD $0x020a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 2 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x030a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x050a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 6 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x070a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x080a325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 10], 8 + QUAD $0x090a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 11 + QUAD $0x0c0a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 12 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x0d0a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 13 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0e0a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 14 + QUAD $0x0f0a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x030a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 3 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x040a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 4 + QUAD $0x050a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x060a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 6 + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x080a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 10 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x0b0a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 12 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0d0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 13 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0e0a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 15 + QUAD $0x010b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 1 + QUAD $0x020b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 2 + QUAD $0x030b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x040b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x050b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x060b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 6 + QUAD $0x070b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 7 + QUAD $0x080b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 8 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x090b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 9 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0a0b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 10 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0b0b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c0b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 12 + QUAD $0x0d0b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 13 + QUAD $0x0e0b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0f0b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 15 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x010b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x020b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 2 + QUAD $0x030b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 3 + QUAD $0x040b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 5 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x060b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 6 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x070b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 11], 7 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x080b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 8 + QUAD $0x090b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 10 + QUAD $0x0b0b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000420249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm3 + QUAD $0x0e0b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x0d // movzx esi, byte [rdx + rax + 13] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000400248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm1 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0d // movzx esi, byte [rdx + rax + 13] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x010c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x030c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 3 + QUAD $0x040c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x050c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x060c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 9 + QUAD $0x0a0c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 12], 10 + QUAD $0x0b0c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 12], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c0c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 13 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0e0c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 12], 14 + QUAD $0x0f0c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 12], 15 + QUAD $0x010c3a542051e3c4 // vpinsrb xmm2, xmm5, byte [rdx + rdi + 12], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 2 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x030c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x040c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x050c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 5 + QUAD $0x060c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 6 + QUAD $0x070c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 7 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x080c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x090c1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 12], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 10 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0c0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 12 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0d0c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 13 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0e0c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 14 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 15 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x010d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 1 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x020d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x030d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x040d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 4 + QUAD $0x050d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 5 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x060d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 6 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x070d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 7 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x080d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 8 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x090d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 9 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0a0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 11 + QUAD $0x0c0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 12 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x0d0d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 13 + QUAD $0x0e0d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 13], 14 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0f0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x010d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + QUAD $0x030d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 3 + QUAD $0x040d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 4 + QUAD $0x050d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 5 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x060d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x070d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 7 + QUAD $0x080d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 8 + QUAD $0x090d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 12 + QUAD $0x0d0d0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 13], 13 + QUAD $0x0e0d024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0d02442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rax + 13], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x0e2a // movzx esi, byte [rdx + r13 + 14] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0e // movzx esi, byte [rdx + rax + 14] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x010e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x020e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 2 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x030e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 3 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x040e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x050e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 5 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x060e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x070e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x080e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 8 + QUAD $0x090e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 12 + QUAD $0x0d0e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 14 + QUAD $0x0f0e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 14], 15 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x010e1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 14], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x030e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x040e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 5 + QUAD $0x060e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 6 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x070e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 14], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x080e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 8 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x090e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 14], 9 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0a0e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 12 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x0d0e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 14], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 15 + LONG $0x74b60f42; WORD $0x0f2a // movzx esi, byte [rdx + r13 + 15] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x010f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x020f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 2 + QUAD $0x030f02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 15], 3 + QUAD $0x040f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 4 + QUAD $0x050f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 5 + QUAD $0x060f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 15], 6 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x070f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 15], 7 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x080f02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 15], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x090f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 9 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0a0f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 10 + QUAD $0x0b0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x0f // movzx esi, byte [rdx + rax + 15] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x010f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x030f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x050f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x060f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 6 + QUAD $0x070f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 7 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x080f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 8 + QUAD $0x090f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 9 + QUAD $0x0a0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 10 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0b0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 12 + QUAD $0x0d0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 13 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0e0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 14 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f0f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x10 // movzx esi, byte [rdx + rsi + 16] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x01100a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 16], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 6 + QUAD $0x07102a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 16], 7 + QUAD $0x081002442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 16], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 9 + QUAD $0x0a103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 13 + QUAD $0x0e100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1a74b60f; BYTE $0x10 // movzx esi, byte [rdx + rbx + 16] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0110024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 16], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0210324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0310324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0410324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 4 + QUAD $0x05103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0610324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0710324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 7 + QUAD $0x0810124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a10324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 10 + QUAD $0x0b10324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 11 + QUAD $0x0c10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 13 + QUAD $0x0e101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 14 + QUAD $0x0f10224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x01110a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 17], 1 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x02111a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 17], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x031112542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 17], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 4 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x05112a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 17], 5 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x06110a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 17], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 7 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x081132542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 17], 8 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x09113a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 17], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 11 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0c1122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 14 + QUAD $0x0f110a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 17], 15 + LONG $0x1a74b60f; BYTE $0x11 // movzx esi, byte [rdx + rbx + 17] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0111025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 2 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0311025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0411325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0511325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0611325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0711325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0811325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 8 + QUAD $0x09113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 9 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0a113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f1132442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rsi + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x12 // movzx esi, byte [rdx + rsi + 18] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 1 + QUAD $0x02121a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 18], 2 + QUAD $0x031212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 4 + QUAD $0x05122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 5 + QUAD $0x06120a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 18], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x071232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 7 + QUAD $0x081232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 18], 8 + QUAD $0x09123a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 18], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 10 + QUAD $0x0b1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 11 + QUAD $0x0c1222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 18], 12 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x0d120a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 18], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 15 + LONG $0x1a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rbx + 18] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0112324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 1 + QUAD $0x02120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 2 + QUAD $0x0312024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0412024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0512024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0612024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 6 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x07121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0912024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 9 + QUAD $0x0a123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 12 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0d12224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 13 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0e12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 14 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0f12124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 15 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x133a // movzx esi, byte [rdx + r15 + 19] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 6 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x071332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x081332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 9 + QUAD $0x0a132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 12 + QUAD $0x0d130a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 19], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e133a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 19], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1302542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 19], 15 + LONG $0x1a74b60f; BYTE $0x13 // movzx esi, byte [rdx + rbx + 19] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0113325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0213325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 2 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x03131a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 19], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0413325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0513325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 5 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x06132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 6 + QUAD $0x07131a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 19], 7 + QUAD $0x08130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 8 + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 11 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0c130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 12 + QUAD $0x0d13225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 13 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0e13325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 14 + QUAD $0x0f13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x74b60f42; WORD $0x143a // movzx esi, byte [rdx + r15 + 20] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x01141a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 20], 1 + QUAD $0x000000a824a48b4c // mov r12, qword [rsp + 168] + QUAD $0x021422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 20], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x04140a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 20], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x051412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 20], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x081402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 9 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0a1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 13 + QUAD $0x0e143a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 20], 14 + QUAD $0x0f1402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 20], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x14 // movzx esi, byte [rdx + rax + 20] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0114024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0214024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 2 + QUAD $0x03141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0414024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x05143a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 20], 5 + QUAD $0x06142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0714324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0814324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0914324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a14324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 10 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x0b14024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 20], 11 + QUAD $0x0c140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 12 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 13 + QUAD $0x0e14324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 20], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f14324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 15 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x15 // movzx esi, byte [rdx + rsi + 21] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x01151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 1 + QUAD $0x021522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 3 + QUAD $0x04150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 4 + QUAD $0x051512542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 21], 5 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x06153a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 21], 6 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x07151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 7 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x081522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 8 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x091512542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 21], 9 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0a150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 10 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0b1532542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 21], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 12 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x0d151a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 21], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f150a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 21], 15 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a74b60f; BYTE $0x15 // movzx esi, byte [rdx + rcx + 21] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 3 + QUAD $0x0415025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 4 + QUAD $0x05153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0615025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 6 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x07153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x08150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0915025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 10 + QUAD $0x0b15025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 21], 11 + QUAD $0x0c150a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 21], 12 + QUAD $0x0d152a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 21], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0f1502442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r8 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 3 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x041632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 4 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x05162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 5 + QUAD $0x06163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 6 + QUAD $0x07161a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 22], 7 + QUAD $0x081622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 8 + QUAD $0x091612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 22], 9 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x0a1622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 10 + QUAD $0x0b1632442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 22], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c161a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 22], 12 + QUAD $0x0d161a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 22], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 14 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0f1632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 15 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + LONG $0x74b60f42; WORD $0x1612 // movzx esi, byte [rdx + r10 + 22] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0116324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x02161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 2 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0316324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0416324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0516324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0616324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 6 + QUAD $0x07163a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 22], 7 + QUAD $0x08160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 10 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x0b160a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 22], 11 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0c160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 12 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0d160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 13 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0e163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 14 + QUAD $0x0f16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 15 + LONG $0x0274b60f; BYTE $0x17 // movzx esi, byte [rdx + rax + 23] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x011702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 2 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x03173a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 23], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 4 + QUAD $0x05172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 5 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x06170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x08170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x09170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 9 + QUAD $0x0a1722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 23], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 11 + QUAD $0x0c171a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 23], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 14 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0f1722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 23], 15 + LONG $0x74b60f42; WORD $0x1712 // movzx esi, byte [rdx + r10 + 23] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x01171a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 23], 1 + QUAD $0x02171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 3 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x04171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 4 + QUAD $0x0517325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 5 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x06172a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 23], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0717325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0817325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 8 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0917025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 9 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0a17125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 10 + QUAD $0x0b170a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 23], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 12 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0d17325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 13 + QUAD $0x0e173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x00000100248c8b4c // mov r9, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x180a // movzx esi, byte [rdx + r9 + 24] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 2 + QUAD $0x03183a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 24], 3 + QUAD $0x041802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x08183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 9 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x0a1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 11 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0c1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 12 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0d1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 14 + QUAD $0x0f1822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 15 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + LONG $0x3274b60f; BYTE $0x18 // movzx esi, byte [rdx + rsi + 24] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x01181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0218324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 2 + QUAD $0x03180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 3 + QUAD $0x04181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 5 + QUAD $0x06182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x07180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 7 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x08183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 8 + QUAD $0x0918024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 9 + QUAD $0x0a18124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0b180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 11 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0c180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 12 + QUAD $0x0d18324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 13 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0e18024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 15 + LONG $0x74b60f42; WORD $0x190a // movzx esi, byte [rdx + r9 + 25] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x02190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 2 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x03190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 3 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x04191a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 25], 4 + QUAD $0x000000f8248c8b4c // mov r9, qword [rsp + 248] + QUAD $0x05190a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 25], 5 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x061922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 6 + QUAD $0x071902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 7 + QUAD $0x08193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 8 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x091902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 9 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0a192a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 25], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b191a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 25], 11 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0c1932542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 25], 12 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0d190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0219025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0319025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0419025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0519025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0619025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0719025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 7 + QUAD $0x08193a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 25], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0919025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 9 + QUAD $0x0a19125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 12 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0d19125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 13 + QUAD $0x0e19025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0f1902442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r8 + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + LONG $0x3274b60f; BYTE $0x1a // movzx esi, byte [rdx + rsi + 26] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 1 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x021a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 2 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x031a3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 26], 3 + QUAD $0x041a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 4 + QUAD $0x051a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 5 + QUAD $0x061a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 6 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x071a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x081a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 8 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x091a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 9 + QUAD $0x0a1a2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 26], 10 + QUAD $0x0b1a1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 26], 11 + QUAD $0x0c1a32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 26], 12 + QUAD $0x0d1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f1a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 15 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + LONG $0x1a74b60f; BYTE $0x1a // movzx esi, byte [rdx + rbx + 26] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x021a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 2 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x031a224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 26], 3 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x041a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x051a324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 26], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x061a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x071a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 7 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x081a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 10 + QUAD $0x0b1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 12 + QUAD $0x0d1a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 13 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 14 + QUAD $0x0f1a024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 26], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x0274b60f; BYTE $0x1b // movzx esi, byte [rdx + rax + 27] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x011b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 2 + QUAD $0x031b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 3 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x041b12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 27], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 5 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x061b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 6 + QUAD $0x071b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 27], 7 + QUAD $0x081b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 27], 8 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x091b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 9 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x0a1b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 27], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 15 + LONG $0x1a74b60f; BYTE $0x1b // movzx esi, byte [rdx + rbx + 27] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x011b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 1 + QUAD $0x021b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 2 + QUAD $0x031b225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 27], 3 + QUAD $0x041b2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 27], 4 + QUAD $0x051b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 5 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x061b225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 27], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x081b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 13 + QUAD $0x0e1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x74b60f42; WORD $0x1c2a // movzx esi, byte [rdx + r13 + 28] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 1 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x021c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 2 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x031c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 3 + QUAD $0x041c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 4 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x051c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 28], 5 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x061c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 6 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x071c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x081c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 8 + QUAD $0x091c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 9 + QUAD $0x0a1c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 28], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b1c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 11 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x0c1c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 12 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0d1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 15 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + LONG $0x3274b60f; BYTE $0x1c // movzx esi, byte [rdx + rsi + 28] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x011c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x021c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 2 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x031c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 3 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x041c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 5 + QUAD $0x061c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 6 + QUAD $0x071c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x081c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 11 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0c1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 12 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 13 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0e1c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 15 + LONG $0x74b60f42; WORD $0x1d2a // movzx esi, byte [rdx + r13 + 29] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x011d2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 29], 1 + QUAD $0x021d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 2 + QUAD $0x031d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 3 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x041d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 4 + QUAD $0x051d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 5 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x061d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 6 + QUAD $0x071d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x081d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 8 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x091d0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 29], 9 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0a1d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 10 + QUAD $0x0b1d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 11 + QUAD $0x0c1d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 12 + QUAD $0x0d1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e1d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 14 + QUAD $0x0f1d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 15 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + LONG $0x74b60f42; WORD $0x1d02 // movzx esi, byte [rdx + r8 + 29] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x011d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 29], 1 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x021d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 29], 2 + QUAD $0x031d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 3 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x041d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 5 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x061d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x071d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 7 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x081d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 9 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0a1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 10 + QUAD $0x0b1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 13 + QUAD $0x0e1d22642061a3c4 // vpinsrb xmm4, xmm3, byte [rdx + r12 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0f1d22442059a3c4 // vpinsrb xmm0, xmm4, byte [rdx + r12 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a74b60f; BYTE $0x1e // movzx esi, byte [rdx + rdi + 30] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011e2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 30], 1 + LONG $0x3a74b60f; BYTE $0x1f // movzx esi, byte [rdx + rdi + 31] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011f2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 31], 1 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 5 + QUAD $0x051f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 5 + QUAD $0x061e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 30], 6 + QUAD $0x061f1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 31], 6 + QUAD $0x0000011024bc8b48 // mov rdi, qword [rsp + 272] + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + QUAD $0x091e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 30], 9 + QUAD $0x091f0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 31], 9 + QUAD $0x0a1e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 30], 10 + QUAD $0x0a1f324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 31], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 11 + QUAD $0x0b1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 12 + QUAD $0x0c1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 12 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0d1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 13 + QUAD $0x0d1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 13 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0e1e1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 30], 14 + QUAD $0x0e1f1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 31], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542071e3c4 // vpinsrb xmm2, xmm1, byte [rdx + rax + 31], 15 + WORD $0x894c; BYTE $0xc6 // mov rsi, r8 + LONG $0x44b60f42; WORD $0x1e02 // movzx eax, byte [rdx + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 30], 1 + LONG $0x44b60f42; WORD $0x1f02 // movzx eax, byte [rdx + r8 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f3a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 31], 1 + QUAD $0x021e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 2 + QUAD $0x021f127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 31], 2 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 3 + QUAD $0x041e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 30], 4 + QUAD $0x041f0a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 31], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x061e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 6 + QUAD $0x061f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 7 + QUAD $0x071f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 7 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0c1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 12 + QUAD $0x0c1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 12 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 13 + QUAD $0x0d1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x0f1e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 30], 15 + QUAD $0x0f1f227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 512] + QUAD $0x0004c0249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 1216] + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0xf87485c5 // vpcmpeqb ymm7, ymm15, ymm0 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x0001e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI2_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 448] + LONG $0x556ffdc5; BYTE $0x40 // vmovdqa ymm2, yword 64[rbp] /* [rip + .LCPI2_2] */ + LONG $0xfadbc5c5 // vpand ymm7, ymm7, ymm2 + LONG $0xe0740dc5 // vpcmpeqb ymm12, ymm14, ymm0 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI2_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 416] + QUAD $0x00000080ad6f7dc5 // vmovdqa ymm13, yword 128[rbp] /* [rip + .LCPI2_4] */ + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0x6f7d41c4; BYTE $0xf5 // vmovdqa ymm14, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0004a024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1184] + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI2_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x00048024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1152] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI2_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x00044024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 1088] + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x00046024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 1120] + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000420249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1056] + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000400249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 1024] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0003e024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 992] + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x0003c024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 960] + LONG $0xdb1d41c4; BYTE $0xe6 // vpand ymm12, ymm12, ymm14 + LONG $0x6f7dc1c4; BYTE $0xde // vmovdqa ymm3, ymm14 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000380249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 896] + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x0003a024a4747dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm0, yword [rsp + 928] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x00034024bc74fdc5; BYTE $0x00 // vpcmpeqb ymm7, ymm0, yword [rsp + 832] + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x000360249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 864] + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00030024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 768] + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000320249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 800] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x0002c024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 704] + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x0002e024b4747dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm0, yword [rsp + 736] + LONG $0xf3db0dc5 // vpand ymm14, ymm14, ymm3 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x0002a0249c747dc5; BYTE $0x00 // vpcmpeqb ymm11, ymm0, yword [rsp + 672] + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x00022024ac74fdc5; BYTE $0x00 // vpcmpeqb ymm5, ymm0, yword [rsp + 544] + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x00024024b474fdc5; BYTE $0x00 // vpcmpeqb ymm6, ymm0, yword [rsp + 576] + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + QUAD $0x000280249c74fdc5; BYTE $0x00 // vpcmpeqb ymm3, ymm0, yword [rsp + 640] + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x00026024a474fdc5; BYTE $0x00 // vpcmpeqb ymm4, ymm0, yword [rsp + 608] + QUAD $0x00000080a5dbddc5 // vpand ymm4, ymm4, yword 128[rbp] /* [rip + .LCPI2_4] */ + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000140248c74fdc5; BYTE $0x00 // vpcmpeqb ymm1, ymm0, yword [rsp + 320] + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x000120249474fdc5; BYTE $0x00 // vpcmpeqb ymm2, ymm0, yword [rsp + 288] + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x447ffec5; WORD $0x608f // vmovdqu yword [rdi + 4*rcx + 96], ymm0 + LONG $0x547ffec5; WORD $0x408f // vmovdqu yword [rdi + 4*rcx + 64], ymm2 + LONG $0x647ffec5; WORD $0x208f // vmovdqu yword [rdi + 4*rcx + 32], ymm4 + LONG $0x0c7ffec5; BYTE $0x8f // vmovdqu yword [rdi + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB2_169 + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB2_114 + JMP LBB2_133 + +TEXT ·_comparison_not_equal_arr_arr_avx2(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_20 + LONG $0x01c68349 // add r14, 1 + +LBB3_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5950f41 // setne r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0950f41 // setne r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3950f41 // setne r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7950f41 // setne r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2950f41 // setne r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6950f41 // setne r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4950f41 // setne r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1950f41 // setne r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_28 + JMP LBB3_123 + +LBB3_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_48: + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_48 + LONG $0x01c68349 // add r14, 1 + +LBB3_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB3_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x4e10fbc5; BYTE $0x08 // vmovsd xmm1, qword [rsi + 8] + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x4a2ef9c5; BYTE $0x08 // vucomisd xmm1, qword [rdx + 8] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x4610fbc5; BYTE $0x10 // vmovsd xmm0, qword [rsi + 16] + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0x4610fbc5; BYTE $0x18 // vmovsd xmm0, qword [rsi + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x4610fbc5; BYTE $0x20 // vmovsd xmm0, qword [rsi + 32] + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x4610fbc5; BYTE $0x28 // vmovsd xmm0, qword [rsi + 40] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x4610fbc5; BYTE $0x30 // vmovsd xmm0, qword [rsi + 48] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + LONG $0x4610fbc5; BYTE $0x38 // vmovsd xmm0, qword [rsi + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd7950f41 // setne r15b + LONG $0x4610fbc5; BYTE $0x40 // vmovsd xmm0, qword [rsi + 64] + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x4610fbc5; BYTE $0x48 // vmovsd xmm0, qword [rsi + 72] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x4610fbc5; BYTE $0x50 // vmovsd xmm0, qword [rsi + 80] + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0x4610fbc5; BYTE $0x58 // vmovsd xmm0, qword [rsi + 88] + LONG $0xd1950f41 // setne r9b + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd3950f41 // setne r11b + LONG $0x4610fbc5; BYTE $0x60 // vmovsd xmm0, qword [rsi + 96] + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0x4610fbc5; BYTE $0x68 // vmovsd xmm0, qword [rsi + 104] + LONG $0xd2950f41 // setne r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x4610fbc5; BYTE $0x70 // vmovsd xmm0, qword [rsi + 112] + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x4610fbc5; BYTE $0x78 // vmovsd xmm0, qword [rsi + 120] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + QUAD $0x000000808610fbc5 // vmovsd xmm0, qword [rsi + 128] + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + QUAD $0x000000888610fbc5 // vmovsd xmm0, qword [rsi + 136] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + QUAD $0x000000908610fbc5 // vmovsd xmm0, qword [rsi + 144] + LONG $0xd6950f41 // setne r14b + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + QUAD $0x000000988610fbc5 // vmovsd xmm0, qword [rsi + 152] + LONG $0xd4950f41 // setne r12b + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a08610fbc5 // vmovsd xmm0, qword [rsi + 160] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a88610fbc5 // vmovsd xmm0, qword [rsi + 168] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b08610fbc5 // vmovsd xmm0, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b88610fbc5 // vmovsd xmm0, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c08610fbc5 // vmovsd xmm0, qword [rsi + 192] + LONG $0xd0950f41 // setne r8b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c88610fbc5 // vmovsd xmm0, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d08610fbc5 // vmovsd xmm0, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d88610fbc5 // vmovsd xmm0, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e08610fbc5 // vmovsd xmm0, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e88610fbc5 // vmovsd xmm0, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f08610fbc5 // vmovsd xmm0, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f88610fbc5 // vmovsd xmm0, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB3_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB3_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_56: + LONG $0x0410fbc5; BYTE $0xce // vmovsd xmm0, qword [rsi + 8*rcx] + LONG $0x042ef9c5; BYTE $0xca // vucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_56 + JMP LBB3_123 + +LBB3_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_6 + LONG $0x01c68349 // add r14, 1 + +LBB3_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB3_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f41 // setne r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7950f40 // setne dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2950f41 // setne r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3950f41 // setne r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6950f41 // setne r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4950f41 // setne r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5950f41 // setne r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1950f41 // setne r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0950f41 // setne r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB3_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB3_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_14 + JMP LBB3_123 + +LBB3_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_34 + LONG $0x01c68349 // add r14, 1 + +LBB3_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0950f41 // setne r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3950f41 // setne r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7950f41 // setne r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2950f41 // setne r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6950f41 // setne r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4950f41 // setne r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1950f41 // setne r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_42 + JMP LBB3_123 + +LBB3_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_70 + LONG $0x01c68349 // add r14, 1 + +LBB3_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5950f41 // setne r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0950f41 // setne r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2950f41 // setne r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6950f41 // setne r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4950f41 // setne r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1950f41 // setne r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_78 + JMP LBB3_123 + +LBB3_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_81 + LONG $0x01c68349 // add r14, 1 + +LBB3_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5950f41 // setne r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0950f41 // setne r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2950f41 // setne r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6950f41 // setne r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4950f41 // setne r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1950f41 // setne r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_89 + JMP LBB3_123 + +LBB3_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_103 + LONG $0x01c68349 // add r14, 1 + +LBB3_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0950f41 // setne r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3950f41 // setne r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7950f41 // setne r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2950f41 // setne r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6950f41 // setne r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4950f41 // setne r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1950f41 // setne r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_111 + JMP LBB3_123 + +LBB3_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_114: + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_114 + LONG $0x01c68349 // add r14, 1 + +LBB3_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB3_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x4e10fac5; BYTE $0x04 // vmovss xmm1, dword [rsi + 4] + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x4a2ef8c5; BYTE $0x04 // vucomiss xmm1, dword [rdx + 4] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x4610fac5; BYTE $0x08 // vmovss xmm0, dword [rsi + 8] + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0x4610fac5; BYTE $0x0c // vmovss xmm0, dword [rsi + 12] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x4610fac5; BYTE $0x10 // vmovss xmm0, dword [rsi + 16] + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x4610fac5; BYTE $0x14 // vmovss xmm0, dword [rsi + 20] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x4610fac5; BYTE $0x18 // vmovss xmm0, dword [rsi + 24] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + LONG $0x4610fac5; BYTE $0x1c // vmovss xmm0, dword [rsi + 28] + LONG $0xd5950f41 // setne r13b + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd7950f41 // setne r15b + LONG $0x4610fac5; BYTE $0x20 // vmovss xmm0, dword [rsi + 32] + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x4610fac5; BYTE $0x24 // vmovss xmm0, dword [rsi + 36] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x4610fac5; BYTE $0x28 // vmovss xmm0, dword [rsi + 40] + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0x4610fac5; BYTE $0x2c // vmovss xmm0, dword [rsi + 44] + LONG $0xd1950f41 // setne r9b + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd3950f41 // setne r11b + LONG $0x4610fac5; BYTE $0x30 // vmovss xmm0, dword [rsi + 48] + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0x4610fac5; BYTE $0x34 // vmovss xmm0, dword [rsi + 52] + LONG $0xd2950f41 // setne r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x4610fac5; BYTE $0x38 // vmovss xmm0, dword [rsi + 56] + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x4610fac5; BYTE $0x3c // vmovss xmm0, dword [rsi + 60] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x4610fac5; BYTE $0x40 // vmovss xmm0, dword [rsi + 64] + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x4610fac5; BYTE $0x44 // vmovss xmm0, dword [rsi + 68] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x4610fac5; BYTE $0x48 // vmovss xmm0, dword [rsi + 72] + LONG $0xd6950f41 // setne r14b + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x4610fac5; BYTE $0x4c // vmovss xmm0, dword [rsi + 76] + LONG $0xd4950f41 // setne r12b + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x4610fac5; BYTE $0x50 // vmovss xmm0, dword [rsi + 80] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x4610fac5; BYTE $0x54 // vmovss xmm0, dword [rsi + 84] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x4610fac5; BYTE $0x58 // vmovss xmm0, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x4610fac5; BYTE $0x5c // vmovss xmm0, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0x4610fac5; BYTE $0x60 // vmovss xmm0, dword [rsi + 96] + LONG $0xd0950f41 // setne r8b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x4610fac5; BYTE $0x64 // vmovss xmm0, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x4610fac5; BYTE $0x68 // vmovss xmm0, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x4610fac5; BYTE $0x6c // vmovss xmm0, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x4610fac5; BYTE $0x70 // vmovss xmm0, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + LONG $0x4610fac5; BYTE $0x74 // vmovss xmm0, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + LONG $0x4610fac5; BYTE $0x78 // vmovss xmm0, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x4610fac5; BYTE $0x7c // vmovss xmm0, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB3_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB3_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_122: + LONG $0x0410fac5; BYTE $0x8e // vmovss xmm0, dword [rsi + 4*rcx] + LONG $0x042ef8c5; BYTE $0x8a // vucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_122 + JMP LBB3_123 + +LBB3_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_59 + LONG $0x01c68349 // add r14, 1 + +LBB3_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB3_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f41 // setne r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7950f40 // setne dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2950f41 // setne r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3950f41 // setne r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6950f41 // setne r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4950f41 // setne r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5950f41 // setne r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1950f41 // setne r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0950f41 // setne r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB3_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB3_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_67 + JMP LBB3_123 + +LBB3_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_92 + LONG $0x01c68349 // add r14, 1 + +LBB3_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5950f41 // setne r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0950f41 // setne r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3950f41 // setne r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7950f41 // setne r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2950f41 // setne r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6950f41 // setne r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4950f41 // setne r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1950f41 // setne r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_100 + +LBB3_123: + SUBQ $8, SP + RET + +DATA LCDATA3<>+0x000(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x008(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x010(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x018(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA3<>(SB), 8, $224 + +TEXT ·_comparison_not_equal_arr_scalar_avx2(SB), $1320-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1280(SP) + LEAQ LCDATA3<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB4_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB4_25 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB4_48 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB4_56 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB4_159 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_7: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_7 + LONG $0x01c38349 // add r11, 1 + +LBB4_9: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_100 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_11: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7950f40 // setne dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6950f41 // setne r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1950f41 // setne r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2950f41 // setne r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3950f41 // setne r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4950f41 // setne r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7950f41 // setne r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009024bc0240 // add dil, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_11 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_101 + JMP LBB4_159 + +LBB4_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB4_38 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB4_64 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB4_72 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB4_159 + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_21 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_19: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_19 + LONG $0x01c38349 // add r11, 1 + +LBB4_21: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_104 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_23: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0xd1950f41 // setne r9b + LONG $0x462ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rsi + 16] + LONG $0xd6950f41 // setne r14b + LONG $0x462ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rsi + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x462ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rsi + 32] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x462ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rsi + 40] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x462ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rsi + 48] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x462ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rsi + 56] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x462ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rsi + 64] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x462ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rsi + 72] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x462ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rsi + 80] + LONG $0xd7950f40 // setne dil + LONG $0x462ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rsi + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x462ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rsi + 96] + LONG $0xd3950f41 // setne r11b + LONG $0x462ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rsi + 104] + LONG $0xd4950f41 // setne r12b + LONG $0x462ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rsi + 112] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x462ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rsi + 120] + WORD $0x950f; BYTE $0xd1 // setne cl + QUAD $0x00000080862ef9c5 // vucomisd xmm0, qword [rsi + 128] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + QUAD $0x00000088862ef9c5 // vucomisd xmm0, qword [rsi + 136] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + QUAD $0x00000090862ef9c5 // vucomisd xmm0, qword [rsi + 144] + QUAD $0x000000802494950f // setne byte [rsp + 128] + QUAD $0x00000098862ef9c5 // vucomisd xmm0, qword [rsi + 152] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + QUAD $0x000000a0862ef9c5 // vucomisd xmm0, qword [rsi + 160] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + QUAD $0x000000a8862ef9c5 // vucomisd xmm0, qword [rsi + 168] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + QUAD $0x000000b0862ef9c5 // vucomisd xmm0, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + QUAD $0x000000b8862ef9c5 // vucomisd xmm0, qword [rsi + 184] + LONG $0xd7950f41 // setne r15b + QUAD $0x000000c0862ef9c5 // vucomisd xmm0, qword [rsi + 192] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + QUAD $0x000000c8862ef9c5 // vucomisd xmm0, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + QUAD $0x000000d0862ef9c5 // vucomisd xmm0, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + QUAD $0x000000d8862ef9c5 // vucomisd xmm0, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + QUAD $0x000000e0862ef9c5 // vucomisd xmm0, qword [rsi + 224] + QUAD $0x000001202494950f // setne byte [rsp + 288] + QUAD $0x000000e8862ef9c5 // vucomisd xmm0, qword [rsi + 232] + QUAD $0x000001402494950f // setne byte [rsp + 320] + QUAD $0x000000f0862ef9c5 // vucomisd xmm0, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + QUAD $0x000000f8862ef9c5 // vucomisd xmm0, qword [rsi + 248] + LONG $0xd0950f41 // setne r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000098248c0244 // add r9b, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009024848348; BYTE $0xff // add qword [rsp + 144], -1 + JNE LBB4_23 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_105 + JMP LBB4_159 + +LBB4_25: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB4_80 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB4_159 + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_131 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + WORD $0x894d; BYTE $0xdd // mov r13, r11 + +LBB4_29: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_29 + LONG $0x01c58349 // add r13, 1 + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_132 + +LBB4_31: + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018824bc894c // mov qword [rsp + 392], r15 + JB LBB4_34 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc5 // cmp r13, rax + JAE LBB4_165 + QUAD $0x00000000bd048d4a // lea rax, [4*r15] + WORD $0x014c; BYTE $0xe8 // add rax, r13 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB4_165 + +LBB4_34: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x0000017824ac894c // mov qword [rsp + 376], r13 + +LBB4_35: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + QUAD $0x0000018024ac2b4c // sub r13, qword [rsp + 384] + QUAD $0x0000009024ac894c // mov qword [rsp + 144], r13 + +LBB4_36: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0950f41 // setne r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7950f41 // setne r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5950f41 // setne r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3950f41 // setne r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6950f40 // setne sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7950f40 // setne dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2950f41 // setne r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4950f41 // setne r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1950f41 // setne r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6950f41 // setne r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000001102494950f // setne byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x20 // add r8b, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x20249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 288] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000009824b4b60f // movzx esi, byte [rsp + 152] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009024848348; BYTE $0xff // add qword [rsp + 144], -1 + JNE LBB4_36 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + JMP LBB4_133 + +LBB4_38: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB4_92 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB4_159 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_44 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_42: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_42 + LONG $0x01c38349 // add r11, 1 + +LBB4_44: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_107 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB4_46: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7950f40 // setne dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6950f41 // setne r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1950f41 // setne r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2950f41 // setne r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3950f41 // setne r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4950f41 // setne r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7950f41 // setne r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009024bc0240 // add dil, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_46 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_108 + JMP LBB4_159 + +LBB4_48: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_50: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_50 + LONG $0x01c38349 // add r11, 1 + +LBB4_52: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_111 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_54: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7950f40 // setne dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6950f41 // setne r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1950f41 // setne r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2950f41 // setne r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3950f41 // setne r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4950f41 // setne r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7950f41 // setne r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_54 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_112 + JMP LBB4_159 + +LBB4_56: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_58: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_58 + LONG $0x01c38349 // add r11, 1 + +LBB4_60: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_115 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_62: + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7950f40 // setne dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6950f41 // setne r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1950f41 // setne r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2950f41 // setne r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3950f41 // setne r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4950f41 // setne r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7950f41 // setne r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009024bc0240 // add dil, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_62 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_116 + JMP LBB4_159 + +LBB4_64: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_68 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_66: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_66 + LONG $0x01c38349 // add r11, 1 + +LBB4_68: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_118 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_70: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7950f40 // setne dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6950f41 // setne r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1950f41 // setne r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2950f41 // setne r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3950f41 // setne r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4950f41 // setne r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7950f41 // setne r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009024bc0240 // add dil, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_70 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_119 + JMP LBB4_159 + +LBB4_72: + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_74: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_74 + LONG $0x01c38349 // add r11, 1 + +LBB4_76: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_121 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_78: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0xd1950f41 // setne r9b + LONG $0x462ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rsi + 8] + LONG $0xd6950f41 // setne r14b + LONG $0x462ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rsi + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x462ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rsi + 16] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x462ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rsi + 20] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x462ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rsi + 24] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x462ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rsi + 28] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x462ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rsi + 32] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x462ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rsi + 36] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x462ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rsi + 40] + LONG $0xd7950f40 // setne dil + LONG $0x462ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rsi + 44] + LONG $0xd2950f41 // setne r10b + LONG $0x462ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rsi + 48] + LONG $0xd3950f41 // setne r11b + LONG $0x462ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rsi + 52] + LONG $0xd4950f41 // setne r12b + LONG $0x462ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rsi + 56] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x462ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rsi + 60] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x462ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rsi + 64] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x462ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rsi + 68] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x462ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rsi + 72] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x462ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rsi + 76] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x462ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rsi + 80] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x462ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rsi + 84] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x462ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x462ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rsi + 92] + LONG $0xd7950f41 // setne r15b + LONG $0x462ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rsi + 96] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x462ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x462ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x462ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x462ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rsi + 112] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x462ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rsi + 116] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x462ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x462ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rsi + 124] + LONG $0xd0950f41 // setne r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000098248c0244 // add r9b, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009024848348; BYTE $0xff // add qword [rsp + 144], -1 + JNE LBB4_78 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_122 + JMP LBB4_159 + +LBB4_80: + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_84 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_82: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_82 + LONG $0x01c38349 // add r11, 1 + +LBB4_84: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_124 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018824bc894c // mov qword [rsp + 392], r15 + JB LBB4_88 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB4_168 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB4_168 + +LBB4_88: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + +LBB4_89: + QUAD $0x0000018024bc2b4c // sub r15, qword [rsp + 384] + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + +LBB4_90: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0950f41 // setne r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7950f41 // setne r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5950f41 // setne r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3950f41 // setne r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6950f40 // setne sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7950f40 // setne dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2950f41 // setne r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4950f41 // setne r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1950f41 // setne r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6950f41 // setne r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000001102494950f // setne byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x20 // add r8b, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x20249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 288] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000982494b60f // movzx edx, byte [rsp + 152] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000017824b48b48 // mov rsi, qword [rsp + 376] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000017824b48948 // mov qword [rsp + 376], rsi + QUAD $0x0000009024848348; BYTE $0xff // add qword [rsp + 144], -1 + JNE LBB4_90 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + JMP LBB4_125 + +LBB4_92: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_96 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_94: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_94 + LONG $0x01c38349 // add r11, 1 + +LBB4_96: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB4_128 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB4_98: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7950f40 // setne dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6950f41 // setne r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1950f41 // setne r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2950f41 // setne r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3950f41 // setne r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4950f41 // setne r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7950f41 // setne r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009024bc0240 // add dil, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB4_98 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB4_129 + JMP LBB4_159 + +LBB4_100: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_101: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB4_130 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_103: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_103 + JMP LBB4_156 + +LBB4_104: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_105: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_136 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_138 + +LBB4_107: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_108: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB4_120 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_110: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_110 + JMP LBB4_146 + +LBB4_111: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_112: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB4_117 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_114: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_114 + JMP LBB4_142 + +LBB4_115: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_116: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_140 + +LBB4_117: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_142 + +LBB4_118: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_119: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_144 + +LBB4_120: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_146 + +LBB4_121: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_122: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_148 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_150 + +LBB4_124: + QUAD $0x00000178249c894c // mov qword [rsp + 376], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB4_125: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB4_127 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB4_153: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_153 + JMP LBB4_162 + +LBB4_128: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + +LBB4_129: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_154 + +LBB4_130: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_156 + +LBB4_131: + WORD $0x894d; BYTE $0xdd // mov r13, r11 + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JGE LBB4_31 + +LBB4_132: + QUAD $0x0000017824ac894c // mov qword [rsp + 376], r13 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB4_133: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB4_159 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB4_160 + +LBB4_127: + WORD $0xf631 // xor esi, esi + JMP LBB4_163 + +LBB4_136: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_137: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_137 + +LBB4_138: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + JMP LBB4_158 + +LBB4_140: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_141: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_141 + +LBB4_142: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + LONG $0x2e394466 // cmp word [rsi], r13w + JMP LBB4_158 + +LBB4_144: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_145: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_145 + +LBB4_146: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB4_158 + +LBB4_148: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_149: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_149 + +LBB4_150: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + JMP LBB4_158 + +LBB4_154: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB4_155: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_155 + +LBB4_156: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + +LBB4_158: + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB4_159: + MOVQ 1280(SP), SP + VZEROUPPER + RET + +LBB4_160: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000178249c8b4c // mov r11, qword [rsp + 376] + +LBB4_161: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_161 + +LBB4_162: + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB4_163: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_159 + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000017824848b4c // mov r8, qword [rsp + 376] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB4_159 + +LBB4_165: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + QUAD $0x00000000bd048d4a // lea rax, [4*r15] + WORD $0x014c; BYTE $0xe8 // add rax, r13 + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x0000011024ac894c // mov qword [rsp + 272], r13 + +LBB4_166: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rcx + 1] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xe06ef9c5 // vmovd xmm4, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x1644b60f; BYTE $0x02 // movzx eax, byte [rsi + rdx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x0000010024948948 // mov qword [rsp + 256], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8949; BYTE $0xdd // mov r13, rbx + LONG $0x20cd8149; WORD $0x0002; BYTE $0x00 // or r13, 544 + QUAD $0x000000f824ac894c // mov qword [rsp + 248], r13 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0x80ca8149; WORD $0x0002; BYTE $0x00 // or r10, 640 + QUAD $0x000000802494894c // mov qword [rsp + 128], r10 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02a00d48; WORD $0x0000 // or rax, 672 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + LONG $0xc0cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 704 + QUAD $0x000000d824bc8948 // mov qword [rsp + 216], rdi + WORD $0x8948; BYTE $0xda // mov rdx, rbx + LONG $0xe0ca8148; WORD $0x0002; BYTE $0x00 // or rdx, 736 + QUAD $0x000000e024948948 // mov qword [rsp + 224], rdx + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03000d48; WORD $0x0000 // or rax, 768 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0x40cb8149; WORD $0x0003; BYTE $0x00 // or r11, 832 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0x60c88149; WORD $0x0003; BYTE $0x00 // or r8, 864 + QUAD $0x000001082484894c // mov qword [rsp + 264], r8 + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x80ce8149; WORD $0x0003; BYTE $0x00 // or r14, 896 + LONG $0x2474894c; BYTE $0x78 // mov qword [rsp + 120], r14 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0xa0c98149; WORD $0x0003; BYTE $0x00 // or r9, 928 + LONG $0x244c894c; BYTE $0x58 // mov qword [rsp + 88], r9 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x000000f0249c8948 // mov qword [rsp + 240], rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x20 // mov qword [rsp + 32], rcx + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + LONG $0x2031a3c4; WORD $0x2e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + r13], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 3 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r10], 4 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r12], 5 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + rdi], 6 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 7 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 8 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r15], 9 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r11], 10 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r8], 11 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r14], 12 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + r9], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + rbx], 1 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r15], 2 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r9], 3 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r10], 4 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r11], 5 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r8], 6 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r14], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rcx], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + r12], 14 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x04012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 4 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x07012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 7 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x08012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 8 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x090116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 9 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + QUAD $0x0b0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 15 + QUAD $0x01011e6c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rbx + 1], 1 + QUAD $0x02013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 2 + QUAD $0x03010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 3 + QUAD $0x0401166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 4 + QUAD $0x05011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 5 + QUAD $0x0601066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 6 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + QUAD $0x0701366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + QUAD $0x0e01266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x01020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 1 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x02020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 2 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x060236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 7 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x08022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 8 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x09022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 9 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x0a0206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 10 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c0216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 12 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + QUAD $0x06021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x08021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x01030e642021e3c4 // vpinsrb xmm4, xmm11, byte [rsi + rcx + 3], 1 + QUAD $0x02030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x04031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 4 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x050316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 5 + QUAD $0x060336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 6 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x07030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 7 + QUAD $0x080326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 8 + QUAD $0x09032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 9 + QUAD $0x0a0306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0e0306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0203066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0303066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0603366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0803066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0903066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0f0326442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + LONG $0x167cb60f; BYTE $0x09 // movzx edi, byte [rsi + rdx + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x010406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x02041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 3 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x050416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 5 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x06043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 6 + QUAD $0x07040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 7 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x080416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 8 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x090416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 9 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0a0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 10 + QUAD $0x0b041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 13 + QUAD $0x0e0406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 14 + QUAD $0x0f040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 15 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x01040e5c2001e3c4 // vpinsrb xmm3, xmm15, byte [rsi + rcx + 4], 1 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x0204165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x03040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x04040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 4 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x05040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 5 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x0604365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 7 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x08040e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 4], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 9 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0a04365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 13 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0e04365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 14 + QUAD $0x0f04265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 4], 15 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x010536642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r14 + 5], 1 + QUAD $0x02051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x03051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + QUAD $0x050506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 5 + QUAD $0x06053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 7 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x080516642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 5], 8 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x090506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 10 + QUAD $0x0b051e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 5], 11 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x0c052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 13 + QUAD $0x0e0506642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 5], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 15 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x01050e6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rsi + rcx + 5], 1 + QUAD $0x0205166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0305066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0405066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0505066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0705066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 7 + QUAD $0x08050e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 5], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0905066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0f0526442051a3c4 // vpinsrb xmm0, xmm5, byte [rsi + r12 + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x010636442019a3c4 // vpinsrb xmm0, xmm12, byte [rsi + r14 + 6], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 2 + QUAD $0x03061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x040636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 6], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 5 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x060616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 6 + QUAD $0x07063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x080606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 8 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x09063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 9 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x0a060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 10 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + QUAD $0x0b0606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 6], 11 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x0c062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 15 + QUAD $0x01060e6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rcx + 6], 1 + QUAD $0x0206166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x03060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x04060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x06062e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 6], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0706166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 7 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x08060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 12 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0d061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 14 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0f06266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 6], 15 + QUAD $0x01071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x02071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x03071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 3 + QUAD $0x040736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 4 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x050736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 5 + QUAD $0x060716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 6 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x07071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 7 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x080716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 8 + QUAD $0x09073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 9 + QUAD $0x0a070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 10 + QUAD $0x0b0706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 11 + QUAD $0x0c0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 15 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0107064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 1 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x0207264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 7], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0307064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0407064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + QUAD $0x06072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 6 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x0707164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 7 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x08070e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 7], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0907064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 9 + QUAD $0x0a070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0706442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 7], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0706442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x01083e442031a3c4 // vpinsrb xmm0, xmm9, byte [rsi + r15 + 8], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x02081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x040806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 4 + QUAD $0x050836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 5 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x060806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 6 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x07081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 7 + QUAD $0x080816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 8], 8 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x090816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 9 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0a0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 15 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0108166c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rdx + 8], 1 + QUAD $0x0208266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0308166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0508166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 5 + QUAD $0x0608066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 8], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0708166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 7 + QUAD $0x08080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0908166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 9 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0a08066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 8], 10 + QUAD $0x0b082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 11 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0c08266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 12 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0f082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 15 + QUAD $0x01093e742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r15 + 9], 1 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + QUAD $0x02091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 2 + QUAD $0x03090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 3 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x04091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 4 + QUAD $0x050936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 5 + QUAD $0x060906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 6 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x07091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 7 + QUAD $0x080916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 8 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x09090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 9 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x0a093e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r15 + 9], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 11 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x0c091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 15 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0109067c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rax + 9], 1 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x0209167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 9], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0309067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0509067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0609067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0709067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0809067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0909067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 9 + QUAD $0x0a09067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 9], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + QUAD $0x0c09267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 9], 12 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0d09367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 13 + QUAD $0x0e09167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00046024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x010a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 3 + QUAD $0x040a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 4 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x050a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 5 + QUAD $0x060a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 7 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x080a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 8 + QUAD $0x090a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 9 + QUAD $0x0a0a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 10 + QUAD $0x00000108248c8b4c // mov r9, qword [rsp + 264] + QUAD $0x0b0a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 11 + QUAD $0x0c0a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 12 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0d0a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 15 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x010a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 1 + QUAD $0x020a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x040a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 4 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x050a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x060a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 11 + QUAD $0x0c0a26642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 10], 12 + QUAD $0x0d0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 13 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0e0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 14 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 15 + QUAD $0x010b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 3 + QUAD $0x040b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 4 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x050b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 5 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x060b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 7 + QUAD $0x080b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 8 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x090b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + QUAD $0x0b0b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x0d0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 15 + QUAD $0x010b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + QUAD $0x040b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 11], 4 + QUAD $0x050b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 11], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x060b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 11 + QUAD $0x0c0b26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 11], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + QUAD $0x0e0b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000420248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x010c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 12], 1 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x020c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 12], 2 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x030c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 3 + QUAD $0x040c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 4 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x050c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 5 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x060c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 6 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x070c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 7 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x080c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 12], 8 + QUAD $0x090c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 9 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x0a0c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 10 + QUAD $0x0000010824b48b4c // mov r14, qword [rsp + 264] + QUAD $0x0b0c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 12], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 12 + QUAD $0x0d0c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 15 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x010c06542051e3c4 // vpinsrb xmm2, xmm5, byte [rsi + rax + 12], 1 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x030c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x040c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x050c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x060c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 9 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x0a0c2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 12], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c0c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 14 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0f0c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 15 + QUAD $0x010d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 1 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x020d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 2 + QUAD $0x030d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x040d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 4 + QUAD $0x050d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 5 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x060d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 6 + QUAD $0x070d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 7 + QUAD $0x080d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 8 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x090d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 9 + QUAD $0x0a0d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 10 + QUAD $0x0b0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 11 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x0c0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 12 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0d0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 15 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x010d164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x030d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 3 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x040d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 4 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x050d064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 13], 5 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x060d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x070d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x080d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 8 + QUAD $0x090d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 9 + QUAD $0x0a0d2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 13], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c0d1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 13], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0d06442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 13], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x0e2e // movzx edi, byte [rsi + r13 + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x010e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 2 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x030e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x040e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x060e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 14], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x090e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 11 + QUAD $0x0c0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 12 + QUAD $0x0d0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 13 + QUAD $0x0e0e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 14], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 15 + QUAD $0x010e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x030e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 3 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x040e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 4 + QUAD $0x050e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 5 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x060e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 6 + QUAD $0x070e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x090e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 9 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0a0e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0c0e1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 14], 12 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0d0e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 14], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x0f // movzx edi, byte [rsi + rdi + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x010f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x020f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 2 + QUAD $0x030f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x040f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x050f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 5 + QUAD $0x060f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 6 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x070f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 7 + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x080f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 8 + QUAD $0x090f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 9 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0a0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 10 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + QUAD $0x0b0f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0c0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 14 + QUAD $0x0f0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 15 + LONG $0x7cb60f42; WORD $0x0f2e // movzx edi, byte [rsi + r13 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x010f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 1 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x030f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 3 + QUAD $0x040f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 4 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x050f2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 15], 5 + QUAD $0x060f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x070f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 7 + QUAD $0x080f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 8 + QUAD $0x090f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 9 + QUAD $0x0a0f065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 15], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + QUAD $0x0d0f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e0f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 14 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x10 // movzx edi, byte [rsi + rax + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x011016442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 16], 1 + QUAD $0x02101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 3 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x041006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 4 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x05101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 5 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x061006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 6 + QUAD $0x071026442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 16], 7 + QUAD $0x08100e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 16], 8 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x091006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 10 + QUAD $0x0b103e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 16], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 15 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + LONG $0x167cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x0110364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 16], 1 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x02100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0310164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 3 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0410164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 4 + QUAD $0x05102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 5 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0610164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0710164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 7 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0810164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 8 + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x09101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 12 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0d103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 13 + QUAD $0x0e100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 14 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0f100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x112e // movzx edi, byte [rsi + r13 + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x02113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 2 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x031116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 3 + QUAD $0x041106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 4 + QUAD $0x05111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 5 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x06110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 6 + QUAD $0x071126542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 17], 7 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x08110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 8 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x09113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 9 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0a113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 10 + QUAD $0x0b113e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 17], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0c113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 14 + QUAD $0x0f1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x11 // movzx edi, byte [rsi + rax + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0111365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 1 + QUAD $0x02110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0311065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 3 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0411065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 17], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0511065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0611065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 6 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x07110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 7 + QUAD $0x0811165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 8 + QUAD $0x09111e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 17], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b11365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f1106442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x7cb60f42; WORD $0x122e // movzx edi, byte [rsi + r13 + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x021206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 2 + QUAD $0x031216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 5 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x061206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 6 + QUAD $0x071226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 7 + QUAD $0x08120e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 18], 8 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x091206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a120e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 18], 10 + QUAD $0x0b123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 11 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0c1226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 12 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0d121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 13 + QUAD $0x0e121e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 18], 14 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0f123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 15 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rcx + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x01120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 1 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x02120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x03120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 3 + QUAD $0x0412064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 4 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x05120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 5 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x06120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 6 + QUAD $0x07120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 7 + QUAD $0x0812164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 8 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0912064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 10 + QUAD $0x0b12364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 12 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0d12164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 18], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 14 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0f123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 15 + LONG $0x7cb60f42; WORD $0x132e // movzx edi, byte [rsi + r13 + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x02133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 2 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x03133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 3 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x04132e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 19], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x05133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 5 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x06133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 6 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + QUAD $0x091306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 11 + QUAD $0x0c1326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 12 + QUAD $0x0d131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 14 + QUAD $0x0f133e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 19], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x13 // movzx edi, byte [rsi + rax + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0113065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 1 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x0213365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0313065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0413065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 4 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x05133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 5 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x06130e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 19], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0713065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0813065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 8 + QUAD $0x0913065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 9 + QUAD $0x0a130e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 19], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 11 + QUAD $0x0c13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 12 + QUAD $0x0d13165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 13 + QUAD $0x0e131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 14 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x141e // movzx edi, byte [rsi + r11 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 1 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 3 + QUAD $0x04142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 4 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x05140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 5 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x061406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 20], 6 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x071426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 7 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x08143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 8 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x09143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 10 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0b141e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 20], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0c143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x14 // movzx edi, byte [rsi + rdi + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0114164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 1 + QUAD $0x0214364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 2 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + QUAD $0x0314364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 3 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x04142e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 20], 4 + QUAD $0x05143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 5 + QUAD $0x06140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x08143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x09143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0d143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 13 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x0e140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 14 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0f143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 15 + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 1 + QUAD $0x021516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 2 + WORD $0x8949; BYTE $0xd3 // mov r11, rdx + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 5 + QUAD $0x061506542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 21], 6 + QUAD $0x071526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x081506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 8 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x091506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 9 + QUAD $0x0a150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 10 + QUAD $0x0b151e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 21], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x15 // movzx edi, byte [rsi + rax + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0115165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0215065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 2 + QUAD $0x0315365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 21], 3 + QUAD $0x04152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 4 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x0515365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 21], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0615065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 6 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0715165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0815065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 8 + QUAD $0x09153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 9 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0a15265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 21], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b15065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 13 + QUAD $0x0e150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0f151e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rbx + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rcx + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x02161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 2 + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 4 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x06160e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 22], 6 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x07163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 7 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x081616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 8 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x091616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 9 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x0a161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 11 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0c1606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 22], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdi + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x01163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 1 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x02162e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 22], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x04163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 4 + QUAD $0x0516364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 5 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x06163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 6 + QUAD $0x0716164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 7 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0816364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 9 + QUAD $0x0a16264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 10 + QUAD $0x0b16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 11 + QUAD $0x0c163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 12 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0d16164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 14 + QUAD $0x0f161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 15 + LONG $0x0e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rcx + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x02170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 5 + QUAD $0x06170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 6 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x07170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x081706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 8 + QUAD $0x091716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 9 + QUAD $0x0a171e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 23], 10 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x0b1726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 23], 11 + QUAD $0x0c1706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x17 // movzx edi, byte [rsi + rax + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0117065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 1 + QUAD $0x02172e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 23], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0317165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 23], 3 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x04173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 4 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x05171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 5 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x06172e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 23], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0717065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 7 + QUAD $0x0817365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0917065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 9 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0a17065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 12 + QUAD $0x0d17165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 13 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0e17165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 14 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0f171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rdi + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 1 + QUAD $0x02180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 4 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x05180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 5 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x061836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 6 + QUAD $0x07180e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 24], 7 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x08180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 8 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x09180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 10 + QUAD $0x0b1826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 24], 11 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0c180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 12 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0d180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 15 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x01180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 1 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x0218264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 2 + QUAD $0x0318164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 3 + QUAD $0x04183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 4 + QUAD $0x05181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 5 + QUAD $0x06182e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 24], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 7 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x08183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 9 + QUAD $0x0a18064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 10 + QUAD $0x0b18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 13 + QUAD $0x0e18164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 14 + QUAD $0x0f181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x19 // movzx edi, byte [rsi + rax + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x011916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 1 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x021906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 4 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x05191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 5 + QUAD $0x061936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 6 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x071906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x081906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 8 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x091916542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 25], 9 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0a1936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 11 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x0c191e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 25], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 14 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0f192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3e7cb60f; BYTE $0x19 // movzx edi, byte [rsi + rdi + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 1 + QUAD $0x0219265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 2 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x03190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 3 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x0419265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 5 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x06193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 7 + QUAD $0x08193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 10 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0b193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 12 + QUAD $0x0d190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0f190e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rcx + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x1a // movzx edi, byte [rsi + rcx + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 1 + QUAD $0x021a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 2 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x031a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 3 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x041a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 4 + QUAD $0x051a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 5 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x061a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 6 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x071a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 7 + QUAD $0x081a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 8 + QUAD $0x091a16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 26], 9 + QUAD $0x0a1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 11 + QUAD $0x0c1a1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 26], 12 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0d1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 13 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0e1a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 14 + QUAD $0x0f1a2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 26], 15 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + LONG $0x167cb60f; BYTE $0x1a // movzx edi, byte [rsi + rdx + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x011a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 1 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x021a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 2 + QUAD $0x031a0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 26], 3 + QUAD $0x041a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 4 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x051a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 5 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x061a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 6 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x071a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x081a1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 26], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x091a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 9 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x0a1a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 10 + QUAD $0x0b1a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 12 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x0d1a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 14 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0f1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 15 + LONG $0x0e7cb60f; BYTE $0x1b // movzx edi, byte [rsi + rcx + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x011b3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 27], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x021b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 2 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x031b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x041b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 4 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x051b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 27], 5 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x061b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 6 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x071b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 7 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x081b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 8 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x091b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 9 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x0a1b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 10 + QUAD $0x0b1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 12 + QUAD $0x0d1b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 13 + QUAD $0x0e1b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x067cb60f; BYTE $0x1b // movzx edi, byte [rsi + rax + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x011b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 1 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x021b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x031b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x041b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 4 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x051b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 5 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x061b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 6 + QUAD $0x071b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 7 + QUAD $0x081b1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 27], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x091b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 9 + QUAD $0x0a1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 10 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0b1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 11 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0c1b065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 27], 12 + QUAD $0x0d1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 13 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0e1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 14 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0f1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x1c // movzx edi, byte [rsi + rdx + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 28], 1 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x021c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 28], 2 + QUAD $0x031c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 3 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x041c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 4 + QUAD $0x051c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 5 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x061c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 6 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x071c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 7 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x081c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 28], 8 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x091c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 9 + QUAD $0x0a1c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 10 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0b1c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 11 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0c1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 12 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0d1c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 15 + LONG $0x067cb60f; BYTE $0x1c // movzx edi, byte [rsi + rax + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x011c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 1 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x021c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x031c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 3 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x041c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 4 + QUAD $0x051c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 5 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x061c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x071c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x081c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 8 + QUAD $0x091c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a1c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b1c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 11 + QUAD $0x0c1c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 12 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0d1c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 13 + QUAD $0x0e1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 14 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0f1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdi + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x011d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 1 + QUAD $0x021d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 2 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x031d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 3 + QUAD $0x041d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x051d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 5 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x061d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 6 + QUAD $0x071d16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 29], 7 + QUAD $0x081d3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 29], 8 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x091d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 9 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x0a1d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 10 + QUAD $0x0b1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0c1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 12 + QUAD $0x0d1d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 13 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0e1d16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 29], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 15 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1d3e // movzx edi, byte [rsi + r15 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x021d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x031d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 3 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x041d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 29], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x051d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 5 + QUAD $0x061d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x071d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x081d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 29], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 9 + QUAD $0x0a1d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 10 + QUAD $0x0b1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 11 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0c1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 12 + QUAD $0x0d1d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 29], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1d06642061e3c4 // vpinsrb xmm4, xmm3, byte [rsi + rax + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x0f1d2e442059a3c4 // vpinsrb xmm0, xmm4, byte [rsi + r13 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x1e // movzx edi, byte [rsi + rax + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x011e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 1 + LONG $0x067cb60f; BYTE $0x1f // movzx edi, byte [rsi + rax + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x061e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 30], 6 + QUAD $0x061f264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 31], 6 + QUAD $0x0000011024ac8b4c // mov r13, qword [rsp + 272] + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + QUAD $0x0a1e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 30], 10 + QUAD $0x0a1f0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 31], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + QUAD $0x0e1e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 30], 14 + QUAD $0x0e1f164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 31], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + LONG $0x44b60f42; WORD $0x1e3e // movzx eax, byte [rsi + r15 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x011e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 30], 1 + LONG $0x44b60f42; WORD $0x1f3e // movzx eax, byte [rsi + r15 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 31], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 30], 4 + QUAD $0x041f1e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r11 + 31], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 30], 7 + QUAD $0x071f167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 31], 7 + QUAD $0x081e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 30], 8 + QUAD $0x081f1e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 9 + QUAD $0x091f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + QUAD $0x0c1e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 12 + QUAD $0x0c1f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 14 + QUAD $0x0e1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 14 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0f1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 15 + QUAD $0x0f1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + QUAD $0x00020024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 512] + LONG $0xc27495c5 // vpcmpeqb ymm0, ymm13, ymm2 + QUAD $0x0004c024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1216] + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x0001e024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI4_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001c024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 448] + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI4_2] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xe2740dc5 // vpcmpeqb ymm12, ymm14, ymm2 + LONG $0x456f7dc5; BYTE $0x60 // vmovdqa ymm8, yword 96[rbp] /* [rip + .LCPI4_3] */ + LONG $0xdf1d41c4; BYTE $0xe0 // vpandn ymm12, ymm12, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xfa7485c5 // vpcmpeqb ymm7, ymm15, ymm2 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI4_4] */ + LONG $0xf9dfc5c5 // vpandn ymm7, ymm7, ymm1 + QUAD $0x0001a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 416] + QUAD $0x000000a0ad6f7dc5 // vmovdqa ymm13, yword 160[rbp] /* [rip + .LCPI4_5] */ + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0004a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1184] + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI4_6] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x00048024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1152] + QUAD $0x00046024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1120] + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00044024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1088] + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x00042024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 1056] + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 992] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00040024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1024] + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + QUAD $0x0003a024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 928] + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003c024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 960] + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x00038024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 896] + QUAD $0x00036024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 864] + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00032024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 800] + LONG $0xfedf05c5 // vpandn ymm15, ymm15, ymm6 + QUAD $0x00034024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 832] + LONG $0xf3df0dc5 // vpandn ymm14, ymm14, ymm3 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x0002e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 736] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00030024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 768] + LONG $0xf1df0dc5 // vpandn ymm14, ymm14, ymm1 + LONG $0xd2742dc5 // vpcmpeqb ymm10, ymm10, ymm2 + LONG $0xdf2d41c4; BYTE $0xd5 // vpandn ymm10, ymm10, ymm13 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0xda7425c5 // vpcmpeqb ymm11, ymm11, ymm2 + LONG $0x6f7d41c4; BYTE $0xf1 // vmovdqa ymm14, ymm9 + LONG $0xdf2541c4; BYTE $0xd9 // vpandn ymm11, ymm11, ymm9 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000220248c746dc5; BYTE $0x00 // vpcmpeqb ymm9, ymm2, yword [rsp + 544] + QUAD $0x0002402484746dc5; BYTE $0x00 // vpcmpeqb ymm8, ymm2, yword [rsp + 576] + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x00026024ac74edc5; BYTE $0x00 // vpcmpeqb ymm5, ymm2, yword [rsp + 608] + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x00028024b474edc5; BYTE $0x00 // vpcmpeqb ymm6, ymm2, yword [rsp + 640] + LONG $0xf3dfcdc5 // vpandn ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x0002a0249c74edc5; BYTE $0x00 // vpcmpeqb ymm3, ymm2, yword [rsp + 672] + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI4_3] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xecf8bdc5 // vpsubb ymm5, ymm8, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x0002c024a474edc5; BYTE $0x00 // vpcmpeqb ymm4, ymm2, yword [rsp + 704] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + QUAD $0x000120248c74edc5; BYTE $0x00 // vpcmpeqb ymm1, ymm2, yword [rsp + 288] + LONG $0xdf75c1c4; BYTE $0xcd // vpandn ymm1, ymm1, ymm13 + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x000140249474edc5; BYTE $0x00 // vpcmpeqb ymm2, ymm2, yword [rsp + 320] + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8d44; BYTE $0x60 // vmovdqu yword [r13 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8d54; BYTE $0x40 // vmovdqu yword [r13 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8d64; BYTE $0x20 // vmovdqu yword [r13 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8d4c; BYTE $0x00 // vmovdqu yword [r13 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB4_166 + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB4_35 + JMP LBB4_133 + +LBB4_168: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB4_169: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000019824848948 // mov qword [rsp + 408], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rcx + 2] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x0000010024948948 // mov qword [rsp + 256], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0x60cc8149; WORD $0x0002; BYTE $0x00 // or r12, 608 + QUAD $0x000000b824a4894c // mov qword [rsp + 184], r12 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02800d48; WORD $0x0000 // or rax, 640 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0xa0c98149; WORD $0x0002; BYTE $0x00 // or r9, 672 + QUAD $0x000000e0248c894c // mov qword [rsp + 224], r9 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0xc0cf8149; WORD $0x0002; BYTE $0x00 // or r15, 704 + QUAD $0x000000f824bc894c // mov qword [rsp + 248], r15 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xe0cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 736 + QUAD $0x0000009824bc8948 // mov qword [rsp + 152], rdi + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0x00ce8149; WORD $0x0003; BYTE $0x00 // or r14, 768 + LONG $0x2474894c; BYTE $0x70 // mov qword [rsp + 112], r14 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x20cb8149; WORD $0x0003; BYTE $0x00 // or r11, 800 + QUAD $0x000000d8249c894c // mov qword [rsp + 216], r11 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x40ca8149; WORD $0x0003; BYTE $0x00 // or r10, 832 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03600d48; WORD $0x0000 // or rax, 864 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000c82484894c // mov qword [rsp + 200], r8 + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xa0ca8148; WORD $0x0003; BYTE $0x00 // or rdx, 928 + QUAD $0x000000a824948948 // mov qword [rsp + 168], rdx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000d0248c8948 // mov qword [rsp + 208], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x28 // mov qword [rsp + 40], rcx + LONG $0x207963c4; WORD $0x1e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + rbx], 1 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + LONG $0x2031e3c4; WORD $0x1e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + rbx], 2 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + r12], 3 + LONG $0x2079a3c4; WORD $0x2e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r13], 4 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r9], 5 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + r15], 6 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdi], 7 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r14], 8 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r11], 9 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r10], 10 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + LONG $0x2079a3c4; WORD $0x2e04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r13], 11 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r8], 12 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + rdx], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r14], 1 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r9], 2 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r10], 3 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r11], 4 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r12], 5 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r8], 6 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r15], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rbx], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + rdx], 14 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + QUAD $0x040116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 4 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x070116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x080116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 8 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x090116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 9 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + QUAD $0x0b012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 11 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x0c0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 12 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0e0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 14 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0f012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 15 + QUAD $0x0101366c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r14 + 1], 1 + QUAD $0x02010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 2 + QUAD $0x0301166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 3 + QUAD $0x04011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 4 + QUAD $0x0501266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 5 + QUAD $0x0601066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 6 + QUAD $0x07013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0a011e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 1 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x020216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 2 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x06020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 6 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x070206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 8 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x090226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 2], 9 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0a022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 10 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0c0236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 12 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x06023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + QUAD $0x08020e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 2], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x09020e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 2], 9 + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x010306642021a3c4 // vpinsrb xmm4, xmm11, byte [rsi + r8 + 3], 1 + QUAD $0x020316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + QUAD $0x040316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 4 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + QUAD $0x050306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 5 + QUAD $0x06030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 6 + WORD $0x8949; BYTE $0xca // mov r10, rcx + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x07030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x080316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 8 + QUAD $0x090326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 9 + QUAD $0x0a032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x0e033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0203066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 2 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0303066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0603066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + WORD $0x8949; BYTE $0xfb // mov r11, rdi + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0803066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 8 + QUAD $0x09030e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 3], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x09 // movzx edi, byte [rsi + rcx + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0f031e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x01040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x020406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 2 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x030436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 4], 3 + QUAD $0x0000010824ac8b4c // mov r13, qword [rsp + 264] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x050406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 5 + QUAD $0x060416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 6 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x070416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 7 + QUAD $0x080416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 8 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x090406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 11 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0c041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 13 + QUAD $0x0e043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 15 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0104065c2001e3c4 // vpinsrb xmm3, xmm15, byte [rsi + rax + 4], 1 + QUAD $0x0204265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 4], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0304065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0404065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0504065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x06043e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 4], 6 + QUAD $0x07041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0804065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 8 + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x09041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 9 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x0a043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 11 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0c043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 12 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x0d04265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 4], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 14 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 15 + QUAD $0x01050e642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r9 + 5], 1 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x02050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 2 + QUAD $0x030536642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + WORD $0x894d; BYTE $0xee // mov r14, r13 + QUAD $0x05050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 5 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x06050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 6 + QUAD $0x070516642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 5], 7 + QUAD $0x080516642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 5], 8 + QUAD $0x090506642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 5], 9 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 10 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0b052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 11 + QUAD $0x0c051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 12 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0d050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 13 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0e0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 15 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0105266c2049a3c4 // vpinsrb xmm5, xmm6, byte [rsi + r12 + 5], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0205066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0305066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 3 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x04051e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 5], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x05050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0705066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0805066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 8 + QUAD $0x09051e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 5], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 11 + QUAD $0x0c053e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 5], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f0506442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x010606442019a3c4 // vpinsrb xmm0, xmm12, byte [rsi + r8 + 6], 1 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + QUAD $0x02060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 2 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x03063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 3 + QUAD $0x040636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 6], 4 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x050636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 6], 5 + QUAD $0x000000f8248c8b4c // mov r9, qword [rsp + 248] + QUAD $0x06060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 6 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x070616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 8 + QUAD $0x090616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 9 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x0a0616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 10 + QUAD $0x0b062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 11 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x0c061e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 6], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d0606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 13 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0e063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0f063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 15 + QUAD $0x0106266c2041a3c4 // vpinsrb xmm5, xmm7, byte [rsi + r12 + 6], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 3 + QUAD $0x04061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 4 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x06061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 6 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x07061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 7 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x08061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 9 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x0a06266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 6], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 12 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x0d062e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 6], 13 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0e061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 14 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0f061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 15 + QUAD $0x010706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 1 + QUAD $0x02070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 2 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x03073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 3 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + QUAD $0x04073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 4 + QUAD $0x050736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 5 + QUAD $0x06070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 6 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + QUAD $0x070716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x08070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 8 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x09070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 9 + QUAD $0x0a0716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 11 + QUAD $0x0c071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 12 + QUAD $0x0d0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 13 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x0e070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 14 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x0f0716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 15 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0107064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0207064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0307064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 3 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0407064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0607064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0707064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0807064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0907164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 9 + QUAD $0x0a07264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 7], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b07264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 7], 11 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0c071e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 7], 12 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0d07164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0e0716442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rdx + 7], 14 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x0b // movzx edi, byte [rsi + rdx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0f0716442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + LONG $0x167cb60f; BYTE $0x0b // movzx edi, byte [rsi + rdx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x010816442031e3c4 // vpinsrb xmm0, xmm9, byte [rsi + rdx + 8], 1 + QUAD $0x02081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 2 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x030816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 3 + WORD $0x894c; BYTE $0xfa // mov rdx, r15 + QUAD $0x04083e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 8], 4 + QUAD $0x050836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 5 + QUAD $0x06082e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 8], 6 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x070836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 7 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x08083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 8 + QUAD $0x09080e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 8], 9 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0a083e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 8], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 11 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0c081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 12 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x0d080e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 8], 13 + QUAD $0x0e080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 14 + QUAD $0x0f0816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 8], 15 + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + QUAD $0x0108166c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r10 + 8], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 3 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x0408066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 8], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x05080e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 8], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06080e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 8], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07080e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 8], 7 + QUAD $0x0808066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0908066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 9 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x0a080e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 8], 10 + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x0b08266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 11 + QUAD $0x0c081e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 8], 12 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0d081e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 8], 13 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0e08266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 14 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0f080e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 8], 15 + QUAD $0x000000f024a48b4c // mov r12, qword [rsp + 240] + QUAD $0x010926742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r12 + 9], 1 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x02090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 2 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x03090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 3 + QUAD $0x040916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 4 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x050916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 5 + QUAD $0x06092e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r13 + 9], 6 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x070936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x080916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 8 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x090916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 9 + QUAD $0x0a093e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r15 + 9], 10 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0b0916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 11 + QUAD $0x0c091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 12 + QUAD $0x0d090e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r9 + 9], 13 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x0e0926742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r12 + 9], 14 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0f0936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 15 + QUAD $0x0109167c2021a3c4 // vpinsrb xmm7, xmm11, byte [rsi + r10 + 9], 1 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x02091e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 9], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0309167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0509167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 5 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0609167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 9], 6 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + QUAD $0x07093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 7 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0809167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 8 + QUAD $0x0909067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 10 + QUAD $0x0b09067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 9], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 12 + QUAD $0x0d091e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r11 + 9], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00046024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x010a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x020a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 2 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x030a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 3 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + QUAD $0x040a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 4 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x050a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 5 + WORD $0x8948; BYTE $0xca // mov rdx, rcx + QUAD $0x060a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 6 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x070a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x090a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 9 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 11 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0c0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 12 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0d0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 13 + QUAD $0x0e0a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 14 + QUAD $0x0f0a365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 10], 15 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x010a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x020a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x040a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x050a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 5 + QUAD $0x060a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 6 + QUAD $0x070a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 7 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x080a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x090a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 9 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x0a0a26642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 10], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b0a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 11 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0c0a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 12 + QUAD $0x0d0a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e0a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 14 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0f0a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 15 + QUAD $0x010b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 1 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x020b1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 11], 2 + QUAD $0x030b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 3 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x040b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 4 + QUAD $0x050b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 5 + QUAD $0x060b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 6 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x070b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x080b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 8 + QUAD $0x090b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 9 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 11 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 13 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0e0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 15 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x010b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x020b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + QUAD $0x040b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x050b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x060b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 7 + QUAD $0x080b3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 11], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 9 + QUAD $0x0a0b26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 11], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 11 + QUAD $0x0c0b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 11], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000420248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm1 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x010c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 1 + QUAD $0x020c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 12], 2 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x030c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 3 + QUAD $0x0000010824ac8b4c // mov r13, qword [rsp + 264] + QUAD $0x040c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 4 + QUAD $0x050c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 5 + QUAD $0x000000f8248c8b4c // mov r9, qword [rsp + 248] + QUAD $0x060c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 6 + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + QUAD $0x070c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 7 + QUAD $0x080c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 8 + QUAD $0x090c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 9 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x0a0c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 10 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0b0c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 11 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x0c0c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 12 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0d0c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 13 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0e0c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 14 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0f0c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 15 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x010c36542051a3c4 // vpinsrb xmm2, xmm5, byte [rsi + r14 + 12], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x030c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 3 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x040c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 4 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x050c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 5 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x060c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 6 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x070c16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 12], 7 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x080c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 8 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x090c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 9 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0a0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 10 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0b0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 12 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0d0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 13 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0e0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 14 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0f0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 15 + QUAD $0x010d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x020d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 2 + QUAD $0x030d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 3 + QUAD $0x040d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 13], 4 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x050d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 5 + QUAD $0x060d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 6 + QUAD $0x070d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x080d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 8 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x090d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 9 + QUAD $0x0a0d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 10 + QUAD $0x0b0d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 11 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0c0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 12 + QUAD $0x0d0d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 13], 13 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0e0d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 15 + QUAD $0x010d364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x030d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x040d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x050d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x060d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 6 + QUAD $0x070d164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 13], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x080d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 8 + QUAD $0x090d264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 13], 9 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x0a0d2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 13], 10 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0b0d064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 13], 11 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0c0d364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 13], 12 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0d0d1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 13], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e0d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0f0d26442071a3c4 // vpinsrb xmm0, xmm1, byte [rsi + r12 + 13], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x0e // movzx edi, byte [rsi + rcx + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x0e // movzx edi, byte [rsi + rcx + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x010e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 1 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x020e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 2 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x030e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 3 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x040e3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 14], 4 + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x060e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 6 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + QUAD $0x090e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 9 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0a0e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 10 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0b0e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 14], 11 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0c0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d0e3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 14], 13 + QUAD $0x0e0e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 14 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0f0e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 15 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x010e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 1 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x020e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 14], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x030e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x040e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 4 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x050e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x060e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x070e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x080e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x090e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 9 + QUAD $0x0a0e2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 14], 10 + QUAD $0x0b0e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 11 + QUAD $0x0c0e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 12 + QUAD $0x0d0e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 14], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + QUAD $0x0f0e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 14], 15 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x0f1e // movzx edi, byte [rsi + r11 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x010f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 1 + QUAD $0x020f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 2 + QUAD $0x030f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 3 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x040f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 4 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x050f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 5 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x060f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 6 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x070f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 7 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x080f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 8 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x090f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 9 + QUAD $0x0a0f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 10 + QUAD $0x0b0f16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 15], 11 + QUAD $0x0c0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 12 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0d0f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 13 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0e0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 14 + QUAD $0x0f0f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 15 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x0f36 // movzx edi, byte [rsi + r14 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x010f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 1 + QUAD $0x020f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x030f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 3 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x040f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 4 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x050f3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 15], 5 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x060f2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 15], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x070f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x080f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x090f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 9 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x0a0f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b0f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c0f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 12 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0d0f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 13 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0e0f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 14 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0f0f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x7cb60f42; WORD $0x101e // movzx edi, byte [rsi + r11 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x011016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 1 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x021016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 2 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x031016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 3 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + QUAD $0x04101e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 16], 4 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x051016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 5 + QUAD $0x061006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 6 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x071006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 7 + QUAD $0x081026442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 16], 8 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x091016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 11 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0c103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 12 + QUAD $0x0d101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 13 + QUAD $0x0e1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 15 + LONG $0x7cb60f42; WORD $0x1036 // movzx edi, byte [rsi + r14 + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0110264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0210064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0310064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 3 + QUAD $0x0410164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 16], 4 + QUAD $0x05103e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 16], 5 + QUAD $0x06102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0710064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0810064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0910064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 9 + QUAD $0x0a100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 10 + QUAD $0x0b100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 12 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x0d102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 13 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0e10164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 16], 14 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 15 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + LONG $0x1e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rbx + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x011106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x021106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 2 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x03110e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 17], 3 + QUAD $0x04111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 4 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x05113e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 17], 5 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x061106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 6 + QUAD $0x071106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 7 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x081136542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 17], 8 + QUAD $0x091116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 11 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0c110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 12 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0d111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 13 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x0e1106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rcx + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0111265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 17], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x02110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0311165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x04110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x05110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x08110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 9 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0a113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 12 + QUAD $0x0d112e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 17], 13 + QUAD $0x0e11165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0f112e442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r13 + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x1e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rbx + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x01123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 1 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x02123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 2 + QUAD $0x03120e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 18], 3 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x04123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 4 + QUAD $0x05123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 5 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x06123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 6 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x07123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 7 + QUAD $0x081236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 18], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x09123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 9 + QUAD $0x0a1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 11 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0c1236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 18], 12 + QUAD $0x0d121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 13 + QUAD $0x0e1206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 14 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0f120e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 18], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x12 // movzx edi, byte [rsi + rax + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x0112264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 18], 1 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x02121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 2 + QUAD $0x0312164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 3 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x04121e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 18], 4 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0512264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 18], 5 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0612164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 18], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0712064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 7 + QUAD $0x08120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0912064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 9 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x0a120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 11 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0c120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 12 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0d120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 13 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0e12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 14 + QUAD $0x0f122e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 18], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x132e // movzx edi, byte [rsi + r13 + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x01130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 1 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x02130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 2 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x03130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 3 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + QUAD $0x04133e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 19], 4 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x05130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 5 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x06130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 6 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x07130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x08130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 8 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x09130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 11 + QUAD $0x0c1336542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 19], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 13 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0e133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 14 + QUAD $0x0f130e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 19], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0113065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 1 + QUAD $0x02131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 3 + QUAD $0x04131e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 19], 4 + QUAD $0x0513265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 19], 5 + QUAD $0x0613165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 6 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x07131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 8 + QUAD $0x0913065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 9 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0a13165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 11 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0c131e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 19], 12 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0d13065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 13 + QUAD $0x0e13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 14 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + LONG $0x7cb60f42; WORD $0x142e // movzx edi, byte [rsi + r13 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x01142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 1 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x031436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 20], 3 + QUAD $0x04143e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 20], 4 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x05143e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 20], 5 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x061416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 6 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x071416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x081416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 8 + QUAD $0x09140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 9 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 10 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0b140e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 20], 11 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0c140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 12 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0d140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 13 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x0e1426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x14 // movzx edi, byte [rsi + rcx + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x01140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x02140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x03140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x04140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 4 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0514164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 20], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 6 + QUAD $0x07141e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 20], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x08140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 9 + QUAD $0x0a14164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 11 + QUAD $0x0c141e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 20], 12 + QUAD $0x0d14064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 14 + QUAD $0x0f14064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 20], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x15 // movzx edi, byte [rsi + rax + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01152e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 21], 1 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x02151e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 21], 2 + QUAD $0x031536542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 21], 3 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x04150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 4 + QUAD $0x05153e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 21], 5 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x061506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 6 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x07153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 7 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x08153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x09153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 10 + QUAD $0x0b150e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 21], 11 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0c1516542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 21], 12 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x0d1506542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 21], 13 + QUAD $0x0e1526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0f153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x15 // movzx edi, byte [rsi + rdi + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x01151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 1 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0215365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 21], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x03153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 4 + QUAD $0x0515165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 5 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0615165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0715165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 7 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0815165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0915165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 9 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x0a15265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 21], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c15165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 12 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0d15165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 21], 13 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0e152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0f1516442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rdx + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdx + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x011616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 1 + QUAD $0x02161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 2 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x04160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 4 + QUAD $0x05163e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 22], 5 + QUAD $0x061606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 22], 6 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x07163e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 22], 7 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x08161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 8 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x09160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 9 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0a1616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 22], 11 + QUAD $0x0c1616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 22], 12 + QUAD $0x0d1606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 22], 13 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0e1606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 22], 14 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x0f1616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 22], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x16 // movzx edi, byte [rsi + rax + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x01161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 1 + QUAD $0x0216364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 2 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x03161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0416064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0516064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0616064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 6 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0716364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 9 + QUAD $0x0a16264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 10 + QUAD $0x0b160e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 22], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 12 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0d163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 13 + QUAD $0x0e162e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 22], 14 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0f163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x172e // movzx edi, byte [rsi + r13 + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x01170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 1 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x02173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 2 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x03173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 3 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + QUAD $0x041706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 4 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x05173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 5 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x06173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 6 + QUAD $0x07173e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 23], 7 + QUAD $0x08171e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 23], 8 + QUAD $0x09170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 9 + QUAD $0x0a1716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 11 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0c1726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 23], 12 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0d170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 13 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x0e173e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 23], 14 + QUAD $0x0f1716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 23], 15 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x171e // movzx edi, byte [rsi + r11 + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x01170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x02170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 2 + QUAD $0x03171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x04170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 4 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x05171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 5 + QUAD $0x0617065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 6 + QUAD $0x0717365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 7 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0817365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0917065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 11 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0c17165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 14 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0f170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + LONG $0x7cb60f42; WORD $0x182e // movzx edi, byte [rsi + r13 + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x01180e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 24], 1 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x02182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 2 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x03180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 3 + QUAD $0x041806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 4 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x05180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 5 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x06180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 6 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x07180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 7 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x081816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 8 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x091816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 9 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0a1806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 11 + QUAD $0x0c1826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 24], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 13 + QUAD $0x0e183e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 24], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0f183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 15 + LONG $0x7cb60f42; WORD $0x181e // movzx edi, byte [rsi + r11 + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x01183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 2 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0318264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 3 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x04183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 4 + QUAD $0x05181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x06181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 7 + QUAD $0x0818364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 24], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 9 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x0a181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 11 + QUAD $0x0c18164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 12 + QUAD $0x0d18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 13 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0e18164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 14 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0f18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x19 // movzx edi, byte [rsi + rax + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01190e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 25], 1 + QUAD $0x02192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 2 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x031906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 3 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + QUAD $0x04193e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 25], 4 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x051906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 5 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x06192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 6 + QUAD $0x07190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 8 + QUAD $0x091916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 9 + QUAD $0x0a1906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 11 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x0c1916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 13 + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x0e190e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 25], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 15 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x1936 // movzx edi, byte [rsi + r14 + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0119065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 1 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0219065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 25], 2 + QUAD $0x0319265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0419065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 4 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0519265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 5 + QUAD $0x06191e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 25], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0719065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 7 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x08191e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 25], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0919065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 9 + QUAD $0x0a191e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 25], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 12 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0d19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 13 + QUAD $0x0e19165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0f191e442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r11 + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x1a // movzx edi, byte [rsi + rax + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x011a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 1 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x021a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 2 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x031a16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 26], 3 + QUAD $0x041a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 4 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x051a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 5 + QUAD $0x061a2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 26], 6 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x071a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 7 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x081a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x091a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a1a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 10 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0b1a2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 26], 11 + QUAD $0x0c1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 12 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0d1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 13 + QUAD $0x0e1a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 14 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0f1a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 15 + LONG $0x7cb60f42; WORD $0x1a36 // movzx edi, byte [rsi + r14 + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x011a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 1 + QUAD $0x021a064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 26], 2 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x031a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 3 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x041a064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 26], 4 + QUAD $0x051a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x061a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x071a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 7 + QUAD $0x081a1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 26], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x091a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 9 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0a1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b1a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 12 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x0d1a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 14 + QUAD $0x0f1a1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 26], 15 + LONG $0x067cb60f; BYTE $0x1b // movzx edi, byte [rsi + rax + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x021b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 2 + QUAD $0x031b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 27], 3 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + QUAD $0x041b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 27], 4 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x051b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 5 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x061b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 6 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x071b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 7 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x081b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 10 + QUAD $0x0b1b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 11 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0c1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 13 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x0e1b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 14 + QUAD $0x0f1b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 15 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x1b0e // movzx edi, byte [rsi + r9 + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 1 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x021b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 2 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x031b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 3 + QUAD $0x041b065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 27], 4 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x051b1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 27], 5 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x061b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x071b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 7 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x081b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x091b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 9 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0a1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 10 + QUAD $0x0b1b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 12 + QUAD $0x0d1b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 13 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0e1b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 14 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0f1b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x1c // movzx edi, byte [rsi + rdx + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x011c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 1 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x021c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 2 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x031c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 3 + QUAD $0x041c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 4 + QUAD $0x051c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 5 + QUAD $0x061c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 6 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x071c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 7 + QUAD $0x081c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 28], 8 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x091c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 9 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0a1c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b1c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 11 + QUAD $0x0c1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 12 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0d1c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 28], 13 + QUAD $0x0e1c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 28], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 15 + LONG $0x7cb60f42; WORD $0x1c0e // movzx edi, byte [rsi + r9 + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x011c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 28], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x021c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 2 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x031c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x041c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 4 + QUAD $0x051c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 28], 5 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x061c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 6 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x071c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x081c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x091c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 28], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b1c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 12 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0d1c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 28], 13 + QUAD $0x0e1c264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 28], 14 + QUAD $0x0f1c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x1d // movzx edi, byte [rsi + rax + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f024a48b4c // mov r12, qword [rsp + 240] + QUAD $0x011d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 1 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x021d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 2 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x031d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 3 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x041d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 4 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x051d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 5 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x061d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 6 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x071d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 9 + QUAD $0x0a1d06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 29], 10 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0b1d06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 29], 11 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0c1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 12 + QUAD $0x0d1d36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 29], 13 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x0e1d36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 29], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x1d // movzx edi, byte [rsi + rax + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 29], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x021d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 2 + QUAD $0x031d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x041d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x051d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 5 + QUAD $0x061d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 6 + QUAD $0x071d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 7 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x081d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 8 + QUAD $0x091d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 29], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 10 + QUAD $0x0b1d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 12 + QUAD $0x0d1d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 13 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0e1d0e642061a3c4 // vpinsrb xmm4, xmm3, byte [rsi + r9 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x0f1d3e442059a3c4 // vpinsrb xmm0, xmm4, byte [rsi + r15 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + LONG $0x1e7cb60f; BYTE $0x1e // movzx edi, byte [rsi + rbx + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 30], 1 + LONG $0x1e7cb60f; BYTE $0x1f // movzx edi, byte [rsi + rbx + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 31], 1 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x061e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 6 + QUAD $0x061f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 6 + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 10 + QUAD $0x0a1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 10 + QUAD $0x0b1e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 30], 11 + QUAD $0x0b1f064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 31], 11 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + QUAD $0x0e1e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 30], 14 + QUAD $0x0e1f364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 31], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e44b60f; BYTE $0x1e // movzx eax, byte [rsi + rcx + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x011e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 30], 1 + LONG $0x0e44b60f; BYTE $0x1f // movzx eax, byte [rsi + rcx + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 31], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x041e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 4 + QUAD $0x041f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x071e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 7 + QUAD $0x071f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 7 + QUAD $0x081e2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 30], 8 + QUAD $0x081f2e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r13 + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 9 + QUAD $0x091f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 9 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 12 + QUAD $0x0c1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 12 + QUAD $0x0d1e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 30], 13 + QUAD $0x0d1f167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 31], 13 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x0e1e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 30], 14 + QUAD $0x0e1f0e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 31], 14 + QUAD $0x0f1e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 15 + QUAD $0x0f1f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + QUAD $0x00020024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 512] + LONG $0xc27495c5 // vpcmpeqb ymm0, ymm13, ymm2 + QUAD $0x0004c024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1216] + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x0001e024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI4_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001c024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 448] + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI4_2] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xe2740dc5 // vpcmpeqb ymm12, ymm14, ymm2 + LONG $0x456f7dc5; BYTE $0x60 // vmovdqa ymm8, yword 96[rbp] /* [rip + .LCPI4_3] */ + LONG $0xdf1d41c4; BYTE $0xe0 // vpandn ymm12, ymm12, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xfa7485c5 // vpcmpeqb ymm7, ymm15, ymm2 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI4_4] */ + LONG $0xf9dfc5c5 // vpandn ymm7, ymm7, ymm1 + QUAD $0x0001a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 416] + QUAD $0x000000a0ad6f7dc5 // vmovdqa ymm13, yword 160[rbp] /* [rip + .LCPI4_5] */ + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0004a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1184] + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI4_6] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x00048024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1152] + QUAD $0x00046024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1120] + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00044024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1088] + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x00042024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 1056] + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 992] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00040024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1024] + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + QUAD $0x0003a024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 928] + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003c024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 960] + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x00038024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 896] + QUAD $0x00036024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 864] + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00032024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 800] + LONG $0xfedf05c5 // vpandn ymm15, ymm15, ymm6 + QUAD $0x00034024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 832] + LONG $0xf3df0dc5 // vpandn ymm14, ymm14, ymm3 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x0002e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 736] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00030024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 768] + LONG $0xf1df0dc5 // vpandn ymm14, ymm14, ymm1 + LONG $0xd2742dc5 // vpcmpeqb ymm10, ymm10, ymm2 + LONG $0xdf2d41c4; BYTE $0xd5 // vpandn ymm10, ymm10, ymm13 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0xda7425c5 // vpcmpeqb ymm11, ymm11, ymm2 + LONG $0x6f7d41c4; BYTE $0xf1 // vmovdqa ymm14, ymm9 + LONG $0xdf2541c4; BYTE $0xd9 // vpandn ymm11, ymm11, ymm9 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000220248c746dc5; BYTE $0x00 // vpcmpeqb ymm9, ymm2, yword [rsp + 544] + QUAD $0x0002402484746dc5; BYTE $0x00 // vpcmpeqb ymm8, ymm2, yword [rsp + 576] + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x00026024ac74edc5; BYTE $0x00 // vpcmpeqb ymm5, ymm2, yword [rsp + 608] + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x00028024b474edc5; BYTE $0x00 // vpcmpeqb ymm6, ymm2, yword [rsp + 640] + LONG $0xf3dfcdc5 // vpandn ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x0002a0249c74edc5; BYTE $0x00 // vpcmpeqb ymm3, ymm2, yword [rsp + 672] + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI4_3] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xecf8bdc5 // vpsubb ymm5, ymm8, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x0002c024a474edc5; BYTE $0x00 // vpcmpeqb ymm4, ymm2, yword [rsp + 704] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + QUAD $0x000120248c74edc5; BYTE $0x00 // vpcmpeqb ymm1, ymm2, yword [rsp + 288] + LONG $0xdf75c1c4; BYTE $0xcd // vpandn ymm1, ymm1, ymm13 + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x000140249474edc5; BYTE $0x00 // vpcmpeqb ymm2, ymm2, yword [rsp + 320] + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB4_169 + QUAD $0x0000018824bc8b4c // mov r15, qword [rsp + 392] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000019024a48b4c // mov r12, qword [rsp + 400] + JNE LBB4_89 + JMP LBB4_125 + +DATA LCDATA4<>+0x000(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x008(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x010(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x018(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA4<>(SB), 8, $224 + +TEXT ·_comparison_not_equal_scalar_arr_avx2(SB), $1320-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1280(SP) + LEAQ LCDATA4<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB5_17 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB5_32 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB5_60 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB5_72 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB5_157 + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_7: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_7 + LONG $0x01c78349 // add r15, 1 + +LBB5_9: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_13 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_11: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd0950f41 // setne r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd3950f41 // setne r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd2950f41 // setne r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd1950f41 // setne r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd7950f40 // setne dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd6950f40 // setne sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd4950f41 // setne r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd7950f41 // setne r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_13: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB5_127 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_16: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_16 + JMP LBB5_154 + +LBB5_17: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB5_46 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB5_83 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB5_94 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB5_157 + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_25 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_23: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_23 + LONG $0x01c78349 // add r15, 1 + +LBB5_25: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_29 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + QUAD $0x000000a8249c894c // mov qword [rsp + 168], r11 + +LBB5_27: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0xd1950f41 // setne r9b + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0xd3950f41 // setne r11b + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd4950f41 // setne r12b + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + LONG $0xd6950f40 // setne sil + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0xd7950f40 // setne dil + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd0950f41 // setne r8b + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0xd2950f41 // setne r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0xd7950f41 // setne r15b + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x950f; BYTE $0xd1 // setne cl + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + QUAD $0x000000882494950f // setne byte [rsp + 136] + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + QUAD $0x000000902494950f // setne byte [rsp + 144] + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + LONG $0xd6950f41 // setne r14b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000001402494950f // setne byte [rsp + 320] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000001202494950f // setne byte [rsp + 288] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000098248c0244 // add r9b, byte [rsp + 152] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x78 // add sil, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xdb00 // add bl, bl + LONG $0x58245c02 // add bl, byte [rsp + 88] + WORD $0xde89 // mov esi, ebx + QUAD $0x00000090249cb60f // movzx ebx, byte [rsp + 144] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0x8845; BYTE $0x27 // mov byte [r15], r12b + LONG $0x2474b60f; BYTE $0x48 // movzx esi, byte [rsp + 72] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + LONG $0x014f8841 // mov byte [r15 + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02778845 // mov byte [r15 + 2], r14b + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_27 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + +LBB5_29: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB5_136 + WORD $0xff31 // xor edi, edi + JMP LBB5_138 + +LBB5_32: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB5_105 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB5_157 + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_38 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_36: + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_36 + LONG $0x01c78349 // add r15, 1 + +LBB5_38: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_128 + LONG $0x20fe8349 // cmp r14, 32 + LONG $0x245c8944; BYTE $0x1c // mov dword [rsp + 28], r11d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018024b4894c // mov qword [rsp + 384], r14 + JB LBB5_42 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB5_165 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB5_165 + +LBB5_42: + WORD $0xc031 // xor eax, eax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB5_43: + QUAD $0x0000017824b42b4c // sub r14, qword [rsp + 376] + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + +LBB5_44: + LONG $0x1f5a3a44 // cmp r11b, byte [rdx + 31] + QUAD $0x000001102494950f // setne byte [rsp + 272] + LONG $0x1e5a3a44 // cmp r11b, byte [rdx + 30] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x1d5a3a44 // cmp r11b, byte [rdx + 29] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x1c5a3a44 // cmp r11b, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x1b5a3a44 // cmp r11b, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x1a5a3a44 // cmp r11b, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x195a3a44 // cmp r11b, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x175a3a44 // cmp r11b, byte [rdx + 23] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x165a3a44 // cmp r11b, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x155a3a44 // cmp r11b, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x145a3a44 // cmp r11b, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x135a3a44 // cmp r11b, byte [rdx + 19] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x125a3a44 // cmp r11b, byte [rdx + 18] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x115a3a44 // cmp r11b, byte [rdx + 17] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x0f5a3a44 // cmp r11b, byte [rdx + 15] + LONG $0xd6950f41 // setne r14b + LONG $0x0e5a3a44 // cmp r11b, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x0d5a3a44 // cmp r11b, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x0c5a3a44 // cmp r11b, byte [rdx + 12] + LONG $0xd4950f41 // setne r12b + LONG $0x0b5a3a44 // cmp r11b, byte [rdx + 11] + LONG $0xd7950f41 // setne r15b + LONG $0x0a5a3a44 // cmp r11b, byte [rdx + 10] + LONG $0xd3950f41 // setne r11b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd2950f41 // setne r10b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f40 // setne dil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0xd1950f41 // setne r9b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0xd6950f40 // setne sil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x023a // cmp al, byte [rdx] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x01 // cmp al, byte [rdx + 1] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x246c8b44; BYTE $0x1c // mov r13d, dword [rsp + 28] + LONG $0x086a3a44 // cmp r13b, byte [rdx + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x10 // cmp bl, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x18 // cmp bl, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0xa0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000a82484b60f // movzx eax, byte [rsp + 168] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0844; BYTE $0xcf // or dil, r9b + LONG $0x007d8841 // mov byte [r13], dil + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000009824940244 // add r10b, byte [rsp + 152] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xce // or r14b, cl + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x01758845 // mov byte [r13 + 1], r14b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + WORD $0xc189 // mov ecx, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + QUAD $0x000001102484b60f // movzx eax, byte [rsp + 272] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB5_44 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018024b48b4c // mov r14, qword [rsp + 384] + JMP LBB5_129 + +LBB5_46: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB5_117 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB5_157 + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_50: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_50 + LONG $0x01c78349 // add r15, 1 + +LBB5_52: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_56 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_54: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd0950f41 // setne r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd3950f41 // setne r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd1950f41 // setne r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd7950f40 // setne dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd6950f40 // setne sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd4950f41 // setne r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd7950f41 // setne r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_54 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_56: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB5_93 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_59: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_59 + JMP LBB5_146 + +LBB5_60: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_64 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_62: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_62 + LONG $0x01c78349 // add r15, 1 + +LBB5_64: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_68 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_66: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x723b4466; BYTE $0x3e // cmp r14w, word [rdx + 62] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x723b4466; BYTE $0x3c // cmp r14w, word [rdx + 60] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x723b4466; BYTE $0x3a // cmp r14w, word [rdx + 58] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x723b4466; BYTE $0x38 // cmp r14w, word [rdx + 56] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x723b4466; BYTE $0x36 // cmp r14w, word [rdx + 54] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x723b4466; BYTE $0x34 // cmp r14w, word [rdx + 52] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x723b4466; BYTE $0x32 // cmp r14w, word [rdx + 50] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x723b4466; BYTE $0x2e // cmp r14w, word [rdx + 46] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x723b4466; BYTE $0x2c // cmp r14w, word [rdx + 44] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x723b4466; BYTE $0x2a // cmp r14w, word [rdx + 42] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x723b4466; BYTE $0x28 // cmp r14w, word [rdx + 40] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x723b4466; BYTE $0x26 // cmp r14w, word [rdx + 38] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x723b4466; BYTE $0x24 // cmp r14w, word [rdx + 36] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x723b4466; BYTE $0x22 // cmp r14w, word [rdx + 34] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x723b4466; BYTE $0x1e // cmp r14w, word [rdx + 30] + LONG $0xd0950f41 // setne r8b + LONG $0x723b4466; BYTE $0x1c // cmp r14w, word [rdx + 28] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x723b4466; BYTE $0x1a // cmp r14w, word [rdx + 26] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x723b4466; BYTE $0x18 // cmp r14w, word [rdx + 24] + LONG $0xd3950f41 // setne r11b + LONG $0x723b4466; BYTE $0x16 // cmp r14w, word [rdx + 22] + LONG $0xd2950f41 // setne r10b + LONG $0x723b4466; BYTE $0x14 // cmp r14w, word [rdx + 20] + LONG $0xd1950f41 // setne r9b + LONG $0x723b4466; BYTE $0x12 // cmp r14w, word [rdx + 18] + LONG $0xd7950f40 // setne dil + LONG $0x723b4466; BYTE $0x0e // cmp r14w, word [rdx + 14] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x723b4466; BYTE $0x0c // cmp r14w, word [rdx + 12] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x723b4466; BYTE $0x0a // cmp r14w, word [rdx + 10] + LONG $0xd6950f40 // setne sil + LONG $0x723b4466; BYTE $0x08 // cmp r14w, word [rdx + 8] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x723b4466; BYTE $0x06 // cmp r14w, word [rdx + 6] + LONG $0xd5950f41 // setne r13b + LONG $0x723b4466; BYTE $0x04 // cmp r14w, word [rdx + 4] + LONG $0xd4950f41 // setne r12b + LONG $0x323b4466 // cmp r14w, word [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0xd7950f41 // setne r15b + LONG $0x723b4466; BYTE $0x10 // cmp r14w, word [rdx + 16] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x723b4466; BYTE $0x20 // cmp r14w, word [rdx + 32] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x723b4466; BYTE $0x30 // cmp r14w, word [rdx + 48] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_66 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_68: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB5_82 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_71: + LONG $0x323b4466 // cmp r14w, word [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_71 + JMP LBB5_142 + +LBB5_72: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_74: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_74 + LONG $0x01c78349 // add r15, 1 + +LBB5_76: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_80 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_78: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x723b4466; BYTE $0x3e // cmp r14w, word [rdx + 62] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x723b4466; BYTE $0x3c // cmp r14w, word [rdx + 60] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x723b4466; BYTE $0x3a // cmp r14w, word [rdx + 58] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x723b4466; BYTE $0x38 // cmp r14w, word [rdx + 56] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x723b4466; BYTE $0x36 // cmp r14w, word [rdx + 54] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x723b4466; BYTE $0x34 // cmp r14w, word [rdx + 52] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x723b4466; BYTE $0x32 // cmp r14w, word [rdx + 50] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x723b4466; BYTE $0x2e // cmp r14w, word [rdx + 46] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x723b4466; BYTE $0x2c // cmp r14w, word [rdx + 44] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x723b4466; BYTE $0x2a // cmp r14w, word [rdx + 42] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x723b4466; BYTE $0x28 // cmp r14w, word [rdx + 40] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x723b4466; BYTE $0x26 // cmp r14w, word [rdx + 38] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x723b4466; BYTE $0x24 // cmp r14w, word [rdx + 36] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x723b4466; BYTE $0x22 // cmp r14w, word [rdx + 34] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x723b4466; BYTE $0x1e // cmp r14w, word [rdx + 30] + LONG $0xd0950f41 // setne r8b + LONG $0x723b4466; BYTE $0x1c // cmp r14w, word [rdx + 28] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x723b4466; BYTE $0x1a // cmp r14w, word [rdx + 26] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x723b4466; BYTE $0x18 // cmp r14w, word [rdx + 24] + LONG $0xd3950f41 // setne r11b + LONG $0x723b4466; BYTE $0x16 // cmp r14w, word [rdx + 22] + LONG $0xd2950f41 // setne r10b + LONG $0x723b4466; BYTE $0x14 // cmp r14w, word [rdx + 20] + LONG $0xd1950f41 // setne r9b + LONG $0x723b4466; BYTE $0x12 // cmp r14w, word [rdx + 18] + LONG $0xd7950f40 // setne dil + LONG $0x723b4466; BYTE $0x0e // cmp r14w, word [rdx + 14] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x723b4466; BYTE $0x0c // cmp r14w, word [rdx + 12] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x723b4466; BYTE $0x0a // cmp r14w, word [rdx + 10] + LONG $0xd6950f40 // setne sil + LONG $0x723b4466; BYTE $0x08 // cmp r14w, word [rdx + 8] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x723b4466; BYTE $0x06 // cmp r14w, word [rdx + 6] + LONG $0xd5950f41 // setne r13b + LONG $0x723b4466; BYTE $0x04 // cmp r14w, word [rdx + 4] + LONG $0xd4950f41 // setne r12b + LONG $0x323b4466 // cmp r14w, word [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0xd7950f41 // setne r15b + LONG $0x723b4466; BYTE $0x10 // cmp r14w, word [rdx + 16] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x723b4466; BYTE $0x20 // cmp r14w, word [rdx + 32] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x723b4466; BYTE $0x30 // cmp r14w, word [rdx + 48] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_78 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_80: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB5_140 + +LBB5_82: + WORD $0xff31 // xor edi, edi + JMP LBB5_142 + +LBB5_83: + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_87 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_85: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_85 + LONG $0x01c78349 // add r15, 1 + +LBB5_87: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_91 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_89: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd0950f41 // setne r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd3950f41 // setne r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd1950f41 // setne r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd7950f40 // setne dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd6950f40 // setne sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd4950f41 // setne r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd7950f41 // setne r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_89 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_91: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB5_144 + +LBB5_93: + WORD $0xff31 // xor edi, edi + JMP LBB5_146 + +LBB5_94: + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_98 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_96: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_96 + LONG $0x01c78349 // add r15, 1 + +LBB5_98: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_102 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + QUAD $0x000000a8249c894c // mov qword [rsp + 168], r11 + +LBB5_100: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0xd1950f41 // setne r9b + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0xd3950f41 // setne r11b + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd4950f41 // setne r12b + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + LONG $0xd6950f40 // setne sil + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0xd7950f40 // setne dil + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd0950f41 // setne r8b + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0xd2950f41 // setne r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0xd7950f41 // setne r15b + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0xd6950f41 // setne r14b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000098248c0244 // add r9b, byte [rsp + 152] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x78 // add sil, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xdb00 // add bl, bl + LONG $0x58245c02 // add bl, byte [rsp + 88] + WORD $0xde89 // mov esi, ebx + QUAD $0x00000090249cb60f // movzx ebx, byte [rsp + 144] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0x8845; BYTE $0x27 // mov byte [r15], r12b + LONG $0x2474b60f; BYTE $0x48 // movzx esi, byte [rsp + 72] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + LONG $0x014f8841 // mov byte [r15 + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02778845 // mov byte [r15 + 2], r14b + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_100 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + +LBB5_102: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB5_148 + WORD $0xff31 // xor edi, edi + JMP LBB5_150 + +LBB5_105: + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_109 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_107: + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_107 + LONG $0x01c78349 // add r15, 1 + +LBB5_109: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_132 + LONG $0x20fe8349 // cmp r14, 32 + LONG $0x245c8944; BYTE $0x1c // mov dword [rsp + 28], r11d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000018024b4894c // mov qword [rsp + 384], r14 + JB LBB5_113 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB5_168 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB5_168 + +LBB5_113: + WORD $0xc031 // xor eax, eax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB5_114: + QUAD $0x0000017824b42b4c // sub r14, qword [rsp + 376] + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + +LBB5_115: + LONG $0x1f5a3a44 // cmp r11b, byte [rdx + 31] + QUAD $0x000001102494950f // setne byte [rsp + 272] + LONG $0x1e5a3a44 // cmp r11b, byte [rdx + 30] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x1d5a3a44 // cmp r11b, byte [rdx + 29] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x1c5a3a44 // cmp r11b, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x1b5a3a44 // cmp r11b, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x1a5a3a44 // cmp r11b, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x195a3a44 // cmp r11b, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x175a3a44 // cmp r11b, byte [rdx + 23] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x165a3a44 // cmp r11b, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x155a3a44 // cmp r11b, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x145a3a44 // cmp r11b, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x135a3a44 // cmp r11b, byte [rdx + 19] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x125a3a44 // cmp r11b, byte [rdx + 18] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x115a3a44 // cmp r11b, byte [rdx + 17] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x0f5a3a44 // cmp r11b, byte [rdx + 15] + LONG $0xd6950f41 // setne r14b + LONG $0x0e5a3a44 // cmp r11b, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x0d5a3a44 // cmp r11b, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x0c5a3a44 // cmp r11b, byte [rdx + 12] + LONG $0xd4950f41 // setne r12b + LONG $0x0b5a3a44 // cmp r11b, byte [rdx + 11] + LONG $0xd7950f41 // setne r15b + LONG $0x0a5a3a44 // cmp r11b, byte [rdx + 10] + LONG $0xd3950f41 // setne r11b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd2950f41 // setne r10b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f40 // setne dil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0xd1950f41 // setne r9b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0xd6950f40 // setne sil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x023a // cmp al, byte [rdx] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x01 // cmp al, byte [rdx + 1] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x246c8b44; BYTE $0x1c // mov r13d, dword [rsp + 28] + LONG $0x086a3a44 // cmp r13b, byte [rdx + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x10 // cmp bl, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x18 // cmp bl, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0xa0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000a82484b60f // movzx eax, byte [rsp + 168] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0844; BYTE $0xcf // or dil, r9b + LONG $0x007d8841 // mov byte [r13], dil + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000009824940244 // add r10b, byte [rsp + 152] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xce // or r14b, cl + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x01758845 // mov byte [r13 + 1], r14b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + WORD $0xc189 // mov ecx, eax + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + QUAD $0x000001102484b60f // movzx eax, byte [rsp + 272] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB5_115 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000018024b48b4c // mov r14, qword [rsp + 384] + JMP LBB5_133 + +LBB5_117: + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_121 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB5_119: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_119 + LONG $0x01c78349 // add r15, 1 + +LBB5_121: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB5_125 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB5_123: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x2454950f; BYTE $0x1c // setne byte [rsp + 28] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + QUAD $0x000001202494950f // setne byte [rsp + 288] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + QUAD $0x000001402494950f // setne byte [rsp + 320] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd0950f41 // setne r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd3950f41 // setne r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd2950f41 // setne r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd1950f41 // setne r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd7950f40 // setne dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd6950f40 // setne sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd4950f41 // setne r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd7950f41 // setne r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a824bc0244 // add r15b, byte [rsp + 168] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x88248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 136] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB5_123 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB5_125: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB5_152 + +LBB5_127: + WORD $0xff31 // xor edi, edi + JMP LBB5_154 + +LBB5_128: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB5_129: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JE LBB5_135 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + +LBB5_159: + LONG $0x321c3a44 // cmp r11b, byte [rdx + rsi] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x325c3a44; BYTE $0x01 // cmp r11b, byte [rdx + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x3d448841; BYTE $0x00 // mov byte [r13 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB5_159 + JMP LBB5_162 + +LBB5_132: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB5_133: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB5_157 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB5_160 + +LBB5_135: + WORD $0xf631 // xor esi, esi + JMP LBB5_163 + +LBB5_136: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_137: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_137 + +LBB5_138: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + JMP LBB5_156 + +LBB5_140: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_141: + LONG $0x323b4466 // cmp r14w, word [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_141 + +LBB5_142: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + LONG $0x323b4466 // cmp r14w, word [rdx] + JMP LBB5_156 + +LBB5_144: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_145: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_145 + +LBB5_146: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + JMP LBB5_156 + +LBB5_148: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_149: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_149 + +LBB5_150: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + JMP LBB5_156 + +LBB5_152: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB5_153: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB5_153 + +LBB5_154: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + +LBB5_156: + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x17348a41 // mov sil, byte [r15 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + +LBB5_157: + MOVQ 1280(SP), SP + VZEROUPPER + RET + +LBB5_160: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + +LBB5_161: + LONG $0x321c3a44 // cmp r11b, byte [rdx + rsi] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x325c3a44; BYTE $0x01 // cmp r11b, byte [rdx + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x3d448841; BYTE $0x00 // mov byte [r13 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB5_161 + +LBB5_162: + WORD $0x0148; BYTE $0xf2 // add rdx, rsi + +LBB5_163: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_157 + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x157c8a41; BYTE $0x00 // mov dil, byte [r13 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x155c8841; BYTE $0x00 // mov byte [r13 + rdx], bl + JMP LBB5_157 + +LBB5_165: + LONG $0xe0e68349 // and r14, -32 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000018824848948 // mov qword [rsp + 392], rax + QUAD $0x0000017824b4894c // mov qword [rsp + 376], r14 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xf631 // xor esi, esi + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + +LBB5_166: + QUAD $0x0000019824b48948 // mov qword [rsp + 408], rsi + LONG $0x05e6c148 // shl rsi, 5 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x60c88348 // or rax, 96 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + QUAD $0x0000010824b48948 // mov qword [rsp + 264], rsi + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x3204b60f // movzx eax, byte [rdx + rsi] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x3244b60f; BYTE $0x01 // movzx eax, byte [rdx + rsi + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x0a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rcx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x0a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rcx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x3244b60f; BYTE $0x04 // movzx eax, byte [rdx + rsi + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x0a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rcx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x3244b60f; BYTE $0x05 // movzx eax, byte [rdx + rsi + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x0a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rcx + 6] + QUAD $0x000000f0248c8948 // mov qword [rsp + 240], rcx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x3244b60f; BYTE $0x06 // movzx eax, byte [rdx + rsi + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x0a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rcx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x3244b60f; BYTE $0x07 // movzx eax, byte [rdx + rsi + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + LONG $0x40cc8149; WORD $0x0002; BYTE $0x00 // or r12, 576 + QUAD $0x000000c824a4894c // mov qword [rsp + 200], r12 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + WORD $0x8949; BYTE $0xf7 // mov r15, rsi + LONG $0x80cf8149; WORD $0x0002; BYTE $0x00 // or r15, 640 + QUAD $0x0000010024bc894c // mov qword [rsp + 256], r15 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + LONG $0xa0ca8149; WORD $0x0002; BYTE $0x00 // or r10, 672 + LONG $0x2454894c; BYTE $0x70 // mov qword [rsp + 112], r10 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + LONG $0xe0c88149; WORD $0x0002; BYTE $0x00 // or r8, 736 + LONG $0x2444894c; BYTE $0x40 // mov qword [rsp + 64], r8 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x03000d48; WORD $0x0000 // or rax, 768 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x03200d48; WORD $0x0000 // or rax, 800 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + LONG $0x40c98149; WORD $0x0003; BYTE $0x00 // or r9, 832 + QUAD $0x000000b0248c894c // mov qword [rsp + 176], r9 + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x60cf8148; WORD $0x0003; BYTE $0x00 // or rdi, 864 + LONG $0x247c8948; BYTE $0x60 // mov qword [rsp + 96], rdi + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + LONG $0x80c98148; WORD $0x0003; BYTE $0x00 // or rcx, 896 + QUAD $0x00000088248c8948 // mov qword [rsp + 136], rcx + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0xa0cb8149; WORD $0x0003; BYTE $0x00 // or r11, 928 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + LONG $0xe0ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 992 + LONG $0x24748948; BYTE $0x50 // mov qword [rsp + 80], rsi + LONG $0x207923c4; WORD $0x2a0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r13], 1 + LONG $0x2031a3c4; WORD $0x2204; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + r12], 2 + LONG $0x2079a3c4; WORD $0x3204; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + r14], 3 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + r15], 4 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r10], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 6 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + r8], 7 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 9 + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r9], 10 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + rdi], 11 + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + rcx], 12 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + r11], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rsi], 15 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + LONG $0x2061a3c4; WORD $0x221c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r12], 1 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + r14], 2 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + r11], 3 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r9], 5 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + rbx], 6 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 7 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + r15], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rax], 10 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + r10], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rcx], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rcx], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rcx], 14 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + LONG $0x2061a3c4; WORD $0x2a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + r13], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x02010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 2 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x03010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 3 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x04010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 4 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x05010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 5 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x06010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x07010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 9 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 10 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0b010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 11 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0c010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 14 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0f012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 15 + QUAD $0x0101226c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r12 + 1], 1 + QUAD $0x0201326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 1], 2 + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + QUAD $0x03011a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 5 + QUAD $0x06011a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 1], 6 + QUAD $0x0701326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 7 + QUAD $0x08013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 8 + QUAD $0x09013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 9 + QUAD $0x0a01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 10 + WORD $0x8949; BYTE $0xc3 // mov r11, rax + QUAD $0x0b01126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 1], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0f0102442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 1], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x010232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 2], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x02021a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 2], 2 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x030202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 3 + QUAD $0x00000100248c8b4c // mov r9, qword [rsp + 256] + QUAD $0x04020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 4 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x05023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x060202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x070202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x080202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 9 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x0a0222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 2], 10 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0b022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 11 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0c0232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 2], 12 + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + QUAD $0x0d0212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0102025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 1 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x02020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 2 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x03020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x04020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x05020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x06020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 8 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x09020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 9 + QUAD $0x0a021a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 2], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 14 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0f021a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 2], 15 + QUAD $0x010332642021e3c4 // vpinsrb xmm4, xmm11, byte [rdx + rsi + 3], 1 + QUAD $0x02031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 2 + QUAD $0x030302642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 3], 3 + QUAD $0x04030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 4 + QUAD $0x05033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 5 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x06030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 6 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x07033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 7 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x08030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x09031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 9 + QUAD $0x0a0322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 3], 10 + QUAD $0x0b032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 11 + QUAD $0x0c0332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 3], 12 + QUAD $0x0d0312642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 3], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 14 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0f0312642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 3], 15 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01030a6c2039e3c4 // vpinsrb xmm5, xmm8, byte [rdx + rcx + 3], 1 + QUAD $0x0203026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 2 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x04030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x05030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 5 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0603326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 6 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0703326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 7 + QUAD $0x08033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 8 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0903326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 9 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0e033a442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rdi + 3], 14 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x09 // movzx edi, byte [rdx + rdi + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x0f032a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3a7cb60f; BYTE $0x09 // movzx edi, byte [rdx + rdi + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x010422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 4], 1 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x020402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 2 + QUAD $0x000000f8249c8b48 // mov rbx, qword [rsp + 248] + QUAD $0x03041a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 4], 3 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x04043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x06043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 6 + QUAD $0x07043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 7 + QUAD $0x08040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 8 + QUAD $0x09041a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 4], 9 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0a043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 10 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x0b041a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 4], 11 + QUAD $0x0c0432442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 4], 12 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0d040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 13 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0e0432442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 4], 14 + QUAD $0x0f0412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 4], 15 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x0104125c2001a3c4 // vpinsrb xmm3, xmm15, byte [rdx + r10 + 4], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x02043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 2 + QUAD $0x0304025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0404025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 4 + QUAD $0x05040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0604025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0804025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 8 + QUAD $0x0904325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 9 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0a04325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 14 + QUAD $0x0f042a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 4], 15 + QUAD $0x010522642009a3c4 // vpinsrb xmm4, xmm14, byte [rdx + r12 + 5], 1 + QUAD $0x020502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 2 + QUAD $0x03051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 3 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x040522642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 5], 4 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x050502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x06051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 6 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x07051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 7 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x08051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 9 + QUAD $0x0a053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 10 + QUAD $0x0b051a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 5], 11 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0c051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 12 + QUAD $0x0d050a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 5], 13 + QUAD $0x0e0532642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 5], 14 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0f051a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 5], 15 + QUAD $0x0105126c2049a3c4 // vpinsrb xmm5, xmm6, byte [rdx + r10 + 5], 1 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x02051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 2 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x03051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 3 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x04051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 4 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x05050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 5 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x06051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 6 + QUAD $0x07053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x09053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 9 + QUAD $0x0a05326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 5], 10 + QUAD $0x0b05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + QUAD $0x0e050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0f052a442051a3c4 // vpinsrb xmm0, xmm5, byte [rdx + r13 + 5], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x01061a442019a3c4 // vpinsrb xmm0, xmm12, byte [rdx + r11 + 6], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 2 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x030602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 3 + QUAD $0x040622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 6], 4 + QUAD $0x050602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x060602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x07060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x080602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 10 + QUAD $0x0b063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 11 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x0c063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 12 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0d0632442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 6], 13 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0e061a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 6], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 15 + QUAD $0x0106126c2041a3c4 // vpinsrb xmm5, xmm7, byte [rdx + r10 + 6], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0206026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 2 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x0306026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 6], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0406026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 4 + QUAD $0x05060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x06063a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 6], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0706026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 7 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x08062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 8 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0906026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 9 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0a06326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 11 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0c06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 12 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0d06326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 13 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0e06326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 14 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x0f06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 15 + QUAD $0x01071a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 7], 1 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x020732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 2 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x030732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 3 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x040732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 4 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x050732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 5 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x060732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 6 + QUAD $0x07070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 7 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x080722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 7], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 9 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 10 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0b070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 11 + QUAD $0x0c073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 12 + QUAD $0x0d0732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 13 + QUAD $0x0e071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 14 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0f073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 15 + QUAD $0x0107124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 7], 1 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x02071a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 7], 2 + QUAD $0x0307024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 7], 3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x04070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x05070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 5 + QUAD $0x06073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x07070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 7 + QUAD $0x08072a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 7], 8 + QUAD $0x0907024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 9 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0a07324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 7], 10 + QUAD $0x0b070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c07024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d07024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0e0702442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rax + 7], 14 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0b // movzx edi, byte [rdx + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0f071a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x027cb60f; BYTE $0x0b // movzx edi, byte [rdx + rax + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x010802442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rax + 8], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 2 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x03080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 3 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x040812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x050802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 5 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x060832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 6 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x070802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 7 + QUAD $0x080822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 8], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 9 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x0a0822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 8], 10 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0b083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 11 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0c083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 12 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0d083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 14 + QUAD $0x0f083a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 8], 15 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x01083a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r15 + 8], 1 + QUAD $0x02081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 2 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x03083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 3 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x04083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x05083a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 8], 5 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x06080a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 8], 6 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x07082a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 8], 7 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x08081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 8 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x09081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 9 + QUAD $0x0a08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 10 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0b08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 13 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0e08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 14 + QUAD $0x0f081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 15 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x01091a742039a3c4 // vpinsrb xmm6, xmm8, byte [rdx + r11 + 9], 1 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x02091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 2 + QUAD $0x03090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 3 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x040912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 4 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x050912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 5 + QUAD $0x060932742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 9], 6 + QUAD $0x070902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 7 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x080902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 8 + QUAD $0x090902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 9 + QUAD $0x0a0922742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 9], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b0902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 11 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0c0902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 15 + QUAD $0x01093a7c2021a3c4 // vpinsrb xmm7, xmm11, byte [rdx + r15 + 9], 1 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0209027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 2 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0309027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0409027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 4 + QUAD $0x05093a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rdi + 9], 5 + QUAD $0x06090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 6 + QUAD $0x07092a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 9], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0809027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 8 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x09093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0a09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + QUAD $0x0e09327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0f09026c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rax + 9], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00046024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm5 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x010a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 2 + QUAD $0x030a1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 10], 3 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + QUAD $0x040a2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 10], 4 + QUAD $0x050a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 5 + QUAD $0x060a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x070a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 7 + QUAD $0x080a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 8 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x090a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a0a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 10 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x0b0a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 11 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0c0a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 12 + QUAD $0x0d0a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e0a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f0a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 15 + QUAD $0x010a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 1 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x020a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 2 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x030a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 3 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x040a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x050a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x060a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 6 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x070a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 7 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x080a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 8 + QUAD $0x090a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 9 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0a0a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 10 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0b0a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c0a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d0a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e0a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 14 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0f0a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 15 + QUAD $0x010b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 1 + QUAD $0x020b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 2 + QUAD $0x030b1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 11], 3 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x040b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 4 + WORD $0x894d; BYTE $0xeb // mov r11, r13 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x050b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 5 + QUAD $0x060b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x070b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x080b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 8 + QUAD $0x090b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 9 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x0a0b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 10 + QUAD $0x0b0b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 11 + QUAD $0x0c0b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 15 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x010b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 1 + QUAD $0x020b32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 11], 2 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x030b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 3 + QUAD $0x040b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x050b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 5 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x060b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 6 + QUAD $0x070b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 7 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x080b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 8 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x090b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 9 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0a0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 10 + QUAD $0x0b0b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 14 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x0d // movzx edi, byte [rdx + rcx + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0f0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000420248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm1 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a7cb60f; BYTE $0x0d // movzx edi, byte [rdx + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x010c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 1 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x020c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 2 + QUAD $0x030c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 3 + QUAD $0x040c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 12], 4 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x050c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 12], 5 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x060c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 12], 6 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x070c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 12], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x080c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 8 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x090c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 12], 9 + QUAD $0x0a0c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 10 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0b0c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 12], 11 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0c0c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 12], 12 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0d0c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 12], 13 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0e0c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 14 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0f0c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 12], 15 + QUAD $0x010c1a542051e3c4 // vpinsrb xmm2, xmm5, byte [rdx + rbx + 12], 1 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x020c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 2 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x030c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 3 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x040c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 4 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x050c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 5 + QUAD $0x060c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 6 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x070c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 7 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x080c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 8 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x090c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 9 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0a0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 13 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0e0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 14 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x0f0c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 15 + QUAD $0x010d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 1 + QUAD $0x020d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 13], 2 + WORD $0x8949; BYTE $0xf5 // mov r13, rsi + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x030d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 13], 3 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x040d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 4 + QUAD $0x050d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 5 + QUAD $0x060d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 6 + QUAD $0x070d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 13], 7 + QUAD $0x080d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 8 + QUAD $0x090d325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 13], 9 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0a0d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b0d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 11 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0c0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 13 + QUAD $0x0e0d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 14 + QUAD $0x0f0d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 15 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x010d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 1 + QUAD $0x020d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 2 + QUAD $0x030d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x040d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x050d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x060d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x070d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 7 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x080d124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 13], 8 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x090d224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 13], 9 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a0d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b0d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c0d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d0d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 13 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + QUAD $0x0e0d1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0f0d3a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rdi + 13], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x0e // movzx edi, byte [rdx + rdi + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3a7cb60f; BYTE $0x0e // movzx edi, byte [rdx + rdi + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x010e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 1 + QUAD $0x020e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 14], 2 + QUAD $0x030e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 3 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x040e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x050e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x060e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 6 + QUAD $0x070e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 14], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x080e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 14], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x090e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 9 + QUAD $0x0a0e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 10 + QUAD $0x0b0e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 11 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0c0e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 14], 12 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0d0e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 14], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e0e3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 14], 14 + QUAD $0x0f0e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 14], 15 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x010e02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 14], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x020e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 2 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x030e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 3 + QUAD $0x040e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x050e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 5 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x060e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x070e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 7 + QUAD $0x080e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 14], 8 + QUAD $0x090e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 14], 9 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0a0e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b0e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c0e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d0e0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 14], 13 + QUAD $0x0e0e3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 14], 14 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0f0e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x0f // movzx edi, byte [rdx + rdi + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x020f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 2 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x030f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 3 + QUAD $0x040f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 4 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x050f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 5 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x060f22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 15], 6 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x070f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 7 + QUAD $0x080f1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 15], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x090f1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 15], 9 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0a0f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 10 + QUAD $0x0b0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 11 + QUAD $0x0c0f1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 15], 12 + QUAD $0x0d0f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 15], 13 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0e0f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 15 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x0f12 // movzx edi, byte [rdx + r10 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x010f025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 15], 1 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x020f2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 15], 2 + QUAD $0x030f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x040f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 4 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x050f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x060f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x070f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x080f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x090f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 9 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + QUAD $0x0a0f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b0f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 12 + QUAD $0x0d0f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e0f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 14 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x0f0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x100a // movzx edi, byte [rdx + r9 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x02100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 2 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x031002442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 16], 3 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x04103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 5 + QUAD $0x061022442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 16], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x07103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 8 + QUAD $0x09101a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 16], 9 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x0a1022442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 16], 10 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0b103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 11 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0c103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 12 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0d103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 13 + QUAD $0x0e1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 14 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0f1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 15 + LONG $0x7cb60f42; WORD $0x1012 // movzx edi, byte [rdx + r10 + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x0110324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 1 + QUAD $0x02102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 2 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0310324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 3 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0410324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 4 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0510324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 5 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x06101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 6 + QUAD $0x0710024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0810024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 8 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0910024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 9 + QUAD $0x0a103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 10 + QUAD $0x0b101a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 16], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d101a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 16], 13 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0e10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 14 + QUAD $0x0f10324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 15 + LONG $0x7cb60f42; WORD $0x110a // movzx edi, byte [rdx + r9 + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x011102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 1 + QUAD $0x02110a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 17], 2 + QUAD $0x031102542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 17], 3 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x041102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 4 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x051132542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 17], 5 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x061132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x071102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 7 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x08113a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 17], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 9 + QUAD $0x0a1122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 11 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0c1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 12 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0d112a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 17], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1102542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 17], 15 + LONG $0x7cb60f42; WORD $0x1112 // movzx edi, byte [rdx + r10 + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x0111225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 17], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 2 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x0311025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x04110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x05110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 5 + QUAD $0x06111a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 17], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x07110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 7 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x08110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 8 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x09110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 9 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0a110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 12 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + QUAD $0x0d111a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 17], 13 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0e113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x0f111a442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rbx + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x12 // movzx edi, byte [rdx + rdi + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x01123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x02123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 2 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x03123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 3 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x04123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 4 + QUAD $0x051232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 18], 5 + QUAD $0x061232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 6 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x071232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 7 + QUAD $0x08123a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 18], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 9 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0a1232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 10 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0b1232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 11 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0c1232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 12 + QUAD $0x0d122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 13 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0e1232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 14 + QUAD $0x0f1202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 15 + LONG $0x7cb60f42; WORD $0x1212 // movzx edi, byte [rdx + r10 + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0112224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 1 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x0212124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 2 + QUAD $0x0312024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 3 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0412324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 4 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x0512324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 5 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x0612024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 6 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x07122a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 18], 7 + QUAD $0x08120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 8 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0912024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 9 + QUAD $0x0a120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 12 + QUAD $0x0d121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 14 + QUAD $0x0f121a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 18], 15 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x133a // movzx edi, byte [rdx + r15 + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 1 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x02130a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 19], 2 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x03130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 3 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x04131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 4 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x05130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 5 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x06130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x07130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x09131a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 19], 9 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 10 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0b130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 11 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0c130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 14 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 15 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a7cb60f; BYTE $0x13 // movzx edi, byte [rdx + rcx + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 1 + QUAD $0x0213125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 2 + QUAD $0x0313225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 3 + QUAD $0x0413325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 4 + QUAD $0x0513325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 5 + QUAD $0x0613025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 19], 6 + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + QUAD $0x07132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 7 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0813325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 8 + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0a13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 11 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0c13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 13 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0e132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 14 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0f13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + LONG $0x7cb60f42; WORD $0x143a // movzx edi, byte [rdx + r15 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x011402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 20], 1 + QUAD $0x02140a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 20], 2 + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x03143a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 20], 3 + QUAD $0x04141a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 20], 4 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x051432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x061402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 6 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x07140a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 20], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 8 + QUAD $0x09141a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 20], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 11 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0c1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 12 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0d1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f143a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 20], 15 + LONG $0x0a7cb60f; BYTE $0x14 // movzx edi, byte [rdx + rcx + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 2 + QUAD $0x0314224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 20], 3 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x04143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 4 + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x05141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 5 + QUAD $0x0614324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 20], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 8 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x09141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 9 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 11 + QUAD $0x0c14124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 13 + QUAD $0x0e142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 14 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x0f14224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 20], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x15 // movzx edi, byte [rdx + rdi + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 1 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x02152a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 21], 2 + QUAD $0x03153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 3 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x04153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 4 + QUAD $0x051532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 5 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x061532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 6 + QUAD $0x07150a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 21], 7 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x08150a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 21], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09153a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 21], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a153a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 21], 10 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0b1512542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 21], 11 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0c1502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 12 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0d153a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 21], 13 + QUAD $0x0e1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x027cb60f; BYTE $0x15 // movzx edi, byte [rdx + rax + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0115025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 1 + QUAD $0x02150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 2 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0315025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0415025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 4 + QUAD $0x05151a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 21], 5 + QUAD $0x0615325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 21], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0715025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0815025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 8 + QUAD $0x09151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0a15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 11 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0c15325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 21], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 13 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0e150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0f1522442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r12 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x16 // movzx edi, byte [rdx + rax + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x011602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 1 + QUAD $0x02162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 2 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x031602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 3 + QUAD $0x04163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 5 + QUAD $0x061632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 6 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x071632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 7 + QUAD $0x08160a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 22], 8 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x091632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 9 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0a1632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 22], 10 + QUAD $0x0b1612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 22], 11 + QUAD $0x0c1602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 22], 12 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0d162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 14 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0f1612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 22], 15 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x161a // movzx edi, byte [rdx + r11 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x01163a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 22], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x02163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 2 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x03163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 3 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x04163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x05163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x06163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 6 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x0716224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 22], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x09163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 9 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 10 + QUAD $0x0b161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 11 + QUAD $0x0c16324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 12 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0d16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 13 + QUAD $0x0e160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 14 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0f160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 15 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + LONG $0x1a7cb60f; BYTE $0x17 // movzx edi, byte [rdx + rbx + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x01173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x02173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 2 + QUAD $0x031702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 3 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x041702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x05173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 5 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x061732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 23], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x07173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 7 + QUAD $0x08170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 8 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x09170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 9 + QUAD $0x0a1732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 10 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0b1732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 11 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0c1732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 12 + QUAD $0x0d172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 13 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x0e172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 14 + QUAD $0x0f1712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 23], 15 + LONG $0x7cb60f42; WORD $0x171a // movzx edi, byte [rdx + r11 + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01173a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 23], 1 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x0217325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 2 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x03173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 3 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x04173a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 23], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x05173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x06173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 6 + QUAD $0x0717225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 23], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x09173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 9 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x0a17225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 23], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 11 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0c17125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 12 + QUAD $0x0d17025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 13 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0e173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 14 + QUAD $0x0f170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + LONG $0x1a7cb60f; BYTE $0x18 // movzx edi, byte [rdx + rbx + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x02180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 2 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x031802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 24], 3 + QUAD $0x041802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 4 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x051802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 5 + QUAD $0x061832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 24], 6 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x07181a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 24], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 8 + QUAD $0x09180a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 24], 9 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x0a180a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 24], 10 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0b180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 11 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0c183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 12 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0d183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 13 + QUAD $0x0e182a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 24], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 15 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3a7cb60f; BYTE $0x18 // movzx edi, byte [rdx + rdi + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x0118324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 1 + QUAD $0x0218324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 2 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x03182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 3 + QUAD $0x04183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 4 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0518324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 5 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0618324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 6 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x07181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 7 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0818324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 8 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0918324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 9 + QUAD $0x0a18224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 24], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 11 + QUAD $0x0c18124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 12 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0d18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 13 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0e183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 14 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0f18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 15 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + LONG $0x327cb60f; BYTE $0x19 // movzx edi, byte [rdx + rsi + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x011912542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 25], 1 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x021932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 2 + QUAD $0x031902542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 25], 3 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x04193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 4 + QUAD $0x051902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x061902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 6 + QUAD $0x07191a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 25], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 8 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x091902542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 25], 9 + QUAD $0x0a190a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 25], 10 + QUAD $0x0b190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 11 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0c190a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 25], 12 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0d190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0f191a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 25], 15 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0a7cb60f; BYTE $0x19 // movzx edi, byte [rdx + rcx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0119325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 25], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x02193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 2 + QUAD $0x03192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 3 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0419325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 25], 4 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x05192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 5 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x06193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 6 + QUAD $0x07191a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 25], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x08193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x09193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 9 + QUAD $0x0a19225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 25], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b19225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 25], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c191a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 25], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 13 + QUAD $0x0e193a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0f193a442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rdi + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x1a // movzx edi, byte [rdx + rdi + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011a12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 26], 1 + QUAD $0x021a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 2 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x031a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 3 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x041a3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 26], 4 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x051a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 5 + QUAD $0x061a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x071a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 8 + QUAD $0x091a02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 26], 9 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0a1a02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 26], 10 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0b1a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 11 + QUAD $0x0c1a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 12 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0d1a0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 26], 13 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0e1a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 14 + QUAD $0x0f1a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 15 + LONG $0x0a7cb60f; BYTE $0x1a // movzx edi, byte [rdx + rcx + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x011a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x021a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 2 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x031a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 3 + QUAD $0x041a324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 26], 4 + QUAD $0x051a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 5 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x061a1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 26], 6 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x071a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x081a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x091a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 9 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0a1a324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 26], 10 + QUAD $0x0b1a224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 26], 11 + QUAD $0x0c1a1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 26], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 13 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0e1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 14 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0f1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x1b // movzx edi, byte [rdx + rdi + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x011b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 27], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x021b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 27], 2 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x031b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 27], 3 + QUAD $0x041b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x051b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 27], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x061b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 27], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x071b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 27], 7 + QUAD $0x081b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 8 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x091b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 27], 9 + QUAD $0x0a1b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 11 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0c1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 12 + QUAD $0x0d1b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 27], 13 + QUAD $0x0e1b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 14 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0f1b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 27], 15 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + LONG $0x327cb60f; BYTE $0x1b // movzx edi, byte [rdx + rsi + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x021b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 2 + QUAD $0x031b125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 27], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x041b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 4 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x051b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 5 + QUAD $0x061b1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 27], 6 + QUAD $0x071b2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 27], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x081b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 8 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x091b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 9 + QUAD $0x0a1b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 11 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0c1b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 12 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0d1b1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 27], 13 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0e1b3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 27], 14 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0f1b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x1c // movzx edi, byte [rdx + rdi + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 1 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x021c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 2 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x031c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 3 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + QUAD $0x041c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 28], 4 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x051c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x061c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x071c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 7 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x081c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 8 + QUAD $0x091c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 28], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 10 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0b1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 11 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0c1c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 28], 12 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0d1c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 28], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 14 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0f1c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 28], 15 + LONG $0x327cb60f; BYTE $0x1c // movzx edi, byte [rdx + rsi + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x011c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 1 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x021c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 2 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x041c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x051c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 5 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x061c1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 28], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x071c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x081c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 8 + QUAD $0x091c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0a1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 10 + QUAD $0x0b1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 11 + QUAD $0x0c1c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 12 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x0d1c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 13 + QUAD $0x0e1c3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 28], 14 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0f1c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x1d // movzx edi, byte [rdx + rax + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x011d0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 29], 1 + QUAD $0x021d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 2 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x031d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 3 + QUAD $0x041d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 4 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x051d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x061d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x071d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 7 + QUAD $0x081d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x091d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 9 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0a1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 10 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0b1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 11 + QUAD $0x0c1d22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 29], 12 + QUAD $0x0d1d2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 29], 13 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0e1d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 14 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0f1d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 15 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3a7cb60f; BYTE $0x1d // movzx edi, byte [rdx + rdi + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x011d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 1 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x021d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 2 + QUAD $0x031d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 3 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x041d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 4 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x051d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 29], 5 + QUAD $0x061d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 29], 6 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x071d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 7 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x081d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 8 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x091d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 9 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a1d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b1d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c1d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 29], 12 + QUAD $0x0d1d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 29], 13 + QUAD $0x0e1d3a642061a3c4 // vpinsrb xmm4, xmm3, byte [rdx + r15 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x0f1d1a442059a3c4 // vpinsrb xmm0, xmm4, byte [rdx + r11 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x027cb60f; BYTE $0x1e // movzx edi, byte [rdx + rax + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 30], 1 + LONG $0x027cb60f; BYTE $0x1f // movzx edi, byte [rdx + rax + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 31], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x051e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 30], 5 + QUAD $0x051f124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 31], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x061e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 6 + QUAD $0x061f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 9 + QUAD $0x091f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 9 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0a1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 10 + QUAD $0x0a1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 11 + QUAD $0x0b1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 11 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0c1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 12 + QUAD $0x0c1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 12 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0d1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 13 + QUAD $0x0d1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 13 + QUAD $0x0e1e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 30], 14 + QUAD $0x0e1f324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 31], 14 + QUAD $0x0f1e02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 30], 15 + QUAD $0x0f1f02542071a3c4 // vpinsrb xmm2, xmm1, byte [rdx + r8 + 31], 15 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3a44b60f; BYTE $0x1e // movzx eax, byte [rdx + rdi + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x011e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 1 + LONG $0x3a44b60f; BYTE $0x1f // movzx eax, byte [rdx + rdi + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 31], 1 + QUAD $0x021e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 30], 2 + QUAD $0x021f2a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 31], 2 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 3 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x041e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 4 + QUAD $0x041f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 4 + QUAD $0x051e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 30], 5 + QUAD $0x051f227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 31], 5 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x061e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 6 + QUAD $0x061f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 6 + QUAD $0x071e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 30], 7 + QUAD $0x071f327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 31], 7 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0c1e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 30], 12 + QUAD $0x0c1f1a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 31], 12 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x0d1e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 30], 13 + QUAD $0x0d1f0a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 31], 13 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + QUAD $0x0f1e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 30], 15 + QUAD $0x0f1f1a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 512] + LONG $0xc27495c5 // vpcmpeqb ymm0, ymm13, ymm2 + QUAD $0x0004c024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1216] + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI5_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x0001e024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI5_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001c024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 448] + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI5_2] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xe2740dc5 // vpcmpeqb ymm12, ymm14, ymm2 + LONG $0x456f7dc5; BYTE $0x60 // vmovdqa ymm8, yword 96[rbp] /* [rip + .LCPI5_3] */ + LONG $0xdf1d41c4; BYTE $0xe0 // vpandn ymm12, ymm12, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xfa7485c5 // vpcmpeqb ymm7, ymm15, ymm2 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI5_4] */ + LONG $0xf9dfc5c5 // vpandn ymm7, ymm7, ymm1 + QUAD $0x0001a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 416] + QUAD $0x000000a0ad6f7dc5 // vmovdqa ymm13, yword 160[rbp] /* [rip + .LCPI5_5] */ + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0004a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1184] + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI5_6] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x00048024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1152] + QUAD $0x00046024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1120] + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00044024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1088] + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x00042024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 1056] + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 992] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00040024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1024] + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + QUAD $0x0003a024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 928] + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003c024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 960] + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x00038024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 896] + QUAD $0x00036024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 864] + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00032024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 800] + LONG $0xfedf05c5 // vpandn ymm15, ymm15, ymm6 + QUAD $0x00034024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 832] + LONG $0xf3df0dc5 // vpandn ymm14, ymm14, ymm3 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x0002e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 736] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00030024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 768] + LONG $0xf1df0dc5 // vpandn ymm14, ymm14, ymm1 + LONG $0xd2742dc5 // vpcmpeqb ymm10, ymm10, ymm2 + LONG $0xdf2d41c4; BYTE $0xd5 // vpandn ymm10, ymm10, ymm13 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0xda7425c5 // vpcmpeqb ymm11, ymm11, ymm2 + LONG $0x6f7d41c4; BYTE $0xf1 // vmovdqa ymm14, ymm9 + LONG $0xdf2541c4; BYTE $0xd9 // vpandn ymm11, ymm11, ymm9 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000220248c746dc5; BYTE $0x00 // vpcmpeqb ymm9, ymm2, yword [rsp + 544] + QUAD $0x0002402484746dc5; BYTE $0x00 // vpcmpeqb ymm8, ymm2, yword [rsp + 576] + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x00026024ac74edc5; BYTE $0x00 // vpcmpeqb ymm5, ymm2, yword [rsp + 608] + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x00028024b474edc5; BYTE $0x00 // vpcmpeqb ymm6, ymm2, yword [rsp + 640] + LONG $0xf3dfcdc5 // vpandn ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x0002a0249c74edc5; BYTE $0x00 // vpcmpeqb ymm3, ymm2, yword [rsp + 672] + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI5_3] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xecf8bdc5 // vpsubb ymm5, ymm8, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x0002c024a474edc5; BYTE $0x00 // vpcmpeqb ymm4, ymm2, yword [rsp + 704] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + QUAD $0x000140248c74edc5; BYTE $0x00 // vpcmpeqb ymm1, ymm2, yword [rsp + 320] + LONG $0xdf75c1c4; BYTE $0xcd // vpandn ymm1, ymm1, ymm13 + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x000120249474edc5; BYTE $0x00 // vpcmpeqb ymm2, ymm2, yword [rsp + 288] + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8f44; BYTE $0x60 // vmovdqu yword [r15 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8f54; BYTE $0x40 // vmovdqu yword [r15 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8f64; BYTE $0x20 // vmovdqu yword [r15 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8f0c // vmovdqu yword [r15 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + QUAD $0x00000178248c3b48 // cmp rcx, qword [rsp + 376] + JNE LBB5_166 + QUAD $0x0000018024b48b4c // mov r14, qword [rsp + 384] + QUAD $0x0000017824b43b4c // cmp r14, qword [rsp + 376] + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + QUAD $0x0000019024ac8b4c // mov r13, qword [rsp + 400] + QUAD $0x0000018824948b48 // mov rdx, qword [rsp + 392] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + JNE LBB5_43 + JMP LBB5_129 + +LBB5_168: + LONG $0xe0e68349 // and r14, -32 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000018824848948 // mov qword [rsp + 392], rax + QUAD $0x0000017824b4894c // mov qword [rsp + 376], r14 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + WORD $0xdb31 // xor ebx, ebx + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + +LBB5_169: + QUAD $0x00000198249c8948 // mov qword [rsp + 408], rbx + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x0a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rcx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x0a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rcx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + QUAD $0x00000100249c8948 // mov qword [rsp + 256], rbx + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x0a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rcx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x0a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rcx + 6] + QUAD $0x000000f0248c8948 // mov qword [rsp + 240], rcx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x0a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rcx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x20ce8149; WORD $0x0002; BYTE $0x00 // or r14, 544 + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x40c98148; WORD $0x0002; BYTE $0x00 // or rcx, 576 + QUAD $0x000000b0248c8948 // mov qword [rsp + 176], rcx + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02800d48; WORD $0x0000 // or rax, 640 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0xa0ca8149; WORD $0x0002; BYTE $0x00 // or r10, 672 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0xc0c98149; WORD $0x0002; BYTE $0x00 // or r9, 704 + QUAD $0x000000e8248c894c // mov qword [rsp + 232], r9 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0xe0cb8149; WORD $0x0002; BYTE $0x00 // or r11, 736 + LONG $0x245c894c; BYTE $0x60 // mov qword [rsp + 96], r11 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x00cc8149; WORD $0x0003; BYTE $0x00 // or r12, 768 + LONG $0x2464894c; BYTE $0x70 // mov qword [rsp + 112], r12 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0x20c88149; WORD $0x0003; BYTE $0x00 // or r8, 800 + LONG $0x2444894c; BYTE $0x38 // mov qword [rsp + 56], r8 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x40cf8149; WORD $0x0003; BYTE $0x00 // or r15, 832 + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03600d48; WORD $0x0000 // or rax, 864 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03800d48; WORD $0x0000 // or rax, 896 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03a00d48; WORD $0x0000 // or rax, 928 + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + LONG $0xe0cb8148; WORD $0x0003; BYTE $0x00 // or rbx, 992 + LONG $0x207923c4; WORD $0x320c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r14], 1 + LONG $0x2031e3c4; WORD $0x0a04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + rcx], 2 + LONG $0x2079a3c4; WORD $0x2a04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + r13], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + rcx], 4 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r10], 5 + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + r9], 6 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + r11], 7 + LONG $0x2079a3c4; WORD $0x2204; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + r12], 8 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + r8], 9 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r15], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + r10], 11 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + rdi], 12 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + rsi], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rbx], 15 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x00000098249c8948 // mov qword [rsp + 152], rbx + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r11], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + rax], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + rax], 3 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r9], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + rax], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 7 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + r15], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rax], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + rbx], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rbx], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rbx], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rbx], 14 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + r14], 15 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x01011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 2 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x03012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 3 + QUAD $0x04010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 4 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x05010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 5 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x06010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x07010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x08010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 9 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0a010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 10 + QUAD $0x0b0112642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 1], 11 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0c011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 12 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0d0112642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 1], 13 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0e010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 14 + QUAD $0x0f0122642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 1], 15 + QUAD $0x01011a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r11 + 1], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x02010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 2 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0301226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x06010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 6 + QUAD $0x0701326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 7 + QUAD $0x08013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 8 + QUAD $0x09013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 9 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x0a01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0f0132442051a3c4 // vpinsrb xmm0, xmm5, byte [rdx + r14 + 1], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x01023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x020202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x050202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 5 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x060202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 6 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x07020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 7 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x08021a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 2], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 11 + QUAD $0x0c021a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 2], 12 + QUAD $0x0d0212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 2], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0202025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 2 + QUAD $0x0302225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 3 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0402325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 2], 4 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0502225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 5 + QUAD $0x06020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 6 + QUAD $0x0702325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 8 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x09022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 9 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0a02325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 14 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0f022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 15 + QUAD $0x01033a642021a3c4 // vpinsrb xmm4, xmm11, byte [rdx + r15 + 3], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 2 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x03031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 3 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x04031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 4 + QUAD $0x000000f8249c8b48 // mov rbx, qword [rsp + 248] + QUAD $0x05031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 5 + QUAD $0x060302642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 3], 6 + QUAD $0x07030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 7 + QUAD $0x08031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x09030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0a031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 11 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0c031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 12 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x0d032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 14 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0f031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 15 + QUAD $0x0103126c2039a3c4 // vpinsrb xmm5, xmm8, byte [rdx + r10 + 3], 1 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0203026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + QUAD $0x0403326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 4 + QUAD $0x0503226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 3], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0603026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0703026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 7 + QUAD $0x08033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 8 + QUAD $0x09030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 9 + QUAD $0x0a03326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0302442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 3], 14 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0302442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + QUAD $0x01043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x02043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 2 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x030422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 4], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x040432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 4], 4 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x050402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x070402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 7 + QUAD $0x08041a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 4], 8 + QUAD $0x09040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 10 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0b040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 12 + QUAD $0x0d042a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 4], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 14 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x0f0412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 4], 15 + QUAD $0x01041a5c2001e3c4 // vpinsrb xmm3, xmm15, byte [rdx + rbx + 4], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 2 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x03042a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 4], 3 + QUAD $0x0404325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0504025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x07043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0804025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 8 + QUAD $0x09040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 15 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x010502642009e3c4 // vpinsrb xmm4, xmm14, byte [rdx + rax + 5], 1 + QUAD $0x02053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 2 + QUAD $0x030522642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 5], 3 + QUAD $0x040532642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 5], 4 + QUAD $0x050502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 6 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x07053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 7 + QUAD $0x08051a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 5], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 10 + QUAD $0x0b050a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 5], 11 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x0c051a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 5], 12 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0d0532642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 5], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 14 + QUAD $0x0f0512642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 5], 15 + QUAD $0x01051a6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rdx + rbx + 5], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0205026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 2 + QUAD $0x03052a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 5], 3 + QUAD $0x0405326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 4 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0505026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0605026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 6 + QUAD $0x07053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 7 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x0805326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 8 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x0905226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 5], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 10 + QUAD $0x0b050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0502442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 5], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x010602442019e3c4 // vpinsrb xmm0, xmm12, byte [rdx + rax + 6], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x020602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 2 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x03061a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 6], 3 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x040602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x050612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 6], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 6 + QUAD $0x07063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x09063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 11 + QUAD $0x0c061a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 6], 12 + QUAD $0x0d0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 13 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0e0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 14 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x0f062a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 6], 15 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x01061a6c2041a3c4 // vpinsrb xmm5, xmm7, byte [rdx + r11 + 6], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x02060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 2 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x03060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 3 + QUAD $0x04060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 4 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x05060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06063a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 6], 6 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x07060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 7 + QUAD $0x0806326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 6], 8 + QUAD $0x0906226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 9 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0a060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b06326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 6], 11 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0c060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 14 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 15 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x01070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 1 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x02070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 2 + QUAD $0x03071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 3 + QUAD $0x040702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 4 + QUAD $0x050712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 5 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x060702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x07070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 7 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x080712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 8 + QUAD $0x09073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 9 + QUAD $0x0a0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 12 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0d071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 13 + QUAD $0x0e0732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 14 + QUAD $0x0f072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 15 + QUAD $0x01071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 1 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0207324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0307024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x04070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 4 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0507224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 5 + QUAD $0x06073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x07073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x08071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 8 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x09070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 9 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0a070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 10 + QUAD $0x0b07324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 7], 11 + QUAD $0x0c070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e073a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rdi + 7], 14 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x0b // movzx edi, byte [rdx + rcx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f070a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x0b // movzx edi, byte [rdx + rcx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x01083a442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rdi + 8], 1 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x02083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 2 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x03083a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 8], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 4 + QUAD $0x000000f8248c8b4c // mov r9, qword [rsp + 248] + QUAD $0x05080a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 8], 5 + QUAD $0x060802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x07080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 7 + QUAD $0x080812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 9 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0a080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b0812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 11 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0c080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 12 + QUAD $0x0d081a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 8], 13 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0e080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 14 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x0f080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 15 + QUAD $0x01082a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r13 + 8], 1 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + QUAD $0x0208326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 2 + QUAD $0x0308026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x04080a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 8], 4 + WORD $0x894c; BYTE $0xe7 // mov rdi, r12 + QUAD $0x0508226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 5 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0608326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 6 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x0708226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 7 + QUAD $0x08081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0908026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 9 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0a081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 15 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x01091a742039e3c4 // vpinsrb xmm6, xmm8, byte [rdx + rbx + 9], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 2 + QUAD $0x03093a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 9], 3 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x04091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 4 + QUAD $0x05090a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 9], 5 + QUAD $0x060902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 6 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x07093a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 9], 7 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x08091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0a091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 10 + QUAD $0x0b0912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 11 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0c091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 12 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x0d0902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 14 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0f091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 15 + QUAD $0x01092a7c2021a3c4 // vpinsrb xmm7, xmm11, byte [rdx + r13 + 9], 1 + QUAD $0x0209327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 2 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x03091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 3 + QUAD $0x04090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 4 + QUAD $0x05093a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rdi + 9], 5 + QUAD $0x0609327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 6 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + QUAD $0x0709227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 9], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 8 + QUAD $0x0909027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 9 + QUAD $0x0a091a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 9], 10 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0b091a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 9], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00048024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f09026c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rax + 9], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00046024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm5 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x010a2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 10], 1 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x020a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 3 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x040a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 4 + QUAD $0x050a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 5 + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x060a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 6 + QUAD $0x070a3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 10], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 9 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0a0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 12 + QUAD $0x0d0a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x010a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x020a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 2 + QUAD $0x030a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x040a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 4 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x050a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 5 + QUAD $0x060a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 6 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x080a02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 10], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x090a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 10 + QUAD $0x0b0a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 12 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0d0a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e0a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 15 + QUAD $0x010b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 1 + QUAD $0x020b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 3 + QUAD $0x040b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 4 + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x050b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 5 + QUAD $0x060b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x070b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 9 + QUAD $0x0a0b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 13 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0e0b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f0b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 15 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x010b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 11], 1 + QUAD $0x020b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x030b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 3 + QUAD $0x040b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 4 + QUAD $0x050b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x060b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 6 + QUAD $0x070b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 7 + QUAD $0x080b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 11], 8 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x090b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 12 + QUAD $0x0d0b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + QUAD $0x0e0b32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 11], 14 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0d // movzx edi, byte [rdx + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000420248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0d // movzx edi, byte [rdx + rax + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x010c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 1 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x020c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 12], 2 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x030c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 12], 3 + QUAD $0x040c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 4 + QUAD $0x050c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 12], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x060c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x070c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x080c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 13 + QUAD $0x0e0c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 12], 14 + QUAD $0x0f0c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 15 + QUAD $0x010c0a542051a3c4 // vpinsrb xmm2, xmm5, byte [rdx + r9 + 12], 1 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x020c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x030c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x040c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 4 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x050c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 5 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x060c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x070c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x080c1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 12], 8 + QUAD $0x090c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a0c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 13 + QUAD $0x0e0c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 15 + QUAD $0x010d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 1 + QUAD $0x020d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 2 + QUAD $0x030d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 13], 3 + QUAD $0x040d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 4 + QUAD $0x050d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 5 + WORD $0x894d; BYTE $0xe2 // mov r10, r12 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x060d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 6 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x070d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 7 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x080d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x090d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0a0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 11 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + QUAD $0x0c0d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 13], 12 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0d0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 14 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x0f0d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 15 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x010d1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + QUAD $0x030d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 3 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x040d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 4 + QUAD $0x050d2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 13], 5 + QUAD $0x060d0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 13], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x070d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 7 + QUAD $0x080d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 8 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x090d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 9 + QUAD $0x0a0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 13 + QUAD $0x0e0d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0d02442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rax + 13], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x010e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 1 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x020e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x030e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 4 + QUAD $0x050e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 5 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x060e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 14], 6 + QUAD $0x070e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 7 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x080e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 14], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 9 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0a0e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 10 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0b0e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 14], 11 + QUAD $0x0c0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 12 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0d0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 13 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0e0e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 14], 14 + QUAD $0x0f0e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x010e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x020e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x030e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x040e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x050e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x060e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x070e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x080e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 8 + QUAD $0x090e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 9 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0a0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 10 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0b0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 11 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0c0e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 14], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e0e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f0e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 15 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x0f02 // movzx edi, byte [rdx + r8 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x010f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 1 + QUAD $0x020f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 2 + QUAD $0x030f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x040f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 4 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x050f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 5 + QUAD $0x060f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 15], 6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x070f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 7 + QUAD $0x080f1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 15], 8 + QUAD $0x090f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 9 + QUAD $0x0a0f12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 15], 10 + QUAD $0x0b0f1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 15], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 12 + QUAD $0x0d0f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 15], 13 + QUAD $0x0e0f32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 15], 14 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x0f0f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 15 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + LONG $0x1a7cb60f; BYTE $0x0f // movzx edi, byte [rdx + rbx + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x010f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x020f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 2 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x030f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x040f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 4 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x050f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x060f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 6 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x070f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x080f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x090f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 9 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0a0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 11 + QUAD $0x0c0f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 12 + QUAD $0x0d0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 14 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0f0f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x7cb60f42; WORD $0x1002 // movzx edi, byte [rdx + r8 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x011032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 1 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x021032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 2 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x031032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 5 + QUAD $0x06102a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 16], 6 + WORD $0x894d; BYTE $0xec // mov r12, r13 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x071032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 7 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x081032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x091032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 9 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0a1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0b1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 11 + QUAD $0x0c1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 13 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0e1002442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 16], 14 + QUAD $0x0f100a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 16], 15 + LONG $0x1a7cb60f; BYTE $0x10 // movzx edi, byte [rdx + rbx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x01101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 1 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x02100a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 16], 2 + QUAD $0x0310124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0410024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0510024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 5 + QUAD $0x06100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 6 + QUAD $0x0710324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0810324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0910024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 9 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x0a102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e10324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 14 + QUAD $0x0f103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x11 // movzx edi, byte [rdx + rdi + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x01113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 1 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x02110a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 17], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x03113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 4 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x051112542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 17], 5 + QUAD $0x061122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 6 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x071122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 7 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x08113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0a111a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 17], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 11 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0c113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 12 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0d111a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 17], 13 + QUAD $0x0e1102542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 17], 14 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0f113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x11 // movzx edi, byte [rdx + rdi + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x01113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 1 + QUAD $0x02110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x03113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x05113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 5 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x06113a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 17], 6 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0711025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 7 + QUAD $0x0811325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 8 + QUAD $0x0911025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 9 + QUAD $0x0a112a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 17], 10 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0b110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0c11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 13 + QUAD $0x0e11325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1102442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x12 // movzx edi, byte [rdx + rax + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x011202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 1 + QUAD $0x02120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x03120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 3 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x04122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 4 + QUAD $0x051212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 5 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x06120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 6 + QUAD $0x071222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 18], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x08120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 8 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x091212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 9 + QUAD $0x0a121a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 18], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 11 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0c123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 12 + QUAD $0x0d121a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 18], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 14 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0f123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 15 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x121a // movzx edi, byte [rdx + r11 + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x01123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 1 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0212324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 2 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0312224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x05123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 5 + QUAD $0x06123a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 18], 6 + QUAD $0x0712024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x09123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 9 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0a123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 10 + QUAD $0x0b120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 11 + QUAD $0x0c12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 12 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x0d120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 14 + QUAD $0x0000012024848b4c // mov r8, qword [rsp + 288] + QUAD $0x0f12024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x13 // movzx edi, byte [rdx + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x03133a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 19], 3 + QUAD $0x04132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x061302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x071302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 7 + QUAD $0x08130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 8 + QUAD $0x091312542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 19], 9 + QUAD $0x0a131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 11 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0c132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 15 + LONG $0x7cb60f42; WORD $0x131a // movzx edi, byte [rdx + r11 + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x01130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 1 + QUAD $0x0213325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 2 + QUAD $0x0313225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0413025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0513025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 5 + QUAD $0x06133a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 19], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0713025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0a13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 11 + QUAD $0x0c13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 12 + QUAD $0x0d130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 13 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x0e130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 14 + QUAD $0x0f13025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x14 // movzx edi, byte [rdx + rax + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x011432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 1 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x02141a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 20], 2 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x031422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 20], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 4 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x051402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 20], 5 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x06143a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 20], 6 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x071432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 7 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x081432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x091432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 9 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0a1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 10 + QUAD $0x0b141a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 20], 11 + QUAD $0x0c142a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 20], 12 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0d1432442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 20], 13 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0e1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x14 // movzx edi, byte [rdx + rdi + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x01143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 2 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x03141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x05143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x07143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 7 + QUAD $0x08140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 8 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x09140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 9 + QUAD $0x0a14124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 13 + QUAD $0x0e140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 14 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0f140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 15 + LONG $0x027cb60f; BYTE $0x15 // movzx edi, byte [rdx + rax + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x011502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 1 + QUAD $0x02151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 2 + QUAD $0x031522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 3 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 4 + QUAD $0x051502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 5 + QUAD $0x06153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 6 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x071502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 7 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x08153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 9 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0a1522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 12 + QUAD $0x0d1532542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 21], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 14 + QUAD $0x0f1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 15 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x151a // movzx edi, byte [rdx + r11 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0115325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 21], 1 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0215125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 2 + QUAD $0x03151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 3 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x04151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 4 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x05150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 5 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0615325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 6 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0715325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0815325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 8 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0915325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 9 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0a153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0f150a442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r9 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x16 // movzx edi, byte [rdx + rdi + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x01163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 1 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x02163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 2 + QUAD $0x03162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 3 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x04160a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 22], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x05163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 6 + QUAD $0x071602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 22], 7 + QUAD $0x08163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 9 + QUAD $0x0a1622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 10 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0b163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 11 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0c163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 13 + QUAD $0x0e1602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 14 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x0f163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 15 + LONG $0x7cb60f42; WORD $0x161a // movzx edi, byte [rdx + r11 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0116324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 1 + QUAD $0x0216124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 22], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0316024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 3 + QUAD $0x04161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 4 + QUAD $0x05160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 5 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x0616224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 22], 6 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x07161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 7 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x0816124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 22], 8 + QUAD $0x0916324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 10 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0b16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x17 // movzx edi, byte [rdx + rax + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x011702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 2 + WORD $0x894d; BYTE $0xee // mov r14, r13 + QUAD $0x03172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 3 + QUAD $0x04170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 4 + QUAD $0x000000f824ac8b4c // mov r13, qword [rsp + 248] + QUAD $0x05172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 5 + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x061732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 6 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x07170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 9 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0a170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 11 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0c170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 12 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0d171a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 23], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 14 + QUAD $0x0f173a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 23], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x17 // movzx edi, byte [rdx + rdi + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x01173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x03173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x05173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 5 + QUAD $0x0617225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 23], 6 + QUAD $0x07171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 7 + QUAD $0x0817125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 8 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x09171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 9 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0a173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 10 + QUAD $0x0b17025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x18 // movzx edi, byte [rdx + rdi + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x01183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x02183a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 24], 2 + QUAD $0x031832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 24], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 4 + QUAD $0x05182a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 24], 5 + QUAD $0x061832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 6 + QUAD $0x07180a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 24], 7 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x081832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 8 + QUAD $0x091802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 10 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0b1822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 11 + QUAD $0x0c180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 12 + QUAD $0x0d181a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 24], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 15 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1832 // movzx edi, byte [rdx + r14 + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x01180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0218024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0318024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 3 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x04181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 4 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0518024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0618024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0718024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 7 + QUAD $0x0818124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 8 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x09181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 9 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x0a182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0c18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d18024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f18024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x19 // movzx edi, byte [rdx + rax + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x011902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 1 + QUAD $0x02193a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 25], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 4 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x05193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 6 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x07193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 7 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x08193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 9 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0a193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 10 + QUAD $0x0b1922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 11 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0c193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 14 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x0f193a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 25], 15 + LONG $0x7cb60f42; WORD $0x1932 // movzx edi, byte [rdx + r14 + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 1 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x02190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x03193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 3 + QUAD $0x04191a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 25], 4 + QUAD $0x0519025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x07193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 8 + QUAD $0x0919125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 9 + QUAD $0x0a192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 10 + QUAD $0x0b190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 11 + QUAD $0x0c19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 12 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0d192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 13 + QUAD $0x0e191a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f190a442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rcx + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1a1a // movzx edi, byte [rdx + r11 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x011a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 1 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x021a02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 26], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x031a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 3 + QUAD $0x041a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 4 + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x051a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x061a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x071a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 7 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 9 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0a1a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 13 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0e1a32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 26], 14 + QUAD $0x0f1a3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 26], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x1a // movzx edi, byte [rdx + rax + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x011a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 1 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x021a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 2 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x031a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x041a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x051a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x061a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 6 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x071a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 7 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x081a3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 26], 8 + QUAD $0x091a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 9 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0a1a1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 26], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 12 + QUAD $0x0d1a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 15 + LONG $0x7cb60f42; WORD $0x1b1a // movzx edi, byte [rdx + r11 + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x011b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 27], 1 + QUAD $0x021b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 2 + QUAD $0x031b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 3 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x041b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 4 + QUAD $0x051b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 5 + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x061b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x071b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 7 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x081b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x091b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 9 + QUAD $0x0a1b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 27], 10 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0b1b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 27], 11 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0c1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 12 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0d1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 13 + QUAD $0x0e1b32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 27], 14 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x0f1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x1b // movzx edi, byte [rdx + rcx + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x011b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 1 + QUAD $0x021b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x031b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 3 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x041b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x051b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x061b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 6 + QUAD $0x071b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 7 + QUAD $0x081b3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 27], 8 + QUAD $0x091b125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 27], 9 + QUAD $0x0a1b1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 27], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1c12 // movzx edi, byte [rdx + r10 + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x021c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 3 + QUAD $0x041c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 4 + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x051c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 28], 5 + QUAD $0x061c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x071c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 7 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x081c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 28], 8 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x091c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 9 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0a1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 10 + QUAD $0x0b1c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 28], 11 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x0c1c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e1c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x1c // movzx edi, byte [rdx + rax + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x011c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x021c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 2 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + QUAD $0x041c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 4 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x051c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 5 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x061c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 6 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x071c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x081c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x091c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 9 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0a1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b1c2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 28], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 12 + QUAD $0x0d1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 15 + LONG $0x7cb60f42; WORD $0x1d12 // movzx edi, byte [rdx + r10 + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x011d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 1 + QUAD $0x021d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x031d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x041d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 4 + QUAD $0x051d22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 29], 5 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x061d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 6 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x071d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 7 + QUAD $0x081d0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 29], 8 + QUAD $0x091d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 9 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0a1d22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 29], 10 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0b1d0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 29], 11 + QUAD $0x0c1d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 12 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0d1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 13 + QUAD $0x0e1d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 14 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0f1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 15 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1d02 // movzx edi, byte [rdx + r8 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x011d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 1 + QUAD $0x021d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 2 + QUAD $0x031d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 3 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x041d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x051d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 5 + QUAD $0x061d325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 29], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x091d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 10 + QUAD $0x0b1d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 11 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0c1d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 13 + QUAD $0x0e1d0a642061e3c4 // vpinsrb xmm4, xmm3, byte [rdx + rcx + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1d02442059e3c4 // vpinsrb xmm0, xmm4, byte [rdx + rax + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x1e // movzx edi, byte [rdx + rcx + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 30], 1 + LONG $0x0a7cb60f; BYTE $0x1f // movzx edi, byte [rdx + rcx + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 31], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x051e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 5 + QUAD $0x051f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 5 + QUAD $0x061e3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 30], 6 + QUAD $0x061f3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 31], 6 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 9 + QUAD $0x091f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 9 + QUAD $0x0a1e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 30], 10 + QUAD $0x0a1f224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 31], 10 + QUAD $0x0b1e0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 30], 11 + QUAD $0x0b1f0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 31], 11 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0c1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 12 + QUAD $0x0c1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 12 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0d1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 13 + QUAD $0x0d1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 14 + QUAD $0x0e1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542071e3c4 // vpinsrb xmm2, xmm1, byte [rdx + rax + 31], 15 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + LONG $0x44b60f42; WORD $0x1e02 // movzx eax, byte [rdx + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 30], 1 + LONG $0x44b60f42; WORD $0x1f02 // movzx eax, byte [rdx + r8 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f1a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 31], 1 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x021e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 2 + QUAD $0x021f127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 31], 2 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 3 + QUAD $0x041e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 30], 4 + QUAD $0x041f327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 31], 4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 5 + QUAD $0x061e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 30], 6 + QUAD $0x061f327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 31], 6 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x071e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 7 + QUAD $0x071f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + QUAD $0x0c1e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 30], 12 + QUAD $0x0c1f2a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 31], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 13 + QUAD $0x0d1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 15 + QUAD $0x0f1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00020024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 512] + LONG $0xc27495c5 // vpcmpeqb ymm0, ymm13, ymm2 + QUAD $0x0004c024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1216] + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI5_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x0001e024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 480] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI5_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001c024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 448] + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI5_2] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xe2740dc5 // vpcmpeqb ymm12, ymm14, ymm2 + LONG $0x456f7dc5; BYTE $0x60 // vmovdqa ymm8, yword 96[rbp] /* [rip + .LCPI5_3] */ + LONG $0xdf1d41c4; BYTE $0xe0 // vpandn ymm12, ymm12, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xfa7485c5 // vpcmpeqb ymm7, ymm15, ymm2 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI5_4] */ + LONG $0xf9dfc5c5 // vpandn ymm7, ymm7, ymm1 + QUAD $0x0001a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 416] + QUAD $0x000000a0ad6f7dc5 // vmovdqa ymm13, yword 160[rbp] /* [rip + .LCPI5_5] */ + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0004a024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1184] + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI5_6] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x00048024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 1152] + QUAD $0x00046024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1120] + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00044024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1088] + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x00042024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 1056] + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 992] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00040024a4746dc5; BYTE $0x00 // vpcmpeqb ymm12, ymm2, yword [rsp + 1024] + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + QUAD $0x0003a024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 928] + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003c024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 960] + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x00038024bc74edc5; BYTE $0x00 // vpcmpeqb ymm7, ymm2, yword [rsp + 896] + QUAD $0x00036024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 864] + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00032024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 800] + LONG $0xfedf05c5 // vpandn ymm15, ymm15, ymm6 + QUAD $0x00034024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 832] + LONG $0xf3df0dc5 // vpandn ymm14, ymm14, ymm3 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x0002e024bc746dc5; BYTE $0x00 // vpcmpeqb ymm15, ymm2, yword [rsp + 736] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00030024b4746dc5; BYTE $0x00 // vpcmpeqb ymm14, ymm2, yword [rsp + 768] + LONG $0xf1df0dc5 // vpandn ymm14, ymm14, ymm1 + LONG $0xd2742dc5 // vpcmpeqb ymm10, ymm10, ymm2 + LONG $0xdf2d41c4; BYTE $0xd5 // vpandn ymm10, ymm10, ymm13 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0xda7425c5 // vpcmpeqb ymm11, ymm11, ymm2 + LONG $0x6f7d41c4; BYTE $0xf1 // vmovdqa ymm14, ymm9 + LONG $0xdf2541c4; BYTE $0xd9 // vpandn ymm11, ymm11, ymm9 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000220248c746dc5; BYTE $0x00 // vpcmpeqb ymm9, ymm2, yword [rsp + 544] + QUAD $0x0002402484746dc5; BYTE $0x00 // vpcmpeqb ymm8, ymm2, yword [rsp + 576] + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x00026024ac74edc5; BYTE $0x00 // vpcmpeqb ymm5, ymm2, yword [rsp + 608] + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x00028024b474edc5; BYTE $0x00 // vpcmpeqb ymm6, ymm2, yword [rsp + 640] + LONG $0xf3dfcdc5 // vpandn ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x0002a0249c74edc5; BYTE $0x00 // vpcmpeqb ymm3, ymm2, yword [rsp + 672] + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI5_3] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xecf8bdc5 // vpsubb ymm5, ymm8, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x0002c024a474edc5; BYTE $0x00 // vpcmpeqb ymm4, ymm2, yword [rsp + 704] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + QUAD $0x000140248c74edc5; BYTE $0x00 // vpcmpeqb ymm1, ymm2, yword [rsp + 320] + LONG $0xdf75c1c4; BYTE $0xcd // vpandn ymm1, ymm1, ymm13 + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x000120249474edc5; BYTE $0x00 // vpcmpeqb ymm2, ymm2, yword [rsp + 288] + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000198248c8b48 // mov rcx, qword [rsp + 408] + LONG $0x7f7ec1c4; WORD $0x8f44; BYTE $0x60 // vmovdqu yword [r15 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8f54; BYTE $0x40 // vmovdqu yword [r15 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8f64; BYTE $0x20 // vmovdqu yword [r15 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8f0c // vmovdqu yword [r15 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x00000178248c3b48 // cmp rcx, qword [rsp + 376] + JNE LBB5_169 + QUAD $0x0000018024b48b4c // mov r14, qword [rsp + 384] + QUAD $0x0000017824b43b4c // cmp r14, qword [rsp + 376] + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + QUAD $0x0000019024ac8b4c // mov r13, qword [rsp + 400] + QUAD $0x0000018824948b48 // mov rdx, qword [rsp + 392] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + JNE LBB5_114 + JMP LBB5_133 + +TEXT ·_comparison_greater_arr_arr_avx2(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB6_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB6_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB6_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB6_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_20: + WORD $0x0a8b // mov ecx, dword [rdx] + LONG $0x04c28348 // add rdx, 4 + WORD $0x0e3b // cmp ecx, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_20 + LONG $0x01c68349 // add r14, 1 + +LBB6_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + LONG $0xd5970f41 // seta r13b + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + LONG $0xd7970f41 // seta r15b + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + LONG $0xd0970f41 // seta r8b + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + LONG $0xd1970f41 // seta r9b + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0xd4970f41 // seta r12b + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + LONG $0x405e8b44 // mov r11d, dword [rsi + 64] + LONG $0xd2970f41 // seta r10b + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x405a3b44 // cmp r11d, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + LONG $0xd6970f41 // seta r14b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x4c // mov eax, dword [rsi + 76] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + WORD $0x423b; BYTE $0x4c // cmp eax, dword [rdx + 76] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd3970f41 // seta r11b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd7970f40 // seta dil + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8a // mov edi, dword [rdx + 4*rcx] + WORD $0x3c3b; BYTE $0x8e // cmp edi, dword [rsi + 4*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_28 + JMP LBB6_123 + +LBB6_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB6_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB6_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB6_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_48: + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0xd2970f41 // seta r10b + LONG $0x08c28348 // add rdx, 8 + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_48 + LONG $0x01c68349 // add r14, 1 + +LBB6_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB6_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x4610fbc5; BYTE $0x08 // vmovsd xmm0, qword [rsi + 8] + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x4610fbc5; BYTE $0x10 // vmovsd xmm0, qword [rsi + 16] + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x4610fbc5; BYTE $0x18 // vmovsd xmm0, qword [rsi + 24] + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x4610fbc5; BYTE $0x20 // vmovsd xmm0, qword [rsi + 32] + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x4610fbc5; BYTE $0x28 // vmovsd xmm0, qword [rsi + 40] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x4610fbc5; BYTE $0x30 // vmovsd xmm0, qword [rsi + 48] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x4610fbc5; BYTE $0x38 // vmovsd xmm0, qword [rsi + 56] + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd7970f41 // seta r15b + LONG $0x4610fbc5; BYTE $0x40 // vmovsd xmm0, qword [rsi + 64] + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x4610fbc5; BYTE $0x48 // vmovsd xmm0, qword [rsi + 72] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + LONG $0xd7970f40 // seta dil + LONG $0x4610fbc5; BYTE $0x50 // vmovsd xmm0, qword [rsi + 80] + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0xd2970f41 // seta r10b + LONG $0x4610fbc5; BYTE $0x58 // vmovsd xmm0, qword [rsi + 88] + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd3970f41 // seta r11b + LONG $0x4610fbc5; BYTE $0x60 // vmovsd xmm0, qword [rsi + 96] + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0xd6970f41 // seta r14b + LONG $0x4610fbc5; BYTE $0x68 // vmovsd xmm0, qword [rsi + 104] + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x4610fbc5; BYTE $0x70 // vmovsd xmm0, qword [rsi + 112] + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x4610fbc5; BYTE $0x78 // vmovsd xmm0, qword [rsi + 120] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x970f; BYTE $0xd3 // seta bl + QUAD $0x000000808610fbc5 // vmovsd xmm0, qword [rsi + 128] + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + QUAD $0x000000888610fbc5 // vmovsd xmm0, qword [rsi + 136] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + LONG $0xd4970f41 // seta r12b + QUAD $0x000000908610fbc5 // vmovsd xmm0, qword [rsi + 144] + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + LONG $0xd5970f41 // seta r13b + QUAD $0x000000988610fbc5 // vmovsd xmm0, qword [rsi + 152] + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + QUAD $0x000000a08610fbc5 // vmovsd xmm0, qword [rsi + 160] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + QUAD $0x000000a88610fbc5 // vmovsd xmm0, qword [rsi + 168] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + QUAD $0x000000b08610fbc5 // vmovsd xmm0, qword [rsi + 176] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + QUAD $0x000000b88610fbc5 // vmovsd xmm0, qword [rsi + 184] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + LONG $0xd1970f41 // seta r9b + QUAD $0x000000c08610fbc5 // vmovsd xmm0, qword [rsi + 192] + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + QUAD $0x000000c88610fbc5 // vmovsd xmm0, qword [rsi + 200] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + QUAD $0x000000d08610fbc5 // vmovsd xmm0, qword [rsi + 208] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + QUAD $0x000000d88610fbc5 // vmovsd xmm0, qword [rsi + 216] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + QUAD $0x000000e08610fbc5 // vmovsd xmm0, qword [rsi + 224] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + QUAD $0x000000e88610fbc5 // vmovsd xmm0, qword [rsi + 232] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + QUAD $0x000000f08610fbc5 // vmovsd xmm0, qword [rsi + 240] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f88610fbc5 // vmovsd xmm0, qword [rsi + 248] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + LONG $0xd0970f41 // seta r8b + WORD $0xc900 // add cl, cl + LONG $0x04244c02 // add cl, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x08 // add dil, byte [rsp + 8] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x07 // movzx edi, byte [rsp + 7] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0e // add r12b, byte [rsp + 14] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB6_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB6_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_56: + LONG $0x0410fbc5; BYTE $0xce // vmovsd xmm0, qword [rsi + 8*rcx] + LONG $0x042ef9c5; BYTE $0xca // vucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_56 + JMP LBB6_123 + +LBB6_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB6_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_6 + LONG $0x01c68349 // add r14, 1 + +LBB6_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd79f0f41 // setg r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd79f0f40 // setg dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd29f0f41 // setg r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd39f0f41 // setg r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd69f0f41 // setg r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd49f0f41 // setg r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd59f0f41 // setg r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd19f0f41 // setg r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd09f0f41 // setg r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_14 + JMP LBB6_123 + +LBB6_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB6_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_34: + WORD $0x8b48; BYTE $0x0a // mov rcx, qword [rdx] + LONG $0x08c28348 // add rdx, 8 + WORD $0x3b48; BYTE $0x0e // cmp rcx, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_34 + LONG $0x01c68349 // add r14, 1 + +LBB6_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0xd5970f41 // seta r13b + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0xd7970f41 // seta r15b + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0xd0970f41 // seta r8b + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0xd1970f41 // seta r9b + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0xd4970f41 // seta r12b + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + LONG $0x809e8b4c; WORD $0x0000; BYTE $0x00 // mov r11, qword [rsi + 128] + LONG $0xd2970f41 // seta r10b + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x809a3b4c; WORD $0x0000; BYTE $0x00 // cmp r11, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0xd6970f41 // seta r14b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0x98868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 152] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x98823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 152] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd3970f41 // seta r11b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd7970f40 // seta dil + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xca3c8b48 // mov rdi, qword [rdx + 8*rcx] + LONG $0xce3c3b48 // cmp rdi, qword [rsi + 8*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_42 + JMP LBB6_123 + +LBB6_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_70: + WORD $0xb70f; BYTE $0x0a // movzx ecx, word [rdx] + LONG $0x02c28348 // add rdx, 2 + WORD $0x3b66; BYTE $0x0e // cmp cx, word [rsi] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_70 + LONG $0x01c68349 // add r14, 1 + +LBB6_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0xd5970f41 // seta r13b + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0xd7970f41 // seta r15b + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0xd0970f41 // seta r8b + LONG $0x14423b66 // cmp ax, word [rdx + 20] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0xd1970f41 // seta r9b + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0xd4970f41 // seta r12b + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + LONG $0x5eb70f44; BYTE $0x20 // movzx r11d, word [rsi + 32] + LONG $0xd2970f41 // seta r10b + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x5a3b4466; BYTE $0x20 // cmp r11w, word [rdx + 32] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0xd6970f41 // seta r14b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2646b70f // movzx eax, word [rsi + 38] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x26423b66 // cmp ax, word [rdx + 38] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd3970f41 // seta r11b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd7970f40 // seta dil + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4a3cb70f // movzx edi, word [rdx + 2*rcx] + LONG $0x4e3c3b66 // cmp di, word [rsi + 2*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_78 + JMP LBB6_123 + +LBB6_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_81 + LONG $0x01c68349 // add r14, 1 + +LBB6_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd59f0f41 // setg r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd09f0f41 // setg r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd39f0f41 // setg r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd79f0f41 // setg r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd29f0f41 // setg r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd69f0f41 // setg r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd49f0f41 // setg r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd19f0f41 // setg r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_89 + JMP LBB6_123 + +LBB6_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_103 + LONG $0x01c68349 // add r14, 1 + +LBB6_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd59f0f41 // setg r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd09f0f41 // setg r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd39f0f41 // setg r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd79f0f41 // setg r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd29f0f41 // setg r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd69f0f41 // setg r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd49f0f41 // setg r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd19f0f41 // setg r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_111 + JMP LBB6_123 + +LBB6_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_114: + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0xd2970f41 // seta r10b + LONG $0x04c28348 // add rdx, 4 + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_114 + LONG $0x01c68349 // add r14, 1 + +LBB6_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB6_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x4610fac5; BYTE $0x04 // vmovss xmm0, dword [rsi + 4] + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x4610fac5; BYTE $0x08 // vmovss xmm0, dword [rsi + 8] + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x4610fac5; BYTE $0x0c // vmovss xmm0, dword [rsi + 12] + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x4610fac5; BYTE $0x10 // vmovss xmm0, dword [rsi + 16] + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x4610fac5; BYTE $0x14 // vmovss xmm0, dword [rsi + 20] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x4610fac5; BYTE $0x18 // vmovss xmm0, dword [rsi + 24] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x4610fac5; BYTE $0x1c // vmovss xmm0, dword [rsi + 28] + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd7970f41 // seta r15b + LONG $0x4610fac5; BYTE $0x20 // vmovss xmm0, dword [rsi + 32] + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x4610fac5; BYTE $0x24 // vmovss xmm0, dword [rsi + 36] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + LONG $0xd7970f40 // seta dil + LONG $0x4610fac5; BYTE $0x28 // vmovss xmm0, dword [rsi + 40] + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0xd2970f41 // seta r10b + LONG $0x4610fac5; BYTE $0x2c // vmovss xmm0, dword [rsi + 44] + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd3970f41 // seta r11b + LONG $0x4610fac5; BYTE $0x30 // vmovss xmm0, dword [rsi + 48] + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0xd6970f41 // seta r14b + LONG $0x4610fac5; BYTE $0x34 // vmovss xmm0, dword [rsi + 52] + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x4610fac5; BYTE $0x38 // vmovss xmm0, dword [rsi + 56] + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x4610fac5; BYTE $0x3c // vmovss xmm0, dword [rsi + 60] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x4610fac5; BYTE $0x40 // vmovss xmm0, dword [rsi + 64] + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x4610fac5; BYTE $0x44 // vmovss xmm0, dword [rsi + 68] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0xd4970f41 // seta r12b + LONG $0x4610fac5; BYTE $0x48 // vmovss xmm0, dword [rsi + 72] + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0xd5970f41 // seta r13b + LONG $0x4610fac5; BYTE $0x4c // vmovss xmm0, dword [rsi + 76] + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x4610fac5; BYTE $0x50 // vmovss xmm0, dword [rsi + 80] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x4610fac5; BYTE $0x54 // vmovss xmm0, dword [rsi + 84] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x4610fac5; BYTE $0x58 // vmovss xmm0, dword [rsi + 88] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0x4610fac5; BYTE $0x5c // vmovss xmm0, dword [rsi + 92] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0xd1970f41 // seta r9b + LONG $0x4610fac5; BYTE $0x60 // vmovss xmm0, dword [rsi + 96] + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x4610fac5; BYTE $0x64 // vmovss xmm0, dword [rsi + 100] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0x4610fac5; BYTE $0x68 // vmovss xmm0, dword [rsi + 104] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0x4610fac5; BYTE $0x6c // vmovss xmm0, dword [rsi + 108] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x4610fac5; BYTE $0x70 // vmovss xmm0, dword [rsi + 112] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0x4610fac5; BYTE $0x74 // vmovss xmm0, dword [rsi + 116] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x4610fac5; BYTE $0x78 // vmovss xmm0, dword [rsi + 120] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x4610fac5; BYTE $0x7c // vmovss xmm0, dword [rsi + 124] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + LONG $0xd0970f41 // seta r8b + WORD $0xc900 // add cl, cl + LONG $0x04244c02 // add cl, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x08 // add dil, byte [rsp + 8] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x07 // movzx edi, byte [rsp + 7] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0e // add r12b, byte [rsp + 14] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB6_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB6_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_122: + LONG $0x0410fac5; BYTE $0x8e // vmovss xmm0, dword [rsi + 4*rcx] + LONG $0x042ef8c5; BYTE $0x8a // vucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_122 + JMP LBB6_123 + +LBB6_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_59: + WORD $0xb60f; BYTE $0x0a // movzx ecx, byte [rdx] + LONG $0x01c28348 // add rdx, 1 + WORD $0x0e3a // cmp cl, byte [rsi] + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_59 + LONG $0x01c68349 // add r14, 1 + +LBB6_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + LONG $0xd5970f41 // seta r13b + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7970f41 // seta r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + LONG $0xd1970f41 // seta r9b + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3970f41 // seta r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + LONG $0xd2970f41 // seta r10b + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4970f41 // seta r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + LONG $0xd6970f41 // seta r14b + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd0970f41 // seta r8b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd7970f40 // seta dil + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x04 // add r13b, byte [rsp + 4] + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + LONG $0x6cb60f44; WORD $0x2824 // movzx r13d, byte [rsp + 40] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x1424 // movzx r13d, byte [rsp + 20] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x07244c02 // add cl, byte [rsp + 7] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0524 // movzx r9d, byte [rsp + 5] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0c // add r12b, byte [rsp + 12] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xe6 // or r14b, r12b + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0a // movzx ecx, byte [rsp + 10] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xc000 // add al, al + LONG $0x12244402 // add al, byte [rsp + 18] + LONG $0x244cb60f; BYTE $0x0d // movzx ecx, byte [rsp + 13] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0a1cb60f // movzx ebx, byte [rdx + rcx] + WORD $0x1c3a; BYTE $0x0e // cmp bl, byte [rsi + rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_67 + JMP LBB6_123 + +LBB6_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_92 + LONG $0x01c68349 // add r14, 1 + +LBB6_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd59f0f41 // setg r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd09f0f41 // setg r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd39f0f41 // setg r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd79f0f41 // setg r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd29f0f41 // setg r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd69f0f41 // setg r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd49f0f41 // setg r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd19f0f41 // setg r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_100 + +LBB6_123: + SUBQ $8, SP + RET + +DATA LCDATA5<>+0x000(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x008(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x010(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x018(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA5<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA5<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA5<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA5<>(SB), 8, $224 + +TEXT ·_comparison_greater_arr_scalar_avx2(SB), $1384-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1344(SP) + LEAQ LCDATA5<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB7_19 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB7_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB7_79 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB7_95 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB7_192 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_15: + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xd219 // sbb edx, edx + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_15 + LONG $0x01c38349 // add r11, 1 + +LBB7_17: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_18 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_113: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7970f40 // seta dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6970f41 // seta r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1970f41 // seta r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2970f41 // seta r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3970f41 // seta r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4970f41 // seta r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7970f41 // seta r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x78 // add dil, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_113 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_116 + JMP LBB7_192 + +LBB7_19: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB7_20 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB7_148 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB7_164 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB7_192 + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_35 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_33: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_33 + LONG $0x01c38349 // add r11, 1 + +LBB7_35: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_36 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_181: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + QUAD $0x000000802494920f // setb byte [rsp + 128] + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0xd1920f41 // setb r9b + LONG $0x462ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rsi + 16] + LONG $0xd6920f41 // setb r14b + LONG $0x462ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rsi + 24] + LONG $0xd5920f41 // setb r13b + LONG $0x462ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rsi + 32] + LONG $0x2454920f; BYTE $0x58 // setb byte [rsp + 88] + LONG $0x462ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rsi + 40] + LONG $0x2454920f; BYTE $0x30 // setb byte [rsp + 48] + LONG $0x462ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rsi + 48] + WORD $0x920f; BYTE $0xd0 // setb al + LONG $0x462ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rsi + 56] + WORD $0x920f; BYTE $0xd3 // setb bl + LONG $0x462ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rsi + 64] + LONG $0x2454920f; BYTE $0x70 // setb byte [rsp + 112] + LONG $0x462ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rsi + 72] + WORD $0x920f; BYTE $0xd2 // setb dl + LONG $0x462ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rsi + 80] + LONG $0xd7920f40 // setb dil + LONG $0x462ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rsi + 88] + LONG $0xd2920f41 // setb r10b + LONG $0x462ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rsi + 96] + LONG $0xd3920f41 // setb r11b + LONG $0x462ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rsi + 104] + LONG $0xd4920f41 // setb r12b + LONG $0x462ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rsi + 112] + LONG $0x2454920f; BYTE $0x48 // setb byte [rsp + 72] + LONG $0x462ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rsi + 120] + WORD $0x920f; BYTE $0xd1 // setb cl + QUAD $0x00000080862ef9c5 // vucomisd xmm0, qword [rsi + 128] + LONG $0x2454920f; BYTE $0x40 // setb byte [rsp + 64] + QUAD $0x00000088862ef9c5 // vucomisd xmm0, qword [rsi + 136] + LONG $0x2454920f; BYTE $0x68 // setb byte [rsp + 104] + QUAD $0x00000090862ef9c5 // vucomisd xmm0, qword [rsi + 144] + LONG $0x2454920f; BYTE $0x50 // setb byte [rsp + 80] + QUAD $0x00000098862ef9c5 // vucomisd xmm0, qword [rsi + 152] + LONG $0x2454920f; BYTE $0x60 // setb byte [rsp + 96] + QUAD $0x000000a0862ef9c5 // vucomisd xmm0, qword [rsi + 160] + LONG $0x2454920f; BYTE $0x28 // setb byte [rsp + 40] + QUAD $0x000000a8862ef9c5 // vucomisd xmm0, qword [rsi + 168] + LONG $0x2454920f; BYTE $0x38 // setb byte [rsp + 56] + QUAD $0x000000b0862ef9c5 // vucomisd xmm0, qword [rsi + 176] + LONG $0x2454920f; BYTE $0x18 // setb byte [rsp + 24] + QUAD $0x000000b8862ef9c5 // vucomisd xmm0, qword [rsi + 184] + LONG $0xd7920f41 // setb r15b + QUAD $0x000000c0862ef9c5 // vucomisd xmm0, qword [rsi + 192] + QUAD $0x000001402494920f // setb byte [rsp + 320] + QUAD $0x000000c8862ef9c5 // vucomisd xmm0, qword [rsi + 200] + LONG $0x2454920f; BYTE $0x20 // setb byte [rsp + 32] + QUAD $0x000000d0862ef9c5 // vucomisd xmm0, qword [rsi + 208] + LONG $0x2454920f; BYTE $0x10 // setb byte [rsp + 16] + QUAD $0x000000d8862ef9c5 // vucomisd xmm0, qword [rsi + 216] + LONG $0x2454920f; BYTE $0x08 // setb byte [rsp + 8] + QUAD $0x000000e0862ef9c5 // vucomisd xmm0, qword [rsi + 224] + QUAD $0x000001202494920f // setb byte [rsp + 288] + QUAD $0x000000e8862ef9c5 // vucomisd xmm0, qword [rsi + 232] + QUAD $0x000001002494920f // setb byte [rsp + 256] + QUAD $0x000000f0862ef9c5 // vucomisd xmm0, qword [rsi + 240] + LONG $0x2454920f; BYTE $0x04 // setb byte [rsp + 4] + QUAD $0x000000f8862ef9c5 // vucomisd xmm0, qword [rsi + 248] + LONG $0xd0920f41 // setb r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000080248c0244 // add r9b, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x48 // movzx edi, byte [rsp + 72] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + LONG $0x24448348; WORD $0xff78 // add qword [rsp + 120], -1 + JNE LBB7_181 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_184 + JMP LBB7_192 + +LBB7_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB7_37 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB7_192 + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f6a8d4d // lea r13, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + WORD $0x894d; BYTE $0xd7 // mov r15, r10 + LONG $0xea490f4d // cmovns r13, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_6: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_6 + LONG $0x01c38349 // add r11, 1 + +LBB7_8: + LONG $0x05fdc149 // sar r13, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB7_9 + LONG $0x20fd8349 // cmp r13, 32 + LONG $0x24748944; BYTE $0x04 // mov dword [rsp + 4], r14d + QUAD $0x000000f824bc894c // mov qword [rsp + 248], r15 + QUAD $0x0000016824ac894c // mov qword [rsp + 360], r13 + JB LBB7_62 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB7_65 + LONG $0xab048d4b // lea rax, [r11 + 4*r13] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB7_65 + +LBB7_62: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + +LBB7_68: + QUAD $0x0000018024ac2b4c // sub r13, qword [rsp + 384] + LONG $0x246c894c; BYTE $0x78 // mov qword [rsp + 120], r13 + +LBB7_69: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd09f0f41 // setg r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd79f0f41 // setg r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd59f0f41 // setg r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd39f0f41 // setg r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd69f0f40 // setg sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd79f0f40 // setg dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd29f0f41 // setg r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd49f0f41 // setg r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd19f0f41 // setg r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd69f0f41 // setg r14b + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000000f024949f0f // setg byte [rsp + 240] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x0000014024840244 // add r8b, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x20249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 288] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xc000 // add al, al + LONG $0x00248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 256] + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000016024b48b48 // mov rsi, qword [rsp + 352] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x18 // movzx edi, byte [rsp + 24] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0xf0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 240] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016024b48948 // mov qword [rsp + 352], rsi + LONG $0x24448348; WORD $0xff78 // add qword [rsp + 120], -1 + JNE LBB7_69 + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x0000016824ac8b4c // mov r13, qword [rsp + 360] + JMP LBB7_71 + +LBB7_20: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB7_122 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB7_192 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_26 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_24: + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xd219 // sbb edx, edx + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_24 + LONG $0x01c38349 // add r11, 1 + +LBB7_26: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_27 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB7_139: + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7970f40 // seta dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6970f41 // seta r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1970f41 // seta r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2970f41 // seta r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3970f41 // seta r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4970f41 // seta r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7970f41 // seta r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x78 // add dil, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x04 // movzx edx, byte [rsp + 4] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_139 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_142 + JMP LBB7_192 + +LBB7_79: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_81: + LONG $0x2e3b4466 // cmp r13w, word [rsi] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0xd219 // sbb edx, edx + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_81 + LONG $0x01c38349 // add r11, 1 + +LBB7_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_84 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_86: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7970f40 // seta dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6970f41 // seta r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1970f41 // seta r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2970f41 // seta r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3970f41 // seta r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4970f41 // seta r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7970f41 // seta r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x48245402 // add dl, byte [rsp + 72] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x68 // movzx edi, byte [rsp + 104] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_86 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_89 + JMP LBB7_192 + +LBB7_95: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_99 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_97: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_97 + LONG $0x01c38349 // add r11, 1 + +LBB7_99: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_100 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_102: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd79f0f40 // setg dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd69f0f41 // setg r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd19f0f41 // setg r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd29f0f41 // setg r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd39f0f41 // setg r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd49f0f41 // setg r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd79f0f41 // setg r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd09f0f41 // setg r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x78 // add dil, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_102 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_105 + JMP LBB7_192 + +LBB7_148: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_152 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_150: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_150 + LONG $0x01c38349 // add r11, 1 + +LBB7_152: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_153 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_155: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd79f0f40 // setg dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd69f0f41 // setg r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd19f0f41 // setg r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd29f0f41 // setg r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd39f0f41 // setg r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd49f0f41 // setg r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd79f0f41 // setg r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd09f0f41 // setg r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x78 // add dil, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_155 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_158 + JMP LBB7_192 + +LBB7_164: + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_168 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_166: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_166 + LONG $0x01c38349 // add r11, 1 + +LBB7_168: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_169 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_171: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + QUAD $0x000000802494920f // setb byte [rsp + 128] + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0xd1920f41 // setb r9b + LONG $0x462ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rsi + 8] + LONG $0xd6920f41 // setb r14b + LONG $0x462ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rsi + 12] + LONG $0xd5920f41 // setb r13b + LONG $0x462ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rsi + 16] + LONG $0x2454920f; BYTE $0x58 // setb byte [rsp + 88] + LONG $0x462ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rsi + 20] + LONG $0x2454920f; BYTE $0x30 // setb byte [rsp + 48] + LONG $0x462ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rsi + 24] + WORD $0x920f; BYTE $0xd0 // setb al + LONG $0x462ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rsi + 28] + WORD $0x920f; BYTE $0xd3 // setb bl + LONG $0x462ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rsi + 32] + LONG $0x2454920f; BYTE $0x70 // setb byte [rsp + 112] + LONG $0x462ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rsi + 36] + WORD $0x920f; BYTE $0xd2 // setb dl + LONG $0x462ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rsi + 40] + LONG $0xd7920f40 // setb dil + LONG $0x462ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rsi + 44] + LONG $0xd2920f41 // setb r10b + LONG $0x462ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rsi + 48] + LONG $0xd3920f41 // setb r11b + LONG $0x462ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rsi + 52] + LONG $0xd4920f41 // setb r12b + LONG $0x462ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rsi + 56] + LONG $0x2454920f; BYTE $0x48 // setb byte [rsp + 72] + LONG $0x462ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rsi + 60] + WORD $0x920f; BYTE $0xd1 // setb cl + LONG $0x462ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rsi + 64] + LONG $0x2454920f; BYTE $0x40 // setb byte [rsp + 64] + LONG $0x462ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rsi + 68] + LONG $0x2454920f; BYTE $0x68 // setb byte [rsp + 104] + LONG $0x462ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rsi + 72] + LONG $0x2454920f; BYTE $0x50 // setb byte [rsp + 80] + LONG $0x462ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rsi + 76] + LONG $0x2454920f; BYTE $0x60 // setb byte [rsp + 96] + LONG $0x462ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rsi + 80] + LONG $0x2454920f; BYTE $0x28 // setb byte [rsp + 40] + LONG $0x462ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rsi + 84] + LONG $0x2454920f; BYTE $0x38 // setb byte [rsp + 56] + LONG $0x462ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rsi + 88] + LONG $0x2454920f; BYTE $0x18 // setb byte [rsp + 24] + LONG $0x462ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rsi + 92] + LONG $0xd7920f41 // setb r15b + LONG $0x462ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rsi + 96] + QUAD $0x000001402494920f // setb byte [rsp + 320] + LONG $0x462ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rsi + 100] + LONG $0x2454920f; BYTE $0x20 // setb byte [rsp + 32] + LONG $0x462ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rsi + 104] + LONG $0x2454920f; BYTE $0x10 // setb byte [rsp + 16] + LONG $0x462ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rsi + 108] + LONG $0x2454920f; BYTE $0x08 // setb byte [rsp + 8] + LONG $0x462ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rsi + 112] + QUAD $0x000001202494920f // setb byte [rsp + 288] + LONG $0x462ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rsi + 116] + QUAD $0x000001002494920f // setb byte [rsp + 256] + LONG $0x462ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rsi + 120] + LONG $0x2454920f; BYTE $0x04 // setb byte [rsp + 4] + LONG $0x462ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rsi + 124] + LONG $0xd0920f41 // setb r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000080248c0244 // add r9b, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x48 // movzx edi, byte [rsp + 72] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x04 // movzx ebx, byte [rsp + 4] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + LONG $0x24448348; WORD $0xff78 // add qword [rsp + 120], -1 + JNE LBB7_171 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_174 + JMP LBB7_192 + +LBB7_37: + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_41 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_39: + WORD $0x3a44; BYTE $0x36 // cmp r14b, byte [rsi] + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_39 + LONG $0x01c38349 // add r11, 1 + +LBB7_41: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_42 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x04 // mov dword [rsp + 4], r14d + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000017824bc894c // mov qword [rsp + 376], r15 + JB LBB7_44 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB7_47 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB7_47 + +LBB7_44: + WORD $0xc031 // xor eax, eax + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + +LBB7_50: + QUAD $0x0000016824bc2b4c // sub r15, qword [rsp + 360] + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + +LBB7_51: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0970f41 // seta r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7970f41 // seta r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5970f41 // seta r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3970f41 // seta r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6970f40 // seta sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7970f40 // seta dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2970f41 // seta r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4970f41 // seta r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1970f41 // seta r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6970f41 // seta r14b + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000000f02494970f // seta byte [rsp + 240] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x04245c8b // mov ebx, dword [rsp + 4] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x0000014024840244 // add r8b, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x20249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 288] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xc000 // add al, al + LONG $0x00248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 256] + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000016024b48b48 // mov rsi, qword [rsp + 352] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x18 // movzx edi, byte [rsp + 24] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0xf0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 240] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x10 // movzx edx, byte [rsp + 16] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016024b48948 // mov qword [rsp + 352], rsi + LONG $0x24448348; WORD $0xff78 // add qword [rsp + 120], -1 + JNE LBB7_51 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000017824bc8b4c // mov r15, qword [rsp + 376] + JMP LBB7_53 + +LBB7_122: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_126 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_124: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_124 + LONG $0x01c38349 // add r11, 1 + +LBB7_126: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB7_127 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB7_129: + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd79f0f40 // setg dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd69f0f41 // setg r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd19f0f41 // setg r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd29f0f41 // setg r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd39f0f41 // setg r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd49f0f41 // setg r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd79f0f41 // setg r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd09f0f41 // setg r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x78 // add dil, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x30 // movzx edx, byte [rsp + 48] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x247cb60f; BYTE $0x70 // movzx edi, byte [rsp + 112] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xd200 // add dl, dl + LONG $0x40245402 // add dl, byte [rsp + 64] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x18 // movzx ebx, byte [rsp + 24] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xc900 // add cl, cl + LONG $0x40248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 320] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x04 // movzx edx, byte [rsp + 4] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB7_129 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB7_132 + JMP LBB7_192 + +LBB7_18: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_116: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_120 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_118 + +LBB7_36: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_184: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_186 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_188 + +LBB7_9: + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB7_71: + LONG $0x05e5c149 // shl r13, 5 + WORD $0x394d; BYTE $0xfd // cmp r13, r15 + JGE LBB7_192 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xe8 // sub r8, r13 + WORD $0xf749; BYTE $0xd5 // not r13 + WORD $0x014d; BYTE $0xfd // add r13, r15 + JNE LBB7_74 + WORD $0xf631 // xor esi, esi + JMP LBB7_77 + +LBB7_27: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_142: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_146 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_144 + +LBB7_84: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_89: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_93 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_91 + +LBB7_100: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_105: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_110 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_107 + +LBB7_153: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_158: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_162 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_160 + +LBB7_169: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_174: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_178 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_176 + +LBB7_42: + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB7_53: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_56 + WORD $0xc031 // xor eax, eax + JMP LBB7_59 + +LBB7_127: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB7_192 + +LBB7_132: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB7_136 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_134 + +LBB7_120: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_121: + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3b44 // cmp r13d, dword [rsi + 4] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_121 + +LBB7_118: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + JMP LBB7_190 + +LBB7_186: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_187: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0xc019 // sbb eax, eax + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_187 + +LBB7_188: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + JMP LBB7_190 + +LBB7_74: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000160249c8b4c // mov r11, qword [rsp + 352] + +LBB7_75: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB7_75 + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB7_77: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000016024848b4c // mov r8, qword [rsp + 352] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB7_192 + +LBB7_146: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_147: + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086e3b4c // cmp r13, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_147 + +LBB7_144: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + JMP LBB7_190 + +LBB7_93: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_94: + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_94 + +LBB7_91: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x2e3b4466 // cmp r13w, word [rsi] + JMP LBB7_190 + +LBB7_110: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_111: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_111 + +LBB7_107: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x2e394466 // cmp word [rsi], r13w + JMP LBB7_109 + +LBB7_162: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_163: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_163 + +LBB7_160: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB7_109 + +LBB7_178: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_179: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xc019 // sbb eax, eax + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_179 + +LBB7_176: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + +LBB7_190: + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB7_191 + +LBB7_56: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000016024948b4c // mov r10, qword [rsp + 352] + +LBB7_57: + LONG $0x04343a45 // cmp r14b, byte [r12 + rax] + WORD $0xf619 // sbb esi, esi + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x1cb60f41; BYTE $0x3a // movzx ebx, byte [r10 + rdi] + WORD $0x3040; BYTE $0xde // xor sil, bl + WORD $0x2040; BYTE $0xf2 // and dl, sil + WORD $0xda30 // xor dl, bl + LONG $0x3a148841 // mov byte [r10 + rdi], dl + LONG $0x04743a45; BYTE $0x01 // cmp r14b, byte [r12 + rax + 1] + LONG $0x02408d48 // lea rax, [rax + 2] + WORD $0xf619 // sbb esi, esi + WORD $0x3040; BYTE $0xd6 // xor sil, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0xd330 // xor bl, dl + LONG $0x3a1c8841 // mov byte [r10 + rdi], bl + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB7_57 + WORD $0x0149; BYTE $0xc4 // add r12, rax + +LBB7_59: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + LONG $0x24343a45 // cmp r14b, byte [r12] + WORD $0xd219 // sbb edx, edx + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x03eec148 // shr rsi, 3 + QUAD $0x0000016024848b4c // mov r8, qword [rsp + 352] + LONG $0x303c8a41 // mov dil, byte [r8 + rsi] + WORD $0x0724 // and al, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xc189 // mov ecx, eax + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xfa // xor dl, dil + WORD $0xd320 // and bl, dl + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x301c8841 // mov byte [r8 + rsi], bl + JMP LBB7_192 + +LBB7_136: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB7_137: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_137 + +LBB7_134: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_192 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + +LBB7_109: + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB7_191: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB7_192: + MOVQ 1344(SP), SP + VZEROUPPER + RET + +LBB7_65: + LONG $0xe0e58349 // and r13, -32 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000024024848948 // mov qword [rsp + 576], rax + QUAD $0x0000018024ac894c // mov qword [rsp + 384], r13 + LONG $0xab048d4b // lea rax, [r11 + 4*r13] + QUAD $0x0000016024848948 // mov qword [rsp + 352], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + +LBB7_66: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc06ef9c5 // vmovd xmm0, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x1644b60f; BYTE $0x01 // movzx eax, byte [rsi + rdx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x1644b60f; BYTE $0x02 // movzx eax, byte [rsi + rdx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000220248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 544], xmm1 + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x000000d024948948 // mov qword [rsp + 208], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + QUAD $0x0000010024848948 // mov qword [rsp + 256], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x80cf8149; WORD $0x0002; BYTE $0x00 // or r15, 640 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0xa0cb8149; WORD $0x0002; BYTE $0x00 // or r11, 672 + QUAD $0x000000b8249c894c // mov qword [rsp + 184], r11 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0xc0c88149; WORD $0x0002; BYTE $0x00 // or r8, 704 + QUAD $0x000000882484894c // mov qword [rsp + 136], r8 + WORD $0x8948; BYTE $0xda // mov rdx, rbx + LONG $0xe0ca8148; WORD $0x0002; BYTE $0x00 // or rdx, 736 + QUAD $0x000000b024948948 // mov qword [rsp + 176], rdx + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x00cc8149; WORD $0x0003; BYTE $0x00 // or r12, 768 + QUAD $0x000000a024a4894c // mov qword [rsp + 160], r12 + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x20ce8149; WORD $0x0003; BYTE $0x00 // or r14, 800 + QUAD $0x000000a824b4894c // mov qword [rsp + 168], r14 + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0x40ca8149; WORD $0x0003; BYTE $0x00 // or r10, 832 + LONG $0x2454894c; BYTE $0x28 // mov qword [rsp + 40], r10 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0x60c98149; WORD $0x0003; BYTE $0x00 // or r9, 864 + LONG $0x244c894c; BYTE $0x40 // mov qword [rsp + 64], r9 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03800d48; WORD $0x0000 // or rax, 896 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + LONG $0xa0cf8148; WORD $0x0003; BYTE $0x00 // or rdi, 928 + LONG $0x247c8948; BYTE $0x70 // mov qword [rsp + 112], rdi + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x000000e0249c8948 // mov qword [rsp + 224], rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x10 // mov qword [rsp + 16], rcx + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + LONG $0x2031e3c4; WORD $0x1e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + rbx], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 3 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r15], 4 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r11], 5 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + r8], 6 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 7 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r12], 8 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r14], 9 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r10], 10 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r9], 11 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + LONG $0x2079a3c4; WORD $0x2e04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r13], 12 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + rdi], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r14], 1 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r12], 2 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r10], 3 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r11], 4 + QUAD $0x0000012024848b4c // mov r8, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r8], 5 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r9], 6 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r15], 7 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rbx], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + rdx], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x040116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 4 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x070116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 7 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x080116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 8 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x090116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0b0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 11 + QUAD $0x0c012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + LONG $0x246c8b4c; BYTE $0x08 // mov r13, qword [rsp + 8] + QUAD $0x0e012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 15 + QUAD $0x0101366c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r14 + 1], 1 + QUAD $0x0201266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 2 + QUAD $0x0301166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 3 + QUAD $0x04011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 4 + QUAD $0x0501066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 5 + QUAD $0x06010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 6 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + QUAD $0x07013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0a011e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x00050024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1280], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x00022024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 544] + QUAD $0x010216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 1 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x02020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x060206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x070206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 7 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x080226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 2], 8 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x09022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 9 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0a020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 10 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0c0236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 12 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + QUAD $0x0602065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 2], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x08021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 9 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x0b02065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 2], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x010316642021e3c4 // vpinsrb xmm4, xmm11, byte [rsi + rdx + 3], 1 + QUAD $0x02030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x04030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 4 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x05030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 5 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x06030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 6 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x070306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 7 + QUAD $0x080326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 8 + QUAD $0x09032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 9 + QUAD $0x0a030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0e0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 14 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0203066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 2 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x0303166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 3], 3 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x04033e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 3], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0603066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x08031e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 3], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0903066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + QUAD $0x0f031e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 1 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x020406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 3 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x05040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x060406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 6 + QUAD $0x070406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 7 + QUAD $0x080426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 4], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x090406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 12 + QUAD $0x0d0436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 4], 13 + QUAD $0x0e0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 14 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0f0426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 4], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0104065c2011e3c4 // vpinsrb xmm3, xmm13, byte [rsi + rax + 4], 1 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0204165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 2 + QUAD $0x0304165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 3 + QUAD $0x04043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 4 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x0504165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x06043e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 4], 6 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0704365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 7 + QUAD $0x08041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09041e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 4], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 10 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0b041e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 4], 11 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0c04065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 4], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 13 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x0e043e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 4], 14 + QUAD $0x0f040e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 4], 15 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x01050e642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r9 + 5], 1 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x02053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 2 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x03050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + QUAD $0x05050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 5 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x06050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 6 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x07050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 7 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x080506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x090506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 14 + QUAD $0x0f0526642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 5], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0105066c2049e3c4 // vpinsrb xmm5, xmm6, byte [rsi + rax + 5], 1 + QUAD $0x0205166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0305066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 3 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0405166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 4 + QUAD $0x0505166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + QUAD $0x0705366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 7 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x0805366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 8 + QUAD $0x09051e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 5], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + QUAD $0x0b051e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 5], 11 + QUAD $0x0c05066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 5], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0506442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 5], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010606442019e3c4 // vpinsrb xmm0, xmm12, byte [rsi + rax + 6], 1 + QUAD $0x02063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 2 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x03060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 3 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x04061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 4 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x050616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 5 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x06061e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 6], 6 + QUAD $0x07062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 7 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x08060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 8 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x09062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 10 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0b060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 11 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0c0626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 6], 12 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0d0606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 6], 13 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0e060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 14 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0f060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 15 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x01060e6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rcx + 6], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x02060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x03060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + QUAD $0x0606166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 6], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x07060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 7 + WORD $0x894d; BYTE $0xf2 // mov r10, r14 + QUAD $0x0806366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 10 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0b06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 12 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0d06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 13 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x0e06166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 14 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0f06366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 15 + QUAD $0x010706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 1 + QUAD $0x02073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 2 + QUAD $0x03070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 3 + QUAD $0x04071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 4 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x050736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 5 + QUAD $0x06071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x070716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 7 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x08071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 8 + QUAD $0x09072e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 7], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 10 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x0b070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 11 + QUAD $0x0c0726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 7], 12 + QUAD $0x0d0706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 13 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0e0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 15 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0107164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 1 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0207164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 2 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0307164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 3 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0407164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0607164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 6 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x07073e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 7], 7 + QUAD $0x0807164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 7], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0907164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 9 + QUAD $0x0a070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 10 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0b072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e070e442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rcx + 7], 14 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f070e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm0 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0e7cb60f; BYTE $0x0b // movzx edi, byte [rsi + rcx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010806442031e3c4 // vpinsrb xmm0, xmm9, byte [rsi + rax + 8], 1 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x020826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 8], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x03080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 3 + QUAD $0x04081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 4 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + QUAD $0x050836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x060806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x070816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 7 + QUAD $0x08081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 8 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x090806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 8], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 10 + QUAD $0x0b080e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 8], 11 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x0c081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 13 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0e0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 15 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0108166c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rdx + 8], 1 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0208366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 8], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x03083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0508166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 5 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0608166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 6 + QUAD $0x07083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 7 + QUAD $0x0808166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 8], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x09080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 10 + QUAD $0x0b082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 12 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0f082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 15 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x01092e742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r13 + 9], 1 + QUAD $0x020926742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r12 + 9], 2 + QUAD $0x03090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 3 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x04090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 4 + QUAD $0x05091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 5 + QUAD $0x060906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x070916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 7 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x080906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 8 + QUAD $0x090906742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r8 + 9], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 10 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0b090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 11 + QUAD $0x0c091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0109067c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rax + 9], 1 + QUAD $0x0209367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0309067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0509067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0609067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0709067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 7 + QUAD $0x0809167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 9], 8 + QUAD $0x09090e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 9], 9 + QUAD $0x0a093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 12 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0d093e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 9], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x0004a024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm5 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x010a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 1 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x020a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 3 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x040a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 4 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x050a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x060a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 6 + QUAD $0x070a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 7 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x080a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 8 + QUAD $0x000000a824a48b4c // mov r12, qword [rsp + 168] + QUAD $0x090a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 10 + QUAD $0x0b0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 11 + QUAD $0x0c0a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 13 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0e0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 15 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x010a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x020a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + QUAD $0x040a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 5 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x060a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 7 + QUAD $0x080a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 9 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0a0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 11 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x0c0a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 12 + QUAD $0x0d0a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 13 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x0e0a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 15 + QUAD $0x010b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 1 + QUAD $0x020b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x030b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 3 + QUAD $0x040b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 4 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x050b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 5 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x060b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 6 + QUAD $0x070b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 7 + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + QUAD $0x080b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 8 + QUAD $0x090b264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 11], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x0d0b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 14 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x0f0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 15 + QUAD $0x010b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 11], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x020b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x040b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x060b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x070b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 7 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x080b26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 11], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x090b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 9 + QUAD $0x0a0b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 11 + QUAD $0x0c0b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 11], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000480249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm3 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 14 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f0b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000460248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x010c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 1 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x020c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x030c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 3 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x040c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 4 + QUAD $0x050c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 5 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x060c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 6 + QUAD $0x070c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 7 + QUAD $0x080c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 8 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x090c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 10 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0b0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 11 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x0c0c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 12], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 12], 13 + LONG $0x24748b4c; BYTE $0x08 // mov r14, qword [rsp + 8] + QUAD $0x0e0c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 12], 14 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + QUAD $0x0f0c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 15 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x010c2e542051a3c4 // vpinsrb xmm2, xmm5, byte [rsi + r13 + 12], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x030c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 3 + QUAD $0x040c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x060c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 6 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x070c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 7 + QUAD $0x080c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0b0c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 13 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x010d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 1 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x020d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x030d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 3 + QUAD $0x040d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 4 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x050d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 5 + QUAD $0x060d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 6 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x070d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 7 + QUAD $0x080d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 8 + QUAD $0x090d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 9 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0a0d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 10 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0b0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 11 + QUAD $0x0c0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 12 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0d0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 13 + QUAD $0x0e0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 14 + QUAD $0x0f0d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 15 + QUAD $0x010d2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x030d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x040d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x060d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 6 + QUAD $0x070d3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 13], 7 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x080d0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 13], 8 + QUAD $0x090d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 10 + QUAD $0x0b0d264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 13], 11 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x0c0d164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 13], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x00044024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm0 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0d06442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 13], 15 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x0e2e // movzx edi, byte [rsi + r13 + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x0e36 // movzx edi, byte [rsi + r14 + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 1 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x020e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x030e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 3 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x040e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 14], 4 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x060e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x090e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 9 + QUAD $0x0a0e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 10 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x0b0e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 12 + QUAD $0x0d0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 15 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x010e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 14], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x020e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x030e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 3 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x040e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 14], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 5 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x060e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 14], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x070e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x080e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x090e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0c0e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 13 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + LONG $0x7cb60f42; WORD $0x0f2e // movzx edi, byte [rsi + r13 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x010f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 1 + QUAD $0x020f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 2 + QUAD $0x030f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 3 + QUAD $0x040f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 4 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x050f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 5 + QUAD $0x060f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x070f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 7 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x080f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x090f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 9 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 10 + QUAD $0x0b0f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 11 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x0c0f2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 15], 12 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0d0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 13 + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x0e0f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 14 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0f0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 15 + LONG $0x7cb60f42; WORD $0x0f36 // movzx edi, byte [rsi + r14 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x010f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x030f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 3 + QUAD $0x040f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 5 + QUAD $0x060f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 6 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x070f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 7 + QUAD $0x080f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0b0f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 14 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0f0f3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x10 // movzx edi, byte [rsi + rax + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x011036442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 16], 1 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x021006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 2 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x03101e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 16], 3 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x041006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 4 + QUAD $0x05101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 5 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x06100e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 16], 6 + QUAD $0x071016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 7 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x081016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 9 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0a101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 11 + QUAD $0x0c102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 13 + QUAD $0x0e1006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdi + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x03103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 4 + QUAD $0x05100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x06100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 6 + QUAD $0x0710164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 16], 7 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x08100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 10 + QUAD $0x0b10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 12 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0d10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 13 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + QUAD $0x0e102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 14 + QUAD $0x0f103e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 16], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rdi + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011136542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 17], 1 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x021106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 2 + QUAD $0x03111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 3 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x041116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 4 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x05113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 5 + QUAD $0x06110e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 17], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x07113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 7 + QUAD $0x081116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 8 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x091116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 9 + QUAD $0x0a111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 10 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0b111e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 17], 11 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x0c1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 13 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0e1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 14 + QUAD $0x0f1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x067cb60f; BYTE $0x11 // movzx edi, byte [rsi + rax + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x0111365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 1 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x02113e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 17], 2 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x03110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 3 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0411165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0511065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0611065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 6 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x07111e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 17], 7 + QUAD $0x08110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 12 + QUAD $0x0d11265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 17], 13 + QUAD $0x0e112e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1106442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x067cb60f; BYTE $0x12 // movzx edi, byte [rsi + rax + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x011206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 1 + QUAD $0x021206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x031206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 3 + QUAD $0x041216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 4 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x051206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 5 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x061206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 7 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x081206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 9 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x0a1216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 10 + QUAD $0x0b121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 11 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0c1226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 12 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0d121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 13 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0e123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f123e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 18], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rdi + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0112364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 1 + QUAD $0x02123e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 18], 2 + QUAD $0x03120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 3 + QUAD $0x0412164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0512164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 5 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0612364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 6 + QUAD $0x07121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 7 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0812164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 8 + QUAD $0x09120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0b123e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 18], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 13 + QUAD $0x0e122e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 18], 14 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0f121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x02133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x04133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 4 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x05132e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 19], 5 + QUAD $0x061306542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 19], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + QUAD $0x091306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 9 + QUAD $0x0a1316542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 19], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 11 + QUAD $0x0c1326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 12 + QUAD $0x0d131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 13 + LONG $0x244c8b4c; BYTE $0x08 // mov r9, qword [rsp + 8] + QUAD $0x0e130e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 19], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 15 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x1316 // movzx edi, byte [rsi + r10 + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0113065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 1 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0213065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0313065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0413065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0513065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 5 + QUAD $0x0613365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0713065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0813065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0913065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 9 + QUAD $0x0a130e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 19], 10 + QUAD $0x0b133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 11 + QUAD $0x0c13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 14 + QUAD $0x0f131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x141e // movzx edi, byte [rsi + r11 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x011406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 1 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x04143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 4 + QUAD $0x05142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 5 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x06143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 6 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x07142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 7 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x08143e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 20], 8 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x09143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 9 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0a1426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 10 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0b140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 11 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x0c143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 13 + QUAD $0x0e140e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 20], 14 + LONG $0x24748b4c; BYTE $0x10 // mov r14, qword [rsp + 16] + QUAD $0x0f1436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 20], 15 + LONG $0x7cb60f42; WORD $0x1416 // movzx edi, byte [rsi + r10 + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x01141e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 20], 1 + QUAD $0x0214064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 2 + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x0314064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x06143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 6 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0714164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 7 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x08143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0c140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 13 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0e143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 15 + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 1 + QUAD $0x021516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 2 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x041506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 4 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x051506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x061506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 6 + QUAD $0x07152e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 21], 7 + QUAD $0x08153e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 21], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 9 + QUAD $0x0a1526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 10 + QUAD $0x0b150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 11 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0c1526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 14 + QUAD $0x0f1536542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 21], 15 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0215065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 2 + QUAD $0x0315065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0515065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0615065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 6 + QUAD $0x0715165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 7 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x08152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 10 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0b151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 11 + QUAD $0x0c150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 12 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + QUAD $0x0d15065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 21], 13 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0e153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0f1516442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r10 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdi + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x02163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 2 + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x041616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 4 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x061616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 6 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x071616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 7 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x081616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 8 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x091616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 9 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0a1636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 22], 10 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0b163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 11 + QUAD $0x0c1626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 22], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 13 + LONG $0x244c8b4c; BYTE $0x08 // mov r9, qword [rsp + 8] + QUAD $0x0e160e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 22], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 15 + LONG $0x7cb60f42; WORD $0x161e // movzx edi, byte [rsi + r11 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 2 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x0316264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 3 + QUAD $0x04160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 5 + QUAD $0x0616064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 6 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x07161e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 22], 7 + QUAD $0x08162e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 22], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0916064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 9 + QUAD $0x0a163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 10 + QUAD $0x0b161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 12 + QUAD $0x0d16064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 22], 13 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e160e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 22], 14 + QUAD $0x0f16164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rdi + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x011716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 23], 1 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x021706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x03173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x04173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 4 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x05173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 5 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x06172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x07173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 7 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x08173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 8 + QUAD $0x091716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 9 + QUAD $0x0a1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 10 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0b1716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 11 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0c1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 12 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0d171e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 23], 13 + QUAD $0x0e170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f1716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rdi + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x01170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 2 + QUAD $0x0317265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x06173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 6 + QUAD $0x07171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 7 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x0817265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 8 + QUAD $0x0917065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 9 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0a171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 11 + QUAD $0x0c173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 13 + QUAD $0x0e170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 24], 1 + QUAD $0x021806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 2 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x031816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 24], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x04183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 4 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x05183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 5 + QUAD $0x06182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 6 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x071806442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 24], 7 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x08183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 8 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x09182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 9 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0a183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 10 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0b183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 11 + QUAD $0x0c1836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 12 + QUAD $0x0d181e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 24], 13 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0e183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 14 + QUAD $0x0f1816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 24], 15 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + LONG $0x167cb60f; BYTE $0x18 // movzx edi, byte [rsi + rdx + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x01180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 1 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x02180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x03183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x06183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x07183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 7 + QUAD $0x0818264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 9 + QUAD $0x0a181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 11 + QUAD $0x0c183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 12 + QUAD $0x0d18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 14 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x0f181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 15 + LONG $0x0e7cb60f; BYTE $0x19 // movzx edi, byte [rsi + rcx + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x011906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 1 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x02191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 2 + QUAD $0x031916542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 25], 3 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x041906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 4 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x051936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x061906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 6 + QUAD $0x071906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 7 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x08190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 8 + QUAD $0x09192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 9 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0a193e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 25], 10 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0b1906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 15 + LONG $0x167cb60f; BYTE $0x19 // movzx edi, byte [rsi + rdx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x0119265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 1 + QUAD $0x02190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0319065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0419065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0519065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 5 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x06192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 6 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0719065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0819065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 8 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0919165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b19065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 12 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0d19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 13 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x0e19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + QUAD $0x0f191e442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r11 + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x1a1e // movzx edi, byte [rsi + r11 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x011a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 1 + QUAD $0x021a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x031a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 3 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x041a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 4 + QUAD $0x051a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 5 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x061a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x071a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 7 + QUAD $0x081a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x091a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 9 + QUAD $0x0a1a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 10 + QUAD $0x0b1a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 11 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0c1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 12 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x0d1a3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 26], 13 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0e1a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 14 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0f1a0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 26], 15 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0e7cb60f; BYTE $0x1a // movzx edi, byte [rsi + rcx + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 1 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x021a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x031a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x041a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 4 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x051a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 5 + QUAD $0x061a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 6 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x071a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 7 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x081a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 8 + QUAD $0x091a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a1a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 10 + QUAD $0x0b1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 12 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0d1a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 15 + LONG $0x7cb60f42; WORD $0x1b1e // movzx edi, byte [rsi + r11 + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x011b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 1 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x021b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 2 + QUAD $0x031b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 3 + QUAD $0x041b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 4 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x051b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 5 + QUAD $0x061b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 7 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x081b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 8 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x091b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0a1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 10 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0b1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 11 + QUAD $0x0c1b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 12 + QUAD $0x0d1b3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 27], 13 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0e1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 15 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + LONG $0x167cb60f; BYTE $0x1b // movzx edi, byte [rsi + rdx + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x011b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 1 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x021b0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 27], 2 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x031b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x041b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 4 + QUAD $0x051b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 5 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x061b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 6 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x071b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 7 + QUAD $0x081b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x091b3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 27], 9 + QUAD $0x0a1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 12 + QUAD $0x0d1b165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 27], 13 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + QUAD $0x0e1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e7cb60f; BYTE $0x1c // movzx edi, byte [rsi + rcx + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 1 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x021c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x031c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 3 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x041c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 4 + QUAD $0x051c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 5 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x061c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 6 + QUAD $0x071c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 7 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x081c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 8 + QUAD $0x091c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 11 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0c1c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 13 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0e1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 15 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x1c26 // movzx edi, byte [rsi + r12 + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 1 + QUAD $0x021c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 2 + QUAD $0x031c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 3 + QUAD $0x041c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 4 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x051c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 5 + QUAD $0x061c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 6 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x071c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 7 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + QUAD $0x081c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 9 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0a1c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 10 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0b1c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 28], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c1c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 13 + QUAD $0x0e1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 15 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + LONG $0x3e7cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdi + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x011d2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 29], 1 + QUAD $0x021d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 2 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x031d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 3 + QUAD $0x041d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 4 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x051d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 5 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x061d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x071d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 7 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x081d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 8 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x091d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 9 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0a1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 10 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0b1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 11 + QUAD $0x0c1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 12 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0d1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 13 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0e1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 15 + LONG $0x7cb60f42; WORD $0x1d26 // movzx edi, byte [rsi + r12 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x011d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 29], 1 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x021d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 2 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x031d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 3 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x041d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 4 + QUAD $0x051d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x061d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 6 + QUAD $0x071d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 29], 7 + QUAD $0x081d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 29], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x091d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 9 + QUAD $0x0a1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 10 + QUAD $0x0b1d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 11 + QUAD $0x0c1d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 12 + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + QUAD $0x0d1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 13 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x0e1d16642061a3c4 // vpinsrb xmm4, xmm3, byte [rsi + r10 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f1d16442059e3c4 // vpinsrb xmm0, xmm4, byte [rsi + rdx + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + LONG $0x7cb60f42; WORD $0x1e06 // movzx edi, byte [rsi + r8 + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 30], 1 + LONG $0x7cb60f42; WORD $0x1f06 // movzx edi, byte [rsi + r8 + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 31], 1 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + QUAD $0x031e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 3 + QUAD $0x031f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 3 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x051e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 30], 5 + QUAD $0x051f1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 31], 5 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x061e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 6 + QUAD $0x061f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 6 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 10 + QUAD $0x0a1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 14 + QUAD $0x0e1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0e44b60f; BYTE $0x1e // movzx eax, byte [rsi + rcx + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 30], 1 + LONG $0x0e44b60f; BYTE $0x1f // movzx eax, byte [rsi + rcx + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f1e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 31], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 30], 4 + QUAD $0x041f267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 31], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 7 + QUAD $0x071f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 7 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x081e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 8 + QUAD $0x081f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 8 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x091e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 30], 9 + QUAD $0x091f0e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 31], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + QUAD $0x0c1e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 12 + QUAD $0x0c1f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + QUAD $0x0e1e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 30], 14 + QUAD $0x0e1f167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 31], 14 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x0f1e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 30], 15 + QUAD $0x0f1f167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00010024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 256], ymm0 + QUAD $0x00026024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 608] + QUAD $0x000500248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 1280] + LONG $0xd064f5c5 // vpcmpgtb ymm2, ymm1, ymm0 + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI7_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0xf86485c5 // vpcmpgtb ymm7, ymm15, ymm0 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x00022024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 544] + LONG $0xe0646dc5 // vpcmpgtb ymm12, ymm2, ymm0 + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI7_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 448] + LONG $0xf864edc5 // vpcmpgtb ymm7, ymm2, ymm0 + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI7_2] */ + LONG $0xfbdbc5c5 // vpand ymm7, ymm7, ymm3 + LONG $0xe0640dc5 // vpcmpgtb ymm12, ymm14, ymm0 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI7_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 416] + LONG $0xe0641dc5 // vpcmpgtb ymm12, ymm12, ymm0 + QUAD $0x00000080956ffdc5 // vmovdqa ymm2, yword 128[rbp] /* [rip + .LCPI7_4] */ + LONG $0xe2db1dc5 // vpand ymm12, ymm12, ymm2 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x00020024bc6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword [rsp + 512] + LONG $0xf864c5c5 // vpcmpgtb ymm7, ymm7, ymm0 + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI7_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x0004e024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1248] + LONG $0xe0641dc5 // vpcmpgtb ymm12, ymm12, ymm0 + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x0004a024bc6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword [rsp + 1184] + LONG $0xf864c5c5 // vpcmpgtb ymm7, ymm7, ymm0 + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x0004c0249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 1216] + LONG $0xe06425c5 // vpcmpgtb ymm12, ymm11, ymm0 + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000480249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 1152] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000460249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 1120] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0xdbdb25c5 // vpand ymm11, ymm11, ymm3 + QUAD $0x00044024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1088] + LONG $0xe0641dc5 // vpcmpgtb ymm12, ymm12, ymm0 + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x00042024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1056] + LONG $0xe0641dc5 // vpcmpgtb ymm12, ymm12, ymm0 + LONG $0xe2db1dc5 // vpand ymm12, ymm12, ymm2 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x0003e0249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 992] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x00040024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1024] + LONG $0xe0641dc5 // vpcmpgtb ymm12, ymm12, ymm0 + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x0003a024bc6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword [rsp + 928] + LONG $0xf864c5c5 // vpcmpgtb ymm7, ymm7, ymm0 + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x0003c0249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 960] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00036024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 864] + LONG $0xf0640dc5 // vpcmpgtb ymm14, ymm14, ymm0 + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000380249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 896] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0xdbdb25c5 // vpand ymm11, ymm11, ymm3 + QUAD $0x00032024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 800] + LONG $0xf0640dc5 // vpcmpgtb ymm14, ymm14, ymm0 + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x00034024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 832] + LONG $0xf0640dc5 // vpcmpgtb ymm14, ymm14, ymm0 + LONG $0xf2db0dc5 // vpand ymm14, ymm14, ymm2 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0xd0642dc5 // vpcmpgtb ymm10, ymm10, ymm0 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x000300249c6f7dc5; BYTE $0x00 // vmovdqa ymm11, yword [rsp + 768] + LONG $0xd86425c5 // vpcmpgtb ymm11, ymm11, ymm0 + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0xc0643dc5 // vpcmpgtb ymm8, ymm8, ymm0 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0xc86435c5 // vpcmpgtb ymm9, ymm9, ymm0 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x000280248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 640] + LONG $0xe864f5c5 // vpcmpgtb ymm5, ymm1, ymm0 + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x0002a0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 672] + LONG $0xf064f5c5 // vpcmpgtb ymm6, ymm1, ymm0 + LONG $0xf3dbcdc5 // vpand ymm6, ymm6, ymm3 + QUAD $0x0002e0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 736] + LONG $0xd864f5c5 // vpcmpgtb ymm3, ymm1, ymm0 + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x0002c0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 704] + LONG $0xe064f5c5 // vpcmpgtb ymm4, ymm1, ymm0 + LONG $0xe2dbddc5 // vpand ymm4, ymm4, ymm2 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000120248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 288] + LONG $0xc864f5c5 // vpcmpgtb ymm1, ymm1, ymm0 + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x00010024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 256] + LONG $0xd064edc5 // vpcmpgtb ymm2, ymm2, ymm0 + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000170248c8b48 // mov rcx, qword [rsp + 368] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB7_66 + QUAD $0x0000016824ac8b4c // mov r13, qword [rsp + 360] + QUAD $0x0000018024ac3b4c // cmp r13, qword [rsp + 384] + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + QUAD $0x0000024024a48b4c // mov r12, qword [rsp + 576] + JNE LBB7_68 + JMP LBB7_71 + +LBB7_47: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x000001f824848948 // mov qword [rsp + 504], rax + QUAD $0x0000016824bc894c // mov qword [rsp + 360], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000016024848948 // mov qword [rsp + 352], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x00024024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 576] + +LBB7_48: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000010024848948 // mov qword [rsp + 256], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rcx + 2] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000200248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 512], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x000000b824948948 // mov qword [rsp + 184], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8949; BYTE $0xdd // mov r13, rbx + LONG $0x20cd8149; WORD $0x0002; BYTE $0x00 // or r13, 544 + LONG $0x246c894c; BYTE $0x38 // mov qword [rsp + 56], r13 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0x40cb8149; WORD $0x0002; BYTE $0x00 // or r11, 576 + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x60ce8149; WORD $0x0002; BYTE $0x00 // or r14, 608 + LONG $0x2474894c; BYTE $0x48 // mov qword [rsp + 72], r14 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x80cf8149; WORD $0x0002; BYTE $0x00 // or r15, 640 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + LONG $0xa0cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 672 + QUAD $0x00000090249c8948 // mov qword [rsp + 144], rbx + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0xc0cc8149; WORD $0x0002; BYTE $0x00 // or r12, 704 + QUAD $0x000000c824a4894c // mov qword [rsp + 200], r12 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02e00d48; WORD $0x0000 // or rax, 736 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x00c88149; WORD $0x0003; BYTE $0x00 // or r8, 768 + LONG $0x2444894c; BYTE $0x78 // mov qword [rsp + 120], r8 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03200d48; WORD $0x0000 // or rax, 800 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x40c98149; WORD $0x0003; BYTE $0x00 // or r9, 832 + LONG $0x244c894c; BYTE $0x58 // mov qword [rsp + 88], r9 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x60cf8148; WORD $0x0003; BYTE $0x00 // or rdi, 864 + QUAD $0x000000b024bc8948 // mov qword [rsp + 176], rdi + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0x80ca8148; WORD $0x0003; BYTE $0x00 // or rdx, 896 + QUAD $0x000000a024948948 // mov qword [rsp + 160], rdx + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0xa0ca8149; WORD $0x0003; BYTE $0x00 // or r10, 928 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c8948 // mov qword [rsp + 232], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + QUAD $0x000000d0248c8948 // mov qword [rsp + 208], rcx + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + LONG $0x245c894c; BYTE $0x50 // mov qword [rsp + 80], r11 + LONG $0x2031a3c4; WORD $0x1e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + r11], 2 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + r14], 3 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r15], 4 + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 5 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + r12], 6 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + r12], 7 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r8], 8 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + LONG $0x2079a3c4; WORD $0x2e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r13], 9 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r9], 10 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + rdi], 11 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + rdx], 12 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + r10], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r10], 1 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r9], 2 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r15], 3 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r8], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + rax], 5 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r14], 6 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + rdx], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rcx], 10 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rcx], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rbx], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + rbx], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rbx], 15 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + LONG $0xd8da8dc5 // vpminub ymm3, ymm14, ymm0 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x01011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 1 + QUAD $0x02011e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 1], 2 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x03011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 3 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x04011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 4 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x05011e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 1], 5 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x06011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 6 + QUAD $0x070126642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 1], 7 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x08011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 8 + QUAD $0x09012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 9 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0a011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 10 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x0b011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 11 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x0c011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 12 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0d011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 13 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0e012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 14 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x0f011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 15 + QUAD $0x0101166c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r10 + 1], 1 + QUAD $0x02010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 2 + QUAD $0x03013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 3 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + QUAD $0x0401066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 4 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x05011e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 1], 5 + QUAD $0x0601366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 1], 6 + QUAD $0x0701166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 11 + QUAD $0x0c010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00050024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1280], ymm0 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 14 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0106442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 1], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x0001c024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 448] + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x010206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x030206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 3 + QUAD $0x000000a824a48b4c // mov r12, qword [rsp + 168] + QUAD $0x040226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 2], 4 + QUAD $0x05021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 5 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x060216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 6 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x07020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 7 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x080206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 8 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x09023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 11 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x0c021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0001a0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 416] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0202365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 2], 2 + QUAD $0x0302165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 2], 3 + QUAD $0x04022e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 2], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05020e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 2], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x06023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 6 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0702165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 2], 7 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x08020e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 2], 8 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x09020e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 2], 9 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0b021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 11 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0c022e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 2], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x010306642021a3c4 // vpinsrb xmm4, xmm11, byte [rsi + r8 + 3], 1 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x02031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 2 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x03031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 3 + QUAD $0x040326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 4 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x05032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 5 + QUAD $0x060316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 6 + QUAD $0x07030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 7 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x080316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 8 + QUAD $0x09033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 9 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0a0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 10 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0b0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 11 + QUAD $0x0c031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 12 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x0d0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 14 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0f0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + QUAD $0x0203366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 3], 2 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0303166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 3], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + QUAD $0x06033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 6 + QUAD $0x0703166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 3], 7 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0803166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 3], 8 + QUAD $0x09030e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 3], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 14 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 15 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x00020024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 512] + QUAD $0x010406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 1 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x020426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 4], 2 + QUAD $0x03041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 3 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x04041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 4 + QUAD $0x05042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 5 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x060406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 6 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x07040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 7 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x08042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 8 + QUAD $0x09043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 9 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0a040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 10 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0b043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 11 + QUAD $0x0c041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 12 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0d041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0104065c2011e3c4 // vpinsrb xmm3, xmm13, byte [rsi + rax + 4], 1 + QUAD $0x0204365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 2 + QUAD $0x0304165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0404065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05043e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 4], 5 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0604165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x07040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 7 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + QUAD $0x0804165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0904065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 11 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0c04165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 13 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0e04165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 4], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 15 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x010506642001e3c4 // vpinsrb xmm4, xmm15, byte [rsi + rax + 5], 1 + QUAD $0x020526642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 5], 2 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x030526642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 5], 3 + QUAD $0x04051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 4 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x05051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 5 + QUAD $0x060506642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 5], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x070506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 7 + QUAD $0x08052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x090506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 9 + QUAD $0x0a050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 10 + QUAD $0x0b053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 11 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x0c053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 12 + QUAD $0x0d051e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 5], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 15 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x01051e6c2049a3c4 // vpinsrb xmm5, xmm6, byte [rsi + r11 + 5], 1 + QUAD $0x0205366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 2 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0305366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0405066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 4 + QUAD $0x05053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 5 + QUAD $0x0605166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 6 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0705166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 7 + QUAD $0x08050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 8 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x09050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 9 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0a050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 10 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0b050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 11 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0c050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0e0516442051a3c4 // vpinsrb xmm0, xmm5, byte [rsi + r10 + 5], 14 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + LONG $0x0e7cb60f; BYTE $0x0a // movzx edi, byte [rsi + rcx + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0f052e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 5], 15 + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + LONG $0x0e7cb60f; BYTE $0x0a // movzx edi, byte [rsi + rcx + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x010606442019e3c4 // vpinsrb xmm0, xmm12, byte [rsi + rax + 6], 1 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x020616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 2 + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x030626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 6], 3 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x04060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 4 + QUAD $0x05061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 5 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x06060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 6 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x070626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 6], 7 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x08060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 8 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x09061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 11 + QUAD $0x0c063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 12 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x0d063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 14 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0f060e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 6], 15 + QUAD $0x01061e6c2041a3c4 // vpinsrb xmm5, xmm7, byte [rsi + r11 + 6], 1 + QUAD $0x02060e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 6], 2 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x0306366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0506066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 5 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x06060e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 6], 6 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0706366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 7 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0806166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 6], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0906066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 14 + QUAD $0x0f062e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 6], 15 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x010706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 1 + QUAD $0x020716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 2 + QUAD $0x030706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x040706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 5 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x060716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 6 + QUAD $0x070726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 7], 7 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x080716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 8 + QUAD $0x09071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 9 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0a0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 10 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0b0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 11 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0c0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 12 + QUAD $0x0d073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 14 + QUAD $0x0f070e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 7], 15 + LONG $0x247c8b4c; BYTE $0x18 // mov r15, qword [rsp + 24] + QUAD $0x01073e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 7], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 2 + QUAD $0x03071e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 7], 3 + QUAD $0x04073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0507164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 5 + QUAD $0x06070e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 7], 6 + QUAD $0x0707364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 7], 7 + QUAD $0x0807164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 7], 8 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0907064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + QUAD $0x0f072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 15 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + QUAD $0x0004e0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x010806542031a3c4 // vpinsrb xmm2, xmm9, byte [rsi + r8 + 8], 1 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x02080e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 8], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x030806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x040806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 5 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x060816542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 8], 6 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + QUAD $0x070826542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 8], 7 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x080826542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 8], 8 + QUAD $0x09081e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 8], 9 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0a082e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 8], 10 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x0b081e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 8], 11 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0c0806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 14 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0f080e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 8], 15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + QUAD $0x01083e6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rsi + r15 + 8], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x02083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x03083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + QUAD $0x0508166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x06083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x07083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 7 + QUAD $0x0808366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 8], 8 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0908366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 8], 9 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + QUAD $0x0a08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 10 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0b08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 11 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0c083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0f083e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 8], 15 + LONG $0x3855e3c4; WORD $0x01d2 // vinserti128 ymm2, ymm5, xmm2, 1 + LONG $0xeada8dc5 // vpminub ymm5, ymm14, ymm2 + QUAD $0x010906742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r8 + 9], 1 + QUAD $0x02090e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r9 + 9], 2 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x030916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 3 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x04093e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r15 + 9], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x050916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 5 + QUAD $0x060916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 6 + QUAD $0x07091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 7 + QUAD $0x080926742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r12 + 9], 8 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x090916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 9 + QUAD $0x0a092e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r13 + 9], 10 + QUAD $0x0b091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 11 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0c0916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 12 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0d090e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r9 + 9], 13 + QUAD $0x0e0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 14 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0f0916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 15 + QUAD $0x01090e7c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rcx + 9], 1 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + QUAD $0x0209067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 9], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0309067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0409067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0509067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 5 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x06091e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 9], 6 + QUAD $0x07093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0809067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 8 + QUAD $0x0909367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0xd574edc5 // vpcmpeqb ymm2, ymm2, ymm5 + QUAD $0x0004c024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x0004a024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x010a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x030a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 3 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + QUAD $0x040a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 5 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + QUAD $0x060a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 6 + QUAD $0x070a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 7 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x080a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 8 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x090a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 11 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0c0a3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 10], 12 + QUAD $0x0d0a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 13 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x0e0a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 14 + QUAD $0x0f0a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 15 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x010a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 1 + QUAD $0x020a06642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 10], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x040a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x050a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 5 + QUAD $0x060a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 6 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x070a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 7 + QUAD $0x000000d824848b4c // mov r8, qword [rsp + 216] + QUAD $0x080a06642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 10], 8 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x090a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 9 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x0a0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 10 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0b0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 11 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0c0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 12 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0d0a3e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 10], 13 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0e0a26642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 10], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f0a1e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 10], 15 + QUAD $0x010b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 1 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x020b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 2 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x030b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 3 + QUAD $0x040b2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 11], 4 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x050b06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 11], 5 + QUAD $0x060b36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 11], 6 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x070b36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 11], 7 + QUAD $0x080b1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 11], 8 + QUAD $0x090b16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 11], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a0b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 10 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0b0b2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 11], 11 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0c0b06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 11], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0b06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 11], 13 + QUAD $0x0e0b0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 11], 14 + WORD $0x894d; BYTE $0xca // mov r10, r9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f0b06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 11], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x010b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x020b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 2 + QUAD $0x030b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 4 + QUAD $0x050b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 5 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x060b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x070b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 7 + QUAD $0x080b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 8 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x090b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 9 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x0a0b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 10 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0b0b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 11 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0c0b264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 11], 12 + QUAD $0x0d0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000480249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm3 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 14 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x3e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rdi + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f0b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rdi + 13] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x010c3e4c2069e3c4 // vpinsrb xmm1, xmm2, byte [rsi + rdi + 12], 1 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x020c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 12], 2 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x030c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 12], 3 + QUAD $0x040c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 12], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x050c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 12], 5 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x060c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 12], 6 + QUAD $0x070c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 12], 7 + QUAD $0x080c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 12], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x090c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 12], 9 + QUAD $0x0a0c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 12], 10 + WORD $0x894d; BYTE $0xe9 // mov r9, r13 + QUAD $0x0b0c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 12], 11 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x0c0c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 12], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d0c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 12], 13 + QUAD $0x0e0c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 12], 14 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0f0c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 12], 15 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x010c0e542051e3c4 // vpinsrb xmm2, xmm5, byte [rsi + rcx + 12], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x030c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 3 + QUAD $0x040c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 5 + QUAD $0x060c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 6 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x070c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x080c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x090c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 9 + QUAD $0x0a0c06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 12], 10 + LONG $0x24548b4c; BYTE $0x08 // mov r10, qword [rsp + 8] + QUAD $0x0b0c16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 12], 11 + QUAD $0x0c0c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 12 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0d0c06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 12], 13 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0e0c26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 12], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 15 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x010d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 2 + QUAD $0x030d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 13], 3 + QUAD $0x040d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x050d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 5 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x060d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 13], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x070d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 7 + QUAD $0x080d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 8 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x090d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 10 + QUAD $0x0b0d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 11 + QUAD $0x0c0d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 13], 12 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 14 + QUAD $0x0f0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x010d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 1 + QUAD $0x020d3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 13], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x030d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 4 + QUAD $0x050d0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 13], 5 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x060d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 6 + QUAD $0x070d16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 13], 7 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x080d2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 13], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x090d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 10 + QUAD $0x0b0d16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 13], 11 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 12 + QUAD $0x0d0d06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 13], 13 + QUAD $0x0e0d26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 13], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000440248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 15 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x010e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 2 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x030e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 14], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x040e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x050e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 5 + QUAD $0x060e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 6 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x070e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 7 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + QUAD $0x090e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 9 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0a0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 11 + QUAD $0x0c0e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d0e3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 14], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e0e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 14 + QUAD $0x0f0e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 14], 15 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x010e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x020e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x030e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 3 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x040e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x050e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x060e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x070e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 7 + QUAD $0x080e2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 14], 8 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x090e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 14], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 10 + QUAD $0x0b0e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 14], 11 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x0c0e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 14], 12 + QUAD $0x0d0e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0f0e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 15 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x3e7cb60f; BYTE $0x0f // movzx edi, byte [rsi + rdi + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 1 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x020f2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 15], 2 + QUAD $0x030f16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 15], 3 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x040f16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 15], 4 + QUAD $0x050f16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 15], 5 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x060f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 6 + QUAD $0x070f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 7 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x080f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x090f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 9 + QUAD $0x0a0f1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 15], 10 + QUAD $0x0b0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 11 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0c0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 13 + QUAD $0x0e0f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f0f06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 15], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0f // movzx edi, byte [rsi + rax + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x010f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x030f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 3 + QUAD $0x040f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 4 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + QUAD $0x050f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 5 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x060f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 6 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x070f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 7 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x080f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 8 + QUAD $0x090f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 9 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x0a0f265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 15], 10 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0b0f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 11 + QUAD $0x0c0f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 12 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0d0f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 14 + QUAD $0x0f0f065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x3e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdi + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x01103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 1 + QUAD $0x02102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 2 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x03103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 3 + QUAD $0x041016442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 16], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x051016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 5 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x06102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 6 + QUAD $0x07103e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 16], 7 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x081016442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 16], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 11 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0c103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 13 + QUAD $0x0e101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 14 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x0f1006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdi + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x01103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 1 + QUAD $0x02100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 2 + QUAD $0x03101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 4 + QUAD $0x0510364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 16], 5 + QUAD $0x0610064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 6 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0710364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 16], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0810064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 8 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x09101e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 16], 9 + QUAD $0x0a10264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 12 + QUAD $0x0d100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 14 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0f101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 15 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + LONG $0x7cb60f42; WORD $0x113e // movzx edi, byte [rsi + r15 + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x01110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 1 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x02110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 2 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x03110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 3 + QUAD $0x041116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 5 + QUAD $0x06112e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 17], 6 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x07110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 7 + QUAD $0x081116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 8 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x09110e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 17], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 10 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0b112e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 17], 11 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0c1116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 12 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x0d1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e1116542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 17], 14 + QUAD $0x0f1106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 15 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x1126 // movzx edi, byte [rsi + r12 + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0111165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 1 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x0211165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 2 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0311165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0411165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 4 + QUAD $0x0000012024848b4c // mov r8, qword [rsp + 288] + QUAD $0x0511065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 17], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x06113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 6 + QUAD $0x0711365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x08113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 8 + QUAD $0x09111e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 17], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 10 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0b113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 13 + QUAD $0x0e11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0f111e4c2061a3c4 // vpinsrb xmm1, xmm3, byte [rsi + r11 + 17], 15 + LONG $0xd8da8dc5 // vpminub ymm3, ymm14, ymm0 + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + LONG $0x3875e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm1, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x7cb60f42; WORD $0x123e // movzx edi, byte [rsi + r15 + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x011206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 1 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x02121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 2 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x031236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 18], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x041206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 4 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x05121e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 18], 5 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x061206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 6 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x071206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 7 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x081206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 8 + QUAD $0x09120e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 18], 9 + QUAD $0x0a120e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 18], 10 + QUAD $0x0b122e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 18], 11 + QUAD $0x0c1216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f1206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 15 + LONG $0x7cb60f42; WORD $0x1226 // movzx edi, byte [rsi + r12 + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0112064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 1 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x0212264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 18], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0312064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 3 + QUAD $0x0412164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 4 + QUAD $0x0512064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 5 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0612064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0712064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 7 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0812164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 18], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0912064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a12064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 10 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0b12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 11 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x0c120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d12064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 18], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x0e123e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 18], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 15 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x02131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 2 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + QUAD $0x031336542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 19], 3 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x04131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 4 + QUAD $0x05131e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 19], 5 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x06131e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 19], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 11 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0c1336542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 19], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 14 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0f133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x01133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 1 + QUAD $0x0213265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 19], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x03133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 5 + QUAD $0x0613065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x07133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 7 + QUAD $0x0813165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 8 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x09133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 10 + QUAD $0x0b13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 11 + QUAD $0x0c130e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 19], 12 + QUAD $0x0d13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 13 + QUAD $0x0e133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x0f130e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rcx + 19], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x14 // movzx edi, byte [rsi + rax + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x011416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x021406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 2 + QUAD $0x03142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 3 + QUAD $0x04141e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 20], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 5 + QUAD $0x06141e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 20], 6 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x07143e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 20], 7 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x08141e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 20], 8 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x091426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 10 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x0b140e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 20], 11 + QUAD $0x0c1436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 20], 12 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0d1436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 20], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 14 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0f1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 15 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x1406 // movzx edi, byte [rsi + r8 + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x0114164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 2 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x03141e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 20], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 5 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x06140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 6 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x07140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x08143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 8 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x09143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 15 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x3e7cb60f; BYTE $0x15 // movzx edi, byte [rsi + rdi + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 1 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x02152e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 21], 2 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x041516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 4 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x051516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 5 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x06153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 6 + QUAD $0x07153e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 21], 7 + QUAD $0x08151e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 21], 8 + QUAD $0x091526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a153e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 21], 10 + QUAD $0x0b150e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 21], 11 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0c153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 12 + QUAD $0x0d1536542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 21], 13 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x0e151e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 21], 14 + QUAD $0x0f1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 15 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x7cb60f42; WORD $0x1506 // movzx edi, byte [rsi + r8 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0115165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0215065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 2 + QUAD $0x03151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0415065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x06153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 6 + QUAD $0x07150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 7 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0815265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 21], 8 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x09150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 9 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x0a151e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 21], 10 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0b150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 11 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0c150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 15 + LONG $0x387563c4; WORD $0x01d8 // vinserti128 ymm11, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + LONG $0x0e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rcx + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x02162e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 22], 2 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x03163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 3 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x04163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 4 + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x06162e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 22], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x071616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 7 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x081606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 22], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x09163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 9 + QUAD $0x0a163e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 22], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 11 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0c1616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 22], 12 + QUAD $0x0d1636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 22], 13 + QUAD $0x0e161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 14 + QUAD $0x0f160e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 22], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdi + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x01163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 1 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x02163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 2 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x03160e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 22], 3 + QUAD $0x0416064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0516064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 5 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0616064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0716064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 7 + QUAD $0x0816264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0916064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 9 + QUAD $0x0a161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 10 + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + QUAD $0x0b16264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0f163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 15 + LONG $0x0e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rcx + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x01171e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 23], 1 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x02170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 2 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x03170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 3 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x04170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 5 + QUAD $0x06172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 6 + QUAD $0x071716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 7 + QUAD $0x081706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 10 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0b172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 11 + QUAD $0x0c1716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 23], 12 + QUAD $0x0d1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 14 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0f1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 15 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x1716 // movzx edi, byte [rsi + r10 + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x01170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 1 + QUAD $0x02173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 2 + QUAD $0x03170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0417165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 23], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 5 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x06173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 6 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0717065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 7 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x08171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 8 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x09170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 9 + QUAD $0x00000100248c8b4c // mov r9, qword [rsp + 256] + QUAD $0x0a170e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 23], 10 + QUAD $0x0b17265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 11 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0c170e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 23], 12 + QUAD $0x0d17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 13 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0e17265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f1706442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 23], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x01181e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 24], 1 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x02183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 2 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x03180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 3 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x04180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x05183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 5 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x06180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 6 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x07181e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 24], 7 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x08183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x09180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 10 + QUAD $0x0b182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 11 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0c183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 14 + QUAD $0x0f1836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 15 + LONG $0x7cb60f42; WORD $0x1816 // movzx edi, byte [rsi + r10 + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x01183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 1 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x02182e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 24], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x03183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 3 + QUAD $0x0418164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0518164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 5 + QUAD $0x06183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 6 + QUAD $0x0718064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 7 + QUAD $0x08181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 8 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0918164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 9 + QUAD $0x0a180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 10 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0b18164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 11 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + QUAD $0x0c18064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 12 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0d183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 13 + QUAD $0x0e18264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 14 + QUAD $0x0f18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 15 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + LONG $0x7cb60f42; WORD $0x190e // movzx edi, byte [rsi + r9 + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x011906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x021906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x031906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x041906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 4 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x051916542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 25], 5 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x06191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 6 + QUAD $0x07191e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 25], 7 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x081906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 8 + QUAD $0x09190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 9 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0a1926542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 25], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 11 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0c193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 12 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0d1936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e190e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 25], 14 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0f193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 15 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + LONG $0x0e7cb60f; BYTE $0x19 // movzx edi, byte [rsi + rcx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x01190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 1 + QUAD $0x02192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x03193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 5 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x06192e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 25], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x07193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 7 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x08191e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 25], 8 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x09193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 10 + QUAD $0x0b19165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 25], 11 + QUAD $0x0c19065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 25], 12 + QUAD $0x0d193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 13 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e190e4c2061e3c4 // vpinsrb xmm1, xmm3, byte [rsi + rcx + 25], 14 + LONG $0xd8da8dc5 // vpminub ymm3, ymm14, ymm0 + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0f190e442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rcx + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00018024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 384], ymm0 + LONG $0x7cb60f42; WORD $0x1a0e // movzx edi, byte [rsi + r9 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x011a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 1 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x021a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 2 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x031a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 3 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x041a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 4 + QUAD $0x051a16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 26], 5 + QUAD $0x061a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x071a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 7 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x081a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 8 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x091a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 9 + QUAD $0x0a1a26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 26], 10 + QUAD $0x0b1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 11 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x0c1a0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 26], 12 + QUAD $0x0d1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 14 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0f1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x1a // movzx edi, byte [rsi + rax + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x011a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 1 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x021a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x031a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x041a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x051a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 5 + QUAD $0x061a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 6 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x071a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 7 + QUAD $0x081a1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 26], 8 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x091a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 10 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0b1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 11 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0c1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 14 + QUAD $0x0f1a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 15 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + LONG $0x7cb60f42; WORD $0x1b26 // movzx edi, byte [rsi + r12 + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x011b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 1 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x021b1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 27], 2 + QUAD $0x031b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 3 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x041b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 4 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x051b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 5 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x061b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 6 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x071b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 7 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x081b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 8 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x091b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a1b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b1b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 11 + QUAD $0x0c1b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 12 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0d1b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 14 + QUAD $0x0f1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 15 + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + LONG $0x167cb60f; BYTE $0x1b // movzx edi, byte [rsi + rdx + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x011b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 1 + QUAD $0x021b165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 27], 2 + QUAD $0x031b065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 27], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x041b065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 27], 4 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x051b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 5 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x061b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 6 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x071b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 7 + QUAD $0x081b1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 27], 8 + QUAD $0x091b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 9 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x0a1b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 10 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0b1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 11 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0c1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0e1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 14 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0f1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x7cb60f42; WORD $0x1c26 // movzx edi, byte [rsi + r12 + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x011c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 1 + QUAD $0x021c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 2 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x031c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 3 + QUAD $0x041c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 4 + QUAD $0x051c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 28], 5 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x061c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 6 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x071c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 7 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x081c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 28], 8 + QUAD $0x091c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 28], 9 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0a1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 10 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x0b1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 11 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0c1c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 28], 12 + QUAD $0x0d1c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 13 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x0e1c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 28], 14 + QUAD $0x0f1c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 15 + QUAD $0x000000e824848b4c // mov r8, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x1c06 // movzx edi, byte [rsi + r8 + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x011c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 28], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x021c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x031c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 3 + QUAD $0x041c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 5 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x061c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 6 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x071c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 7 + QUAD $0x081c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 28], 8 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x091c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 28], 9 + QUAD $0x0a1c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 10 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0b1c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 11 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0c1c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 28], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 14 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0f1c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 28], 15 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + LONG $0x067cb60f; BYTE $0x1d // movzx edi, byte [rsi + rax + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x011d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 1 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x021d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x031d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x041d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 4 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x051d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 5 + QUAD $0x061d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 6 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x071d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 7 + QUAD $0x081d2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 29], 8 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x091d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 9 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0a1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 10 + QUAD $0x0b1d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 11 + QUAD $0x0c1d36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 29], 12 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x0d1d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 13 + QUAD $0x0e1d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 14 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0f1d36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 29], 15 + LONG $0x7cb60f42; WORD $0x1d06 // movzx edi, byte [rsi + r8 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 1 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x021d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 2 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x031d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 3 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x041d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 29], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x051d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 5 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x061d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 6 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x071d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 7 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x081d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 8 + QUAD $0x091d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 29], 9 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0a1d3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 29], 10 + QUAD $0x0b1d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 11 + QUAD $0x0c1d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 29], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d1d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x0e1d3e642061a3c4 // vpinsrb xmm4, xmm3, byte [rsi + r15 + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0f1d16442059a3c4 // vpinsrb xmm0, xmm4, byte [rsi + r10 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + LONG $0x7cb60f42; WORD $0x1e1e // movzx edi, byte [rsi + r11 + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x011e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 1 + LONG $0x7cb60f42; WORD $0x1f1e // movzx edi, byte [rsi + r11 + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x061e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 6 + QUAD $0x061f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 6 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0a1e1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 30], 10 + QUAD $0x0a1f1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 31], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + QUAD $0x0d1e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 30], 13 + QUAD $0x0d1f164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 31], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 14 + QUAD $0x0e1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 14 + QUAD $0x0f1e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 30], 15 + QUAD $0x0f1f36542071a3c4 // vpinsrb xmm2, xmm1, byte [rsi + r14 + 31], 15 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + LONG $0x44b60f42; WORD $0x1e06 // movzx eax, byte [rsi + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x011e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 30], 1 + LONG $0x1644b60f; BYTE $0x1f // movzx eax, byte [rsi + rdx + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 31], 1 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x021e2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 30], 2 + QUAD $0x021f2e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r13 + 31], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 30], 4 + QUAD $0x041f0e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 31], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 30], 7 + QUAD $0x071f267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 31], 7 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x081e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 8 + QUAD $0x081f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 8 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x091e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 9 + QUAD $0x091f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 9 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0c1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 12 + QUAD $0x0c1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 12 + QUAD $0x0d1e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 30], 13 + QUAD $0x0d1f0e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 31], 13 + QUAD $0x0e1e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 14 + QUAD $0x0e1f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 15 + QUAD $0x0f1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00010024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 256], ymm0 + QUAD $0x000220248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 544] + LONG $0xc1da8dc5 // vpminub ymm0, ymm14, ymm1 + LONG $0xc074f5c5 // vpcmpeqb ymm0, ymm1, ymm0 + LONG $0x656ffdc5; BYTE $0x00 // vmovdqa ymm4, yword 0[rbp] /* [rip + .LCPI7_0] */ + LONG $0xfcdffdc5 // vpandn ymm7, ymm0, ymm4 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x0001c024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 448] + LONG $0xfada8dc5 // vpminub ymm7, ymm14, ymm2 + LONG $0xff74edc5 // vpcmpeqb ymm7, ymm2, ymm7 + QUAD $0x00050024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 1280] + LONG $0xe4df6dc5 // vpandn ymm12, ymm2, ymm4 + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI7_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 416] + LONG $0xe2da0dc5 // vpminub ymm12, ymm14, ymm2 + LONG $0xe2741dc5 // vpcmpeqb ymm12, ymm12, ymm2 + LONG $0x6d6ffdc5; BYTE $0x40 // vmovdqa ymm5, yword 64[rbp] /* [rip + .LCPI7_2] */ + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xda15c1c4; BYTE $0xfe // vpminub ymm7, ymm13, ymm14 + LONG $0xff7495c5 // vpcmpeqb ymm7, ymm13, ymm7 + LONG $0xda0541c4; BYTE $0xe6 // vpminub ymm12, ymm15, ymm14 + LONG $0x740541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm15, ymm12 + LONG $0x5d6ffdc5; BYTE $0x60 // vmovdqa ymm3, yword 96[rbp] /* [rip + .LCPI7_3] */ + LONG $0xfbdfc5c5 // vpandn ymm7, ymm7, ymm3 + QUAD $0x00000080956f7dc5 // vmovdqa ymm10, yword 128[rbp] /* [rip + .LCPI7_4] */ + LONG $0xdf1d41c4; BYTE $0xe2 // vpandn ymm12, ymm12, ymm10 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00020024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 512] + LONG $0xda1541c4; BYTE $0xe6 // vpminub ymm12, ymm13, ymm14 + LONG $0x741541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm13, ymm12 + QUAD $0x000000a0956ffdc5 // vmovdqa ymm2, yword 160[rbp] /* [rip + .LCPI7_5] */ + LONG $0xe2df1dc5 // vpandn ymm12, ymm12, ymm2 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0004e024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 1248] + LONG $0xda1541c4; BYTE $0xe6 // vpminub ymm12, ymm13, ymm14 + LONG $0x741541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm13, ymm12 + LONG $0xe1ef1dc5 // vpxor ymm12, ymm12, ymm1 + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb1d41c4; BYTE $0xe1 // vpand ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + QUAD $0x0004a024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1184] + LONG $0xda1dc1c4; BYTE $0xfe // vpminub ymm7, ymm12, ymm14 + LONG $0xff749dc5 // vpcmpeqb ymm7, ymm12, ymm7 + LONG $0xe4df45c5 // vpandn ymm12, ymm7, ymm4 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00048024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 1152] + LONG $0xda1541c4; BYTE $0xe6 // vpminub ymm12, ymm13, ymm14 + LONG $0x741541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm13, ymm12 + QUAD $0x0004c024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 1216] + LONG $0xecdf15c5 // vpandn ymm13, ymm13, ymm4 + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + LONG $0xeb1541c4; BYTE $0xe4 // vpor ymm12, ymm13, ymm12 + QUAD $0x00046024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 1120] + LONG $0xda0541c4; BYTE $0xee // vpminub ymm13, ymm15, ymm14 + LONG $0x740541c4; BYTE $0xed // vpcmpeqb ymm13, ymm15, ymm13 + LONG $0xeddf15c5 // vpandn ymm13, ymm13, ymm5 + LONG $0xeb1d41c4; BYTE $0xe5 // vpor ymm12, ymm12, ymm13 + LONG $0xf9f8c5c5 // vpsubb ymm7, ymm7, ymm1 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00044024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 1088] + LONG $0xda1541c4; BYTE $0xe6 // vpminub ymm12, ymm13, ymm14 + LONG $0x741541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm13, ymm12 + QUAD $0x00042024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 1056] + LONG $0xda0541c4; BYTE $0xee // vpminub ymm13, ymm15, ymm14 + LONG $0x740541c4; BYTE $0xed // vpcmpeqb ymm13, ymm15, ymm13 + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xdf1541c4; BYTE $0xea // vpandn ymm13, ymm13, ymm10 + LONG $0xeb1d41c4; BYTE $0xe5 // vpor ymm12, ymm12, ymm13 + QUAD $0x0003c024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 960] + LONG $0xda0541c4; BYTE $0xee // vpminub ymm13, ymm15, ymm14 + LONG $0x740541c4; BYTE $0xed // vpcmpeqb ymm13, ymm15, ymm13 + LONG $0xeadf15c5 // vpandn ymm13, ymm13, ymm2 + LONG $0xeb1d41c4; BYTE $0xe5 // vpor ymm12, ymm12, ymm13 + QUAD $0x0003e024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 992] + LONG $0xda0541c4; BYTE $0xee // vpminub ymm13, ymm15, ymm14 + LONG $0x740541c4; BYTE $0xed // vpcmpeqb ymm13, ymm15, ymm13 + LONG $0xe9ef15c5 // vpxor ymm13, ymm13, ymm1 + LONG $0x7115c1c4; WORD $0x07f5 // vpsllw ymm13, ymm13, 7 + LONG $0xdb1541c4; BYTE $0xe9 // vpand ymm13, ymm13, ymm9 + LONG $0xeb1d41c4; BYTE $0xe5 // vpor ymm12, ymm12, ymm13 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x0003a024ac6f7dc5; BYTE $0x00 // vmovdqa ymm13, yword [rsp + 928] + LONG $0xda15c1c4; BYTE $0xfe // vpminub ymm7, ymm13, ymm14 + LONG $0xff7495c5 // vpcmpeqb ymm7, ymm13, ymm7 + LONG $0xecdf45c5 // vpandn ymm13, ymm7, ymm4 + LONG $0xfffc95c5 // vpaddb ymm7, ymm13, ymm7 + QUAD $0x00036024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 864] + LONG $0xe8da0dc5 // vpminub ymm13, ymm14, ymm0 + LONG $0xe87415c5 // vpcmpeqb ymm13, ymm13, ymm0 + QUAD $0x00040024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 1024] + LONG $0xfcdf05c5 // vpandn ymm15, ymm15, ymm4 + LONG $0xeedf15c5 // vpandn ymm13, ymm13, ymm6 + LONG $0xeb0541c4; BYTE $0xed // vpor ymm13, ymm15, ymm13 + QUAD $0x00038024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 896] + LONG $0xf8da0dc5 // vpminub ymm15, ymm14, ymm0 + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xeb1541c4; BYTE $0xef // vpor ymm13, ymm13, ymm15 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xf9f8c5c5 // vpsubb ymm7, ymm7, ymm1 + LONG $0xffeb95c5 // vpor ymm7, ymm13, ymm7 + LONG $0xda2541c4; BYTE $0xee // vpminub ymm13, ymm11, ymm14 + LONG $0x742541c4; BYTE $0xdd // vpcmpeqb ymm11, ymm11, ymm13 + QUAD $0x00034024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 832] + LONG $0xe8da0dc5 // vpminub ymm13, ymm14, ymm0 + LONG $0xe87415c5 // vpcmpeqb ymm13, ymm13, ymm0 + LONG $0xdbdf25c5 // vpandn ymm11, ymm11, ymm3 + LONG $0x6f7d41c4; BYTE $0xfa // vmovdqa ymm15, ymm10 + LONG $0xdf1541c4; BYTE $0xea // vpandn ymm13, ymm13, ymm10 + LONG $0xeb2541c4; BYTE $0xdd // vpor ymm11, ymm11, ymm13 + QUAD $0x00026024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 608] + LONG $0xe8da0dc5 // vpminub ymm13, ymm14, ymm0 + LONG $0xc07415c5 // vpcmpeqb ymm8, ymm13, ymm0 + LONG $0xc2df3dc5 // vpandn ymm8, ymm8, ymm2 + LONG $0xeb2541c4; BYTE $0xc0 // vpor ymm8, ymm11, ymm8 + QUAD $0x00028024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 640] + LONG $0xd8da0dc5 // vpminub ymm11, ymm14, ymm0 + LONG $0xd07425c5 // vpcmpeqb ymm10, ymm11, ymm0 + LONG $0xd1ef2dc5 // vpxor ymm10, ymm10, ymm1 + LONG $0x762541c4; BYTE $0xdb // vpcmpeqd ymm11, ymm11, ymm11 + LONG $0x712dc1c4; WORD $0x07f2 // vpsllw ymm10, ymm10, 7 + LONG $0x6f7d41c4; BYTE $0xe9 // vmovdqa ymm13, ymm9 + LONG $0xdb2d41c4; BYTE $0xd1 // vpand ymm10, ymm10, ymm9 + LONG $0xeb3d41c4; BYTE $0xc2 // vpor ymm8, ymm8, ymm10 + LONG $0xc7eb3dc5 // vpor ymm8, ymm8, ymm7 + QUAD $0x00018024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 384] + LONG $0xf8da8dc5 // vpminub ymm7, ymm14, ymm0 + LONG $0xff74fdc5 // vpcmpeqb ymm7, ymm0, ymm7 + LONG $0xccdf45c5 // vpandn ymm9, ymm7, ymm4 + LONG $0xfffcb5c5 // vpaddb ymm7, ymm9, ymm7 + QUAD $0x0002a024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 672] + LONG $0xc8da0dc5 // vpminub ymm9, ymm14, ymm0 + LONG $0xe874b5c5 // vpcmpeqb ymm5, ymm9, ymm0 + QUAD $0x00032024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 800] + LONG $0xccdf7dc5 // vpandn ymm9, ymm0, ymm4 + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + QUAD $0x0002c024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 704] + LONG $0xc8da0dc5 // vpminub ymm9, ymm14, ymm0 + LONG $0xf074b5c5 // vpcmpeqb ymm6, ymm9, ymm0 + LONG $0x75dfcdc5; BYTE $0x40 // vpandn ymm6, ymm6, yword 64[rbp] /* [rip + .LCPI7_2] */ + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + LONG $0xf845c1c4; BYTE $0xf3 // vpsubb ymm6, ymm7, ymm11 + LONG $0xedebcdc5 // vpor ymm5, ymm6, ymm5 + QUAD $0x0002e024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 736] + LONG $0xf0da8dc5 // vpminub ymm6, ymm14, ymm0 + LONG $0xde74fdc5 // vpcmpeqb ymm3, ymm0, ymm6 + QUAD $0x00030024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 768] + LONG $0xf0da8dc5 // vpminub ymm6, ymm14, ymm0 + LONG $0xe674fdc5 // vpcmpeqb ymm4, ymm0, ymm6 + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI7_3] */ + LONG $0xdf5dc1c4; BYTE $0xe7 // vpandn ymm4, ymm4, ymm15 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + QUAD $0x00012024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 288] + LONG $0xe0da8dc5 // vpminub ymm4, ymm14, ymm0 + LONG $0xcc74fdc5 // vpcmpeqb ymm1, ymm0, ymm4 + LONG $0xcadff5c5 // vpandn ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + QUAD $0x00010024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 256] + LONG $0xd8da8dc5 // vpminub ymm3, ymm14, ymm0 + LONG $0xd374fdc5 // vpcmpeqb ymm2, ymm0, ymm3 + LONG $0xd2efa5c5 // vpxor ymm2, ymm11, ymm2 + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db95c5 // vpand ymm2, ymm13, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebd5c5 // vpor ymm1, ymm5, ymm1 + QUAD $0x00014024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 320] + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960bdc5 // vpunpcklbw ymm3, ymm8, ymm1 + LONG $0xc968bdc5 // vpunpckhbw ymm1, ymm8, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000170248c8b48 // mov rcx, qword [rsp + 368] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000168248c3b48 // cmp rcx, qword [rsp + 360] + JNE LBB7_48 + QUAD $0x0000017824bc8b4c // mov r15, qword [rsp + 376] + QUAD $0x0000016824bc3b4c // cmp r15, qword [rsp + 360] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + QUAD $0x000001f824a48b4c // mov r12, qword [rsp + 504] + JNE LBB7_50 + JMP LBB7_53 + +DATA LCDATA6<>+0x000(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x008(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x010(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x018(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA6<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA6<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA6<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA6<>(SB), 8, $224 + +TEXT ·_comparison_greater_scalar_arr_avx2(SB), $1352-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1312(SP) + LEAQ LCDATA6<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB8_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB8_28 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB8_51 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB8_59 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB8_179 + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_7: + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0xf619 // sbb esi, esi + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_7 + LONG $0x01c38349 // add r11, 1 + +LBB8_9: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_115 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_11: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7970f40 // seta dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6970f41 // seta r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3970f41 // seta r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6970f40 // seta sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0970f41 // seta r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1970f41 // seta r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2970f41 // seta r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4970f41 // seta r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7970f41 // seta r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_11 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB8_116 + JMP LBB8_179 + +LBB8_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB8_41 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB8_70 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB8_81 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB8_179 + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_21 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_19: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x08c28348 // add rdx, 8 + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_19 + LONG $0x01c38349 // add r11, 1 + +LBB8_21: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_25 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_23: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0xd0970f41 // seta r8b + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0xd6970f41 // seta r14b + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0xd5970f41 // seta r13b + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd3970f41 // seta r11b + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + LONG $0xd6970f40 // seta sil + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0xd7970f40 // seta dil + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd1970f41 // seta r9b + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0xd2970f41 // seta r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0xd4970f41 // seta r12b + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x970f; BYTE $0xd1 // seta cl + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + LONG $0xd7970f41 // seta r15b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + QUAD $0x000001402494970f // seta byte [rsp + 320] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000001202494970f // seta byte [rsp + 288] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000001002494970f // seta byte [rsp + 256] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x78 // add r8b, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008024848348; BYTE $0xff // add qword [rsp + 128], -1 + JNE LBB8_23 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + +LBB8_25: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB8_133 + WORD $0xff31 // xor edi, edi + JMP LBB8_135 + +LBB8_28: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB8_92 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB8_179 + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f6a8d4d // lea r13, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xea490f4d // cmovns r13, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_128 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + WORD $0x894d; BYTE $0xdf // mov r15, r11 + +LBB8_32: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_32 + LONG $0x01c78349 // add r15, 1 + LONG $0x05fdc149 // sar r13, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_129 + +LBB8_34: + LONG $0x20fd8349 // cmp r13, 32 + LONG $0x24748944; BYTE $0x04 // mov dword [rsp + 4], r14d + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000016824ac894c // mov qword [rsp + 360], r13 + JB LBB8_37 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB8_180 + LONG $0xaf048d4b // lea rax, [r15 + 4*r13] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB8_180 + +LBB8_37: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + QUAD $0x0000016024bc894c // mov qword [rsp + 352], r15 + +LBB8_38: + QUAD $0x0000018024ac2b4c // sub r13, qword [rsp + 384] + QUAD $0x0000008024ac894c // mov qword [rsp + 128], r13 + +LBB8_39: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343a45 // cmp r14b, byte [r12] + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x24743a45; BYTE $0x01 // cmp r14b, byte [r12 + 1] + LONG $0xd29f0f41 // setg r10b + LONG $0x24743a45; BYTE $0x02 // cmp r14b, byte [r12 + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x24743a45; BYTE $0x03 // cmp r14b, byte [r12 + 3] + LONG $0xd59f0f41 // setg r13b + LONG $0x24743a45; BYTE $0x04 // cmp r14b, byte [r12 + 4] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x24743a45; BYTE $0x05 // cmp r14b, byte [r12 + 5] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x24743a45; BYTE $0x06 // cmp r14b, byte [r12 + 6] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x24743a45; BYTE $0x07 // cmp r14b, byte [r12 + 7] + LONG $0xd49f0f41 // setg r12b + LONG $0x08713a44 // cmp r14b, byte [rcx + 8] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x09713a44 // cmp r14b, byte [rcx + 9] + LONG $0xd69f0f40 // setg sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd79f0f40 // setg dil + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd19f0f41 // setg r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd39f0f41 // setg r11b + LONG $0x0d713a44 // cmp r14b, byte [rcx + 13] + LONG $0xd79f0f41 // setg r15b + LONG $0x0e713a44 // cmp r14b, byte [rcx + 14] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x0f713a44 // cmp r14b, byte [rcx + 15] + LONG $0xd09f0f41 // setg r8b + LONG $0x10713a44 // cmp r14b, byte [rcx + 16] + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x11713a44 // cmp r14b, byte [rcx + 17] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x12713a44 // cmp r14b, byte [rcx + 18] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x13713a44 // cmp r14b, byte [rcx + 19] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x14713a44 // cmp r14b, byte [rcx + 20] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x15713a44 // cmp r14b, byte [rcx + 21] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x16713a44 // cmp r14b, byte [rcx + 22] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x17713a44 // cmp r14b, byte [rcx + 23] + LONG $0xd69f0f41 // setg r14b + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + QUAD $0x000000e824949f0f // setg byte [rsp + 232] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000012024940244 // add r10b, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xc4 // or r12b, al + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xd3 // or bl, r10b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x78 // add sil, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0845; BYTE $0xf8 // or r8b, r15b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x00248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 256] + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xc308 // or bl, al + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x28 // movzx ebx, byte [rsp + 40] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x30 // movzx ebx, byte [rsp + 48] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + QUAD $0x0000016024b48b48 // mov rsi, qword [rsp + 352] + WORD $0x8844; BYTE $0x26 // mov byte [rsi], r12b + LONG $0x247cb60f; BYTE $0x10 // movzx edi, byte [rsp + 16] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x01468844 // mov byte [rsi + 1], r8b + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0xe8248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 232] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000140249cb60f // movzx ebx, byte [rsp + 320] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + WORD $0x5688; BYTE $0x03 // mov byte [rsi + 3], dl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016024b48948 // mov qword [rsp + 352], rsi + QUAD $0x0000008024848348; BYTE $0xff // add qword [rsp + 128], -1 + JNE LBB8_39 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000016824ac8b4c // mov r13, qword [rsp + 360] + JMP LBB8_130 + +LBB8_41: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB8_104 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB8_179 + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_47 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_45: + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x1945; BYTE $0xc9 // sbb r9d, r9d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3045; BYTE $0xc1 // xor r9b, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xcf // and dil, r9b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_45 + LONG $0x01c38349 // add r11, 1 + +LBB8_47: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_118 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB8_49: + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7970f40 // seta dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6970f41 // seta r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3970f41 // seta r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6970f40 // seta sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0970f41 // seta r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1970f41 // seta r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2970f41 // seta r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4970f41 // seta r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7970f41 // seta r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc789 // mov edi, eax + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001002484b60f // movzx eax, byte [rsp + 256] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_49 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB8_119 + JMP LBB8_179 + +LBB8_51: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_55 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_53: + LONG $0x2a394466 // cmp word [rdx], r13w + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0xf619 // sbb esi, esi + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_53 + LONG $0x01c38349 // add r11, 1 + +LBB8_55: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_121 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_57: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0xd7970f40 // seta dil + LONG $0x6a3b4466; BYTE $0x04 // cmp r13w, word [rdx + 4] + LONG $0xd6970f41 // seta r14b + LONG $0x6a3b4466; BYTE $0x06 // cmp r13w, word [rdx + 6] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x6a3b4466; BYTE $0x08 // cmp r13w, word [rdx + 8] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x6a3b4466; BYTE $0x0a // cmp r13w, word [rdx + 10] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x6a3b4466; BYTE $0x0c // cmp r13w, word [rdx + 12] + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x6a3b4466; BYTE $0x0e // cmp r13w, word [rdx + 14] + LONG $0xd3970f41 // seta r11b + LONG $0x6a3b4466; BYTE $0x10 // cmp r13w, word [rdx + 16] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x6a3b4466; BYTE $0x12 // cmp r13w, word [rdx + 18] + LONG $0xd6970f40 // seta sil + LONG $0x6a3b4466; BYTE $0x14 // cmp r13w, word [rdx + 20] + LONG $0xd0970f41 // seta r8b + LONG $0x6a3b4466; BYTE $0x16 // cmp r13w, word [rdx + 22] + LONG $0xd1970f41 // seta r9b + LONG $0x6a3b4466; BYTE $0x18 // cmp r13w, word [rdx + 24] + LONG $0xd2970f41 // seta r10b + LONG $0x6a3b4466; BYTE $0x1a // cmp r13w, word [rdx + 26] + LONG $0xd4970f41 // seta r12b + LONG $0x6a3b4466; BYTE $0x1c // cmp r13w, word [rdx + 28] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x6a3b4466; BYTE $0x1e // cmp r13w, word [rdx + 30] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x6a3b4466; BYTE $0x20 // cmp r13w, word [rdx + 32] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x6a3b4466; BYTE $0x22 // cmp r13w, word [rdx + 34] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x6a3b4466; BYTE $0x24 // cmp r13w, word [rdx + 36] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x6a3b4466; BYTE $0x26 // cmp r13w, word [rdx + 38] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x6a3b4466; BYTE $0x28 // cmp r13w, word [rdx + 40] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6a3b4466; BYTE $0x2a // cmp r13w, word [rdx + 42] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x6a3b4466; BYTE $0x2c // cmp r13w, word [rdx + 44] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x6a3b4466; BYTE $0x2e // cmp r13w, word [rdx + 46] + LONG $0xd7970f41 // seta r15b + LONG $0x6a3b4466; BYTE $0x30 // cmp r13w, word [rdx + 48] + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x6a3b4466; BYTE $0x32 // cmp r13w, word [rdx + 50] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x6a3b4466; BYTE $0x34 // cmp r13w, word [rdx + 52] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6a3b4466; BYTE $0x36 // cmp r13w, word [rdx + 54] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x6a3b4466; BYTE $0x38 // cmp r13w, word [rdx + 56] + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x6a3b4466; BYTE $0x3a // cmp r13w, word [rdx + 58] + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x6a3b4466; BYTE $0x3c // cmp r13w, word [rdx + 60] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x6a3b4466; BYTE $0x3e // cmp r13w, word [rdx + 62] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_57 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB8_122 + JMP LBB8_179 + +LBB8_59: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_63 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_61: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_61 + LONG $0x01c38349 // add r11, 1 + +LBB8_63: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_67 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_65: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0xd79f0f40 // setg dil + LONG $0x6a3b4466; BYTE $0x04 // cmp r13w, word [rdx + 4] + LONG $0xd69f0f41 // setg r14b + LONG $0x6a3b4466; BYTE $0x06 // cmp r13w, word [rdx + 6] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x6a3b4466; BYTE $0x08 // cmp r13w, word [rdx + 8] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x6a3b4466; BYTE $0x0a // cmp r13w, word [rdx + 10] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x6a3b4466; BYTE $0x0c // cmp r13w, word [rdx + 12] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x6a3b4466; BYTE $0x0e // cmp r13w, word [rdx + 14] + LONG $0xd39f0f41 // setg r11b + LONG $0x6a3b4466; BYTE $0x10 // cmp r13w, word [rdx + 16] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x6a3b4466; BYTE $0x12 // cmp r13w, word [rdx + 18] + LONG $0xd69f0f40 // setg sil + LONG $0x6a3b4466; BYTE $0x14 // cmp r13w, word [rdx + 20] + LONG $0xd09f0f41 // setg r8b + LONG $0x6a3b4466; BYTE $0x16 // cmp r13w, word [rdx + 22] + LONG $0xd19f0f41 // setg r9b + LONG $0x6a3b4466; BYTE $0x18 // cmp r13w, word [rdx + 24] + LONG $0xd29f0f41 // setg r10b + LONG $0x6a3b4466; BYTE $0x1a // cmp r13w, word [rdx + 26] + LONG $0xd49f0f41 // setg r12b + LONG $0x6a3b4466; BYTE $0x1c // cmp r13w, word [rdx + 28] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x6a3b4466; BYTE $0x1e // cmp r13w, word [rdx + 30] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x6a3b4466; BYTE $0x20 // cmp r13w, word [rdx + 32] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x6a3b4466; BYTE $0x22 // cmp r13w, word [rdx + 34] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x6a3b4466; BYTE $0x24 // cmp r13w, word [rdx + 36] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x6a3b4466; BYTE $0x26 // cmp r13w, word [rdx + 38] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x6a3b4466; BYTE $0x28 // cmp r13w, word [rdx + 40] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x6a3b4466; BYTE $0x2a // cmp r13w, word [rdx + 42] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x6a3b4466; BYTE $0x2c // cmp r13w, word [rdx + 44] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x6a3b4466; BYTE $0x2e // cmp r13w, word [rdx + 46] + LONG $0xd79f0f41 // setg r15b + LONG $0x6a3b4466; BYTE $0x30 // cmp r13w, word [rdx + 48] + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x6a3b4466; BYTE $0x32 // cmp r13w, word [rdx + 50] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x6a3b4466; BYTE $0x34 // cmp r13w, word [rdx + 52] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6a3b4466; BYTE $0x36 // cmp r13w, word [rdx + 54] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x6a3b4466; BYTE $0x38 // cmp r13w, word [rdx + 56] + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x6a3b4466; BYTE $0x3a // cmp r13w, word [rdx + 58] + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x6a3b4466; BYTE $0x3c // cmp r13w, word [rdx + 60] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x6a3b4466; BYTE $0x3e // cmp r13w, word [rdx + 62] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_65 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + +LBB8_67: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB8_137 + WORD $0xff31 // xor edi, edi + JMP LBB8_139 + +LBB8_70: + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_74 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_72: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_72 + LONG $0x01c38349 // add r11, 1 + +LBB8_74: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_78 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_76: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd79f0f40 // setg dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd69f0f41 // setg r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd39f0f41 // setg r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd69f0f40 // setg sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd09f0f41 // setg r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd19f0f41 // setg r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd29f0f41 // setg r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd49f0f41 // setg r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd79f0f41 // setg r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_76 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + +LBB8_78: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB8_141 + WORD $0xff31 // xor edi, edi + JMP LBB8_143 + +LBB8_81: + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_85 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_83: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x04c28348 // add rdx, 4 + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_83 + LONG $0x01c38349 // add r11, 1 + +LBB8_85: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_89 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_87: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0xd0970f41 // seta r8b + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0xd6970f41 // seta r14b + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0xd5970f41 // seta r13b + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd3970f41 // seta r11b + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + LONG $0xd6970f40 // seta sil + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0xd7970f40 // seta dil + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd1970f41 // seta r9b + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0xd2970f41 // seta r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0xd4970f41 // seta r12b + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0xd7970f41 // seta r15b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x78 // add r8b, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x50 // add sil, byte [rsp + 80] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x58 // movzx esi, byte [rsp + 88] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x20 // movzx edi, byte [rsp + 32] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + QUAD $0x00000100248cb60f // movzx ecx, byte [rsp + 256] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68348 // add rsi, 4 + QUAD $0x000000e824b48948 // mov qword [rsp + 232], rsi + QUAD $0x0000008024848348; BYTE $0xff // add qword [rsp + 128], -1 + JNE LBB8_87 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + +LBB8_89: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB8_145 + WORD $0xff31 // xor edi, edi + JMP LBB8_147 + +LBB8_92: + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_96 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_94: + WORD $0x3844; BYTE $0x32 // cmp byte [rdx], r14b + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0xf619 // sbb esi, esi + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_94 + LONG $0x01c38349 // add r11, 1 + +LBB8_96: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_124 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x04 // mov dword [rsp + 4], r14d + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000017024bc894c // mov qword [rsp + 368], r15 + JB LBB8_100 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB8_183 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB8_183 + +LBB8_100: + WORD $0xc031 // xor eax, eax + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + +LBB8_101: + QUAD $0x0000016824bc2b4c // sub r15, qword [rsp + 360] + QUAD $0x0000008024bc894c // mov qword [rsp + 128], r15 + +LBB8_102: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343a45 // cmp r14b, byte [r12] + QUAD $0x000001402494970f // seta byte [rsp + 320] + LONG $0x24743a45; BYTE $0x01 // cmp r14b, byte [r12 + 1] + LONG $0xd2970f41 // seta r10b + LONG $0x24743a45; BYTE $0x02 // cmp r14b, byte [r12 + 2] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x24743a45; BYTE $0x03 // cmp r14b, byte [r12 + 3] + LONG $0xd5970f41 // seta r13b + LONG $0x24743a45; BYTE $0x04 // cmp r14b, byte [r12 + 4] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x24743a45; BYTE $0x05 // cmp r14b, byte [r12 + 5] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x24743a45; BYTE $0x06 // cmp r14b, byte [r12 + 6] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x24743a45; BYTE $0x07 // cmp r14b, byte [r12 + 7] + LONG $0xd4970f41 // seta r12b + LONG $0x08713a44 // cmp r14b, byte [rcx + 8] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x09713a44 // cmp r14b, byte [rcx + 9] + LONG $0xd6970f40 // seta sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd7970f40 // seta dil + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd1970f41 // seta r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd3970f41 // seta r11b + LONG $0x0d713a44 // cmp r14b, byte [rcx + 13] + LONG $0xd7970f41 // seta r15b + LONG $0x0e713a44 // cmp r14b, byte [rcx + 14] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x0f713a44 // cmp r14b, byte [rcx + 15] + LONG $0xd0970f41 // seta r8b + LONG $0x10713a44 // cmp r14b, byte [rcx + 16] + QUAD $0x000001002494970f // seta byte [rsp + 256] + LONG $0x11713a44 // cmp r14b, byte [rcx + 17] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x12713a44 // cmp r14b, byte [rcx + 18] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x13713a44 // cmp r14b, byte [rcx + 19] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x14713a44 // cmp r14b, byte [rcx + 20] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x15713a44 // cmp r14b, byte [rcx + 21] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x16713a44 // cmp r14b, byte [rcx + 22] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x17713a44 // cmp r14b, byte [rcx + 23] + LONG $0xd6970f41 // seta r14b + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + QUAD $0x000000e82494970f // seta byte [rsp + 232] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + QUAD $0x000001202494970f // seta byte [rsp + 288] + LONG $0x0424548b // mov edx, dword [rsp + 4] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x970f; BYTE $0xd2 // seta dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000014024940244 // add r10b, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xc4 // or r12b, al + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xd3 // or bl, r10b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x78 // add sil, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x2474b60f; BYTE $0x48 // movzx esi, byte [rsp + 72] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0845; BYTE $0xf8 // or r8b, r15b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x00248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 256] + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xc308 // or bl, al + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x28 // movzx ebx, byte [rsp + 40] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x30 // movzx ebx, byte [rsp + 48] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + QUAD $0x0000016024b48b48 // mov rsi, qword [rsp + 352] + WORD $0x8844; BYTE $0x26 // mov byte [rsi], r12b + LONG $0x247cb60f; BYTE $0x10 // movzx edi, byte [rsp + 16] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x01468844 // mov byte [rsi + 1], r8b + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0xe8248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 232] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + WORD $0x5688; BYTE $0x03 // mov byte [rsi + 3], dl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016024b48948 // mov qword [rsp + 352], rsi + QUAD $0x0000008024848348; BYTE $0xff // add qword [rsp + 128], -1 + JNE LBB8_102 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000017024bc8b4c // mov r15, qword [rsp + 368] + JMP LBB8_125 + +LBB8_104: + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_108 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_106: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x33 // movzx r8d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_106 + LONG $0x01c38349 // add r11, 1 + +LBB8_108: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_112 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB8_110: + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd79f0f40 // setg dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd69f0f41 // setg r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd39f0f41 // setg r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd69f0f40 // setg sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd09f0f41 // setg r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd19f0f41 // setg r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd29f0f41 // setg r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd49f0f41 // setg r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd79f0f41 // setg r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + QUAD $0x0000014024949f0f // setg byte [rsp + 320] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + QUAD $0x0000012024949f0f // setg byte [rsp + 288] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + QUAD $0x0000010024949f0f // setg byte [rsp + 256] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x48 // add sil, byte [rsp + 72] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x40248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 320] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202484b60f // movzx eax, byte [rsp + 288] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001002484b60f // movzx eax, byte [rsp + 256] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x035b8841 // mov byte [r11 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB8_110 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + +LBB8_112: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB8_150 + WORD $0xff31 // xor edi, edi + JMP LBB8_152 + +LBB8_115: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_179 + +LBB8_116: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_156 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_158 + +LBB8_118: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_179 + +LBB8_119: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_160 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_162 + +LBB8_121: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_179 + +LBB8_122: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_164 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_166 + +LBB8_124: + QUAD $0x00000160249c894c // mov qword [rsp + 352], r11 + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + +LBB8_125: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_169 + WORD $0xc031 // xor eax, eax + JMP LBB8_172 + +LBB8_128: + WORD $0x894d; BYTE $0xdf // mov r15, r11 + LONG $0x05fdc149 // sar r13, 5 + LONG $0x20fa8349 // cmp r10, 32 + JGE LBB8_34 + +LBB8_129: + QUAD $0x0000016024bc894c // mov qword [rsp + 352], r15 + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + +LBB8_130: + LONG $0x05e5c149 // shl r13, 5 + WORD $0x394d; BYTE $0xd5 // cmp r13, r10 + JGE LBB8_179 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xe8 // sub r8, r13 + WORD $0xf749; BYTE $0xd5 // not r13 + WORD $0x014d; BYTE $0xd5 // add r13, r10 + JNE LBB8_174 + WORD $0xf631 // xor esi, esi + JMP LBB8_177 + +LBB8_133: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB8_134: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0xd1970f41 // seta r9b + LONG $0x10c28348 // add rdx, 16 + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_134 + +LBB8_135: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + JMP LBB8_149 + +LBB8_137: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB8_138: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd19f0f41 // setg r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_138 + +LBB8_139: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x2a3b4466 // cmp r13w, word [rdx] + JMP LBB8_154 + +LBB8_141: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB8_142: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd19f0f41 // setg r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_142 + +LBB8_143: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + JMP LBB8_154 + +LBB8_145: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB8_146: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0xd1970f41 // seta r9b + LONG $0x08c28348 // add rdx, 8 + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_146 + +LBB8_147: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + +LBB8_149: + WORD $0x970f; BYTE $0xd0 // seta al + JMP LBB8_155 + +LBB8_150: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB8_151: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd19f0f41 // setg r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_151 + +LBB8_152: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + +LBB8_154: + WORD $0x9f0f; BYTE $0xd0 // setg al + +LBB8_155: + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x13348a41 // mov sil, byte [r11 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x131c8841 // mov byte [r11 + rdx], bl + JMP LBB8_179 + +LBB8_156: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB8_157: + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046a3944 // cmp dword [rdx + 4], r13d + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_157 + +LBB8_158: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + JMP LBB8_168 + +LBB8_160: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB8_161: + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086a394c // cmp qword [rdx + 8], r13 + LONG $0x10528d48 // lea rdx, [rdx + 16] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_161 + +LBB8_162: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + JMP LBB8_168 + +LBB8_164: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB8_165: + LONG $0x2a394466 // cmp word [rdx], r13w + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6a394466; BYTE $0x02 // cmp word [rdx + 2], r13w + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_165 + +LBB8_166: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x2a394466 // cmp word [rdx], r13w + +LBB8_168: + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB8_179 + +LBB8_169: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xc031 // xor eax, eax + QUAD $0x0000016024948b4c // mov r10, qword [rsp + 352] + +LBB8_170: + LONG $0x04343845 // cmp byte [r12 + rax], r14b + WORD $0xf619 // sbb esi, esi + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x1cb60f41; BYTE $0x3a // movzx ebx, byte [r10 + rdi] + WORD $0x3040; BYTE $0xde // xor sil, bl + WORD $0x2040; BYTE $0xf2 // and dl, sil + WORD $0xda30 // xor dl, bl + LONG $0x3a148841 // mov byte [r10 + rdi], dl + LONG $0x04743845; BYTE $0x01 // cmp byte [r12 + rax + 1], r14b + LONG $0x02408d48 // lea rax, [rax + 2] + WORD $0xf619 // sbb esi, esi + WORD $0x3040; BYTE $0xd6 // xor sil, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0xd330 // xor bl, dl + LONG $0x3a1c8841 // mov byte [r10 + rdi], bl + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB8_170 + WORD $0x0149; BYTE $0xc4 // add r12, rax + +LBB8_172: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0xd219 // sbb edx, edx + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x03eec148 // shr rsi, 3 + QUAD $0x0000016024848b4c // mov r8, qword [rsp + 352] + LONG $0x303c8a41 // mov dil, byte [r8 + rsi] + WORD $0x0724 // and al, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xc189 // mov ecx, eax + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xfa // xor dl, dil + WORD $0xd320 // and bl, dl + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x301c8841 // mov byte [r8 + rsi], bl + JMP LBB8_179 + +LBB8_174: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000160249c8b4c // mov r11, qword [rsp + 352] + +LBB8_175: + LONG $0x34343a45 // cmp r14b, byte [r12 + rsi] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743a45; BYTE $0x01 // cmp r14b, byte [r12 + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB8_175 + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB8_177: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_179 + LONG $0x24343a45 // cmp r14b, byte [r12] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000016024848b4c // mov r8, qword [rsp + 352] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + +LBB8_179: + MOVQ 1312(SP), SP + VZEROUPPER + RET + +LBB8_180: + LONG $0xe0e58349 // and r13, -32 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + QUAD $0x0000018024ac894c // mov qword [rsp + 384], r13 + LONG $0xaf048d4b // lea rax, [r15 + 4*r13] + QUAD $0x0000016024848948 // mov qword [rsp + 352], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824bc894c // mov qword [rsp + 232], r15 + +LBB8_181: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0xe06ef9c5 // vmovd xmm4, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x3244b60f; BYTE $0x02 // movzx eax, byte [rdx + rsi + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000220248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 544], xmm1 + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x3244b60f; BYTE $0x03 // movzx eax, byte [rdx + rsi + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x3244b60f; BYTE $0x04 // movzx eax, byte [rdx + rsi + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x3244b60f; BYTE $0x05 // movzx eax, byte [rdx + rsi + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x3244b60f; BYTE $0x06 // movzx eax, byte [rdx + rsi + 6] + QUAD $0x000000d824b48948 // mov qword [rsp + 216], rsi + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x3244b60f; BYTE $0x07 // movzx eax, byte [rdx + rsi + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + QUAD $0x0000010024848948 // mov qword [rsp + 256], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + LONG $0x40cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 576 + QUAD $0x00000090249c8948 // mov qword [rsp + 144], rbx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8949; BYTE $0xcc // mov r12, rcx + LONG $0x80cc8149; WORD $0x0002; BYTE $0x00 // or r12, 640 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0xa0ce8149; WORD $0x0002; BYTE $0x00 // or r14, 672 + LONG $0x2474894c; BYTE $0x18 // mov qword [rsp + 24], r14 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0xc0ca8149; WORD $0x0002; BYTE $0x00 // or r10, 704 + LONG $0x2454894c; BYTE $0x68 // mov qword [rsp + 104], r10 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xe0cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 736 + QUAD $0x000000b024bc8948 // mov qword [rsp + 176], rdi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03000d48; WORD $0x0000 // or rax, 768 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + LONG $0x247c894c; BYTE $0x70 // mov qword [rsp + 112], r15 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x40cb8149; WORD $0x0003; BYTE $0x00 // or r11, 832 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x60c98149; WORD $0x0003; BYTE $0x00 // or r9, 864 + LONG $0x244c894c; BYTE $0x48 // mov qword [rsp + 72], r9 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000a82484894c // mov qword [rsp + 168], r8 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0xa0ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 928 + QUAD $0x000000c824b48948 // mov qword [rsp + 200], rsi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e0248c8948 // mov qword [rsp + 224], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + QUAD $0x00000098248c8948 // mov qword [rsp + 152], rcx + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + LONG $0x207923c4; WORD $0x2a0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r13], 1 + LONG $0x2031e3c4; WORD $0x1a04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + rbx], 2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + rbx], 3 + LONG $0x2079a3c4; WORD $0x2204; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + r12], 4 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x000000a024a4894c // mov qword [rsp + 160], r12 + LONG $0x2079a3c4; WORD $0x3204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r14], 5 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + r10], 6 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + rdi], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + rdi], 8 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + r15], 9 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r11], 10 + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + r9], 11 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + r8], 12 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + rsi], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rcx], 15 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r14], 1 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + r11], 2 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2061a3c4; WORD $0x221c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + r12], 3 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r9], 5 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + r10], 6 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + r15], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rax], 9 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rbx], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + rcx], 11 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rdi], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rdi], 13 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rdi], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + rdi], 15 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x01013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x02013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 2 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x03013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 3 + QUAD $0x04012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 4 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x05012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 5 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x06013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 6 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x07013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x09013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 11 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0c013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 12 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0d013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e013a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 1], 14 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x0f012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 15 + QUAD $0x0101326c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r14 + 1], 1 + QUAD $0x02011a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 1], 2 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x0301226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 5 + QUAD $0x0601126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 1], 6 + QUAD $0x07013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 7 + QUAD $0x0801326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 8 + QUAD $0x0901026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 9 + QUAD $0x0a011a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 1], 10 + QUAD $0x0b010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01f8 // vinserti128 ymm15, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0102442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 1], 15 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xce6e79c5 // vmovd xmm9, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xd66e79c5 // vmovd xmm10, esi + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x00022024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 544] + QUAD $0x010202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02020a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 2], 2 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x030212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x050202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x060202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x070202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 7 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x080222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 2], 8 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x09022a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 2], 9 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0a020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 10 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0b021a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 2], 11 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0c0232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 2], 12 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x0d023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 1 + QUAD $0x02023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0302325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 3 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0402325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 4 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0502325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0602325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 6 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0702325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 7 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x08021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 9 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0a023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 10 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0b023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 11 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0c023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 13 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x0e023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0f023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 15 + QUAD $0x010302642021a3c4 // vpinsrb xmm4, xmm11, byte [rdx + r8 + 3], 1 + QUAD $0x02030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 2 + QUAD $0x030312642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 3], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 4 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x05033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 5 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x06033a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 3], 6 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x07030a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 3], 7 + QUAD $0x080322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 3], 8 + QUAD $0x09032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 9 + QUAD $0x0a030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 10 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + QUAD $0x0b031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 11 + QUAD $0x0c0332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 3], 12 + QUAD $0x0d033a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 3], 13 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0e031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 14 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x0f0332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 3], 15 + QUAD $0x0103026c2039e3c4 // vpinsrb xmm5, xmm8, byte [rdx + rax + 3], 1 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x02030a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 3], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0403026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0503026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0603026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 6 + QUAD $0x0703326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 7 + QUAD $0x08031a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 3], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0903026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 10 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0b03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e0302442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 3], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xc66e79c5 // vmovd xmm8, esi + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0302442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x09 // movzx esi, byte [rdx + rax + 9] + LONG $0xde6e79c5 // vmovd xmm11, esi + QUAD $0x0001a024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 416] + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x010402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x020402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 2 + QUAD $0x030412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 4], 3 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x04042a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 4], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x050402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 5 + WORD $0x8949; BYTE $0xff // mov r15, rdi + QUAD $0x06043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 6 + QUAD $0x07040a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 4], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08043a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 4], 8 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x090432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 4], 9 + QUAD $0x0a0402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 10 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0b0402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 11 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0c040a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 4], 12 + QUAD $0x0d0422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 4], 13 + QUAD $0x0e041a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 4], 14 + QUAD $0x0f0432442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 4], 15 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0104325c2011e3c4 // vpinsrb xmm3, xmm13, byte [rdx + rsi + 4], 1 + QUAD $0x02040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 2 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x03041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 3 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0404225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 4], 4 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x05040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0604325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 6 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x07041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 7 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x08040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 9 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0a040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 10 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0b04325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 11 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0c040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 13 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x0e04125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 15 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x010512642009a3c4 // vpinsrb xmm4, xmm14, byte [rdx + r10 + 5], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 2 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x03050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 3 + QUAD $0x04052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 4 + QUAD $0x050502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 5 + QUAD $0x06053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 6 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x07050a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 5], 7 + QUAD $0x08053a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 5], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 9 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x0a052a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 5], 10 + QUAD $0x0b0502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 11 + QUAD $0x000000a824848b4c // mov r8, qword [rsp + 168] + QUAD $0x0c0502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 12 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0d0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0105026c2049e3c4 // vpinsrb xmm5, xmm6, byte [rdx + rax + 5], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0205026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 2 + QUAD $0x03051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 3 + QUAD $0x0405226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 5], 4 + QUAD $0x05050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 5 + QUAD $0x0605326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 5], 6 + QUAD $0x07051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 7 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x08050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0905026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 10 + QUAD $0x0b05326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f0502442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 5], 15 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xe66ef9c5 // vmovd xmm4, esi + QUAD $0x010612442019a3c4 // vpinsrb xmm0, xmm12, byte [rdx + r10 + 6], 1 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x020632442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 6], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x030602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x050632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 5 + QUAD $0x06063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 6 + QUAD $0x07060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 7 + QUAD $0x08063a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 6], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 9 + QUAD $0x0a062a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 6], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 11 + QUAD $0x0c0602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 12 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x0d0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 15 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0106126c2041a3c4 // vpinsrb xmm5, xmm7, byte [rdx + r10 + 6], 1 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x02061a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 6], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0306326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 3 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0406326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 4 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0506326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 5 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x06061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 6 + QUAD $0x0706226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 7 + QUAD $0x08060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x09063a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 6], 9 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0a061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 10 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0b060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 11 + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + QUAD $0x0c06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 12 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0d062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 13 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x0e061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 14 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0f061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 15 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x01071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 1 + QUAD $0x020732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x03071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 3 + QUAD $0x040702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 4 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x050702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x060702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x070702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 7 + QUAD $0x08073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 8 + QUAD $0x09070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 11 + QUAD $0x0c0702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 12 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0d0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 14 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x0f070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 15 + QUAD $0x0107124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 7], 1 + QUAD $0x02071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x03070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 3 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x04070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 4 + QUAD $0x0507324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x06070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 6 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x07070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 7 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x08070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 8 + QUAD $0x09073a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 7], 9 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0a070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 10 + QUAD $0x0b070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 11 + QUAD $0x0c07224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 12 + QUAD $0x0d072a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e070a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rcx + 7], 14 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f070a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x0b // movzx esi, byte [rdx + rcx + 11] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x01080a442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rcx + 8], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 2 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x03082a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 8], 3 + QUAD $0x040832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 8], 4 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x05080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 5 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x060832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x070832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 7 + QUAD $0x08083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 8 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x090802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 9 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0a0812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b0832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 8], 11 + QUAD $0x0c081a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 8], 12 + QUAD $0x0d0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 8], 14 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x0f080a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 8], 15 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x01081a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r11 + 8], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x0208326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0308326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 3 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0408326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 4 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x05081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 5 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x06083a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 8], 6 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x0708226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 7 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0808326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 9 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0a081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 10 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0b081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 11 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0c081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 12 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0d08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 13 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + QUAD $0x0e08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 14 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0f081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 15 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x01091a742039e3c4 // vpinsrb xmm6, xmm8, byte [rdx + rbx + 9], 1 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x02091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 2 + QUAD $0x03092a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r13 + 9], 3 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x04091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 4 + QUAD $0x05090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x06090a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 9], 6 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x07091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 7 + QUAD $0x08093a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 9], 8 + QUAD $0x090902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 9 + QUAD $0x0a0912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 11 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0c093a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 9], 12 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0d093a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 9], 13 + QUAD $0x0e0902742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 9], 14 + QUAD $0x0f090a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 9], 15 + QUAD $0x01091a7c2021a3c4 // vpinsrb xmm7, xmm11, byte [rdx + r11 + 9], 1 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x02090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0309027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 3 + QUAD $0x0409327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0509027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 5 + QUAD $0x06093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 6 + QUAD $0x0709227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 9], 7 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x08093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0909027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 10 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0b09227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 9], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + QUAD $0x0e09327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0f09326c2041a3c4 // vpinsrb xmm5, xmm7, byte [rdx + r14 + 9], 15 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00048024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm5 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xee6ef9c5 // vmovd xmm5, esi + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x010a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 1 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x020a2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 10], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x030a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 3 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x040a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x050a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 5 + QUAD $0x060a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x070a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 7 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x080a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x090a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a0a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 10 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + QUAD $0x0b0a1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 10], 11 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0c0a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 12 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x0d0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 15 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x010a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 1 + QUAD $0x020a0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 10], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x030a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 3 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x040a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 4 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x050a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 5 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x060a0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 10], 6 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x080a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x090a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 9 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0a0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 10 + QUAD $0x0b0a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 11 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0c0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 13 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x0e0a22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 10], 14 + QUAD $0x0f0a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 15 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + QUAD $0x010b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 1 + QUAD $0x020b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 2 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x030b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 3 + QUAD $0x040b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 4 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x050b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 5 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x060b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 6 + QUAD $0x070b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 7 + QUAD $0x080b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x090b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 10 + QUAD $0x0b0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 11 + QUAD $0x0c0b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 12 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x0d0b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 14 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x0f0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 15 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x010b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x020b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 2 + QUAD $0x030b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 3 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x040b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 4 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x050b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 5 + QUAD $0x060b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 11], 6 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x070b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 7 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x080b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 8 + QUAD $0x090b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 9 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0a0b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0b0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 11 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0c0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 12 + QUAD $0x0d0b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000460249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm3 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 14 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x0a74b60f; BYTE $0x0d // movzx esi, byte [rdx + rcx + 13] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0f0b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000440248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x0d // movzx esi, byte [rdx + rcx + 13] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x010c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x020c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 2 + QUAD $0x030c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 12], 3 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x040c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 12], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x050c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 5 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x060c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 6 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x070c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x080c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 12], 8 + QUAD $0x090c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 12], 9 + QUAD $0x0a0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b0c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 11 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0c0c3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 12], 12 + QUAD $0x0d0c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 12], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f0c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 15 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x010c02542051a3c4 // vpinsrb xmm2, xmm5, byte [rdx + r8 + 12], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x020c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 2 + QUAD $0x030c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 3 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x040c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 4 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x050c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 5 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x060c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 6 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x070c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 7 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x080c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x090c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 9 + QUAD $0x0a0c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 10 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + LONG $0x246c8b4c; BYTE $0x08 // mov r13, qword [rsp + 8] + QUAD $0x0c0c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 13 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + QUAD $0x0e0c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 14 + QUAD $0x0f0c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 15 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x010d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 1 + QUAD $0x020d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 2 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x030d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 3 + QUAD $0x040d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 4 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x050d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x060d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 6 + QUAD $0x070d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 7 + QUAD $0x080d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 13], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x090d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 9 + QUAD $0x0a0d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 11 + QUAD $0x0c0d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 13], 12 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0d0d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 13], 14 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0f0d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 13], 15 + QUAD $0x010d024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x030d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 3 + QUAD $0x040d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 4 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x050d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x060d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x070d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x080d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x090d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 9 + QUAD $0x0a0d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 10 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x0b0d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 11 + LONG $0x24748b4c; BYTE $0x08 // mov r14, qword [rsp + 8] + QUAD $0x0c0d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d0d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 13 + QUAD $0x0e0d2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x0f0d22442071a3c4 // vpinsrb xmm0, xmm1, byte [rdx + r12 + 13], 15 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + LONG $0x3274b60f; BYTE $0x0e // movzx esi, byte [rdx + rsi + 14] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x0e // movzx esi, byte [rdx + rsi + 14] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x010e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 1 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x020e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x030e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x040e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 4 + QUAD $0x050e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 5 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x060e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 6 + QUAD $0x070e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x080e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 8 + QUAD $0x090e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b0e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 11 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0c0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 12 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0d0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 13 + QUAD $0x0e0e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 14 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x0f0e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 15 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x010e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 14], 1 + QUAD $0x020e02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 14], 2 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x030e02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 14], 3 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x040e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 14], 4 + QUAD $0x050e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 14], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x060e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 14], 6 + QUAD $0x070e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 7 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x080e1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 14], 8 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x090e2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 14], 9 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0a0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 10 + QUAD $0x0b0e3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 14], 11 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x0c0e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d0e1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 14], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 14 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0f0e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 14], 15 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + LONG $0x3274b60f; BYTE $0x0f // movzx esi, byte [rdx + rsi + 15] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x010f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 1 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x020f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x030f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x040f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x050f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 5 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x060f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 6 + QUAD $0x070f12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 15], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x080f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 8 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x090f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a0f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 10 + QUAD $0x0b0f22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 15], 11 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0c0f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 15], 12 + QUAD $0x0d0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e0f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 14 + QUAD $0x0f0f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x0f // movzx esi, byte [rdx + rsi + 15] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x010f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x020f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 2 + QUAD $0x030f025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 15], 3 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x040f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 4 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x050f025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 15], 5 + QUAD $0x060f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x070f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 7 + QUAD $0x080f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 8 + QUAD $0x090f2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 15], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 10 + QUAD $0x0b0f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 11 + QUAD $0x0c0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 12 + QUAD $0x0d0f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 13 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + QUAD $0x0e0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 14 + QUAD $0x0f0f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 15 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + LONG $0x74b60f42; WORD $0x103a // movzx esi, byte [rdx + r15 + 16] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x011002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 1 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x021032442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 16], 2 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x03103a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 16], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x051002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x061002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 11 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0c1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 12 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0d101a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 16], 13 + QUAD $0x0e100a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 16], 14 + QUAD $0x0f100a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 16], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x10 // movzx esi, byte [rdx + rax + 16] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x02100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x03100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 3 + QUAD $0x0410124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 4 + QUAD $0x0510024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 16], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x06100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 6 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x07100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 7 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x08100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 8 + QUAD $0x09102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 9 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0a100a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 16], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0b100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 11 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0c100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 13 + QUAD $0x0e101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 14 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x0f10224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + LONG $0x74b60f42; WORD $0x113a // movzx esi, byte [rdx + r15 + 17] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x01113a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 17], 1 + QUAD $0x021132542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 17], 2 + QUAD $0x03113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x051132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 5 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x061112542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 17], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x071132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 7 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x081102542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 17], 8 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x09111a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 17], 9 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x0a1132542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 17], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 11 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0c1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 12 + QUAD $0x0d111a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 17], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e111a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 17], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1132542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 17], 15 + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0111225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 17], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0211025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0311025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 3 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0411025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0511025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0611025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0711025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 7 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0811025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0911325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 9 + QUAD $0x0a110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 10 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x0b11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 11 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x0f112a442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r13 + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x0a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rcx + 18] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x01123a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 18], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 2 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x03122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 3 + QUAD $0x04123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 4 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x05120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 5 + QUAD $0x061212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x071232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 7 + QUAD $0x081202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 18], 8 + QUAD $0x09121a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 18], 9 + QUAD $0x0a1232442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 18], 10 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0b1202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 18], 11 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x0c120a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 18], 12 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0d1212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 13 + QUAD $0x0e121a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 18], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1232442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 18], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x12 // movzx esi, byte [rdx + rsi + 18] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0112224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 1 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x02121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 2 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0312224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 3 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x04123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 4 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0512324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 5 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x06123a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 18], 6 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0712324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 7 + QUAD $0x0812024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0912024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 10 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0b12324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 15 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x13 // movzx esi, byte [rdx + rax + 19] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x011302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 1 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x021332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 2 + QUAD $0x03132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041332542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 19], 4 + QUAD $0x05130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x06130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 6 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x07132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 10 + QUAD $0x0b1302542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 19], 11 + QUAD $0x0c130a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 19], 12 + QUAD $0x0d1312542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 19], 13 + QUAD $0x0e131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 14 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0f131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 15 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x13 // movzx esi, byte [rdx + rcx + 19] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0113125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 1 + QUAD $0x02131a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 19], 2 + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x0313225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 3 + QUAD $0x04133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 4 + WORD $0x8949; BYTE $0xfb // mov r11, rdi + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0513225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 5 + QUAD $0x06133a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 19], 6 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x07130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 7 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x08133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x09130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 9 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0a13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 10 + QUAD $0x0b13325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 11 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + LONG $0x74b60f42; WORD $0x143a // movzx esi, byte [rdx + r15 + 20] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x021402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x031402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x051402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x061402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 6 + QUAD $0x07142a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 20], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 11 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0c1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 12 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0d1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 20], 14 + QUAD $0x0f141a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 20], 15 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + LONG $0x1a74b60f; BYTE $0x14 // movzx esi, byte [rdx + rbx + 20] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0114124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 1 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x0214324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 20], 2 + QUAD $0x0314024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 20], 3 + QUAD $0x04141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 4 + QUAD $0x0514224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 20], 5 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0614124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 6 + QUAD $0x07140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 7 + QUAD $0x08143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 8 + QUAD $0x09140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 9 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0a140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 10 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0b14224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 20], 11 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0c143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d14024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 13 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + QUAD $0x0e141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 14 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0f140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 15 + LONG $0x74b60f42; WORD $0x153a // movzx esi, byte [rdx + r15 + 21] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x011532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 1 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x021502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 2 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x03152a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 21], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x051532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 5 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + QUAD $0x06153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x071532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x081532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 8 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x091532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 11 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0c1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 12 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x0d1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 15 + LONG $0x1a74b60f; BYTE $0x15 // movzx esi, byte [rdx + rbx + 21] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0115325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 1 + QUAD $0x0215325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 21], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0315325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 3 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0415325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 4 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0515325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 5 + QUAD $0x0615125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 6 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x0715125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0815325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0915325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 9 + QUAD $0x0a150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 10 + QUAD $0x0b15225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 21], 11 + QUAD $0x0c153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 12 + QUAD $0x0d15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 13 + QUAD $0x0e151a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x0f150a442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r9 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x011602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 1 + QUAD $0x021602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 22], 2 + QUAD $0x03162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 3 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x04160a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 22], 4 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x051622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 5 + QUAD $0x06163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 6 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x07161a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 22], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 9 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0a1602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 22], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b160a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 22], 11 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0c160a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 22], 12 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x0d160a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 22], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e160a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 22], 14 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x0f161a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 22], 15 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x16 // movzx esi, byte [rdx + rcx + 22] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x01160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 1 + QUAD $0x0216324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x03160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 3 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x04160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 4 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x05160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x06160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 6 + QUAD $0x0716124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 22], 7 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x08160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 9 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0a160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 10 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x0b163a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 22], 11 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0c160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 14 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0f162a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 22], 15 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + LONG $0x3274b60f; BYTE $0x17 // movzx esi, byte [rdx + rsi + 23] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x011732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 1 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x021732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x031732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 3 + QUAD $0x04170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 4 + QUAD $0x051722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 23], 5 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x06170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 6 + QUAD $0x07171a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 23], 7 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x08173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 8 + QUAD $0x091702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 9 + QUAD $0x0a1702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 23], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 11 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0c1702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 12 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0d1702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e171a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 23], 14 + QUAD $0x0f171a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 23], 15 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x1702 // movzx esi, byte [rdx + r8 + 23] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0117025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 23], 1 + QUAD $0x0217325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 2 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x0317325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 3 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x04171a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 23], 4 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x05173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0617325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 6 + QUAD $0x0717125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0817325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0917325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 9 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0a17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 10 + QUAD $0x0b173a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 23], 11 + QUAD $0x0c170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 13 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 14 + QUAD $0x0f172a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x0a74b60f; BYTE $0x18 // movzx esi, byte [rdx + rcx + 24] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x01182a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 24], 1 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x021832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x031832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x051832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 5 + QUAD $0x06180a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 24], 6 + QUAD $0x071822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x081832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 8 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x091822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 11 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0c1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 12 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x0d1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 13 + QUAD $0x0e181a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 24], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 15 + LONG $0x74b60f42; WORD $0x1802 // movzx esi, byte [rdx + r8 + 24] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0118024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 1 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x02180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 2 + QUAD $0x0318324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 3 + QUAD $0x04181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 4 + QUAD $0x05183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0618024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 6 + QUAD $0x0718124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 7 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0818024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 8 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0918124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 9 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0a183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 10 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x0b18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 11 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 13 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x0e18024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 15 + LONG $0x0a74b60f; BYTE $0x19 // movzx esi, byte [rdx + rcx + 25] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x01192a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 25], 1 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x02192a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 25], 2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x03191a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 25], 3 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x04191a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 25], 4 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x05190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x06190a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 25], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x071932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 7 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x081932542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 25], 8 + QUAD $0x091922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b1922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 11 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0c1932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 12 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x0d193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e1932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 14 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0f1932542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 25], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x19 // movzx esi, byte [rdx + rsi + 25] + LONG $0xde6ef9c5 // vmovd xmm3, esi + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0119325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 1 + QUAD $0x02190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0319325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 3 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0419325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 4 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0519325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0619325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 6 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0719325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 7 + QUAD $0x0819025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 8 + QUAD $0x0919125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 9 + QUAD $0x0a193a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 25], 10 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0b190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 11 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0c19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 13 + QUAD $0x0e19025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1902442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rax + 25], 15 + LONG $0x387d63c4; WORD $0x01c2 // vinserti128 ymm8, ymm0, xmm2, 1 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + LONG $0x74b60f42; WORD $0x1a3a // movzx esi, byte [rdx + r15 + 26] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x011a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 1 + QUAD $0x021a2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 26], 2 + QUAD $0x031a1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 26], 3 + QUAD $0x041a1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 26], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x051a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 5 + QUAD $0x061a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 6 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 7 + QUAD $0x081a32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 26], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 10 + QUAD $0x0b1a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 11 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0c1a1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 26], 12 + QUAD $0x0d1a3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 26], 13 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x0e1a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 14 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0f1a02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 26], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x1a // movzx esi, byte [rdx + rax + 26] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x011a1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 26], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x021a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x031a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 3 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x041a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x051a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 5 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x061a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x071a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x081a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 8 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x091a324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 26], 9 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0a1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 10 + QUAD $0x0b1a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 11 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 12 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x0d1a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 15 + LONG $0x74b60f42; WORD $0x1b3a // movzx esi, byte [rdx + r15 + 27] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x011b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 27], 1 + QUAD $0x021b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 27], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x031b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 4 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x051b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 5 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x061b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 6 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x071b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x081b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 8 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x091b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b1b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 11 + QUAD $0x0c1b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 27], 12 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x0d1b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 27], 13 + QUAD $0x0e1b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 27], 14 + QUAD $0x0f1b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 15 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x1b22 // movzx esi, byte [rdx + r12 + 27] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x011b1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 27], 1 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x021b1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 27], 2 + QUAD $0x031b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 3 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x041b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 4 + QUAD $0x051b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 5 + QUAD $0x061b125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 27], 6 + QUAD $0x071b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 7 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x081b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 8 + QUAD $0x091b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 9 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0a1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0b1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 11 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0c1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 12 + QUAD $0x0d1b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 13 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x0e1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + LONG $0x0a74b60f; BYTE $0x1c // movzx esi, byte [rdx + rcx + 28] + LONG $0xc66ef9c5 // vmovd xmm0, esi + QUAD $0x011c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 1 + QUAD $0x021c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 28], 2 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x031c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x041c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 4 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x051c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 28], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x061c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 6 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x071c32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 28], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x081c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x091c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 9 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0a1c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 28], 10 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0b1c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 11 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0c1c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 12 + QUAD $0x0d1c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e1c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 28], 14 + QUAD $0x0f1c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 15 + LONG $0x74b60f42; WORD $0x1c22 // movzx esi, byte [rdx + r12 + 28] + LONG $0xce6ef9c5 // vmovd xmm1, esi + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x011c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 1 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x021c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 2 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x041c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 4 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x051c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 5 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x061c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 6 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x071c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 7 + QUAD $0x081c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x091c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 9 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0a1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 10 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0b1c1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 28], 11 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 13 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0e1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f1c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 15 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x0274b60f; BYTE $0x1d // movzx esi, byte [rdx + rax + 29] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x011d32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 29], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x021d02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 29], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x031d02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 29], 3 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x041d32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 29], 4 + QUAD $0x051d2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 29], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x061d02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 29], 6 + QUAD $0x071d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081d02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 29], 8 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x091d32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 29], 9 + QUAD $0x0a1d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 10 + QUAD $0x0b1d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 11 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0c1d32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 29], 12 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0d1d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1d02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 29], 14 + QUAD $0x0f1d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 15 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x1d2a // movzx esi, byte [rdx + r13 + 29] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x011d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 29], 1 + QUAD $0x021d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 2 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x031d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 29], 3 + QUAD $0x041d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 4 + QUAD $0x051d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 5 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x061d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 6 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x071d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 7 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x081d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 8 + QUAD $0x091d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 29], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 10 + QUAD $0x0b1d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 29], 11 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0c1d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 29], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d1d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 29], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e1d02642061e3c4 // vpinsrb xmm4, xmm3, byte [rdx + rax + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1d02442059e3c4 // vpinsrb xmm0, xmm4, byte [rdx + rax + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + LONG $0x74b60f42; WORD $0x1e3a // movzx esi, byte [rdx + r15 + 30] + LONG $0xc66ef9c5 // vmovd xmm0, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x011e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 1 + LONG $0x74b60f42; WORD $0x1f3a // movzx esi, byte [rdx + r15 + 31] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x051e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 5 + QUAD $0x051f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x061e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 6 + QUAD $0x061f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 6 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 9 + QUAD $0x091f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 10 + QUAD $0x0a1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 11 + QUAD $0x0b1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 11 + QUAD $0x0c1e32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 30], 12 + QUAD $0x0c1f324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 31], 12 + QUAD $0x0d1e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 30], 13 + QUAD $0x0d1f124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 31], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 14 + QUAD $0x0e1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 14 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0f1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542071e3c4 // vpinsrb xmm2, xmm1, byte [rdx + rax + 31], 15 + LONG $0x44b60f42; WORD $0x1e2a // movzx eax, byte [rdx + r13 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x011e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 30], 1 + LONG $0x44b60f42; WORD $0x1f2a // movzx eax, byte [rdx + r13 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f027c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r8 + 31], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x021e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 2 + QUAD $0x021f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 2 + QUAD $0x031e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 30], 3 + QUAD $0x031f227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 31], 3 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x041e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 4 + QUAD $0x041f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 5 + QUAD $0x061e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 30], 6 + QUAD $0x061f0a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 31], 6 + QUAD $0x071e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 30], 7 + QUAD $0x071f1a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 31], 7 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + QUAD $0x0c1e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 30], 12 + QUAD $0x0c1f1a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 31], 12 + QUAD $0x0d1e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 30], 13 + QUAD $0x0d1f0a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 31], 13 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 15 + QUAD $0x0f1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00010024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 256], ymm0 + QUAD $0x00024024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 576] + QUAD $0x0004e0249464fdc5; BYTE $0x00 // vpcmpgtb ymm2, ymm0, yword [rsp + 1248] + LONG $0x4d6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword 0[rbp] /* [rip + .LCPI8_0] */ + LONG $0xf9dbedc5 // vpand ymm7, ymm2, ymm1 + LONG $0xdaf845c5 // vpsubb ymm11, ymm7, ymm2 + LONG $0x647dc1c4; BYTE $0xff // vpcmpgtb ymm7, ymm0, ymm15 + LONG $0xf9dbc5c5 // vpand ymm7, ymm7, ymm1 + QUAD $0x00022024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 544] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI8_1] */ + LONG $0xe6db1dc5 // vpand ymm12, ymm12, ymm6 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x0001c024bc64fdc5; BYTE $0x00 // vpcmpgtb ymm7, ymm0, yword [rsp + 448] + LONG $0x556ffdc5; BYTE $0x40 // vmovdqa ymm2, yword 64[rbp] /* [rip + .LCPI8_2] */ + LONG $0xfadbc5c5 // vpand ymm7, ymm7, ymm2 + LONG $0x647d41c4; BYTE $0xe6 // vpcmpgtb ymm12, ymm0, ymm14 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI8_3] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0001a024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 416] + QUAD $0x00000080ad6f7dc5 // vmovdqa ymm13, yword 128[rbp] /* [rip + .LCPI8_4] */ + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0x6f7d41c4; BYTE $0xf5 // vmovdqa ymm14, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xdfeb25c5 // vpor ymm11, ymm11, ymm7 + QUAD $0x00020024bc64fdc5; BYTE $0x00 // vpcmpgtb ymm7, ymm0, yword [rsp + 512] + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI8_5] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x0004c024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 1216] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + QUAD $0x000000c0bd6f7dc5 // vmovdqa ymm15, yword 192[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xefeb25c5 // vpor ymm13, ymm11, ymm7 + QUAD $0x00048024bc64fdc5; BYTE $0x00 // vpcmpgtb ymm7, ymm0, yword [rsp + 1152] + LONG $0xe1db45c5 // vpand ymm12, ymm7, ymm1 + LONG $0xfff89dc5 // vpsubb ymm7, ymm12, ymm7 + QUAD $0x0004a024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 1184] + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + QUAD $0x000460249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 1120] + LONG $0xdedb25c5 // vpand ymm11, ymm11, ymm6 + LONG $0xeb1d41c4; BYTE $0xdb // vpor ymm11, ymm12, ymm11 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000440249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 1088] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x00042024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 1056] + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + QUAD $0x00040024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 1024] + LONG $0xdb1d41c4; BYTE $0xe6 // vpand ymm12, ymm12, ymm14 + LONG $0x6f7dc1c4; BYTE $0xde // vmovdqa ymm3, ymm14 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x0003c0249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 960] + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + QUAD $0x0003e024a4647dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm0, yword [rsp + 992] + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0xdb1d41c4; BYTE $0xe7 // vpand ymm12, ymm12, ymm15 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xe7eb25c5 // vpor ymm12, ymm11, ymm7 + QUAD $0x00038024bc64fdc5; BYTE $0x00 // vpcmpgtb ymm7, ymm0, yword [rsp + 896] + LONG $0xd9db45c5 // vpand ymm11, ymm7, ymm1 + LONG $0xfff8a5c5 // vpsubb ymm7, ymm11, ymm7 + QUAD $0x0003a0249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 928] + LONG $0xd9db25c5 // vpand ymm11, ymm11, ymm1 + QUAD $0x00034024b4647dc5; BYTE $0x00 // vpcmpgtb ymm14, ymm0, yword [rsp + 832] + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + QUAD $0x000360249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 864] + LONG $0xdadb25c5 // vpand ymm11, ymm11, ymm2 + QUAD $0x00030024b4647dc5; BYTE $0x00 // vpcmpgtb ymm14, ymm0, yword [rsp + 768] + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + QUAD $0x00032024b4647dc5; BYTE $0x00 // vpcmpgtb ymm14, ymm0, yword [rsp + 800] + LONG $0xf3db0dc5 // vpand ymm14, ymm14, ymm3 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xffeba5c5 // vpor ymm7, ymm11, ymm7 + LONG $0x647d41c4; BYTE $0xd2 // vpcmpgtb ymm10, ymm0, ymm10 + LONG $0xf56f7dc5 // vmovdqa ymm14, ymm5 + LONG $0xd5db2dc5 // vpand ymm10, ymm10, ymm5 + QUAD $0x0002e0249c647dc5; BYTE $0x00 // vpcmpgtb ymm11, ymm0, yword [rsp + 736] + LONG $0x7125c1c4; WORD $0x07f3 // vpsllw ymm11, ymm11, 7 + LONG $0xdb2541c4; BYTE $0xdf // vpand ymm11, ymm11, ymm15 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + LONG $0x647d41c4; BYTE $0xc0 // vpcmpgtb ymm8, ymm0, ymm8 + LONG $0xd1db3dc5 // vpand ymm10, ymm8, ymm1 + LONG $0xf82d41c4; BYTE $0xc0 // vpsubb ymm8, ymm10, ymm8 + LONG $0x647d41c4; BYTE $0xc9 // vpcmpgtb ymm9, ymm0, ymm9 + LONG $0xc9db35c5 // vpand ymm9, ymm9, ymm1 + QUAD $0x00026024ac64fdc5; BYTE $0x00 // vpcmpgtb ymm5, ymm0, yword [rsp + 608] + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + LONG $0xedebb5c5 // vpor ymm5, ymm9, ymm5 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x00028024b464fdc5; BYTE $0x00 // vpcmpgtb ymm6, ymm0, yword [rsp + 640] + LONG $0xf2dbcdc5 // vpand ymm6, ymm6, ymm2 + QUAD $0x0002c0249c64fdc5; BYTE $0x00 // vpcmpgtb ymm3, ymm0, yword [rsp + 704] + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebcdc5 // vpor ymm3, ymm6, ymm3 + QUAD $0x0002a024a464fdc5; BYTE $0x00 // vpcmpgtb ymm4, ymm0, yword [rsp + 672] + QUAD $0x00000080a5dbddc5 // vpand ymm4, ymm4, yword 128[rbp] /* [rip + .LCPI8_4] */ + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000120248c64fdc5; BYTE $0x00 // vpcmpgtb ymm1, ymm0, yword [rsp + 288] + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + QUAD $0x000100249464fdc5; BYTE $0x00 // vpcmpgtb ymm2, ymm0, yword [rsp + 256] + LONG $0xf271edc5; BYTE $0x07 // vpsllw ymm2, ymm2, 7 + LONG $0xd2db85c5 // vpand ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x6015c1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm13, ymm12 + LONG $0x6815c1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm13, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8f44; BYTE $0x60 // vmovdqu yword [r15 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8f54; BYTE $0x40 // vmovdqu yword [r15 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8f64; BYTE $0x20 // vmovdqu yword [r15 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8f0c // vmovdqu yword [r15 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB8_181 + QUAD $0x0000016824ac8b4c // mov r13, qword [rsp + 360] + QUAD $0x0000018024ac3b4c // cmp r13, qword [rsp + 384] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + QUAD $0x0000017024a48b4c // mov r12, qword [rsp + 368] + JNE LBB8_38 + JMP LBB8_130 + +LBB8_183: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x000001f824848948 // mov qword [rsp + 504], rax + QUAD $0x0000016824bc894c // mov qword [rsp + 360], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000016024848948 // mov qword [rsp + 352], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + WORD $0xc031 // xor eax, eax + QUAD $0x000000e8249c894c // mov qword [rsp + 232], r11 + +LBB8_184: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xe86ef9c5 // vmovd xmm5, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x3a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rdi + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001a0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 416], xmm1 + LONG $0x3a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rdi + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x3a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rdi + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000200248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 512], xmm1 + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x3a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rdi + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x3a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rdi + 6] + QUAD $0x000000c824bc8948 // mov qword [rsp + 200], rdi + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x3a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rdi + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02200d48; WORD $0x0000 // or rax, 544 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02800d48; WORD $0x0000 // or rax, 640 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0xa0c98149; WORD $0x0002; BYTE $0x00 // or r9, 672 + LONG $0x244c894c; BYTE $0x28 // mov qword [rsp + 40], r9 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02e00d48; WORD $0x0000 // or rax, 736 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03000d48; WORD $0x0000 // or rax, 768 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x0000010024848948 // mov qword [rsp + 256], rax + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x20cb8149; WORD $0x0003; BYTE $0x00 // or r11, 800 + LONG $0x245c894c; BYTE $0x78 // mov qword [rsp + 120], r11 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x40ca8149; WORD $0x0003; BYTE $0x00 // or r10, 832 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x60c88149; WORD $0x0003; BYTE $0x00 // or r8, 864 + QUAD $0x000000d82484894c // mov qword [rsp + 216], r8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x80cf8149; WORD $0x0003; BYTE $0x00 // or r15, 896 + LONG $0x247c894c; BYTE $0x58 // mov qword [rsp + 88], r15 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0xa0ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 928 + QUAD $0x0000008824b48948 // mov qword [rsp + 136], rsi + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e0248c8948 // mov qword [rsp + 224], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x38 // mov qword [rsp + 56], rcx + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + LONG $0x206123c4; WORD $0x220c; BYTE $0x01 // vpinsrb xmm9, xmm3, byte [rdx + r12], 1 + LONG $0x2031e3c4; WORD $0x1a1c; BYTE $0x02 // vpinsrb xmm3, xmm9, byte [rdx + rbx], 2 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + rbx], 3 + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r14], 4 + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r9], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + rbx], 6 + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 7 + LONG $0x2061a3c4; WORD $0x2a1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + r13], 8 + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + r11], 9 + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + r10], 10 + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + r8], 11 + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + r15], 12 + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rsi], 13 + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rax], 14 + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + rcx], 15 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + LONG $0x2059a3c4; WORD $0x3224; BYTE $0x01 // vpinsrb xmm4, xmm4, byte [rdx + r14], 1 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + LONG $0x2059a3c4; WORD $0x1224; BYTE $0x02 // vpinsrb xmm4, xmm4, byte [rdx + r10], 2 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + LONG $0x2059a3c4; WORD $0x1a24; BYTE $0x03 // vpinsrb xmm4, xmm4, byte [rdx + r11], 3 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + LONG $0x2059a3c4; WORD $0x2224; BYTE $0x04 // vpinsrb xmm4, xmm4, byte [rdx + r12], 4 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + LONG $0x2059a3c4; WORD $0x0224; BYTE $0x05 // vpinsrb xmm4, xmm4, byte [rdx + r8], 5 + LONG $0x244c8b4c; BYTE $0x08 // mov r9, qword [rsp + 8] + LONG $0x2059a3c4; WORD $0x0a24; BYTE $0x06 // vpinsrb xmm4, xmm4, byte [rdx + r9], 6 + LONG $0x247c8b4c; BYTE $0x18 // mov r15, qword [rsp + 24] + LONG $0x2059a3c4; WORD $0x3a24; BYTE $0x07 // vpinsrb xmm4, xmm4, byte [rdx + r15], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + LONG $0x2059e3c4; WORD $0x3224; BYTE $0x08 // vpinsrb xmm4, xmm4, byte [rdx + rsi], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + LONG $0x2059e3c4; WORD $0x0224; BYTE $0x09 // vpinsrb xmm4, xmm4, byte [rdx + rax], 9 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + LONG $0x2059e3c4; WORD $0x1a24; BYTE $0x0a // vpinsrb xmm4, xmm4, byte [rdx + rbx], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + LONG $0x2059e3c4; WORD $0x0a24; BYTE $0x0b // vpinsrb xmm4, xmm4, byte [rdx + rcx], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + LONG $0x2059e3c4; WORD $0x3a24; BYTE $0x0c // vpinsrb xmm4, xmm4, byte [rdx + rdi], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + LONG $0x2059e3c4; WORD $0x3a24; BYTE $0x0d // vpinsrb xmm4, xmm4, byte [rdx + rdi], 13 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + LONG $0x2059e3c4; WORD $0x3a24; BYTE $0x0e // vpinsrb xmm4, xmm4, byte [rdx + rdi], 14 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + LONG $0x2059e3c4; WORD $0x3a24; BYTE $0x0f // vpinsrb xmm4, xmm4, byte [rdx + rdi], 15 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 1 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x02013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 2 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x03013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 3 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x04012a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 1], 4 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x05013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x06013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 6 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x07013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 7 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x08013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 8 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x09012a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 1], 9 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x0a012a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 1], 10 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x0b013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 12 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0d013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 14 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0f013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 15 + QUAD $0x010132742029a3c4 // vpinsrb xmm6, xmm10, byte [rdx + r14 + 1], 1 + QUAD $0x020112742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 1], 2 + QUAD $0x03011a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 1], 3 + QUAD $0x040122742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 1], 4 + QUAD $0x050102742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 1], 5 + QUAD $0x06010a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 1], 6 + QUAD $0x07013a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 1], 7 + QUAD $0x080132742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 1], 8 + QUAD $0x090102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 9 + QUAD $0x0a011a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 1], 10 + QUAD $0x0b010a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 14 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x0004e0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f01025c2049e3c4 // vpinsrb xmm3, xmm6, byte [rdx + rax + 1], 15 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xce6e79c5 // vmovd xmm9, esi + LONG $0x3865e3c4; WORD $0x01dd // vinserti128 ymm3, ymm3, xmm5, 1 + QUAD $0x000220249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm3 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x08 // movzx esi, byte [rdx + rax + 8] + LONG $0xd66e79c5 // vmovd xmm10, esi + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x01021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 1 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x02020a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 2], 2 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0302025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 2], 3 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0402025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0502025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 6 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0702025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0802025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 8 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0902225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 9 + QUAD $0x0a022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 10 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x0b021a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 2], 11 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0c02325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 2], 12 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x0d023a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 2], 13 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0e02125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 2], 14 + QUAD $0x0f023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0001a024a46ff9c5; BYTE $0x00 // vmovdqa xmm4, oword [rsp + 416] + QUAD $0x010202642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 2], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x020232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x030232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x040232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x060232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x070232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x08023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 8 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x09023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 9 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0a023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 10 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0b023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 13 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0e023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 14 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0f023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 15 + QUAD $0x01031a6c2021e3c4 // vpinsrb xmm5, xmm11, byte [rdx + rbx + 3], 1 + QUAD $0x02030a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 3], 2 + QUAD $0x0303026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 3], 3 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x04033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 4 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0503026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 3], 5 + QUAD $0x06030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 6 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x07033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 7 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x08030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 8 + QUAD $0x0903226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 3], 9 + QUAD $0x0a032a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 3], 10 + QUAD $0x0b031a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 3], 11 + QUAD $0x0c03326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 12 + QUAD $0x0d033a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 3], 13 + QUAD $0x0e03126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 3], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 15 + QUAD $0x010302742039e3c4 // vpinsrb xmm6, xmm8, byte [rdx + rax + 3], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 2 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x030312742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 3], 3 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x04030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x06030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 6 + QUAD $0x070332742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 3], 7 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x080332742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r14 + 3], 8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x09030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 9 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0a030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0b030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 12 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0d030a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 3], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x0001c0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0e030a5c2049e3c4 // vpinsrb xmm3, xmm6, byte [rdx + rcx + 3], 14 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + LONG $0x0a74b60f; BYTE $0x09 // movzx esi, byte [rdx + rcx + 9] + LONG $0xc66e79c5 // vmovd xmm8, esi + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0f03225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 3], 15 + LONG $0x3865e3c4; WORD $0x01dd // vinserti128 ymm3, ymm3, xmm5, 1 + QUAD $0x0001a0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm3 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x09 // movzx esi, byte [rdx + rcx + 9] + LONG $0xde6e79c5 // vmovd xmm11, esi + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x000200249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 512] + QUAD $0x01041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 1 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x02040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 2 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x03040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 3 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x04042a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 4], 4 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x0504025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 4], 5 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0604325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 6 + QUAD $0x07043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 7 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x08043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0904325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 9 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x0a040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b04325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 11 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0c04325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 12 + QUAD $0x0d043a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 4], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e04325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f04325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 4], 15 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x010432642001e3c4 // vpinsrb xmm4, xmm15, byte [rdx + rsi + 4], 1 + QUAD $0x020402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 2 + QUAD $0x030412642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 4], 3 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x040402642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 4], 4 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x050412642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 4], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x060432642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 4], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x070402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 7 + QUAD $0x080432642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 4], 8 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x09043a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 4], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a0402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 10 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0b0432642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 4], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 13 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0e0432642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 4], 14 + QUAD $0x0f0422642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 4], 15 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + QUAD $0x01051a6c2009e3c4 // vpinsrb xmm5, xmm14, byte [rdx + rbx + 5], 1 + QUAD $0x02051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 2 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x03051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 3 + QUAD $0x04052a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 5], 4 + QUAD $0x05050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0605026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 6 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0705026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 7 + QUAD $0x08053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 8 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x09051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 9 + QUAD $0x0a050a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 5], 10 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0d050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x010502742019e3c4 // vpinsrb xmm6, xmm12, byte [rdx + rax + 5], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 2 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x03050a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 5], 3 + QUAD $0x040502742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 5], 4 + QUAD $0x050512742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 5], 5 + QUAD $0x060532742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 5], 6 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x07050a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 5], 7 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x080512742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 5], 8 + QUAD $0x09053a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 5], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a0502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 10 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0b0522742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 5], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e0502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 14 + LONG $0x385d63c4; WORD $0x01fb // vinserti128 ymm15, ymm4, xmm3, 1 + QUAD $0x0f0532642049a3c4 // vpinsrb xmm4, xmm6, byte [rdx + r14 + 5], 15 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xe66e79c5 // vmovd xmm12, esi + LONG $0x385de3c4; WORD $0x01dd // vinserti128 ymm3, ymm4, xmm5, 1 + QUAD $0x000200249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm3 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x0a // movzx esi, byte [rdx + rax + 10] + LONG $0xe66ef9c5 // vmovd xmm4, esi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0106026c2011e3c4 // vpinsrb xmm5, xmm13, byte [rdx + rax + 6], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0206026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 2 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x03061a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 6], 3 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x04060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0506026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 5 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0606026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 6], 6 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x07063a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 6], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0806326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 8 + QUAD $0x09061a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 6], 9 + QUAD $0x0a062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b06026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c06026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d06326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 6], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e06026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 14 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x0f063a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 6], 15 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x01062a742041a3c4 // vpinsrb xmm6, xmm7, byte [rdx + r13 + 6], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x020632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x030632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x040632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x050632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 5 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x06061a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 6], 6 + QUAD $0x07060a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 6], 7 + QUAD $0x080612742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 6], 8 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x09060a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 6], 9 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0a0612742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 6], 10 + QUAD $0x0b0622742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 6], 11 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0c061a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 6], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 13 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0e061a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 6], 14 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x0f061a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 6], 15 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x010722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 7], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x020702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 2 + QUAD $0x030732542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 7], 3 + QUAD $0x04070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 4 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x05070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 5 + QUAD $0x060702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 6 + QUAD $0x07073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x080702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x090702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 12 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0d0722542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 7], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e073a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 7], 14 + QUAD $0x0f073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 15 + QUAD $0x01072a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 7], 1 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x02073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 2 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0307024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 7], 3 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x04073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 4 + QUAD $0x0507324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0607324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0707324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0807324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 8 + QUAD $0x09070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 9 + QUAD $0x0a07124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 7], 10 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0b07324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 7], 11 + QUAD $0x0c071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 12 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0d07324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 13 + LONG $0x384de3c4; WORD $0x01dd // vinserti128 ymm3, ymm6, xmm5, 1 + QUAD $0x0004c0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm3 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0e07326c2071e3c4 // vpinsrb xmm5, xmm1, byte [rdx + rsi + 7], 14 + WORD $0x8949; BYTE $0xf5 // mov r13, rsi + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + LONG $0x3274b60f; BYTE $0x0b // movzx esi, byte [rdx + rsi + 11] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0f071a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 7], 15 + LONG $0x3855e3c4; WORD $0x01d2 // vinserti128 ymm2, ymm5, xmm2, 1 + QUAD $0x0004a024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm2 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x0b // movzx esi, byte [rdx + rsi + 11] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01083a6c2031e3c4 // vpinsrb xmm5, xmm9, byte [rdx + rdi + 8], 1 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x02081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0308326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 3 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x04083a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 8], 4 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0508326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 5 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0608326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0708326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0808326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 8 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x09080a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 8], 9 + QUAD $0x0a080a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 8], 10 + QUAD $0x0b08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 12 + WORD $0x894d; BYTE $0xe2 // mov r10, r12 + QUAD $0x0d08226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e08026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f080a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 8], 15 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x01080a742029e3c4 // vpinsrb xmm6, xmm10, byte [rdx + rcx + 8], 1 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x02080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 2 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x030802742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 8], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x040832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x06080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 6 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x07080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 7 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x080802742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 8], 8 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x09081a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 8], 9 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0a080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 10 + QUAD $0x0b0832742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r14 + 8], 11 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0c0832742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r14 + 8], 12 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0d080a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rcx + 8], 13 + QUAD $0x0e082a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r13 + 8], 14 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x0f082a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r13 + 8], 15 + QUAD $0x01093a7c2039e3c4 // vpinsrb xmm7, xmm8, byte [rdx + rdi + 9], 1 + QUAD $0x02091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 2 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x03090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 3 + QUAD $0x04093a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r15 + 9], 4 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x05093a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rdi + 9], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x06091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 6 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x07091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 7 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x08091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 8 + QUAD $0x09090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0b090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 12 + QUAD $0x0d09127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 9], 13 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + QUAD $0x0e09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0109025c2021e3c4 // vpinsrb xmm3, xmm11, byte [rdx + rax + 9], 1 + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0209025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 2 + QUAD $0x0309225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 9], 3 + QUAD $0x0409325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 9], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0509025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 5 + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + QUAD $0x06093a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 9], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0709025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 7 + QUAD $0x0809025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 9], 8 + QUAD $0x09091a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 9], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 10 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x0b092a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 9], 11 + QUAD $0x0c09325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 9], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 14 + LONG $0x384de3c4; WORD $0x01ed // vinserti128 ymm5, ymm6, xmm5, 1 + QUAD $0x00048024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 15 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xee6ef9c5 // vmovd xmm5, esi + LONG $0x3865e3c4; WORD $0x01df // vinserti128 ymm3, ymm3, xmm7, 1 + QUAD $0x000460249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm3 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x0c // movzx esi, byte [rdx + rax + 12] + LONG $0xf66ef9c5 // vmovd xmm6, esi + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x010a0a5c2019a3c4 // vpinsrb xmm3, xmm12, byte [rdx + r9 + 10], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x020a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 2 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x030a325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 10], 3 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x040a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 4 + QUAD $0x050a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 5 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x060a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 6 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x070a1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 10], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x080a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x090a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 9 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0a0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 10 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0b0a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 11 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0c0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 12 + QUAD $0x0d0a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 13 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0e0a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 14 + QUAD $0x0f0a1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 10], 15 + QUAD $0x010a12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 10], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x020a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x030a32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 10], 3 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x040a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 4 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x050a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 5 + QUAD $0x060a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 6 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x080a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 8 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x090a12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 10], 9 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0a0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 10 + QUAD $0x0b0a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 12 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0d0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 13 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0e0a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 14 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x0f0a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 15 + QUAD $0x010b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 1 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x020b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 2 + QUAD $0x030b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 3 + QUAD $0x040b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 4 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x050b1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 11], 5 + QUAD $0x060b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 6 + QUAD $0x070b1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 11], 7 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x080b3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 11], 8 + QUAD $0x090b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 10 + QUAD $0x0b0b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 13 + QUAD $0x0e0b0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 11], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x010b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x020b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 2 + QUAD $0x030b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x040b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x050b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x060b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 6 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x070b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 7 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x080b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 8 + QUAD $0x090b12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 11], 9 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0a0b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 10 + QUAD $0x0b0b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 12 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0d0b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0e0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 14 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + LONG $0x0a74b60f; BYTE $0x0d // movzx esi, byte [rdx + rcx + 13] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0f0b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000420248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x0d // movzx esi, byte [rdx + rcx + 13] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x010c1a542051a3c4 // vpinsrb xmm2, xmm5, byte [rdx + r11 + 12], 1 + WORD $0x894d; BYTE $0xca // mov r10, r9 + QUAD $0x020c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 2 + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + QUAD $0x030c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 3 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x040c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 4 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x050c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 5 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x060c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 6 + QUAD $0x070c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x080c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x090c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 9 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0a0c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 10 + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x0b0c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 11 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0c0c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 12], 12 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0d0c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e0c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f0c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 15 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x010c32642049e3c4 // vpinsrb xmm4, xmm6, byte [rdx + rsi + 12], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x020c32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 12], 2 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x030c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 3 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x040c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 4 + QUAD $0x050c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x060c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x070c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 7 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x080c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x090c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 9 + QUAD $0x0a0c3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 12], 10 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0b0c3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 12], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c0c3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 12], 12 + QUAD $0x0d0c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 13 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0e0c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 14 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x0f0c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 15 + QUAD $0x010d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 13], 1 + QUAD $0x020d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 2 + QUAD $0x030d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 3 + QUAD $0x040d325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 13], 4 + QUAD $0x050d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 13], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x060d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 6 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x070d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 13], 7 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x080d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 8 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x090d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 10 + QUAD $0x0b0d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 11 + QUAD $0x0c0d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 12 + QUAD $0x0d0d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 13 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0e0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 15 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x010d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + WORD $0x8949; BYTE $0xf1 // mov r9, rsi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x030d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 3 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x040d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x050d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x060d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 6 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x070d0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 13], 7 + QUAD $0x080d1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 13], 8 + QUAD $0x090d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 10 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + QUAD $0x0c0d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 14 + LONG $0x385de3c4; WORD $0x01d2 // vinserti128 ymm2, ymm4, xmm2, 1 + QUAD $0x00040024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm2 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x0f0d2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 13], 15 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + LONG $0x74b60f42; WORD $0x0e32 // movzx esi, byte [rdx + r14 + 14] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0003e0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x0e // movzx esi, byte [rdx + rax + 14] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x010e02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 14], 1 + QUAD $0x020e12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 14], 2 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x030e0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 14], 3 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x040e12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 14], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x050e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x060e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 6 + QUAD $0x070e1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 14], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x080e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x090e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a0e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 10 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x0b0e1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 14], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d0e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e0e3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 14], 14 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0f0e1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 14], 15 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x010e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 14], 1 + QUAD $0x020e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 2 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x030e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 3 + QUAD $0x040e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x050e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x060e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x070e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x080e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 8 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x090e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 9 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0a0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 10 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x0b0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 11 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0c0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 12 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0d0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 13 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0e0e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 14], 14 + QUAD $0x0f0e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 15 + LONG $0x74b60f42; WORD $0x0f32 // movzx esi, byte [rdx + r14 + 15] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x010f025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 15], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x020f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 2 + QUAD $0x030f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 3 + QUAD $0x040f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 4 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x050f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 5 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x060f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 6 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x070f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 7 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x080f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x090f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 9 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x0a0f025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 15], 10 + QUAD $0x0b0f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 11 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0c0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 13 + QUAD $0x0e0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 14 + QUAD $0x0f0f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x0f // movzx esi, byte [rdx + rsi + 15] + LONG $0xe66ef9c5 // vmovd xmm4, esi + QUAD $0x010f2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 15], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x020f32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 15], 2 + QUAD $0x030f0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 15], 3 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x040f1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 15], 4 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x050f0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 15], 5 + LONG $0x246c8b4c; BYTE $0x08 // mov r13, qword [rsp + 8] + QUAD $0x060f2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 15], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x070f32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 15], 7 + QUAD $0x080f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 8 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x090f12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 15], 9 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0a0f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 15], 10 + QUAD $0x0b0f3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 15], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c0f1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 15], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 13 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0e0f32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 15], 14 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f0f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 15 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + QUAD $0x0003a0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x0003c0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x10 // movzx esi, byte [rdx + rax + 16] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0110024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 1 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x02103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0310024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 3 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0410024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0510024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 5 + QUAD $0x0610224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 6 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0710024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 7 + QUAD $0x08100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0910024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 9 + QUAD $0x0a10024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 16], 10 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0b10224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d10024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e10324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f10324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x10 // movzx esi, byte [rdx + rsi + 16] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x021032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x031032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 3 + QUAD $0x04101a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 16], 4 + QUAD $0x05100a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 16], 5 + QUAD $0x06102a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 16], 6 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x07100a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 16], 7 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x08102a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 16], 8 + QUAD $0x091012542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 16], 9 + QUAD $0x0a103a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 16], 10 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x0b1032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 11 + QUAD $0x0c101a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 16], 12 + QUAD $0x00000120249c8b4c // mov r11, qword [rsp + 288] + QUAD $0x0d101a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 16], 13 + QUAD $0x0e1032542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 16], 14 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0f1032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 15 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + LONG $0x3a74b60f; BYTE $0x11 // movzx esi, byte [rdx + rdi + 17] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0111025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 1 + QUAD $0x02113a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 17], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0311325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 3 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x04111a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 17], 4 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x05113a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 17], 5 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0611125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 17], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0711325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0811325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0911325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 9 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0a11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 10 + QUAD $0x0b11225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 17], 11 + QUAD $0x0c110a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 17], 12 + QUAD $0x0d11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xe66ef9c5 // vmovd xmm4, esi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x011102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 1 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x021122642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 17], 2 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x031132642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 17], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x041102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x061102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 6 + QUAD $0x07110a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 17], 7 + QUAD $0x08112a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 17], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a1102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 10 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0b1102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c1102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 12 + QUAD $0x0d111a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 17], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e1102642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 17], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000380248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm1 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f11024c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rax + 17], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x000360248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm1 + LONG $0x3a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rdi + 18] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0112024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0212024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 2 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0312024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 3 + QUAD $0x04121a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 18], 4 + QUAD $0x05123a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 18], 5 + QUAD $0x0612124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 6 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x07122a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 18], 7 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x08120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 8 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x09120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 9 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x0a120a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 18], 10 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0b121a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 18], 11 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0c12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 13 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0e12124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 15 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x120a // movzx esi, byte [rdx + r9 + 18] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x01123a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 18], 1 + QUAD $0x021222542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 18], 2 + QUAD $0x031232542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 18], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x041232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x051232542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 18], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x061232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 6 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x071222542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 18], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x081232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 8 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x091232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 9 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0a1232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 10 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x0b1232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 11 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0c1232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 12 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0d1232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 13 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0e123a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 18], 14 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0f121a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 18], 15 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + LONG $0x3274b60f; BYTE $0x13 // movzx esi, byte [rdx + rsi + 19] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0113325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 1 + QUAD $0x0213025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 2 + QUAD $0x0313025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 19], 3 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0413025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0513025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0613025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 6 + QUAD $0x07132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0813025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + QUAD $0x0a130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 10 + QUAD $0x0b131a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 19], 11 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0c131a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 19], 12 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0d130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 13 + QUAD $0x0e13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 14 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 15 + LONG $0x74b60f42; WORD $0x130a // movzx esi, byte [rdx + r9 + 19] + LONG $0xe66ef9c5 // vmovd xmm4, esi + QUAD $0x01133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 1 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x02132a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 19], 2 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x03133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 3 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x041302642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 19], 4 + QUAD $0x051332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 19], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x061332642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 19], 6 + QUAD $0x071322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 19], 7 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x08130a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 19], 8 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x091332642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 19], 9 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0a1332642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 19], 10 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x0b1332642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 19], 11 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0c1332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 19], 12 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0d1332642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 19], 13 + QUAD $0x0e133a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 19], 14 + QUAD $0x0f131a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 19], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000320248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x000340248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm1 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + LONG $0x3274b60f; BYTE $0x14 // movzx esi, byte [rdx + rsi + 20] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0114324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x0214324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0314324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 3 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0414324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 4 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0514224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 20], 5 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0614324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0714324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0814324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 8 + QUAD $0x0914024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a14024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b14324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 11 + QUAD $0x0c141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 12 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0d14124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 13 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x0e141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 14 + QUAD $0x0f140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 15 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x143a // movzx esi, byte [rdx + r15 + 20] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011432542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 20], 1 + QUAD $0x02142a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 20], 2 + QUAD $0x03143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 3 + QUAD $0x041402542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 20], 4 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x05142a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 20], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x06140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 6 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x07140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 7 + QUAD $0x08140a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 20], 8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x09140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 9 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0a140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 10 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0b140a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 20], 11 + QUAD $0x0c1432542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 20], 12 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0d140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 13 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0e140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 14 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0f140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 15 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + LONG $0x0a74b60f; BYTE $0x15 // movzx esi, byte [rdx + rcx + 21] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x02150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 2 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0315025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 21], 3 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0415325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 4 + QUAD $0x0515225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 21], 5 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0615325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0715325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0815325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0915325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 9 + QUAD $0x0a15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 10 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0b15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 11 + QUAD $0x0c151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 12 + QUAD $0x0d15125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 13 + QUAD $0x0e151a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 21], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 15 + LONG $0x74b60f42; WORD $0x153a // movzx esi, byte [rdx + r15 + 21] + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0xe66ef9c5 // vmovd xmm4, esi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x011502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 1 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x021532642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 21], 2 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x031502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x041502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 4 + QUAD $0x05152a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 21], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x061502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 6 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x07152a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 21], 7 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x081522642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 21], 8 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x09153a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 21], 9 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0a1512642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 21], 10 + QUAD $0x0b150a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 21], 11 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0c150a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 21], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d1502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e1502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x0002e0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm1 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f15024c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rax + 21], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x000300248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x01163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 1 + QUAD $0x02160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 2 + QUAD $0x0316024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 3 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0416024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 4 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x05160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 6 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x07160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0816324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 8 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x09163a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 22], 9 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0a16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 11 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0c161a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 22], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 13 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + QUAD $0x0e16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 15 + LONG $0x1a74b60f; BYTE $0x16 // movzx esi, byte [rdx + rbx + 22] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 1 + QUAD $0x021632542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 22], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x031632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x041632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 5 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x061632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 6 + QUAD $0x07162a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 22], 7 + QUAD $0x081622542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 22], 8 + QUAD $0x09163a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 22], 9 + QUAD $0x0a1612542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 22], 10 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x0b1622542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 22], 11 + QUAD $0x0c160a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 22], 12 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0d162a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 22], 13 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0e1612542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 22], 14 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0f1632542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 22], 15 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + LONG $0x74b60f42; WORD $0x173a // movzx esi, byte [rdx + r15 + 23] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x01170a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 23], 1 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x0217325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0317325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 3 + QUAD $0x0417025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 23], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0517025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 23], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0617025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 23], 6 + QUAD $0x07170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x0817025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 23], 8 + QUAD $0x09173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 9 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x0a173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 10 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0b170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 11 + QUAD $0x0c171a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 23], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 13 + QUAD $0x0e17025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 15 + LONG $0x1a74b60f; BYTE $0x17 // movzx esi, byte [rdx + rbx + 23] + LONG $0xe66ef9c5 // vmovd xmm4, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 1 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x021732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 2 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x03171a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 23], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x041732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 5 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x06171a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 23], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x071732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x081732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 8 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x091732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 9 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0a1732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 10 + QUAD $0x0b1722642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 23], 11 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0c1732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 12 + QUAD $0x0d172a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 23], 13 + QUAD $0x0e1712642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 23], 14 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0f1722642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 23], 15 + LONG $0x386d63c4; WORD $0x01d9 // vinserti128 ymm11, ymm2, xmm1, 1 + LONG $0x385d63c4; WORD $0x01e3 // vinserti128 ymm12, ymm4, xmm3, 1 + LONG $0x74b60f42; WORD $0x183a // movzx esi, byte [rdx + r15 + 24] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x01180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 1 + QUAD $0x0218324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0318324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 3 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x0418024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 4 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0518324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 5 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x06183a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 24], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0718324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 7 + QUAD $0x0818024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 8 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0918324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 9 + QUAD $0x0a183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 10 + QUAD $0x0b180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 11 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x0c180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d18024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 13 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0e18124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 14 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x0f182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x18 // movzx esi, byte [rdx + rax + 24] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x011802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x021802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 2 + QUAD $0x03181a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 24], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x041802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 4 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x05181a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 24], 5 + QUAD $0x06181a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 24], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x071802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x081802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 9 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0a181a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 24], 10 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0b180a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 24], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c1802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d183a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 24], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e1802542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 24], 14 + QUAD $0x0f1822542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 24], 15 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0119025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x0219025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0319025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 3 + QUAD $0x0419025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0519025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 5 + QUAD $0x06193a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 25], 6 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0719025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x0819325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 8 + QUAD $0x0919325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 25], 9 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x0a19025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 11 + QUAD $0x0c190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 13 + QUAD $0x0e19125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 14 + QUAD $0x0f192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 15 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + LONG $0x74b60f42; WORD $0x1912 // movzx esi, byte [rdx + r10 + 25] + LONG $0xe66ef9c5 // vmovd xmm4, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011932642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 25], 1 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x02190a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 25], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x031932642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 25], 3 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x04193a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 25], 4 + QUAD $0x05191a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 25], 5 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x06191a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 25], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x071932642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 25], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x081932642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 25], 8 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x091932642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 25], 9 + QUAD $0x0a191a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 25], 10 + QUAD $0x0b190a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 25], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c191a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 25], 12 + QUAD $0x0d193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 13 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0e1922642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 25], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000180248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 384], ymm1 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0f190a4c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rcx + 25], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x000240248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + LONG $0x0a74b60f; BYTE $0x1a // movzx esi, byte [rdx + rcx + 26] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x011a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x021a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 2 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x031a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 3 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x041a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 4 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x051a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 5 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x061a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 6 + QUAD $0x071a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x081a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x091a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 9 + QUAD $0x0a1a024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 26], 10 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0b1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 12 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x0d1a024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 26], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 15 + LONG $0x74b60f42; WORD $0x1a12 // movzx esi, byte [rdx + r10 + 26] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x011a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 1 + QUAD $0x021a0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 26], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x031a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 3 + QUAD $0x041a3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 26], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 5 + QUAD $0x061a1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 26], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x071a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 7 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x081a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 8 + QUAD $0x091a32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 26], 9 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0a1a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 10 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0b1a0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 26], 11 + QUAD $0x0c1a1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 26], 12 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0d1a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 13 + QUAD $0x0e1a22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 26], 14 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0f1a32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 26], 15 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + LONG $0x74b60f42; WORD $0x1b3a // movzx esi, byte [rdx + r15 + 27] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x011b1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 27], 1 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x021b125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 27], 2 + QUAD $0x031b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 3 + QUAD $0x041b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 4 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x051b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 5 + QUAD $0x061b2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 27], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x071b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 7 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + QUAD $0x081b1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 27], 8 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x091b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 9 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0a1b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 10 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x0b1b225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 27], 11 + QUAD $0x0c1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 12 + QUAD $0x0d1b025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 27], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x0274b60f; BYTE $0x1b // movzx esi, byte [rdx + rax + 27] + LONG $0xe66ef9c5 // vmovd xmm4, esi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x011b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 1 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x021b02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 27], 2 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x031b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x041b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x051b3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 27], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x061b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 6 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x071b2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 27], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x081b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 8 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x091b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a1b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 10 + QUAD $0x0b1b0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 27], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c1b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d1b02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 27], 13 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0e1b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 14 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x0f1b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000260248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x000280248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm1 + LONG $0x74b60f42; WORD $0x1c3a // movzx esi, byte [rdx + r15 + 28] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x011c1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 28], 1 + QUAD $0x021c124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 28], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x041c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 4 + QUAD $0x051c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 5 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x061c3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 28], 6 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x071c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 7 + QUAD $0x081c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 8 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x091c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 9 + QUAD $0x0a1c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 10 + QUAD $0x0b1c224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 28], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 12 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0d1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 13 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0e1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 14 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x0f1c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 15 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a74b60f; BYTE $0x1c // movzx esi, byte [rdx + rcx + 28] + LONG $0xd66ef9c5 // vmovd xmm2, esi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x011c0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 28], 1 + QUAD $0x021c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 28], 2 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x031c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 28], 3 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x041c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 28], 4 + QUAD $0x051c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 28], 5 + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x061c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 28], 6 + QUAD $0x071c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 28], 7 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x081c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 28], 8 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x091c12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 28], 9 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x0a1c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 28], 10 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0b1c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 28], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c1c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 28], 12 + QUAD $0x0d1c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 13 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0e1c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 28], 14 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0f1c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 15 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + LONG $0x3274b60f; BYTE $0x1d // movzx esi, byte [rdx + rsi + 29] + LONG $0xde6ef9c5 // vmovd xmm3, esi + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x011d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 1 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x021d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 2 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x031d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 3 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x041d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 4 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x051d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 5 + QUAD $0x061d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 29], 6 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x071d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 7 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x081d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 8 + QUAD $0x091d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 9 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0a1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 10 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x0b1d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 29], 11 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0c1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 12 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0d1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e1d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 14 + QUAD $0x0f1d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 29], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3274b60f; BYTE $0x1d // movzx esi, byte [rdx + rsi + 29] + LONG $0xe66ef9c5 // vmovd xmm4, esi + QUAD $0x011d0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 29], 1 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x021d0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 29], 2 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x031d0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 29], 3 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x041d0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 29], 4 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x051d32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 29], 5 + QUAD $0x061d02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 29], 6 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x071d32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 29], 7 + QUAD $0x081d32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 29], 8 + QUAD $0x091d12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 29], 9 + QUAD $0x0a1d2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 29], 10 + QUAD $0x0b1d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 11 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x0c1d1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 29], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d1d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 13 + QUAD $0x0e1d22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 29], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x0002a0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm1 + QUAD $0x0f1d024c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rax + 29], 15 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0002c0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm1 + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + LONG $0x74b60f42; WORD $0x1e02 // movzx esi, byte [rdx + r8 + 30] + LONG $0xce6ef9c5 // vmovd xmm1, esi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 1 + LONG $0x74b60f42; WORD $0x1f02 // movzx esi, byte [rdx + r8 + 31] + LONG $0xd66ef9c5 // vmovd xmm2, esi + QUAD $0x011f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x021e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 2 + QUAD $0x021f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 3 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x041e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 4 + QUAD $0x041f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 4 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x061e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 6 + QUAD $0x061f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 6 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x071e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 7 + QUAD $0x071f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 7 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 9 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 10 + QUAD $0x0b1e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 30], 11 + QUAD $0x0b1f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 31], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 12 + QUAD $0x0c1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 12 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0d1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 13 + QUAD $0x0d1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 15 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + LONG $0x3244b60f; BYTE $0x1e // movzx eax, byte [rdx + rsi + 30] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x011e025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 30], 1 + LONG $0x3244b60f; BYTE $0x1f // movzx eax, byte [rdx + rsi + 31] + LONG $0xe06ef9c5 // vmovd xmm4, eax + QUAD $0x011f02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 31], 1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x021e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 2 + QUAD $0x021f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 2 + QUAD $0x031e0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 30], 3 + QUAD $0x031f0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 31], 3 + QUAD $0x041e0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 30], 4 + QUAD $0x041f0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 31], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 5 + QUAD $0x051f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x061e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 6 + QUAD $0x061f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 6 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x071e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 7 + QUAD $0x071f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 7 + QUAD $0x081e325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 30], 8 + QUAD $0x081f32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 31], 8 + QUAD $0x091e125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 30], 9 + QUAD $0x091f12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 31], 9 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 10 + QUAD $0x0a1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 10 + QUAD $0x0b1e2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 30], 11 + QUAD $0x0b1f2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 31], 11 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0c1e1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 30], 12 + QUAD $0x0c1f1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 31], 12 + QUAD $0x0d1e3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 30], 13 + QUAD $0x0d1f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 31], 13 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0e1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 14 + QUAD $0x0e1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 14 + QUAD $0x0f1e225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 30], 15 + QUAD $0x0f1f22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 31], 15 + LONG $0x3865e3c4; WORD $0x01c9 // vinserti128 ymm1, ymm3, xmm1, 1 + QUAD $0x000120248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + QUAD $0x000100248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 256], ymm1 + QUAD $0x000220248cdafdc5; BYTE $0x00 // vpminub ymm1, ymm0, yword [rsp + 544] + LONG $0xc974fdc5 // vpcmpeqb ymm1, ymm0, ymm1 + LONG $0x7d6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword 0[rbp] /* [rip + .LCPI8_0] */ + LONG $0xd7dff5c5 // vpandn ymm2, ymm1, ymm7 + LONG $0xc9fcedc5 // vpaddb ymm1, ymm2, ymm1 + QUAD $0x0004e02494dafdc5; BYTE $0x00 // vpminub ymm2, ymm0, yword [rsp + 1248] + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + LONG $0xd7dfedc5 // vpandn ymm2, ymm2, ymm7 + QUAD $0x0001c024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 448] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0x4d6f7dc5; BYTE $0x20 // vmovdqa ymm9, yword 32[rbp] /* [rip + .LCPI8_1] */ + LONG $0xdf0d41c4; BYTE $0xf1 // vpandn ymm14, ymm14, ymm9 + LONG $0xd2eb8dc5 // vpor ymm2, ymm14, ymm2 + QUAD $0x0001a024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 416] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0x456f7dc5; BYTE $0x40 // vmovdqa ymm8, yword 64[rbp] /* [rip + .LCPI8_2] */ + LONG $0xdf0d41c4; BYTE $0xf0 // vpandn ymm14, ymm14, ymm8 + LONG $0xd2eb8dc5 // vpor ymm2, ymm14, ymm2 + LONG $0xdb76e5c5 // vpcmpeqd ymm3, ymm3, ymm3 + LONG $0xcbf8f5c5 // vpsubb ymm1, ymm1, ymm3 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xd0da85c5 // vpminub ymm2, ymm15, ymm0 + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + LONG $0x756ffdc5; BYTE $0x60 // vmovdqa ymm6, yword 96[rbp] /* [rip + .LCPI8_3] */ + LONG $0xd6dfedc5 // vpandn ymm2, ymm2, ymm6 + QUAD $0x00020024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 512] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + QUAD $0x00000080a56ffdc5 // vmovdqa ymm4, yword 128[rbp] /* [rip + .LCPI8_4] */ + LONG $0xf4df0dc5 // vpandn ymm14, ymm14, ymm4 + LONG $0xd2eb8dc5 // vpor ymm2, ymm14, ymm2 + QUAD $0x0004c024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 1216] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + QUAD $0x000000a0ad6ffdc5 // vmovdqa ymm5, yword 160[rbp] /* [rip + .LCPI8_5] */ + LONG $0xf5df0dc5 // vpandn ymm14, ymm14, ymm5 + LONG $0xd2eb8dc5 // vpor ymm2, ymm14, ymm2 + QUAD $0x0004a024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 1184] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf3ef0dc5 // vpxor ymm14, ymm14, ymm3 + LONG $0x710dc1c4; WORD $0x07f6 // vpsllw ymm14, ymm14, 7 + QUAD $0x000000c0956f7dc5 // vmovdqa ymm10, yword 192[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0d41c4; BYTE $0xf2 // vpand ymm14, ymm14, ymm10 + LONG $0xd2eb8dc5 // vpor ymm2, ymm14, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + QUAD $0x000140248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm1 + QUAD $0x000460248cdafdc5; BYTE $0x00 // vpminub ymm1, ymm0, yword [rsp + 1120] + LONG $0xc974fdc5 // vpcmpeqb ymm1, ymm0, ymm1 + LONG $0xf7df75c5 // vpandn ymm14, ymm1, ymm7 + LONG $0xc9fc8dc5 // vpaddb ymm1, ymm14, ymm1 + QUAD $0x00048024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 1152] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf7df0dc5 // vpandn ymm14, ymm14, ymm7 + QUAD $0x00044024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 1088] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0x6f7dc1c4; BYTE $0xd9 // vmovdqa ymm3, ymm9 + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + QUAD $0x00042024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 1056] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xd276edc5 // vpcmpeqd ymm2, ymm2, ymm2 + LONG $0xcaf8f5c5 // vpsubb ymm1, ymm1, ymm2 + LONG $0xc9eb8dc5 // vpor ymm1, ymm14, ymm1 + QUAD $0x00040024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 1024] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf6df0dc5 // vpandn ymm14, ymm14, ymm6 + QUAD $0x0003e024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 992] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfcdf05c5 // vpandn ymm15, ymm15, ymm4 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + QUAD $0x0003a024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 928] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + QUAD $0x0003c024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 960] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfaef05c5 // vpxor ymm15, ymm15, ymm2 + LONG $0xd276edc5 // vpcmpeqd ymm2, ymm2, ymm2 + LONG $0x7105c1c4; WORD $0x07f7 // vpsllw ymm15, ymm15, 7 + LONG $0xdb0541c4; BYTE $0xfa // vpand ymm15, ymm15, ymm10 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xc9eb8dc5 // vpor ymm1, ymm14, ymm1 + QUAD $0x00036024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 864] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xffdf0dc5 // vpandn ymm15, ymm14, ymm7 + LONG $0xfc0541c4; BYTE $0xf6 // vpaddb ymm14, ymm15, ymm14 + QUAD $0x00038024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 896] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xffdf05c5 // vpandn ymm15, ymm15, ymm7 + QUAD $0x00032024acda7dc5; BYTE $0x00 // vpminub ymm13, ymm0, yword [rsp + 800] + LONG $0xe87415c5 // vpcmpeqb ymm13, ymm13, ymm0 + LONG $0xdf1541c4; BYTE $0xe9 // vpandn ymm13, ymm13, ymm9 + LONG $0xeb0541c4; BYTE $0xed // vpor ymm13, ymm15, ymm13 + QUAD $0x00034024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 832] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1541c4; BYTE $0xef // vpor ymm13, ymm13, ymm15 + LONG $0xf2f80dc5 // vpsubb ymm14, ymm14, ymm2 + LONG $0xeb0d41c4; BYTE $0xed // vpor ymm13, ymm14, ymm13 + QUAD $0x0002e024b4da7dc5; BYTE $0x00 // vpminub ymm14, ymm0, yword [rsp + 736] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf6df0dc5 // vpandn ymm14, ymm14, ymm6 + QUAD $0x00030024bcda7dc5; BYTE $0x00 // vpminub ymm15, ymm0, yword [rsp + 768] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfcdf05c5 // vpandn ymm15, ymm15, ymm4 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xd8da25c5 // vpminub ymm11, ymm11, ymm0 + LONG $0xd87425c5 // vpcmpeqb ymm11, ymm11, ymm0 + LONG $0xfd6f7dc5 // vmovdqa ymm15, ymm5 + LONG $0xdddf25c5 // vpandn ymm11, ymm11, ymm5 + LONG $0xeb0d41c4; BYTE $0xdb // vpor ymm11, ymm14, ymm11 + LONG $0xe0da1dc5 // vpminub ymm12, ymm12, ymm0 + LONG $0xe0741dc5 // vpcmpeqb ymm12, ymm12, ymm0 + LONG $0xe2ef1dc5 // vpxor ymm12, ymm12, ymm2 + LONG $0x711dc1c4; WORD $0x07f4 // vpsllw ymm12, ymm12, 7 + LONG $0x6f7d41c4; BYTE $0xf2 // vmovdqa ymm14, ymm10 + LONG $0xdb1d41c4; BYTE $0xe2 // vpand ymm12, ymm12, ymm10 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xeb1541c4; BYTE $0xdb // vpor ymm11, ymm13, ymm11 + QUAD $0x000240248cda7dc5; BYTE $0x00 // vpminub ymm9, ymm0, yword [rsp + 576] + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xe7df35c5 // vpandn ymm12, ymm9, ymm7 + LONG $0xfc1d41c4; BYTE $0xc9 // vpaddb ymm9, ymm12, ymm9 + QUAD $0x0001802494da7dc5; BYTE $0x00 // vpminub ymm10, ymm0, yword [rsp + 384] + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + LONG $0xd7df2dc5 // vpandn ymm10, ymm10, ymm7 + QUAD $0x00026024bcdafdc5; BYTE $0x00 // vpminub ymm7, ymm0, yword [rsp + 608] + LONG $0xff74fdc5 // vpcmpeqb ymm7, ymm0, ymm7 + LONG $0xfbdfc5c5 // vpandn ymm7, ymm7, ymm3 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x0002802484da7dc5; BYTE $0x00 // vpminub ymm8, ymm0, yword [rsp + 640] + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0x45df3dc5; BYTE $0x40 // vpandn ymm8, ymm8, yword 64[rbp] /* [rip + .LCPI8_2] */ + LONG $0xffebbdc5 // vpor ymm7, ymm8, ymm7 + LONG $0xc2f835c5 // vpsubb ymm8, ymm9, ymm2 + LONG $0xffebbdc5 // vpor ymm7, ymm8, ymm7 + QUAD $0x0002a024acdafdc5; BYTE $0x00 // vpminub ymm5, ymm0, yword [rsp + 672] + LONG $0xed74fdc5 // vpcmpeqb ymm5, ymm0, ymm5 + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x0002c024b4dafdc5; BYTE $0x00 // vpminub ymm6, ymm0, yword [rsp + 704] + LONG $0xf674fdc5 // vpcmpeqb ymm6, ymm0, ymm6 + LONG $0xf4dfcdc5 // vpandn ymm6, ymm6, ymm4 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x000120249cdafdc5; BYTE $0x00 // vpminub ymm3, ymm0, yword [rsp + 288] + LONG $0xdb74fdc5 // vpcmpeqb ymm3, ymm0, ymm3 + LONG $0xdf65c1c4; BYTE $0xdf // vpandn ymm3, ymm3, ymm15 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x00010024a4dafdc5; BYTE $0x00 // vpminub ymm4, ymm0, yword [rsp + 256] + LONG $0xe474fdc5 // vpcmpeqb ymm4, ymm0, ymm4 + LONG $0xe2efddc5 // vpxor ymm4, ymm4, ymm2 + LONG $0xf471ddc5; BYTE $0x07 // vpsllw ymm4, ymm4, 7 + LONG $0xe4db8dc5 // vpand ymm4, ymm14, ymm4 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xdbebc5c5 // vpor ymm3, ymm7, ymm3 + QUAD $0x00014024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 320] + LONG $0xe160edc5 // vpunpcklbw ymm4, ymm2, ymm1 + LONG $0xc968edc5 // vpunpckhbw ymm1, ymm2, ymm1 + LONG $0xd360a5c5 // vpunpcklbw ymm2, ymm11, ymm3 + LONG $0xdb68a5c5 // vpunpckhbw ymm3, ymm11, ymm3 + LONG $0xea61ddc5 // vpunpcklwd ymm5, ymm4, ymm2 + LONG $0xd269ddc5 // vpunpckhwd ymm2, ymm4, ymm2 + LONG $0xe361f5c5 // vpunpcklwd ymm4, ymm1, ymm3 + LONG $0xcb69f5c5 // vpunpckhwd ymm1, ymm1, ymm3 + LONG $0x3855e3c4; WORD $0x01da // vinserti128 ymm3, ymm5, xmm2, 1 + LONG $0x4655e3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm5, ymm2, 49 + LONG $0x385de3c4; WORD $0x01e9 // vinserti128 ymm5, ymm4, xmm1, 1 + LONG $0x465de3c4; WORD $0x31c9 // vperm2i128 ymm1, ymm4, ymm1, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8b4c; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm1 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b6c; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm5 + LONG $0x7f7ec1c4; WORD $0x8b1c // vmovdqu yword [r11 + 4*rcx], ymm3 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000168248c3b48 // cmp rcx, qword [rsp + 360] + JNE LBB8_184 + QUAD $0x0000017024bc8b4c // mov r15, qword [rsp + 368] + QUAD $0x0000016824bc3b4c // cmp r15, qword [rsp + 360] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + LONG $0x24748b44; BYTE $0x04 // mov r14d, dword [rsp + 4] + QUAD $0x000001f824a48b4c // mov r12, qword [rsp + 504] + JNE LBB8_101 + JMP LBB8_125 + +TEXT ·_comparison_greater_equal_arr_arr_avx2(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB9_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB9_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB9_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB9_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_20 + LONG $0x01c68349 // add r14, 1 + +LBB9_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5930f41 // setae r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0930f41 // setae r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3930f41 // setae r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7930f41 // setae r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x930f; BYTE $0xd3 // setae bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2930f41 // setae r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6930f41 // setae r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4930f41 // setae r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1930f41 // setae r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_28: + WORD $0x048b; BYTE $0x8e // mov eax, dword [rsi + 4*rcx] + WORD $0x043b; BYTE $0x8a // cmp eax, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_28 + JMP LBB9_123 + +LBB9_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB9_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB9_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB9_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_48: + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_48 + LONG $0x01c68349 // add r14, 1 + +LBB9_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB9_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + LONG $0x4e10fbc5; BYTE $0x08 // vmovsd xmm1, qword [rsi + 8] + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x4a2ef9c5; BYTE $0x08 // vucomisd xmm1, qword [rdx + 8] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x4610fbc5; BYTE $0x10 // vmovsd xmm0, qword [rsi + 16] + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0x4610fbc5; BYTE $0x18 // vmovsd xmm0, qword [rsi + 24] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x4610fbc5; BYTE $0x20 // vmovsd xmm0, qword [rsi + 32] + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + LONG $0x4610fbc5; BYTE $0x28 // vmovsd xmm0, qword [rsi + 40] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x4610fbc5; BYTE $0x30 // vmovsd xmm0, qword [rsi + 48] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + LONG $0x4610fbc5; BYTE $0x38 // vmovsd xmm0, qword [rsi + 56] + LONG $0xd5930f41 // setae r13b + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd7930f41 // setae r15b + LONG $0x4610fbc5; BYTE $0x40 // vmovsd xmm0, qword [rsi + 64] + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + LONG $0x4610fbc5; BYTE $0x48 // vmovsd xmm0, qword [rsi + 72] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x4610fbc5; BYTE $0x50 // vmovsd xmm0, qword [rsi + 80] + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0x4610fbc5; BYTE $0x58 // vmovsd xmm0, qword [rsi + 88] + LONG $0xd1930f41 // setae r9b + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd3930f41 // setae r11b + LONG $0x4610fbc5; BYTE $0x60 // vmovsd xmm0, qword [rsi + 96] + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0x4610fbc5; BYTE $0x68 // vmovsd xmm0, qword [rsi + 104] + LONG $0xd2930f41 // setae r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x4610fbc5; BYTE $0x70 // vmovsd xmm0, qword [rsi + 112] + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + LONG $0x4610fbc5; BYTE $0x78 // vmovsd xmm0, qword [rsi + 120] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x930f; BYTE $0xd3 // setae bl + QUAD $0x000000808610fbc5 // vmovsd xmm0, qword [rsi + 128] + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + QUAD $0x000000888610fbc5 // vmovsd xmm0, qword [rsi + 136] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + QUAD $0x000000908610fbc5 // vmovsd xmm0, qword [rsi + 144] + LONG $0xd6930f41 // setae r14b + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + QUAD $0x000000988610fbc5 // vmovsd xmm0, qword [rsi + 152] + LONG $0xd4930f41 // setae r12b + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a08610fbc5 // vmovsd xmm0, qword [rsi + 160] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a88610fbc5 // vmovsd xmm0, qword [rsi + 168] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b08610fbc5 // vmovsd xmm0, qword [rsi + 176] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b88610fbc5 // vmovsd xmm0, qword [rsi + 184] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c08610fbc5 // vmovsd xmm0, qword [rsi + 192] + LONG $0xd0930f41 // setae r8b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c88610fbc5 // vmovsd xmm0, qword [rsi + 200] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d08610fbc5 // vmovsd xmm0, qword [rsi + 208] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d88610fbc5 // vmovsd xmm0, qword [rsi + 216] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e08610fbc5 // vmovsd xmm0, qword [rsi + 224] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e88610fbc5 // vmovsd xmm0, qword [rsi + 232] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f08610fbc5 // vmovsd xmm0, qword [rsi + 240] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f88610fbc5 // vmovsd xmm0, qword [rsi + 248] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + LONG $0xd7930f40 // setae dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB9_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB9_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_56: + LONG $0x0410fbc5; BYTE $0xce // vmovsd xmm0, qword [rsi + 8*rcx] + LONG $0x042ef9c5; BYTE $0xca // vucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_56 + JMP LBB9_123 + +LBB9_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB9_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_6 + LONG $0x01c68349 // add r14, 1 + +LBB9_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB9_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd79d0f41 // setge r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd79d0f40 // setge dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd29d0f41 // setge r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd39d0f41 // setge r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd69d0f41 // setge r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd49d0f41 // setge r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd59d0f41 // setge r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd19d0f41 // setge r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd09d0f41 // setge r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB9_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB9_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_14 + JMP LBB9_123 + +LBB9_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB9_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_34 + LONG $0x01c68349 // add r14, 1 + +LBB9_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5930f41 // setae r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0930f41 // setae r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3930f41 // setae r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7930f41 // setae r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2930f41 // setae r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6930f41 // setae r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4930f41 // setae r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1930f41 // setae r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_42: + LONG $0xce048b48 // mov rax, qword [rsi + 8*rcx] + LONG $0xca043b48 // cmp rax, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_42 + JMP LBB9_123 + +LBB9_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_70 + LONG $0x01c68349 // add r14, 1 + +LBB9_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5930f41 // setae r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0930f41 // setae r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3930f41 // setae r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7930f41 // setae r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2930f41 // setae r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6930f41 // setae r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4930f41 // setae r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1930f41 // setae r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_78: + LONG $0x4e04b70f // movzx eax, word [rsi + 2*rcx] + LONG $0x4a043b66 // cmp ax, word [rdx + 2*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_78 + JMP LBB9_123 + +LBB9_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_81 + LONG $0x01c68349 // add r14, 1 + +LBB9_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd59d0f41 // setge r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd09d0f41 // setge r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd39d0f41 // setge r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd79d0f41 // setge r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd29d0f41 // setge r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd69d0f41 // setge r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd49d0f41 // setge r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd19d0f41 // setge r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_89 + JMP LBB9_123 + +LBB9_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_103 + LONG $0x01c68349 // add r14, 1 + +LBB9_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd59d0f41 // setge r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd09d0f41 // setge r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd39d0f41 // setge r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd79d0f41 // setge r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd29d0f41 // setge r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd69d0f41 // setge r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd49d0f41 // setge r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd19d0f41 // setge r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_111 + JMP LBB9_123 + +LBB9_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_114: + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_114 + LONG $0x01c68349 // add r14, 1 + +LBB9_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB9_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + LONG $0x4e10fac5; BYTE $0x04 // vmovss xmm1, dword [rsi + 4] + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x4a2ef8c5; BYTE $0x04 // vucomiss xmm1, dword [rdx + 4] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x4610fac5; BYTE $0x08 // vmovss xmm0, dword [rsi + 8] + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0x4610fac5; BYTE $0x0c // vmovss xmm0, dword [rsi + 12] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x4610fac5; BYTE $0x10 // vmovss xmm0, dword [rsi + 16] + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + LONG $0x4610fac5; BYTE $0x14 // vmovss xmm0, dword [rsi + 20] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x4610fac5; BYTE $0x18 // vmovss xmm0, dword [rsi + 24] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + LONG $0x4610fac5; BYTE $0x1c // vmovss xmm0, dword [rsi + 28] + LONG $0xd5930f41 // setae r13b + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd7930f41 // setae r15b + LONG $0x4610fac5; BYTE $0x20 // vmovss xmm0, dword [rsi + 32] + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + LONG $0x4610fac5; BYTE $0x24 // vmovss xmm0, dword [rsi + 36] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x4610fac5; BYTE $0x28 // vmovss xmm0, dword [rsi + 40] + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0x4610fac5; BYTE $0x2c // vmovss xmm0, dword [rsi + 44] + LONG $0xd1930f41 // setae r9b + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd3930f41 // setae r11b + LONG $0x4610fac5; BYTE $0x30 // vmovss xmm0, dword [rsi + 48] + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0x4610fac5; BYTE $0x34 // vmovss xmm0, dword [rsi + 52] + LONG $0xd2930f41 // setae r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x4610fac5; BYTE $0x38 // vmovss xmm0, dword [rsi + 56] + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + LONG $0x4610fac5; BYTE $0x3c // vmovss xmm0, dword [rsi + 60] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x4610fac5; BYTE $0x40 // vmovss xmm0, dword [rsi + 64] + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x4610fac5; BYTE $0x44 // vmovss xmm0, dword [rsi + 68] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x4610fac5; BYTE $0x48 // vmovss xmm0, dword [rsi + 72] + LONG $0xd6930f41 // setae r14b + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x4610fac5; BYTE $0x4c // vmovss xmm0, dword [rsi + 76] + LONG $0xd4930f41 // setae r12b + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x4610fac5; BYTE $0x50 // vmovss xmm0, dword [rsi + 80] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x4610fac5; BYTE $0x54 // vmovss xmm0, dword [rsi + 84] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x4610fac5; BYTE $0x58 // vmovss xmm0, dword [rsi + 88] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x4610fac5; BYTE $0x5c // vmovss xmm0, dword [rsi + 92] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0x4610fac5; BYTE $0x60 // vmovss xmm0, dword [rsi + 96] + LONG $0xd0930f41 // setae r8b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x4610fac5; BYTE $0x64 // vmovss xmm0, dword [rsi + 100] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x4610fac5; BYTE $0x68 // vmovss xmm0, dword [rsi + 104] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x4610fac5; BYTE $0x6c // vmovss xmm0, dword [rsi + 108] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x4610fac5; BYTE $0x70 // vmovss xmm0, dword [rsi + 112] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + LONG $0x4610fac5; BYTE $0x74 // vmovss xmm0, dword [rsi + 116] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + LONG $0x4610fac5; BYTE $0x78 // vmovss xmm0, dword [rsi + 120] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x4610fac5; BYTE $0x7c // vmovss xmm0, dword [rsi + 124] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + LONG $0xd7930f40 // setae dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB9_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB9_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_122: + LONG $0x0410fac5; BYTE $0x8e // vmovss xmm0, dword [rsi + 4*rcx] + LONG $0x042ef8c5; BYTE $0x8a // vucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_122 + JMP LBB9_123 + +LBB9_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_59 + LONG $0x01c68349 // add r14, 1 + +LBB9_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB9_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7930f41 // setae r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7930f40 // setae dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2930f41 // setae r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3930f41 // setae r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6930f41 // setae r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4930f41 // setae r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5930f41 // setae r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1930f41 // setae r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0930f41 // setae r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB9_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB9_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_67: + LONG $0x0e04b60f // movzx eax, byte [rsi + rcx] + WORD $0x043a; BYTE $0x0a // cmp al, byte [rdx + rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_67 + JMP LBB9_123 + +LBB9_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_92 + LONG $0x01c68349 // add r14, 1 + +LBB9_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd59d0f41 // setge r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd09d0f41 // setge r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd39d0f41 // setge r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd79d0f41 // setge r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd29d0f41 // setge r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd69d0f41 // setge r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd49d0f41 // setge r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd19d0f41 // setge r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_100 + +LBB9_123: + SUBQ $8, SP + RET + +DATA LCDATA7<>+0x000(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x008(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x010(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x018(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x0d8(SB)/8, $0x8080808080808080 +GLOBL LCDATA7<>(SB), 8, $224 + +TEXT ·_comparison_greater_equal_arr_scalar_avx2(SB), $1384-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1344(SP) + LEAQ LCDATA7<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB10_13 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB10_25 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB10_48 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB10_56 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB10_175 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_7: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_7 + LONG $0x01c38349 // add r11, 1 + +LBB10_9: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_100 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_11: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000982494930f // setae byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7930f40 // setae dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6930f41 // setae r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1930f41 // setae r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2930f41 // setae r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3930f41 // setae r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4930f41 // setae r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7930f41 // setae r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_11 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_101 + JMP LBB10_175 + +LBB10_13: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB10_38 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB10_64 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB10_72 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB10_175 + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fbc5 // vmovsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_21 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_19: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x08c68348 // add rsi, 8 + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_19 + LONG $0x01c38349 // add r11, 1 + +LBB10_21: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_103 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_23: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + QUAD $0x000000a02494960f // setbe byte [rsp + 160] + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + LONG $0xd1960f41 // setbe r9b + LONG $0x462ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rsi + 16] + LONG $0xd6960f41 // setbe r14b + LONG $0x462ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rsi + 24] + LONG $0xd5960f41 // setbe r13b + LONG $0x462ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rsi + 32] + QUAD $0x000000902494960f // setbe byte [rsp + 144] + LONG $0x462ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rsi + 40] + LONG $0x2454960f; BYTE $0x60 // setbe byte [rsp + 96] + LONG $0x462ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rsi + 48] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x462ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rsi + 56] + WORD $0x960f; BYTE $0xd3 // setbe bl + LONG $0x462ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rsi + 64] + LONG $0x2454960f; BYTE $0x78 // setbe byte [rsp + 120] + LONG $0x462ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rsi + 72] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x462ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rsi + 80] + LONG $0xd7960f40 // setbe dil + LONG $0x462ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rsi + 88] + LONG $0xd2960f41 // setbe r10b + LONG $0x462ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rsi + 96] + LONG $0xd3960f41 // setbe r11b + LONG $0x462ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rsi + 104] + LONG $0xd4960f41 // setbe r12b + LONG $0x462ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rsi + 112] + QUAD $0x000000802494960f // setbe byte [rsp + 128] + LONG $0x462ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rsi + 120] + WORD $0x960f; BYTE $0xd1 // setbe cl + QUAD $0x00000080862ef9c5 // vucomisd xmm0, qword [rsi + 128] + LONG $0x2454960f; BYTE $0x50 // setbe byte [rsp + 80] + QUAD $0x00000088862ef9c5 // vucomisd xmm0, qword [rsi + 136] + LONG $0x2454960f; BYTE $0x70 // setbe byte [rsp + 112] + QUAD $0x00000090862ef9c5 // vucomisd xmm0, qword [rsi + 144] + QUAD $0x000000882494960f // setbe byte [rsp + 136] + QUAD $0x00000098862ef9c5 // vucomisd xmm0, qword [rsi + 152] + LONG $0x2454960f; BYTE $0x48 // setbe byte [rsp + 72] + QUAD $0x000000a0862ef9c5 // vucomisd xmm0, qword [rsi + 160] + LONG $0x2454960f; BYTE $0x58 // setbe byte [rsp + 88] + QUAD $0x000000a8862ef9c5 // vucomisd xmm0, qword [rsi + 168] + LONG $0x2454960f; BYTE $0x68 // setbe byte [rsp + 104] + QUAD $0x000000b0862ef9c5 // vucomisd xmm0, qword [rsi + 176] + LONG $0x2454960f; BYTE $0x40 // setbe byte [rsp + 64] + QUAD $0x000000b8862ef9c5 // vucomisd xmm0, qword [rsi + 184] + LONG $0xd7960f41 // setbe r15b + QUAD $0x000000c0862ef9c5 // vucomisd xmm0, qword [rsi + 192] + LONG $0x2454960f; BYTE $0x20 // setbe byte [rsp + 32] + QUAD $0x000000c8862ef9c5 // vucomisd xmm0, qword [rsi + 200] + LONG $0x2454960f; BYTE $0x28 // setbe byte [rsp + 40] + QUAD $0x000000d0862ef9c5 // vucomisd xmm0, qword [rsi + 208] + LONG $0x2454960f; BYTE $0x30 // setbe byte [rsp + 48] + QUAD $0x000000d8862ef9c5 // vucomisd xmm0, qword [rsi + 216] + LONG $0x2454960f; BYTE $0x38 // setbe byte [rsp + 56] + QUAD $0x000000e0862ef9c5 // vucomisd xmm0, qword [rsi + 224] + QUAD $0x000001402494960f // setbe byte [rsp + 320] + QUAD $0x000000e8862ef9c5 // vucomisd xmm0, qword [rsi + 232] + QUAD $0x000001202494960f // setbe byte [rsp + 288] + QUAD $0x000000f0862ef9c5 // vucomisd xmm0, qword [rsi + 240] + LONG $0x2454960f; BYTE $0x1c // setbe byte [rsp + 28] + QUAD $0x000000f8862ef9c5 // vucomisd xmm0, qword [rsi + 248] + LONG $0xd0960f41 // setbe r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a0248c0244 // add r9b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x78245402 // add dl, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000008024bcb60f // movzx edi, byte [rsp + 128] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB10_23 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_104 + JMP LBB10_175 + +LBB10_25: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB10_80 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB10_175 + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_128 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + WORD $0x894d; BYTE $0xdd // mov r13, r11 + +LBB10_29: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_29 + LONG $0x01c58349 // add r13, 1 + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_129 + +LBB10_31: + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000026024bc894c // mov qword [rsp + 608], r15 + JB LBB10_34 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc5 // cmp r13, rax + JAE LBB10_182 + QUAD $0x00000000bd048d4a // lea rax, [4*r15] + WORD $0x014c; BYTE $0xe8 // add rax, r13 + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB10_182 + +LBB10_34: + WORD $0xc031 // xor eax, eax + QUAD $0x000001a024848948 // mov qword [rsp + 416], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x0000016824ac894c // mov qword [rsp + 360], r13 + +LBB10_35: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + QUAD $0x000001a024ac2b4c // sub r13, qword [rsp + 416] + QUAD $0x0000009824ac894c // mov qword [rsp + 152], r13 + +LBB10_36: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd09d0f41 // setge r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd79d0f41 // setge r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd59d0f41 // setge r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd39d0f41 // setge r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd69d0f40 // setge sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd79d0f40 // setge dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd29d0f41 // setge r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd49d0f41 // setge r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd19d0f41 // setge r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd69d0f41 // setge r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x20 // add r8b, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x40249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 320] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000016824b48b48 // mov rsi, qword [rsp + 360] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016824b48948 // mov qword [rsp + 360], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB10_36 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000026024bc8b4c // mov r15, qword [rsp + 608] + JMP LBB10_130 + +LBB10_38: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB10_92 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB10_175 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_44 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_42: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_42 + LONG $0x01c38349 // add r11, 1 + +LBB10_44: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_106 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB10_46: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000982494930f // setae byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7930f40 // setae dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6930f41 // setae r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1930f41 // setae r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2930f41 // setae r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3930f41 // setae r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4930f41 // setae r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7930f41 // setae r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_46 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_107 + JMP LBB10_175 + +LBB10_48: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_50: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_50 + LONG $0x01c38349 // add r11, 1 + +LBB10_52: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_109 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_54: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7930f40 // setae dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6930f41 // setae r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + QUAD $0x000000982494930f // setae byte [rsp + 152] + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1930f41 // setae r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2930f41 // setae r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3930f41 // setae r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4930f41 // setae r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7930f41 // setae r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + WORD $0x0840; BYTE $0xc7 // or dil, al + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_54 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_110 + JMP LBB10_175 + +LBB10_56: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_58: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_58 + LONG $0x01c38349 // add r11, 1 + +LBB10_60: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_112 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_62: + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x0000009824949d0f // setge byte [rsp + 152] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd79d0f40 // setge dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd69d0f41 // setge r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd19d0f41 // setge r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd29d0f41 // setge r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd39d0f41 // setge r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd49d0f41 // setge r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd79d0f41 // setge r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd09d0f41 // setge r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_62 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_113 + JMP LBB10_175 + +LBB10_64: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_68 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_66: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_66 + LONG $0x01c38349 // add r11, 1 + +LBB10_68: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_115 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_70: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x0000009824949d0f // setge byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd79d0f40 // setge dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd69d0f41 // setge r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd19d0f41 // setge r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd29d0f41 // setge r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd39d0f41 // setge r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd49d0f41 // setge r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd79d0f41 // setge r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd09d0f41 // setge r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_70 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_116 + JMP LBB10_175 + +LBB10_72: + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0210fac5 // vmovss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_74: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x04c68348 // add rsi, 4 + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_74 + LONG $0x01c38349 // add r11, 1 + +LBB10_76: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_118 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_78: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + QUAD $0x000000a02494960f // setbe byte [rsp + 160] + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + LONG $0xd1960f41 // setbe r9b + LONG $0x462ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rsi + 8] + LONG $0xd6960f41 // setbe r14b + LONG $0x462ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rsi + 12] + LONG $0xd5960f41 // setbe r13b + LONG $0x462ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rsi + 16] + QUAD $0x000000902494960f // setbe byte [rsp + 144] + LONG $0x462ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rsi + 20] + LONG $0x2454960f; BYTE $0x60 // setbe byte [rsp + 96] + LONG $0x462ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rsi + 24] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x462ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rsi + 28] + WORD $0x960f; BYTE $0xd3 // setbe bl + LONG $0x462ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rsi + 32] + LONG $0x2454960f; BYTE $0x78 // setbe byte [rsp + 120] + LONG $0x462ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rsi + 36] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x462ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rsi + 40] + LONG $0xd7960f40 // setbe dil + LONG $0x462ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rsi + 44] + LONG $0xd2960f41 // setbe r10b + LONG $0x462ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rsi + 48] + LONG $0xd3960f41 // setbe r11b + LONG $0x462ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rsi + 52] + LONG $0xd4960f41 // setbe r12b + LONG $0x462ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rsi + 56] + QUAD $0x000000802494960f // setbe byte [rsp + 128] + LONG $0x462ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rsi + 60] + WORD $0x960f; BYTE $0xd1 // setbe cl + LONG $0x462ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rsi + 64] + LONG $0x2454960f; BYTE $0x50 // setbe byte [rsp + 80] + LONG $0x462ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rsi + 68] + LONG $0x2454960f; BYTE $0x70 // setbe byte [rsp + 112] + LONG $0x462ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rsi + 72] + QUAD $0x000000882494960f // setbe byte [rsp + 136] + LONG $0x462ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rsi + 76] + LONG $0x2454960f; BYTE $0x48 // setbe byte [rsp + 72] + LONG $0x462ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rsi + 80] + LONG $0x2454960f; BYTE $0x58 // setbe byte [rsp + 88] + LONG $0x462ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rsi + 84] + LONG $0x2454960f; BYTE $0x68 // setbe byte [rsp + 104] + LONG $0x462ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rsi + 88] + LONG $0x2454960f; BYTE $0x40 // setbe byte [rsp + 64] + LONG $0x462ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rsi + 92] + LONG $0xd7960f41 // setbe r15b + LONG $0x462ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rsi + 96] + LONG $0x2454960f; BYTE $0x20 // setbe byte [rsp + 32] + LONG $0x462ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rsi + 100] + LONG $0x2454960f; BYTE $0x28 // setbe byte [rsp + 40] + LONG $0x462ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rsi + 104] + LONG $0x2454960f; BYTE $0x30 // setbe byte [rsp + 48] + LONG $0x462ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rsi + 108] + LONG $0x2454960f; BYTE $0x38 // setbe byte [rsp + 56] + LONG $0x462ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rsi + 112] + QUAD $0x000001402494960f // setbe byte [rsp + 320] + LONG $0x462ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rsi + 116] + QUAD $0x000001202494960f // setbe byte [rsp + 288] + LONG $0x462ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rsi + 120] + LONG $0x2454960f; BYTE $0x1c // setbe byte [rsp + 28] + LONG $0x462ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rsi + 124] + LONG $0xd0960f41 // setbe r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a0248c0244 // add r9b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x78245402 // add dl, byte [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000008024bcb60f // movzx edi, byte [rsp + 128] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + WORD $0x1a88 // mov byte [rdx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4a88; BYTE $0x01 // mov byte [rdx + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd8 // or r8b, bl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027a8844 // mov byte [rdx + 2], r15b + LONG $0x03428844 // mov byte [rdx + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c28348 // add rdx, 4 + QUAD $0x0000011024948948 // mov qword [rsp + 272], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB10_78 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_119 + JMP LBB10_175 + +LBB10_80: + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_84 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_82: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_82 + LONG $0x01c38349 // add r11, 1 + +LBB10_84: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_121 + LONG $0x20ff8349 // cmp r15, 32 + LONG $0x24748944; BYTE $0x1c // mov dword [rsp + 28], r14d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000017024bc894c // mov qword [rsp + 368], r15 + JB LBB10_88 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc3 // cmp r11, rax + JAE LBB10_185 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB10_185 + +LBB10_88: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x00000168249c894c // mov qword [rsp + 360], r11 + +LBB10_89: + QUAD $0x0000018024bc2b4c // sub r15, qword [rsp + 384] + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + +LBB10_90: + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + LONG $0x24343845 // cmp byte [r12], r14b + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x24743845; BYTE $0x01 // cmp byte [r12 + 1], r14b + LONG $0xd0930f41 // setae r8b + LONG $0x24743845; BYTE $0x02 // cmp byte [r12 + 2], r14b + LONG $0xd7930f41 // setae r15b + LONG $0x24743845; BYTE $0x03 // cmp byte [r12 + 3], r14b + LONG $0xd5930f41 // setae r13b + LONG $0x24743845; BYTE $0x04 // cmp byte [r12 + 4], r14b + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x24743845; BYTE $0x05 // cmp byte [r12 + 5], r14b + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x24743845; BYTE $0x06 // cmp byte [r12 + 6], r14b + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x24743845; BYTE $0x07 // cmp byte [r12 + 7], r14b + LONG $0xd3930f41 // setae r11b + LONG $0x24743845; BYTE $0x08 // cmp byte [r12 + 8], r14b + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x24743845; BYTE $0x09 // cmp byte [r12 + 9], r14b + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x24743845; BYTE $0x0a // cmp byte [r12 + 10], r14b + LONG $0xd6930f40 // setae sil + LONG $0x24743845; BYTE $0x0b // cmp byte [r12 + 11], r14b + LONG $0xd7930f40 // setae dil + LONG $0x24743845; BYTE $0x0c // cmp byte [r12 + 12], r14b + LONG $0xd2930f41 // setae r10b + LONG $0x24743845; BYTE $0x0d // cmp byte [r12 + 13], r14b + LONG $0xd4930f41 // setae r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + LONG $0xd1930f41 // setae r9b + LONG $0x10713844 // cmp byte [rcx + 16], r14b + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x12713844 // cmp byte [rcx + 18], r14b + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0xd6930f41 // setae r14b + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x930f; BYTE $0xd3 // setae bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x20 // add r8b, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xc7 // or r15b, r8b + WORD $0xd200 // add dl, dl + LONG $0x40249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 320] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xc000 // add al, al + LONG $0x20248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 288] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + QUAD $0x0000016824b48b48 // mov rsi, qword [rsp + 360] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd6 // or r14b, dl + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xc000 // add al, al + LONG $0x10248402; WORD $0x0001; BYTE $0x00 // add al, byte [rsp + 272] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02768844 // mov byte [rsi + 2], r14b + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x20618d4c // lea r12, [rcx + 32] + LONG $0x04c68348 // add rsi, 4 + QUAD $0x0000016824b48948 // mov qword [rsp + 360], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB10_90 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000017024bc8b4c // mov r15, qword [rsp + 368] + JMP LBB10_122 + +LBB10_92: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_96 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_94: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1b // movzx r8d, byte [r11 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1b3c8841 // mov byte [r11 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_94 + LONG $0x01c38349 // add r11, 1 + +LBB10_96: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_125 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x000000a824bc894c // mov qword [rsp + 168], r15 + +LBB10_98: + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x0000009824949d0f // setge byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd79d0f40 // setge dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd69d0f41 // setge r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd19d0f41 // setge r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd29d0f41 // setge r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd39d0f41 // setge r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd49d0f41 // setge r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd79d0f41 // setge r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd09d0f41 // setge r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1b // mov byte [r11], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014b8841 // mov byte [r11 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x1c // movzx edx, byte [rsp + 28] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027b8845 // mov byte [r11 + 2], r15b + LONG $0x03438845 // mov byte [r11 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c38349 // add r11, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB10_98 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JL LBB10_126 + JMP LBB10_175 + +LBB10_100: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_101: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_133 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_135 + +LBB10_103: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_104: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_137 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_139 + +LBB10_106: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_107: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_141 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_143 + +LBB10_109: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_110: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_145 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_147 + +LBB10_112: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_113: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_150 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_152 + +LBB10_115: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_116: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_154 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_156 + +LBB10_118: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_119: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_158 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_160 + +LBB10_121: + QUAD $0x00000168249c894c // mov qword [rsp + 360], r11 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB10_122: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_163 + WORD $0xf631 // xor esi, esi + JMP LBB10_166 + +LBB10_125: + WORD $0x894d; BYTE $0xde // mov r14, r11 + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + +LBB10_126: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_168 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_170 + +LBB10_128: + WORD $0x894d; BYTE $0xdd // mov r13, r11 + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JGE LBB10_31 + +LBB10_129: + QUAD $0x0000016824ac894c // mov qword [rsp + 360], r13 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + +LBB10_130: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_175 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_176 + WORD $0xf631 // xor esi, esi + JMP LBB10_179 + +LBB10_133: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_134: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_134 + +LBB10_135: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0xc031 // xor eax, eax + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB10_149 + +LBB10_137: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_138: + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + WORD $0x960f; BYTE $0xd0 // setbe al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rsi + 8] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x10c68348 // add rsi, 16 + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_138 + +LBB10_139: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + LONG $0x062ef9c5 // vucomisd xmm0, qword [rsi] + JMP LBB10_162 + +LBB10_141: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_142: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_142 + +LBB10_143: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0xc031 // xor eax, eax + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB10_149 + +LBB10_145: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_146: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x17 // movzx r10d, byte [r15 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x17048841 // mov byte [r15 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x171c8841 // mov byte [r15 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_146 + +LBB10_147: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0xc031 // xor eax, eax + LONG $0x2e394466 // cmp word [rsi], r13w + +LBB10_149: + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB10_174 + +LBB10_150: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_151: + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_151 + +LBB10_152: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + LONG $0x2e394466 // cmp word [rsi], r13w + JMP LBB10_172 + +LBB10_154: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_155: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_155 + +LBB10_156: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB10_172 + +LBB10_158: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_159: + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + WORD $0x960f; BYTE $0xd0 // setbe al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rsi + 4] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x08c68348 // add rsi, 8 + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_159 + +LBB10_160: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + LONG $0x062ef8c5 // vucomiss xmm0, dword [rsi] + +LBB10_162: + WORD $0x960f; BYTE $0xd0 // setbe al + JMP LBB10_173 + +LBB10_163: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000168249c8b4c // mov r11, qword [rsp + 360] + +LBB10_164: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB10_164 + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB10_166: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0xc031 // xor eax, eax + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0xff14 // adc al, -1 + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000016824848b4c // mov r8, qword [rsp + 360] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + JMP LBB10_181 + +LBB10_168: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_169: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3f148841 // mov byte [r15 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_169 + +LBB10_170: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + +LBB10_172: + WORD $0x9d0f; BYTE $0xd0 // setge al + +LBB10_173: + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB10_174: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB10_175: + MOVQ 1344(SP), SP + VZEROUPPER + RET + +LBB10_176: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000168249c8b4c // mov r11, qword [rsp + 360] + +LBB10_177: + LONG $0x34343845 // cmp byte [r12 + rsi], r14b + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x34743845; BYTE $0x01 // cmp byte [r12 + rsi + 1], r14b + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB10_177 + WORD $0x0149; BYTE $0xf4 // add r12, rsi + +LBB10_179: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_175 + LONG $0x24343845 // cmp byte [r12], r14b + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000016824848b4c // mov r8, qword [rsp + 360] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + +LBB10_181: + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB10_175 + +LBB10_182: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + QUAD $0x000001a024bc894c // mov qword [rsp + 416], r15 + QUAD $0x00000000bd048d4a // lea rax, [4*r15] + WORD $0x014c; BYTE $0xe8 // add rax, r13 + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00018024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 384], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x0000011024ac894c // mov qword [rsp + 272], r13 + +LBB10_183: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rcx + 1] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xe06ef9c5 // vmovd xmm4, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x1644b60f; BYTE $0x02 // movzx eax, byte [rsi + rdx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000240248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 576], xmm1 + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x0000010024948948 // mov qword [rsp + 256], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + LONG $0x20cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 544 + QUAD $0x000000f8249c8948 // mov qword [rsp + 248], rbx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x80cb8149; WORD $0x0002; BYTE $0x00 // or r11, 640 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02a00d48; WORD $0x0000 // or rax, 672 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x000000b024848948 // mov qword [rsp + 176], rax + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0xc0cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 704 + QUAD $0x000000f024bc8948 // mov qword [rsp + 240], rdi + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xe0ca8148; WORD $0x0002; BYTE $0x00 // or rdx, 736 + QUAD $0x000000d824948948 // mov qword [rsp + 216], rdx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03000d48; WORD $0x0000 // or rax, 768 + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x20cf8149; WORD $0x0003; BYTE $0x00 // or r15, 800 + LONG $0x247c894c; BYTE $0x70 // mov qword [rsp + 112], r15 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0x40ce8149; WORD $0x0003; BYTE $0x00 // or r14, 832 + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x60c98149; WORD $0x0003; BYTE $0x00 // or r9, 864 + QUAD $0x00000108248c894c // mov qword [rsp + 264], r9 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x80c88149; WORD $0x0003; BYTE $0x00 // or r8, 896 + QUAD $0x000000802484894c // mov qword [rsp + 128], r8 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0xa0ca8149; WORD $0x0003; BYTE $0x00 // or r10, 928 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c8948 // mov qword [rsp + 232], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + LONG $0x244c8948; BYTE $0x20 // mov qword [rsp + 32], rcx + LONG $0x207963c4; WORD $0x1e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + rbx], 1 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + LONG $0x2031a3c4; WORD $0x2e04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + r13], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 3 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + r11], 4 + LONG $0x2079a3c4; WORD $0x2604; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r12], 5 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + rdi], 6 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + rdx], 8 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + r15], 9 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r14], 10 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r9], 11 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r8], 12 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + r10], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + rbx], 1 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r15], 2 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + r9], 3 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + r10], 4 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r11], 5 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r8], 6 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r14], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + rcx], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rdx], 12 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rdx], 13 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + r12], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rdx], 15 + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x010116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 1 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x020116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 2 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x030116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 3 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x04012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 4 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x050116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 5 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x060116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 6 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x07012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 7 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x08012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x090116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 10 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + QUAD $0x0b0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0116642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 1], 15 + QUAD $0x01011e6c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rbx + 1], 1 + QUAD $0x02013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 2 + QUAD $0x03010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 3 + QUAD $0x0401166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 4 + QUAD $0x05011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 5 + QUAD $0x0601066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 6 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + QUAD $0x0701366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 1], 7 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 10 + QUAD $0x0b010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + QUAD $0x0e01266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0106442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x00050024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1280], ymm0 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x00024024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 576] + QUAD $0x01020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 1 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x02020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 2 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x030216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x040206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 5 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x060236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 2], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x070206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 7 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x08022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 8 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x09022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 9 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x0a0206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 10 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + QUAD $0x0b021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 2], 12 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0d023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0001e0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 480] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 4 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x05023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 5 + QUAD $0x06021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x08021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 9 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x0a021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 12 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x01030e642021e3c4 // vpinsrb xmm4, xmm11, byte [rsi + rcx + 3], 1 + QUAD $0x02030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 2 + QUAD $0x030316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 3 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x04031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 4 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x050316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 5 + QUAD $0x060336642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 3], 6 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x07030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 7 + QUAD $0x080326642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 3], 8 + QUAD $0x09032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 9 + QUAD $0x0a0306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 10 + QUAD $0x0b031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 11 + QUAD $0x0c0316642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 3], 12 + QUAD $0x0d033e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 3], 13 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0e0306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0203066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0303066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0603366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 3], 6 + QUAD $0x07033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0803066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0903066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f0326442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + LONG $0x167cb60f; BYTE $0x09 // movzx edi, byte [rsi + rdx + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001c024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 448] + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x010406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 1 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x02041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 3 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x04042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 4 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x050416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 5 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x06043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 6 + QUAD $0x07040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 7 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x080416442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 4], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x090416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 10 + QUAD $0x0b041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 13 + QUAD $0x0e0406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 4], 14 + QUAD $0x0f040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 15 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x01040e5c2001e3c4 // vpinsrb xmm3, xmm15, byte [rsi + rcx + 4], 1 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x0204165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 4], 2 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x03040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 4 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x05040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 5 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x0604365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 7 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x08040e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 4], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 9 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x0a04365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 11 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0c040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d040e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 4], 13 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0e04365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 4], 14 + QUAD $0x0f04265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 4], 15 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x010536642009a3c4 // vpinsrb xmm4, xmm14, byte [rsi + r14 + 5], 1 + QUAD $0x02051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x03051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 3 + QUAD $0x04052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 4 + QUAD $0x050506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 5 + QUAD $0x06053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x070506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 7 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x080516642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 5], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x090506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 10 + QUAD $0x0b051e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 5], 11 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x0c052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 13 + QUAD $0x0e0506642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 5], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 15 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x01050e6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rsi + rcx + 5], 1 + QUAD $0x0205166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0305066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0405066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0505066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 5 + QUAD $0x06053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0705066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 7 + QUAD $0x08050e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 5], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0905066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e05066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0f0526442051a3c4 // vpinsrb xmm0, xmm5, byte [rsi + r12 + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0a // movzx edi, byte [rsi + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x010636442019a3c4 // vpinsrb xmm0, xmm12, byte [rsi + r14 + 6], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 2 + QUAD $0x03061e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 6], 3 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x040636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 6], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 5 + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + QUAD $0x060616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 6 + QUAD $0x07063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x080606442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 6], 8 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x09063e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 6], 9 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0a060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 10 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + QUAD $0x0b0606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 6], 11 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x0c062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 15 + QUAD $0x01060e6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rcx + 6], 1 + QUAD $0x0206166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 2 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x03060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x04060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 4 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x05063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 5 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x06062e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 6], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0706166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 6], 7 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x08060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 9 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0a060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 12 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0d061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 14 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f06266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 6], 15 + QUAD $0x01071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 1 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x02071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 2 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x03071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 3 + QUAD $0x040736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 4 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x050736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 7], 5 + QUAD $0x060716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 6 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x07071e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 7], 7 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x080716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 7], 8 + QUAD $0x09073e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 7], 9 + QUAD $0x0a070e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 7], 10 + QUAD $0x0b0706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 7], 11 + QUAD $0x0c0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 7], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0107064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 1 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0207264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 7], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0307064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0407064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 4 + QUAD $0x05073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 5 + QUAD $0x06072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 6 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x0707164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 7 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x08070e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 7], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0907064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 9 + QUAD $0x0a070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b072e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 7], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0706442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 7], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0706442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x01083e442031a3c4 // vpinsrb xmm0, xmm9, byte [rsi + r15 + 8], 1 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x02081e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 8], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03080e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 8], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x040806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 4 + QUAD $0x050836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 8], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 8], 6 + QUAD $0x000000d8249c8b4c // mov r11, qword [rsp + 216] + QUAD $0x07081e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 8], 7 + QUAD $0x080816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 8], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x090816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 9 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0a0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b083e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 8], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 12 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0d0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0816442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 8], 15 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0108166c2029e3c4 // vpinsrb xmm5, xmm10, byte [rsi + rdx + 8], 1 + QUAD $0x0208266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 2 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0308166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 4 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0508166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 5 + QUAD $0x0608066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 8], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0708166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 7 + QUAD $0x08080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0908166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 9 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0a08066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 8], 10 + QUAD $0x0b082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 11 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0c08266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 8], 12 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0d08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 13 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0e08166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 8], 14 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0f082e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r13 + 8], 15 + QUAD $0x01093e742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r15 + 9], 1 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + QUAD $0x02091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 2 + QUAD $0x03090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 3 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x04091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 4 + QUAD $0x050936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 5 + QUAD $0x060906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 6 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x07091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 7 + QUAD $0x080916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 9 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x0a093e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r15 + 9], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c091e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r11 + 9], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0906742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rax + 9], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0109067c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rax + 9], 1 + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0209167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 9], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0309067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 3 + QUAD $0x04093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0509067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0609067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0709067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0809067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0909067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 9 + QUAD $0x0a09067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 9], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + QUAD $0x0c09267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 9], 12 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x0d09367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 13 + QUAD $0x0e09167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x0004c024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x010a2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 10], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 3 + QUAD $0x040a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 4 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x050a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 5 + QUAD $0x060a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x070a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x080a165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 10], 8 + QUAD $0x090a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 9 + QUAD $0x0a0a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 10 + QUAD $0x00000108248c8b4c // mov r9, qword [rsp + 264] + QUAD $0x0b0a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 11 + QUAD $0x0c0a1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 10], 12 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0d0a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 15 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x010a0e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 10], 1 + QUAD $0x020a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 2 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x040a16642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 10], 4 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x050a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x060a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 11 + QUAD $0x0c0a26642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 10], 12 + QUAD $0x0d0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 13 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0e0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 15 + QUAD $0x010b2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 11], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x030b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 3 + QUAD $0x040b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 4 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x050b064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 11], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x070b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 7 + QUAD $0x080b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 8 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x090b1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 11], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + QUAD $0x0b0b0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 11], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x0d0b3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 11], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 15 + QUAD $0x010b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 11], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 2 + QUAD $0x030b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 11], 3 + QUAD $0x040b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 11], 4 + QUAD $0x050b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 11], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x060b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 11 + QUAD $0x0c0b26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 11], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x0004a0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm3 + QUAD $0x0e0b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 11], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000480248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm1 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x010c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 12], 1 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x020c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 12], 2 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x030c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 12], 3 + QUAD $0x040c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 12], 4 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x050c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 12], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 6 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x070c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 12], 7 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x080c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 12], 8 + QUAD $0x090c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 9 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x0a0c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 12], 10 + QUAD $0x0000010824b48b4c // mov r14, qword [rsp + 264] + QUAD $0x0b0c36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 12], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 12 + QUAD $0x0d0c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 12], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 12], 15 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x010c06542051e3c4 // vpinsrb xmm2, xmm5, byte [rsi + rax + 12], 1 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x030c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x040c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x050c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x060c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090c06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 12], 9 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x0a0c2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 12], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c0c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e0c0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 12], 14 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0f0c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 15 + QUAD $0x010d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 1 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x020d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 13], 2 + QUAD $0x030d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 3 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x040d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 4 + QUAD $0x050d0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 13], 5 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x060d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 6 + QUAD $0x070d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 7 + QUAD $0x080d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x090d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 9 + QUAD $0x0a0d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 10 + QUAD $0x0b0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c0d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 13], 12 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0d0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 15 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x010d164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 13], 1 + QUAD $0x020d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 2 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x030d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x040d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 4 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x050d064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 13], 5 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x060d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x070d164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 13], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x080d3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 13], 8 + QUAD $0x090d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 9 + QUAD $0x0a0d2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 13], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 11 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0c0d1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 13], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e0d064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x00044024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0d06442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rax + 13], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x0e2e // movzx edi, byte [rsi + r13 + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x010e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x020e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 2 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x030e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x040e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x000000f024a48b4c // mov r12, qword [rsp + 240] + QUAD $0x060e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 14], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x080e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 8 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x090e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 14], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 11 + QUAD $0x0c0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 12 + QUAD $0x0d0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 13 + QUAD $0x0e0e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 14], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 15 + QUAD $0x010e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x020e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x030e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 3 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x040e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 14], 4 + QUAD $0x050e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 5 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x060e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 6 + QUAD $0x070e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x080e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x090e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 9 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0a0e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 14], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0c0e1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 14], 12 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0d0e1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 14], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x0f // movzx edi, byte [rsi + rdi + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x010f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 1 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x020f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 2 + QUAD $0x030f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 3 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x040f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x050f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 5 + QUAD $0x060f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 6 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x070f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 7 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x080f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 8 + QUAD $0x090f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 9 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0a0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 10 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + QUAD $0x0b0f3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 15], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 14 + QUAD $0x0f0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 15 + LONG $0x7cb60f42; WORD $0x0f2e // movzx edi, byte [rsi + r13 + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x010f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x030f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 3 + QUAD $0x040f165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 15], 4 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x050f2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 15], 5 + QUAD $0x060f365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 15], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x070f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 7 + QUAD $0x080f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 8 + QUAD $0x090f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 9 + QUAD $0x0a0f065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 15], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + QUAD $0x0d0f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e0f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x10 // movzx edi, byte [rsi + rax + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x011016442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 16], 1 + QUAD $0x02101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 3 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x041006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 4 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x05101e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 16], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x061006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 6 + QUAD $0x071026442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 16], 7 + QUAD $0x08100e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 16], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 10 + QUAD $0x0b103e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 16], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1006442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 16], 15 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + LONG $0x167cb60f; BYTE $0x10 // movzx edi, byte [rsi + rdx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + QUAD $0x0110364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 16], 1 + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x02100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 2 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0310164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0410164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 4 + QUAD $0x05102e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 16], 5 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0610164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0710164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 7 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0810164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 8 + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x09101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 9 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0a103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 12 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0d103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 13 + QUAD $0x0e100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 14 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 15 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x112e // movzx edi, byte [rsi + r13 + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 1 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x02113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 2 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x031116542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 17], 3 + QUAD $0x041106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 4 + QUAD $0x05111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 5 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x06110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 6 + QUAD $0x071126542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 17], 7 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x08110e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 17], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x09113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 9 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x0a113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 10 + QUAD $0x0b113e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 17], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e111e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 17], 14 + QUAD $0x0f1106542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 17], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x11 // movzx edi, byte [rsi + rax + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0111365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 1 + QUAD $0x02110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0311065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 3 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0411065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 17], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0511065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0611065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 6 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x07110e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 17], 7 + QUAD $0x0811165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 8 + QUAD $0x09111e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 17], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b11365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 17], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e11065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1106442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x7cb60f42; WORD $0x122e // movzx edi, byte [rsi + r13 + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x021206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 2 + QUAD $0x031216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x041206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x061206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 6 + QUAD $0x071226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 7 + QUAD $0x08120e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 18], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 18], 9 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0a120e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 18], 10 + QUAD $0x0b123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 11 + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x0c1226442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 18], 12 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0d121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 13 + QUAD $0x0e121e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 18], 14 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0f123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 15 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + LONG $0x0e7cb60f; BYTE $0x12 // movzx edi, byte [rsi + rcx + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x01120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x02120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 2 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x03120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 3 + QUAD $0x0412064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 4 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x05120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x06120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 6 + QUAD $0x07120e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 18], 7 + QUAD $0x0812164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 8 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0912064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 18], 9 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0a120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 10 + QUAD $0x0b12364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 18], 11 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0c12164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 12 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0d12164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 18], 13 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0e121e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 18], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 15 + LONG $0x7cb60f42; WORD $0x132e // movzx edi, byte [rsi + r13 + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 1 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x02133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 2 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x03133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 3 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x04132e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 19], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x05133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 5 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x06133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x08133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 8 + QUAD $0x091306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 9 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0a1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 11 + QUAD $0x0c1326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 12 + QUAD $0x0d131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 14 + QUAD $0x0f133e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 19], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x13 // movzx edi, byte [rsi + rax + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0113065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 1 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0213365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0313065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 3 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0413065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 4 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x05133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 5 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x06130e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 19], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0713065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0813065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 8 + QUAD $0x0913065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 9 + QUAD $0x0a130e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 19], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 11 + QUAD $0x0c13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 12 + QUAD $0x0d13165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 13 + QUAD $0x0e131e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 19], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f13065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x00000100249c8b4c // mov r11, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x141e // movzx edi, byte [rsi + r11 + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 1 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 3 + QUAD $0x04142e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 20], 4 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x05140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 5 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x061406442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 20], 6 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x071426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x08143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x09143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 9 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0a140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 10 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0b141e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 20], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x14 // movzx edi, byte [rsi + rdi + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x0114164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 1 + QUAD $0x0214364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 2 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0314364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 3 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x04142e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 20], 4 + QUAD $0x05143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 5 + QUAD $0x06140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x08143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x09143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 9 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0a143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0d143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 13 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x0e140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 15 + LONG $0x7cb60f42; WORD $0x151e // movzx edi, byte [rsi + r11 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 1 + QUAD $0x021516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 2 + WORD $0x8949; BYTE $0xd3 // mov r11, rdx + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x041506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 5 + QUAD $0x061506542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 21], 6 + QUAD $0x071526542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 21], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 9 + QUAD $0x0a150e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 21], 10 + QUAD $0x0b151e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 21], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x15 // movzx edi, byte [rsi + rax + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0115165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0215065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 2 + QUAD $0x0315365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 21], 3 + QUAD $0x04152e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 21], 4 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0515365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 21], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0615065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 6 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0715165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 7 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0815065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 8 + QUAD $0x09153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 9 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x0a15265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 21], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b15065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 13 + QUAD $0x0e150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f151e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rbx + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rcx + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 1 + QUAD $0x02161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 2 + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x04163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 4 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x06160e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 22], 6 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x07163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 7 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x081616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x091616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 9 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x0a161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 11 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x0c1606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 22], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rdi + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x01163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 1 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x02162e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 22], 2 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x03163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 3 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x04163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 4 + QUAD $0x0516364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 6 + QUAD $0x0716164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 7 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0816364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 22], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 9 + QUAD $0x0a16264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 22], 10 + QUAD $0x0b16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 11 + QUAD $0x0c163e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 22], 12 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0d16164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e16064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 14 + QUAD $0x0f161e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 22], 15 + LONG $0x0e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rcx + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 1 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x02170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x041706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 5 + QUAD $0x06170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 6 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x07170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 8 + QUAD $0x091716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 9 + QUAD $0x0a171e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 23], 10 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x0b1726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 23], 11 + QUAD $0x0c1706542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 23], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1706542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 23], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x17 // movzx edi, byte [rsi + rax + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0117065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 1 + QUAD $0x02172e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 23], 2 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0317165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 23], 3 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x04173e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 23], 4 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x05171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 5 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x06172e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 23], 6 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0717065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 7 + QUAD $0x0817365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 23], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0917065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 9 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0a17065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c173e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 23], 12 + QUAD $0x0d17165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 13 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0e17165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 23], 14 + QUAD $0x00000120249c8b4c // mov r11, qword [rsp + 288] + QUAD $0x0f171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rdi + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 1 + QUAD $0x02180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 2 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x03180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 3 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x04180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 4 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x05180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 5 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x061836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 6 + QUAD $0x07180e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 24], 7 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x08180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x09180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 9 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x0a180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 10 + QUAD $0x0b1826442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 24], 11 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0c180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 12 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0d180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f180e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 24], 15 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x01180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 1 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0218264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 2 + QUAD $0x0318164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 3 + QUAD $0x04183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 4 + QUAD $0x05181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 5 + QUAD $0x06182e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 24], 6 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x07180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 7 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x08183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 9 + QUAD $0x0a18064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 10 + QUAD $0x0b18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 11 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c18064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 24], 12 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0d180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 13 + QUAD $0x0e18164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 14 + QUAD $0x0f181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x19 // movzx edi, byte [rsi + rax + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x011916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 1 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x021906542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 25], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x041906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 4 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x05191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 5 + QUAD $0x061936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 6 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x071906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 8 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x091916542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 25], 9 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0a1936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 10 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0b193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 11 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0c191e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 25], 12 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0d193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e193e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 25], 14 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0f192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + LONG $0x3e7cb60f; BYTE $0x19 // movzx edi, byte [rsi + rdi + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 1 + QUAD $0x0219265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 2 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x03190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 3 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x0419265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 4 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x05193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x07193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 7 + QUAD $0x08193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 9 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0a193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 10 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0b193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 12 + QUAD $0x0d190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 13 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0e190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f190e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rcx + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x1a // movzx edi, byte [rsi + rcx + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 1 + QUAD $0x021a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 2 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x031a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 3 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x041a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 4 + QUAD $0x051a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 5 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x061a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 6 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x071a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 7 + QUAD $0x081a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 8 + QUAD $0x091a16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 26], 9 + QUAD $0x0a1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1a06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 26], 11 + QUAD $0x0c1a1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 26], 12 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x0d1a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 13 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0e1a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 14 + QUAD $0x0f1a2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 26], 15 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + LONG $0x167cb60f; BYTE $0x1a // movzx edi, byte [rsi + rdx + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x011a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 1 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x021a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 2 + QUAD $0x031a0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 26], 3 + QUAD $0x041a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 4 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x051a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 5 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x061a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 6 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x071a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x081a1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 26], 8 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x091a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 9 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0a1a164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 26], 10 + QUAD $0x0b1a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 12 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x0d1a2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 26], 13 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0e1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 15 + LONG $0x0e7cb60f; BYTE $0x1b // movzx edi, byte [rsi + rcx + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x011b3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 27], 1 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x021b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 2 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x031b0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 27], 3 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x041b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 4 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x051b16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 27], 5 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x061b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 6 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x071b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 7 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x081b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 8 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x091b0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 27], 9 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x0a1b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 10 + QUAD $0x0b1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 12 + QUAD $0x0d1b36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 27], 13 + QUAD $0x0e1b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1b06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 27], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + LONG $0x067cb60f; BYTE $0x1b // movzx edi, byte [rsi + rax + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x011b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 1 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x021b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 2 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x031b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 3 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x041b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 4 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x051b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x061b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 6 + QUAD $0x071b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 7 + QUAD $0x081b1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 27], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x091b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 9 + QUAD $0x0a1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 10 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0b1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 11 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0c1b065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 27], 12 + QUAD $0x0d1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 13 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0e1b2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 27], 14 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0f1b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x1c // movzx edi, byte [rsi + rdx + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 28], 1 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x021c26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 28], 2 + QUAD $0x031c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 3 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x041c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 4 + QUAD $0x051c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 5 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x061c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 6 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x071c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 7 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x081c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 28], 8 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x091c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 9 + QUAD $0x0a1c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 10 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0b1c1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 28], 11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x0c1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 12 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0d1c1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 28], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 15 + LONG $0x067cb60f; BYTE $0x1c // movzx edi, byte [rsi + rax + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x011c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 1 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x021c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 2 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x031c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 3 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x041c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 4 + QUAD $0x051c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 5 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x061c164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 28], 6 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x071c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 7 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x081c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 8 + QUAD $0x091c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 9 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0a1c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 28], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b1c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 11 + QUAD $0x0c1c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 12 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0d1c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 28], 13 + QUAD $0x0e1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 14 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0f1c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdi + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x011d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 1 + QUAD $0x021d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 2 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x031d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 3 + QUAD $0x041d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 4 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x051d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 5 + QUAD $0x000000f024a48b4c // mov r12, qword [rsp + 240] + QUAD $0x061d26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 29], 6 + QUAD $0x071d16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 29], 7 + QUAD $0x081d3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 29], 8 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x091d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 9 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0a1d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 10 + QUAD $0x0b1d1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 29], 11 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x0c1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 12 + QUAD $0x0d1d1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 29], 13 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0e1d16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 29], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f1d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 15 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + LONG $0x7cb60f42; WORD $0x1d3e // movzx edi, byte [rsi + r15 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x021d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x031d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 3 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x041d1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 29], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x051d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 5 + QUAD $0x061d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 6 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x071d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 29], 7 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x081d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 29], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 9 + QUAD $0x0a1d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 29], 10 + QUAD $0x0b1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 11 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0c1d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 12 + QUAD $0x0d1d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 29], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1d06642061e3c4 // vpinsrb xmm4, xmm3, byte [rsi + rax + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x0f1d2e442059a3c4 // vpinsrb xmm0, xmm4, byte [rsi + r13 + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x1e // movzx edi, byte [rsi + rax + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x011e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 1 + LONG $0x067cb60f; BYTE $0x1f // movzx edi, byte [rsi + rax + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 1 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x061e26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 30], 6 + QUAD $0x061f264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 31], 6 + QUAD $0x0000011024ac8b4c // mov r13, qword [rsp + 272] + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + QUAD $0x0a1e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 30], 10 + QUAD $0x0a1f0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 31], 10 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0c1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 12 + QUAD $0x0c1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + QUAD $0x0e1e16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 30], 14 + QUAD $0x0e1f164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 31], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + LONG $0x44b60f42; WORD $0x1e3e // movzx eax, byte [rsi + r15 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x011e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 30], 1 + LONG $0x44b60f42; WORD $0x1f3e // movzx eax, byte [rsi + r15 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 31], 1 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x021e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 2 + QUAD $0x021f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 2 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 30], 4 + QUAD $0x041f1e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r11 + 31], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 30], 7 + QUAD $0x071f167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 31], 7 + QUAD $0x081e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 30], 8 + QUAD $0x081f1e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 9 + QUAD $0x091f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 11 + QUAD $0x0b1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 11 + QUAD $0x0c1e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 12 + QUAD $0x0c1f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 12 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0e1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 14 + QUAD $0x0e1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 15 + QUAD $0x0f1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00018024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 384] + LONG $0x646dc1c4; BYTE $0xc5 // vpcmpgtb ymm0, ymm2, ymm13 + QUAD $0x00050024bc64edc5; BYTE $0x00 // vpcmpgtb ymm7, ymm2, yword [rsp + 1280] + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI10_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x00024024bc64edc5; BYTE $0x00 // vpcmpgtb ymm7, ymm2, yword [rsp + 576] + LONG $0x756ffdc5; BYTE $0x20 // vmovdqa ymm6, yword 32[rbp] /* [rip + .LCPI10_1] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001e024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 480] + LONG $0x5d6ffdc5; BYTE $0x40 // vmovdqa ymm3, yword 64[rbp] /* [rip + .LCPI10_2] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0x646d41c4; BYTE $0xe6 // vpcmpgtb ymm12, ymm2, ymm14 + LONG $0x456f7dc5; BYTE $0x60 // vmovdqa ymm8, yword 96[rbp] /* [rip + .LCPI10_3] */ + LONG $0xdf1d41c4; BYTE $0xe0 // vpandn ymm12, ymm12, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc976f5c5 // vpcmpeqd ymm1, ymm1, ymm1 + LONG $0xc1f8fdc5 // vpsubb ymm0, ymm0, ymm1 + LONG $0xe476ddc5 // vpcmpeqd ymm4, ymm4, ymm4 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0x646dc1c4; BYTE $0xff // vpcmpgtb ymm7, ymm2, ymm15 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI10_4] */ + LONG $0xf9dfc5c5 // vpandn ymm7, ymm7, ymm1 + QUAD $0x0001c024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 448] + QUAD $0x000000a0ad6f7dc5 // vmovdqa ymm13, yword 160[rbp] /* [rip + .LCPI10_5] */ + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00022024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 544] + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI10_6] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x0004e024bc64edc5; BYTE $0x00 // vpcmpgtb ymm7, ymm2, yword [rsp + 1248] + QUAD $0x0004c024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 1216] + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x0004a024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 1184] + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x00048024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 1152] + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x00044024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 1088] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00046024a4646dc5; BYTE $0x00 // vpcmpgtb ymm12, ymm2, yword [rsp + 1120] + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + QUAD $0x00040024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 1024] + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x00042024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 1056] + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x0003e024bc64edc5; BYTE $0x00 // vpcmpgtb ymm7, ymm2, yword [rsp + 992] + QUAD $0x0003c024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 960] + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00038024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 896] + LONG $0xfedf05c5 // vpandn ymm15, ymm15, ymm6 + QUAD $0x0003a024b4646dc5; BYTE $0x00 // vpcmpgtb ymm14, ymm2, yword [rsp + 928] + LONG $0xf3df0dc5 // vpandn ymm14, ymm14, ymm3 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x00034024bc646dc5; BYTE $0x00 // vpcmpgtb ymm15, ymm2, yword [rsp + 832] + LONG $0xdf0541c4; BYTE $0xf8 // vpandn ymm15, ymm15, ymm8 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xfcf8c5c5 // vpsubb ymm7, ymm7, ymm4 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00036024b4646dc5; BYTE $0x00 // vpcmpgtb ymm14, ymm2, yword [rsp + 864] + LONG $0xf1df0dc5 // vpandn ymm14, ymm14, ymm1 + LONG $0x646d41c4; BYTE $0xd2 // vpcmpgtb ymm10, ymm2, ymm10 + LONG $0xdf2d41c4; BYTE $0xd5 // vpandn ymm10, ymm10, ymm13 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0x646d41c4; BYTE $0xdb // vpcmpgtb ymm11, ymm2, ymm11 + LONG $0x6f7d41c4; BYTE $0xf1 // vmovdqa ymm14, ymm9 + LONG $0xdf2541c4; BYTE $0xd9 // vpandn ymm11, ymm11, ymm9 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000280248c646dc5; BYTE $0x00 // vpcmpgtb ymm9, ymm2, yword [rsp + 640] + QUAD $0x0002a02484646dc5; BYTE $0x00 // vpcmpgtb ymm8, ymm2, yword [rsp + 672] + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x0002c024ac64edc5; BYTE $0x00 // vpcmpgtb ymm5, ymm2, yword [rsp + 704] + LONG $0xeedfd5c5 // vpandn ymm5, ymm5, ymm6 + QUAD $0x0002e024b464edc5; BYTE $0x00 // vpcmpgtb ymm6, ymm2, yword [rsp + 736] + LONG $0xf3dfcdc5 // vpandn ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x000300249c64edc5; BYTE $0x00 // vpcmpgtb ymm3, ymm2, yword [rsp + 768] + LONG $0x5ddfe5c5; BYTE $0x60 // vpandn ymm3, ymm3, yword 96[rbp] /* [rip + .LCPI10_3] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xecf8bdc5 // vpsubb ymm5, ymm8, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x00032024a464edc5; BYTE $0x00 // vpcmpgtb ymm4, ymm2, yword [rsp + 800] + LONG $0xe1dfddc5 // vpandn ymm4, ymm4, ymm1 + QUAD $0x000140248c64edc5; BYTE $0x00 // vpcmpgtb ymm1, ymm2, yword [rsp + 320] + LONG $0xdf75c1c4; BYTE $0xcd // vpandn ymm1, ymm1, ymm13 + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x000120249464edc5; BYTE $0x00 // vpcmpgtb ymm2, ymm2, yword [rsp + 288] + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8d44; BYTE $0x60 // vmovdqu yword [r13 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8d54; BYTE $0x40 // vmovdqu yword [r13 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8d64; BYTE $0x20 // vmovdqu yword [r13 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8d4c; BYTE $0x00 // vmovdqu yword [r13 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000001a0248c3b48 // cmp rcx, qword [rsp + 416] + JNE LBB10_183 + QUAD $0x0000026024bc8b4c // mov r15, qword [rsp + 608] + QUAD $0x000001a024bc3b4c // cmp r15, qword [rsp + 416] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000017024a48b4c // mov r12, qword [rsp + 368] + JNE LBB10_35 + JMP LBB10_130 + +LBB10_185: + LONG $0xe0e78349 // and r15, -32 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000021824848948 // mov qword [rsp + 536], rax + QUAD $0x0000018024bc894c // mov qword [rsp + 384], r15 + LONG $0xbb048d4b // lea rax, [r11 + 4*r15] + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + LONG $0x6e79c1c4; BYTE $0xc6 // vmovd xmm0, r14d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + WORD $0xc031 // xor eax, eax + QUAD $0x00000110249c894c // mov qword [rsp + 272], r11 + +LBB10_186: + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0000017824848948 // mov qword [rsp + 376], rax + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0604b60f // movzx eax, byte [rsi + rax] + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xc06ef9c5 // vmovd xmm0, eax + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x1e04b60f // movzx eax, byte [rsi + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x1644b60f; BYTE $0x01 // movzx eax, byte [rsi + rdx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1e44b60f; BYTE $0x01 // movzx eax, byte [rsi + rbx + 1] + LONG $0xe86ef9c5 // vmovd xmm5, eax + LONG $0x1644b60f; BYTE $0x02 // movzx eax, byte [rsi + rdx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1e44b60f; BYTE $0x02 // movzx eax, byte [rsi + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x1644b60f; BYTE $0x03 // movzx eax, byte [rsi + rdx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1e44b60f; BYTE $0x03 // movzx eax, byte [rsi + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x1644b60f; BYTE $0x04 // movzx eax, byte [rsi + rdx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000220248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 544], xmm1 + LONG $0x1e44b60f; BYTE $0x04 // movzx eax, byte [rsi + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x1644b60f; BYTE $0x05 // movzx eax, byte [rsi + rdx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1e44b60f; BYTE $0x05 // movzx eax, byte [rsi + rbx + 5] + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1644b60f; BYTE $0x06 // movzx eax, byte [rsi + rdx + 6] + QUAD $0x0000010824948948 // mov qword [rsp + 264], rdx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1e44b60f; BYTE $0x06 // movzx eax, byte [rsi + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x1644b60f; BYTE $0x07 // movzx eax, byte [rsi + rdx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1e44b60f; BYTE $0x07 // movzx eax, byte [rsi + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8949; BYTE $0xdd // mov r13, rbx + LONG $0x20cd8149; WORD $0x0002; BYTE $0x00 // or r13, 544 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x60ce8149; WORD $0x0002; BYTE $0x00 // or r14, 608 + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + LONG $0x80cb8148; WORD $0x0002; BYTE $0x00 // or rbx, 640 + QUAD $0x000000f0249c8948 // mov qword [rsp + 240], rbx + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0xa0c98149; WORD $0x0002; BYTE $0x00 // or r9, 672 + QUAD $0x00000088248c894c // mov qword [rsp + 136], r9 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x02e00d48; WORD $0x0000 // or rax, 736 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8949; BYTE $0xcb // mov r11, rcx + LONG $0x00cb8149; WORD $0x0003; BYTE $0x00 // or r11, 768 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x20cf8148; WORD $0x0003; BYTE $0x00 // or rdi, 800 + LONG $0x247c8948; BYTE $0x58 // mov qword [rsp + 88], rdi + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x40ca8149; WORD $0x0003; BYTE $0x00 // or r10, 832 + LONG $0x2454894c; BYTE $0x70 // mov qword [rsp + 112], r10 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + LONG $0x60c88149; WORD $0x0003; BYTE $0x00 // or r8, 864 + QUAD $0x000000a82484894c // mov qword [rsp + 168], r8 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x03800d48; WORD $0x0000 // or rax, 896 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0xa0ca8148; WORD $0x0003; BYTE $0x00 // or rdx, 928 + LONG $0x24548948; BYTE $0x28 // mov qword [rsp + 40], rdx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000100248c8948 // mov qword [rsp + 256], rcx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + LONG $0xe0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 992 + QUAD $0x000000d8248c8948 // mov qword [rsp + 216], rcx + QUAD $0x000000f824ac894c // mov qword [rsp + 248], r13 + LONG $0x207923c4; WORD $0x2e0c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rsi + r13], 1 + LONG $0x2031a3c4; WORD $0x2604; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rsi + r12], 2 + LONG $0x2079a3c4; WORD $0x3604; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rsi + r14], 3 + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 4 + LONG $0x2079a3c4; WORD $0x0e04; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rsi + r9], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 6 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + LONG $0x2079e3c4; WORD $0x1e04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rsi + rbx], 7 + LONG $0x2079a3c4; WORD $0x1e04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rsi + r11], 8 + LONG $0x2079e3c4; WORD $0x3e04; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rsi + rdi], 9 + LONG $0x2079a3c4; WORD $0x1604; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rsi + r10], 10 + LONG $0x2079a3c4; WORD $0x0604; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rsi + r8], 11 + LONG $0x2079a3c4; WORD $0x3e04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rsi + r15], 12 + LONG $0x2079e3c4; WORD $0x1604; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rsi + rdx], 13 + LONG $0x2079e3c4; WORD $0x0604; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rsi + rax], 14 + LONG $0x2079e3c4; WORD $0x0e04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rsi + rcx], 15 + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + LONG $0x2061a3c4; WORD $0x061c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rsi + r8], 1 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + LONG $0x2061a3c4; WORD $0x161c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rsi + r10], 2 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + LONG $0x2061e3c4; WORD $0x161c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rsi + rdx], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rsi + rax], 4 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + LONG $0x2061a3c4; WORD $0x0e1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rsi + r9], 5 + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + LONG $0x2061a3c4; WORD $0x361c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rsi + r14], 6 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + LONG $0x2061a3c4; WORD $0x3e1c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rsi + r15], 7 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x3e1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rsi + rdi], 8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + LONG $0x2061e3c4; WORD $0x061c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rsi + rax], 9 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + LONG $0x2061a3c4; WORD $0x1e1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rsi + r11], 10 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rsi + rcx], 11 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x2061e3c4; WORD $0x0e1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rsi + rcx], 12 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rsi + rbx], 13 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + LONG $0x2061a3c4; WORD $0x261c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rsi + r12], 14 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + LONG $0x2061e3c4; WORD $0x1e1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rsi + rbx], 15 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x00026024946f7dc5; BYTE $0x00 // vmovdqa ymm10, yword [rsp + 608] + LONG $0xd8deadc5 // vpmaxub ymm3, ymm10, ymm0 + QUAD $0x01012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x02011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 2 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x03012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 3 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x04012e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 1], 4 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x05011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x06011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 6 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x07011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 7 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x08011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 8 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x09011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 9 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0a011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 10 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0b011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 11 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0c011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 13 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0e011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 14 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0f011e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 1], 15 + QUAD $0x0101066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 1], 1 + QUAD $0x0201166c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r10 + 1], 2 + QUAD $0x0301166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 1], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0401166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 1], 4 + QUAD $0x05010e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 1], 5 + QUAD $0x0601366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 1], 6 + QUAD $0x07013e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 1], 7 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x08013e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 1], 8 + QUAD $0x0901066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 9 + QUAD $0x0a011e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 1], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 11 + QUAD $0x0c010e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 1], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d01066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 1], 13 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00050024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1280], ymm0 + QUAD $0x0e0126442051a3c4 // vpinsrb xmm0, xmm5, byte [rsi + r12 + 1], 14 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f0106442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 1], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x08 // movzx edi, byte [rsi + rax + 8] + LONG $0xf76ef9c5 // vmovd xmm6, edi + QUAD $0x0001e024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 480] + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x01023e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 2], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x020206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 2 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x030206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 3 + QUAD $0x04022e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 2], 4 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x05021e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 2], 5 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x06020e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 2], 6 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x070206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 2], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x080206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 8 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x090206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 10 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0b0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 11 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0c0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d0206442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 2], 13 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0e0216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 2], 14 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0f020e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 2], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0001c0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 448] + QUAD $0x0102065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 2], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x02023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 2 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x03023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 3 + QUAD $0x0402165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 2], 4 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0502165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 2], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06023e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 2], 6 + QUAD $0x0702365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 2], 7 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0802365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 2], 8 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0902265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 2], 9 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0a02165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 2], 10 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0b02165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 2], 11 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0c02165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 2], 12 + QUAD $0x0d021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0f021e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 2], 15 + QUAD $0x01033e642021a3c4 // vpinsrb xmm4, xmm11, byte [rsi + r15 + 3], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x02031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 2 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x03031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 3 + QUAD $0x04032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 4 + QUAD $0x05031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 5 + QUAD $0x06030e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 3], 6 + QUAD $0x070306642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r8 + 3], 7 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x08032e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 3], 8 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x09031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 9 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0a031e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 3], 10 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0b031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 11 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0c031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 12 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0d031e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 3], 13 + QUAD $0x0e0316642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 3], 14 + QUAD $0x0f030e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 3], 15 + QUAD $0x0103066c2039e3c4 // vpinsrb xmm5, xmm8, byte [rsi + rax + 3], 1 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0203066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 3], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0303066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0403066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0503066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 5 + QUAD $0x06033e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 3], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0703066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 7 + QUAD $0x0803366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 3], 8 + QUAD $0x0903266c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r12 + 3], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 11 + QUAD $0x0c03166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 3], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e03066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 3], 14 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f0306442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rax + 3], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x09 // movzx edi, byte [rsi + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x00022024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 544] + QUAD $0x01040e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 4], 1 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x020416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 4], 2 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x03040e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 4], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 4 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x050406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 5 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x060436442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 4], 6 + QUAD $0x07043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 7 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x08042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 8 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x09042e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 4], 9 + WORD $0x894d; BYTE $0xda // mov r10, r11 + QUAD $0x0a041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 10 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0b041e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 4], 11 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x0c041e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 4], 12 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0d043e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 4], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0f0406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 4], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0104065c2001e3c4 // vpinsrb xmm3, xmm15, byte [rsi + rax + 4], 1 + QUAD $0x0204065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 4], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0304065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0404065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x05043e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 4], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0604065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0704065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0804065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0904065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 10 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0b04065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 4], 11 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0c04065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 4], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 14 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f04065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 4], 15 + QUAD $0x01050e642009e3c4 // vpinsrb xmm4, xmm14, byte [rsi + rcx + 5], 1 + QUAD $0x020516642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 5], 2 + QUAD $0x03050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 4 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x05050e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rcx + 5], 5 + QUAD $0x060536642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 5], 6 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x07050e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r9 + 5], 7 + QUAD $0x080526642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r12 + 5], 8 + QUAD $0x09052e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 5], 9 + QUAD $0x0a0516642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 5], 10 + QUAD $0x0b051e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 5], 11 + QUAD $0x0c051e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rbx + 5], 12 + QUAD $0x0d053e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r15 + 5], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0506642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 5], 14 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0f0516642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r10 + 5], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0105066c2011e3c4 // vpinsrb xmm5, xmm13, byte [rsi + rax + 5], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02050e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 5], 2 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0305366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 5], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0405066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 4 + QUAD $0x05053e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 5], 5 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x06051e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 5], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0705066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 5], 7 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0805166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 8 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x0905166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 9 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0a05166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 10 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0b05166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 11 + QUAD $0x0c05066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 5], 12 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0d05166c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdx + 5], 13 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0e0516442051e3c4 // vpinsrb xmm0, xmm5, byte [rsi + rdx + 5], 14 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + LONG $0x167cb60f; BYTE $0x0a // movzx edi, byte [rsi + rdx + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x0f053e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 5], 15 + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x0a // movzx edi, byte [rsi + rdx + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x010626442019a3c4 // vpinsrb xmm0, xmm12, byte [rsi + r12 + 6], 1 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x02062e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 6], 2 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x030616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 3 + QUAD $0x000000f024948b48 // mov rdx, qword [rsp + 240] + QUAD $0x040616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 6], 4 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x05061e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 6], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x06063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 6 + QUAD $0x07060e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 6], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x08063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 8 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x09063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 10 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0b063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 11 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0c063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e063e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 6], 14 + QUAD $0x0f0616442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 6], 15 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x01063e6c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rdi + 6], 1 + QUAD $0x02060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 2 + WORD $0x894d; BYTE $0xf2 // mov r10, r14 + QUAD $0x0306366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04063e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 6], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 5 + QUAD $0x06061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 6 + QUAD $0x0706066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 7 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0806066c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r8 + 6], 8 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x0906366c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r14 + 6], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b06066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 6], 11 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0c061e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 6], 12 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0d060e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 6], 13 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0e060e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rcx + 6], 14 + QUAD $0x0f063e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r15 + 6], 15 + QUAD $0x010726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 7], 1 + QUAD $0x02072e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 7], 2 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x03072e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 7], 3 + QUAD $0x040716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 4 + QUAD $0x05071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 5 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x060716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 6 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x070716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 7 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x080716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 8 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x09071e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 7], 9 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0a0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 10 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0b0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 11 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x0c0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 13 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0e0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 14 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x0f0716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 7], 15 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0107164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 1 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0207164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 2 + QUAD $0x0307164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 7], 3 + QUAD $0x04073e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 7], 4 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0507164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 5 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0607164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 6 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0707164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 7 + QUAD $0x0807064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 7], 8 + QUAD $0x0907364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 7], 9 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0a07164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 7], 10 + QUAD $0x0b07064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 7], 11 + QUAD $0x0c071e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 7], 12 + QUAD $0x0d070e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 7], 13 + QUAD $0x0e070e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 7], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + QUAD $0x0f073e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 7], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + QUAD $0x0004e0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1248], ymm1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0b // movzx edi, byte [rsi + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x010826542031a3c4 // vpinsrb xmm2, xmm9, byte [rsi + r12 + 8], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x020806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 2 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x03082e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 8], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 4 + QUAD $0x0000008824ac8b4c // mov r13, qword [rsp + 136] + QUAD $0x05082e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 8], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x060806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 6 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x070816542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 8], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x080806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 8 + QUAD $0x09081e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 8], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a0806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 10 + QUAD $0x000000a824948b48 // mov rdx, qword [rsp + 168] + QUAD $0x0b0816542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 8], 11 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0c0836542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 8], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d080e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 8], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0806542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 8], 14 + QUAD $0x000000d824bc8b4c // mov r15, qword [rsp + 216] + QUAD $0x0f083e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 8], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0108066c2049e3c4 // vpinsrb xmm5, xmm6, byte [rsi + rax + 8], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0208066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0308066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0408066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 4 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x05080e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r9 + 8], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0608066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x07083e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rdi + 8], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0808066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0908066c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rax + 8], 9 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0a081e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 8], 10 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0b081e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 8], 11 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x0c081e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 8], 12 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0d081e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 8], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e081e6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rsi + rbx + 8], 14 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0f081e6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rsi + r11 + 8], 15 + LONG $0x3855e3c4; WORD $0x01d2 // vinserti128 ymm2, ymm5, xmm2, 1 + LONG $0xeadeadc5 // vpmaxub ymm5, ymm10, ymm2 + QUAD $0x010926742039a3c4 // vpinsrb xmm6, xmm8, byte [rsi + r12 + 9], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x02091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 2 + QUAD $0x030906742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r8 + 9], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x04091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 4 + QUAD $0x05092e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r13 + 9], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x06091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 6 + QUAD $0x070916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 7 + WORD $0x894d; BYTE $0xd4 // mov r12, r10 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x08091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 8 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x090916742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r10 + 9], 9 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0a091e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rbx + 9], 10 + QUAD $0x0b0916742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rdx + 9], 11 + QUAD $0x0c0936742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r14 + 9], 12 + QUAD $0x0d090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e090e742049e3c4 // vpinsrb xmm6, xmm6, byte [rsi + rcx + 9], 14 + QUAD $0x0f093e742049a3c4 // vpinsrb xmm6, xmm6, byte [rsi + r15 + 9], 15 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x01090e7c2021e3c4 // vpinsrb xmm7, xmm11, byte [rsi + rcx + 9], 1 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x02091e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r11 + 9], 2 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x03090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 4 + QUAD $0x05090e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r9 + 9], 5 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x0609167c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdx + 9], 6 + QUAD $0x07093e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rdi + 9], 7 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x08090e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rcx + 9], 8 + QUAD $0x0909067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 9 + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + QUAD $0x0a09367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 9], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 11 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x0c092e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r13 + 9], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e09067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 9], 14 + LONG $0xd574edc5 // vpcmpeqb ymm2, ymm2, ymm5 + QUAD $0x0004c024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f09066c2041e3c4 // vpinsrb xmm5, xmm7, byte [rsi + rax + 9], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x0004a024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm5 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0c // movzx edi, byte [rsi + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x000000f824bc8b4c // mov r15, qword [rsp + 248] + QUAD $0x010a3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 10], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x020a1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 10], 2 + QUAD $0x030a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 3 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x040a065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 10], 4 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x050a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 5 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x060a0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 10], 6 + QUAD $0x070a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 7 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x080a0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 10], 8 + QUAD $0x090a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 9 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x0a0a265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 10], 10 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0b0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 11 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0c0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e0a065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 10], 14 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0f0a165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 10], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x010a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 1 + QUAD $0x020a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 2 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x030a3e642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdi + 10], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x050a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 5 + QUAD $0x060a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 6 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x070a1e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r11 + 10], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x080a06642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rax + 10], 8 + QUAD $0x000000c824948b48 // mov rdx, qword [rsp + 200] + QUAD $0x090a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 9 + QUAD $0x0a0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 10 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x0b0a36642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r14 + 10], 11 + QUAD $0x0c0a2e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 10], 12 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0d0a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 13 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0e0a16642059e3c4 // vpinsrb xmm4, xmm4, byte [rsi + rdx + 10], 14 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x0f0a2e642059a3c4 // vpinsrb xmm4, xmm4, byte [rsi + r13 + 10], 15 + QUAD $0x010b3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 11], 1 + QUAD $0x020b1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 11], 2 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x030b1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 11], 3 + QUAD $0x040b06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 11], 4 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x050b1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 11], 5 + QUAD $0x060b0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 11], 6 + QUAD $0x000000b8249c8b48 // mov rbx, qword [rsp + 184] + QUAD $0x070b1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 11], 7 + QUAD $0x080b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 8 + LONG $0x244c8b4c; BYTE $0x58 // mov r9, qword [rsp + 88] + QUAD $0x090b0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 11], 9 + QUAD $0x0a0b26442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 11], 10 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x0b0b2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 11], 11 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x0c0b3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 11], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d0b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e0b0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 11], 14 + QUAD $0x0f0b16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 11], 15 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x010b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x020b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 2 + QUAD $0x030b3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 11], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x040b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x050b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 5 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x060b0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 11], 6 + QUAD $0x070b1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 11], 7 + QUAD $0x080b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x090b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 10 + QUAD $0x0b0b364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 11], 11 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0c0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000480249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm3 + QUAD $0x0e0b164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 11], 14 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + LONG $0x0e7cb60f; BYTE $0x0d // movzx edi, byte [rsi + rcx + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f0b064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 11], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00046024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0d // movzx edi, byte [rsi + rax + 13] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824a48b4c // mov r12, qword [rsp + 248] + QUAD $0x010c264c2069a3c4 // vpinsrb xmm1, xmm2, byte [rsi + r12 + 12], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x020c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 12], 2 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x030c0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 12], 3 + QUAD $0x040c064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 12], 4 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x050c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 12], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x060c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 12], 6 + QUAD $0x070c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 12], 7 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x080c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 12], 8 + QUAD $0x090c0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 12], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a0c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 12], 10 + QUAD $0x0b0c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 12], 11 + QUAD $0x0c0c3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 12], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d0c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 12], 13 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0e0c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 12], 14 + QUAD $0x0f0c164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 12], 15 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x010c16542051a3c4 // vpinsrb xmm2, xmm5, byte [rsi + r10 + 12], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x020c3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 12], 2 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x030c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 3 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x040c1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 12], 4 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x050c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 5 + QUAD $0x000000e824bc8b4c // mov r15, qword [rsp + 232] + QUAD $0x060c3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 12], 6 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x070c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 7 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x080c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 8 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x090c2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 12], 9 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0a0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 10 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0b0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 11 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0c0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 12 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0d0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 13 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0e0c0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 12], 14 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0f0c16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 12], 15 + QUAD $0x010d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 1 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x020d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 2 + QUAD $0x030d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 3 + QUAD $0x040d065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 13], 4 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x050d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 5 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x060d165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 13], 6 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x070d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 7 + QUAD $0x080d1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 13], 8 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x090d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 9 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x0a0d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 13], 10 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0b0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 11 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x0c0d0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 13], 12 + QUAD $0x0d0d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 13 + QUAD $0x0e0d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 13], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0f0d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 13], 15 + QUAD $0x010d16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 13], 1 + QUAD $0x020d3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 13], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x030d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 3 + QUAD $0x040d1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 13], 4 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x050d36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 13], 5 + QUAD $0x060d3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 13], 6 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x070d3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 13], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x080d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 8 + QUAD $0x090d2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 13], 9 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0a0d2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 13], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 11 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0c0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 13 + QUAD $0x0e0d0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 13], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000440248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0f0d06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 13], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x0e // movzx edi, byte [rsi + rax + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x010e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 14], 1 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x020e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 14], 2 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x030e0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 14], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x040e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 4 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x050e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 5 + QUAD $0x060e164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 14], 6 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x070e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 7 + QUAD $0x080e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 14], 8 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x090e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 9 + QUAD $0x0a0e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 14], 10 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0b0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 11 + QUAD $0x0c0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d0e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 14], 13 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x0e0e1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 14], 14 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x0f0e0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 14], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x010e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 1 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x020e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x030e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x040e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 4 + QUAD $0x050e36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 14], 5 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x060e16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 14], 6 + QUAD $0x070e3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 14], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x080e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 8 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x090e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 14], 9 + QUAD $0x0a0e2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 14], 10 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0b0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 11 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0c0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 14 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0f0e3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 14], 15 + QUAD $0x0000010824bc8b4c // mov r15, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x0f3e // movzx edi, byte [rsi + r15 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x010f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 1 + QUAD $0x020f16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 15], 2 + QUAD $0x030f0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 15], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x040f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 4 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x050f16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 15], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x060f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 6 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x070f06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 15], 7 + QUAD $0x080f1e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 15], 8 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x090f2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 15], 9 + QUAD $0x0a0f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 10 + QUAD $0x000000a824b48b4c // mov r14, qword [rsp + 168] + QUAD $0x0b0f36542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 15], 11 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x0c0f26542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 15], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d0f3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 15], 13 + QUAD $0x0e0f1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 15], 14 + QUAD $0x0f0f0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 15], 15 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + LONG $0x1e7cb60f; BYTE $0x0f // movzx edi, byte [rsi + rbx + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x010f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x020f0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 15], 2 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x030f0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 15], 3 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x040f1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 15], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x050f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 5 + QUAD $0x060f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 6 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x070f165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 15], 7 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x080f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 8 + QUAD $0x090f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 11 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0c0f065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 15], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d0f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e0f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 14 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0f0f3e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x7cb60f42; WORD $0x103e // movzx edi, byte [rsi + r15 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x02103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x03103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 3 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x04103e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 16], 4 + QUAD $0x051016442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 16], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x06103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 6 + QUAD $0x071006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x08103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 8 + QUAD $0x09102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 10 + QUAD $0x0b1036442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 16], 11 + QUAD $0x0c1026442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 16], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d103e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 16], 13 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0e1006442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 16], 14 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x0f102e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 16], 15 + LONG $0x1e7cb60f; BYTE $0x10 // movzx edi, byte [rsi + rbx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x01101e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 16], 1 + QUAD $0x02100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 2 + QUAD $0x03100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 3 + QUAD $0x04101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 4 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x05100e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 16], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06103e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 16], 6 + QUAD $0x0710164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 7 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x08101e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 16], 8 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x0910264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 16], 9 + QUAD $0x0000014024948b4c // mov r10, qword [rsp + 320] + QUAD $0x0a10164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 16], 10 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0b10164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 16], 11 + QUAD $0x0c10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e10064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 16], 14 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x0f100e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 16], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x11 // movzx edi, byte [rsi + rax + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x02113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x03113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 3 + QUAD $0x04113e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 17], 4 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x05113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 5 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x06113e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 17], 6 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x07113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x08113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 8 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x09113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 10 + QUAD $0x0b1136542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 17], 11 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0c113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d113e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 17], 13 + QUAD $0x0e1106542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 17], 14 + QUAD $0x0f112e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 17], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x11 // movzx edi, byte [rsi + rdi + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01111e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 17], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x02113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 2 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x03113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04113e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 17], 4 + QUAD $0x05110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 5 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x06112e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 17], 6 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x07110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 7 + QUAD $0x08111e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 17], 8 + QUAD $0x0911265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 17], 9 + QUAD $0x0a11165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 17], 10 + QUAD $0x0b11165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 17], 11 + QUAD $0x0000009824a48b4c // mov r12, qword [rsp + 152] + QUAD $0x0c11265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 17], 12 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0d110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 13 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0e110e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0f110e4c2061a3c4 // vpinsrb xmm1, xmm3, byte [rsi + r9 + 17], 15 + LONG $0xd8deadc5 // vpmaxub ymm3, ymm10, ymm0 + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + LONG $0x3875e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm1, xmm2, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + LONG $0x067cb60f; BYTE $0x12 // movzx edi, byte [rsi + rax + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x01121e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 18], 1 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x021216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 2 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + QUAD $0x031206442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 18], 3 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x04121e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 18], 4 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x051216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 5 + QUAD $0x06123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 6 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x07120e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 18], 7 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x081216442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 18], 8 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x091216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 9 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x0a1236442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 18], 10 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0b123e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 18], 11 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x0c1216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d1216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 13 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0e1216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 14 + QUAD $0x000000d824948b48 // mov rdx, qword [rsp + 216] + QUAD $0x0f1216442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 18], 15 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x12 // movzx edi, byte [rsi + rdx + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0112164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 1 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x0212164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 2 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x0312164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0412164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 18], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x05123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 5 + QUAD $0x06122e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 18], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x07123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 7 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x08123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 8 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x09123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 9 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0a123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 10 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0b123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 11 + QUAD $0x0c12264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 18], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d123e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 18], 13 + QUAD $0x0e120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 14 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0f120e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 18], 15 + LONG $0x067cb60f; BYTE $0x13 // movzx edi, byte [rsi + rax + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x021306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 2 + QUAD $0x031306542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 19], 3 + QUAD $0x04131e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 19], 4 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x051326542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 19], 5 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x06130e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 19], 6 + QUAD $0x07130e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 19], 7 + QUAD $0x081316542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 19], 8 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x09131e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 19], 9 + QUAD $0x0a1336542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 19], 10 + QUAD $0x0b133e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 19], 11 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + QUAD $0x0c131e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 19], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d1306542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 19], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 14 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x0f133e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 19], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x13 // movzx edi, byte [rsi + rdi + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x01133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x02133e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 19], 2 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0313065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 19], 3 + QUAD $0x0413165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 4 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0513165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 19], 5 + QUAD $0x06132e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 19], 6 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x0713365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 19], 7 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0813165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 8 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x09133e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 19], 9 + QUAD $0x0000014024948b48 // mov rdx, qword [rsp + 320] + QUAD $0x0a13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 10 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0b13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 11 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0c13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 12 + QUAD $0x0000012024948b48 // mov rdx, qword [rsp + 288] + QUAD $0x0d13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 13 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0e13165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 19], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x0f130e442061a3c4 // vpinsrb xmm0, xmm3, byte [rsi + r9 + 19], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x0000010824948b48 // mov rdx, qword [rsp + 264] + LONG $0x167cb60f; BYTE $0x14 // movzx edi, byte [rsi + rdx + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x011416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 1 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x021416442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 20], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x03143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x04143e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 20], 4 + QUAD $0x051426442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 20], 5 + QUAD $0x06140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 6 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x07140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 7 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x08140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 8 + QUAD $0x09141e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 20], 9 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0a140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 10 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0b140e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 20], 11 + QUAD $0x0c141e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 20], 12 + QUAD $0x0d1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e1406442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 20], 14 + QUAD $0x000000d8249c8b48 // mov rbx, qword [rsp + 216] + QUAD $0x0f141e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 20], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x14 // movzx edi, byte [rsi + rcx + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x01140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 2 + QUAD $0x0314064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 20], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 4 + QUAD $0x0514164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 20], 5 + QUAD $0x06142e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 20], 6 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x0714364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 20], 7 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x08140e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 20], 8 + QUAD $0x09143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 9 + QUAD $0x0000014024bc8b4c // mov r15, qword [rsp + 320] + QUAD $0x0a143e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 20], 10 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0b143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 11 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0c143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 12 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0d14264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 20], 13 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0e143e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 20], 14 + QUAD $0x0f140e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 20], 15 + QUAD $0x0000010824b48b4c // mov r14, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x1536 // movzx edi, byte [rsi + r14 + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 1 + QUAD $0x021516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 2 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x031516542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x04153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 4 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x05153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 5 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x06151e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 21], 6 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x07152e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 21], 7 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x081506542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 21], 8 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x09153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 10 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0b153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 11 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0c153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d153e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 21], 13 + QUAD $0x0e1506542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 21], 14 + QUAD $0x0f151e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 21], 15 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + LONG $0x1e7cb60f; BYTE $0x15 // movzx edi, byte [rsi + rbx + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0115065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 21], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x02153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 2 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x03153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x05153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 5 + QUAD $0x0615165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x07153e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 21], 7 + QUAD $0x08150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 8 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x09150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 9 + QUAD $0x0a153e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 21], 10 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0b15165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 21], 11 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x0c150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 12 + QUAD $0x0d15265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 21], 13 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0e150e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 21], 14 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x0f150e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 21], 15 + LONG $0x387563c4; WORD $0x01d8 // vinserti128 ymm11, ymm1, xmm0, 1 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + LONG $0x7cb60f42; WORD $0x1636 // movzx edi, byte [rsi + r14 + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x01160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 1 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x02160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 2 + WORD $0x8949; BYTE $0xd7 // mov r15, rdx + QUAD $0x031616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 3 + QUAD $0x000000f024b48b4c // mov r14, qword [rsp + 240] + QUAD $0x041636442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 22], 4 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x051616442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 22], 5 + QUAD $0x06161e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 22], 6 + QUAD $0x07162e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 22], 7 + QUAD $0x081606442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 22], 8 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x09160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 9 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0a160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 10 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0b160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 11 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x0c1626442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r12 + 22], 12 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0d162e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 22], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e160e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 22], 14 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x0f163e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 22], 15 + LONG $0x1e7cb60f; BYTE $0x16 // movzx edi, byte [rsi + rbx + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0116064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 1 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x0216064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 22], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0316064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 22], 3 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x04161e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 22], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x05163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x07163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 7 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x08163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 8 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x09163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 9 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0a163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 10 + QUAD $0x0b16164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 22], 11 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x0c163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 13 + QUAD $0x0e160e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 22], 14 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0f163e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 22], 15 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x3e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rdi + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x01173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x02173e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 23], 2 + QUAD $0x03173e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 23], 3 + QUAD $0x041736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 4 + QUAD $0x051716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 5 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x061716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 6 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x071716542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 23], 7 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x08170e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 23], 8 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x09173e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 23], 9 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x0a1736542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 23], 10 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0b1716542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 23], 11 + QUAD $0x0c1726542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r12 + 23], 12 + QUAD $0x0d172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 13 + QUAD $0x0e170e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 23], 14 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x0f172e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 23], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0e7cb60f; BYTE $0x17 // movzx edi, byte [rsi + rcx + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0117165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 23], 1 + QUAD $0x0217065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 2 + QUAD $0x0317065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 3 + QUAD $0x04171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0517065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0617065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 6 + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + QUAD $0x0717165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 23], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0817065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 8 + QUAD $0x000000c8249c8b4c // mov r11, qword [rsp + 200] + QUAD $0x09171e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 23], 9 + QUAD $0x0000014024a48b4c // mov r12, qword [rsp + 320] + QUAD $0x0a17265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 23], 10 + QUAD $0x0b171e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 23], 11 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0c17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 12 + QUAD $0x0000012024848b4c // mov r8, qword [rsp + 288] + QUAD $0x0d17065c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r8 + 23], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e17065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 23], 14 + LONG $0x387563c4; WORD $0x01c8 // vinserti128 ymm9, ymm1, xmm0, 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0f171e442061e3c4 // vpinsrb xmm0, xmm3, byte [rsi + rbx + 23], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x18 // movzx edi, byte [rsi + rax + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x021806442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 24], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x03183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x04183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 4 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x05183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x06183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 6 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x07183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 7 + QUAD $0x08180e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 24], 8 + QUAD $0x09183e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 24], 9 + QUAD $0x0a1836442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 24], 10 + QUAD $0x0b1816442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 24], 11 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0c183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e183e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 24], 14 + QUAD $0x0f182e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 24], 15 + LONG $0x0e7cb60f; BYTE $0x18 // movzx edi, byte [rsi + rcx + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0118164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 24], 1 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x02180e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 24], 2 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x03183e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 24], 3 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x04183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 4 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x05180e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 24], 5 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x06183e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 24], 6 + QUAD $0x0718164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 7 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0818164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 8 + QUAD $0x09181e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 24], 9 + QUAD $0x0a18264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 10 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x0b18264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 24], 11 + QUAD $0x0000009824948b48 // mov rdx, qword [rsp + 152] + QUAD $0x0c18164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 12 + QUAD $0x0d18064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 24], 13 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0e18164c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdx + 24], 14 + QUAD $0x0f181e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 24], 15 + QUAD $0x0000010824848b4c // mov r8, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x1906 // movzx edi, byte [rsi + r8 + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824948b48 // mov rdx, qword [rsp + 248] + QUAD $0x011916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 1 + QUAD $0x021906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 2 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x031936542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r14 + 25], 3 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x04191e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 25], 4 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x051916542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 25], 5 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x06191e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rbx + 25], 6 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x071906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x081906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 8 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x091906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 10 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0b1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 11 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x0c192e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 25], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 13 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0e1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0f1906542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 25], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x067cb60f; BYTE $0x19 // movzx edi, byte [rsi + rax + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0119165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 25], 1 + QUAD $0x02190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 2 + QUAD $0x03193e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 25], 3 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x04190e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 25], 4 + QUAD $0x05190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0619065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0719065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0819065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 25], 8 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x09193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 9 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0a193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 10 + QUAD $0x0b19265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 25], 11 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x0c190e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 25], 12 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0d193e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdi + 25], 13 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0e19164c2061a3c4 // vpinsrb xmm1, xmm3, byte [rsi + r10 + 25], 14 + LONG $0xd8deadc5 // vpmaxub ymm3, ymm10, ymm0 + LONG $0xc374fdc5 // vpcmpeqb ymm0, ymm0, ymm3 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0f193e442071e3c4 // vpinsrb xmm0, xmm1, byte [rsi + rdi + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0001a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm0 + LONG $0x7cb60f42; WORD $0x1a06 // movzx edi, byte [rsi + r8 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x011a06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 26], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x021a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 2 + QUAD $0x031a36442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r14 + 26], 3 + QUAD $0x041a1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 26], 4 + QUAD $0x051a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 5 + QUAD $0x061a1e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rbx + 26], 6 + QUAD $0x000000b824948b48 // mov rdx, qword [rsp + 184] + QUAD $0x071a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 7 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x081a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 8 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x091a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 9 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0a1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 10 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x0b1a1e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r11 + 26], 11 + QUAD $0x0c1a2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 26], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 13 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x0e1a16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 26], 14 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x0f1a3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 26], 15 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1a36 // movzx edi, byte [rsi + r14 + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x011a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x021a3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 26], 2 + QUAD $0x031a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 3 + QUAD $0x041a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x051a3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 26], 5 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x061a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 6 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x071a264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 26], 7 + QUAD $0x081a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 8 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x091a1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 26], 9 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0a1a0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 26], 10 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 11 + QUAD $0x0c1a0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 26], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d1a064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 26], 13 + QUAD $0x0e1a164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 26], 14 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x0f1a0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 26], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x1b // movzx edi, byte [rsi + rax + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + QUAD $0x011b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 1 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x021b06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 27], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x031b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 3 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x041b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 4 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x051b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 5 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x061b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 6 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x071b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x081b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 8 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x091b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 10 + QUAD $0x0b1b1e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r11 + 27], 11 + QUAD $0x0c1b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d1b3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 27], 13 + QUAD $0x0e1b16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 27], 14 + QUAD $0x000000d824ac8b4c // mov r13, qword [rsp + 216] + QUAD $0x0f1b2e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r13 + 27], 15 + LONG $0x7cb60f42; WORD $0x1b36 // movzx edi, byte [rsi + r14 + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x011b365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 27], 1 + QUAD $0x0000009024948b48 // mov rdx, qword [rsp + 144] + QUAD $0x021b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 2 + QUAD $0x000000a024948b48 // mov rdx, qword [rsp + 160] + QUAD $0x031b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 3 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x041b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 4 + QUAD $0x051b3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 27], 5 + QUAD $0x000000e824948b48 // mov rdx, qword [rsp + 232] + QUAD $0x061b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 6 + QUAD $0x071b265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 27], 7 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x081b165c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rdx + 27], 8 + QUAD $0x091b1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 27], 9 + QUAD $0x0a1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 10 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0b1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 11 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x0c1b1e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r11 + 27], 12 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0d1b1e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rbx + 27], 13 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0e1b0e5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rcx + 27], 14 + QUAD $0x0f1b0e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r9 + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + LONG $0x067cb60f; BYTE $0x1c // movzx edi, byte [rsi + rax + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 1 + QUAD $0x021c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 2 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x031c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 3 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x041c0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 28], 4 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x051c06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 28], 5 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x061c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 6 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x071c0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 28], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x081c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 8 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x091c06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 28], 9 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0a1c16442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdx + 28], 10 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0b1c16442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r10 + 28], 11 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x0c1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 12 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0d1c3e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r15 + 28], 13 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x0e1c3e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rdi + 28], 14 + QUAD $0x0f1c2e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r13 + 28], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3e7cb60f; BYTE $0x1c // movzx edi, byte [rsi + rdi + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 1 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x021c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 2 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x031c364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 28], 3 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x041c2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 28], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x051c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 5 + QUAD $0x000000e824a48b4c // mov r12, qword [rsp + 232] + QUAD $0x061c264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 28], 6 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x071c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 7 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x081c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 8 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x091c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1c064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 28], 10 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0b1c3e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rdi + 28], 11 + QUAD $0x0c1c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 28], 12 + QUAD $0x0d1c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 28], 13 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0e1c1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 28], 14 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x0f1c1e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r11 + 28], 15 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + LONG $0x067cb60f; BYTE $0x1d // movzx edi, byte [rsi + rax + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x011d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x021d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 2 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x031d3e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdi + 29], 3 + QUAD $0x041d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 4 + QUAD $0x051d06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 29], 5 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x061d06542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r8 + 29], 6 + QUAD $0x071d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 7 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x081d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 8 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x091d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 9 + QUAD $0x0a1d16542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rdx + 29], 10 + QUAD $0x0b1d16542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r10 + 29], 11 + QUAD $0x000000e0248c8b4c // mov r9, qword [rsp + 224] + QUAD $0x0c1d0e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r9 + 29], 12 + QUAD $0x0d1d3e542069a3c4 // vpinsrb xmm2, xmm2, byte [rsi + r15 + 29], 13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0e1d0e542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rcx + 29], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0f1d06542069e3c4 // vpinsrb xmm2, xmm2, byte [rsi + rax + 29], 15 + QUAD $0x0000010024948b48 // mov rdx, qword [rsp + 256] + LONG $0x167cb60f; BYTE $0x1d // movzx edi, byte [rsi + rdx + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x011d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 1 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x021d3e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r15 + 29], 2 + QUAD $0x031d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 3 + QUAD $0x041d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 5 + QUAD $0x061d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 6 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x071d265c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r12 + 29], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x081d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 8 + QUAD $0x000000c824b48b4c // mov r14, qword [rsp + 200] + QUAD $0x091d365c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r14 + 29], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 10 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0b1d165c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r10 + 29], 11 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x0c1d2e5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rsi + r13 + 29], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d1d065c2061e3c4 // vpinsrb xmm3, xmm3, byte [rsi + rax + 29], 13 + QUAD $0x0e1d1e642061e3c4 // vpinsrb xmm4, xmm3, byte [rsi + rbx + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x0f1d1e442059a3c4 // vpinsrb xmm0, xmm4, byte [rsi + r11 + 29], 15 + WORD $0x894c; BYTE $0xdb // mov rbx, r11 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + LONG $0x7cb60f42; WORD $0x1e1e // movzx edi, byte [rsi + r11 + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x011e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 1 + LONG $0x7cb60f42; WORD $0x1f1e // movzx edi, byte [rsi + r11 + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x021e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 2 + QUAD $0x021f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 2 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x031e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 3 + QUAD $0x031f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x041e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 4 + QUAD $0x041f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 4 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x051e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 5 + QUAD $0x051f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 5 + QUAD $0x061e06442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r8 + 30], 6 + QUAD $0x061f064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 31], 6 + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x071e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 7 + QUAD $0x071f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 7 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x081e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 8 + QUAD $0x081f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 8 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x091e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 9 + QUAD $0x091f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 10 + QUAD $0x0a1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 10 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0b1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 11 + QUAD $0x0b1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 11 + QUAD $0x0c1e0e442079a3c4 // vpinsrb xmm0, xmm0, byte [rsi + r9 + 30], 12 + QUAD $0x0c1f0e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r9 + 31], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 13 + QUAD $0x0d1f064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 31], 13 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x0e1e0e442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rcx + 30], 14 + QUAD $0x0e1f0e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rcx + 31], 14 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0f1e06442079e3c4 // vpinsrb xmm0, xmm0, byte [rsi + rax + 30], 15 + QUAD $0x0f1f06542071e3c4 // vpinsrb xmm2, xmm1, byte [rsi + rax + 31], 15 + LONG $0x1644b60f; BYTE $0x1e // movzx eax, byte [rsi + rdx + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x011e064c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r8 + 30], 1 + LONG $0x1644b60f; BYTE $0x1f // movzx eax, byte [rsi + rdx + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f067c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r8 + 31], 1 + QUAD $0x021e3e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r15 + 30], 2 + QUAD $0x021f3e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r15 + 31], 2 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x031e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x041e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 4 + QUAD $0x041f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x051e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 5 + QUAD $0x051f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 5 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x061e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 6 + QUAD $0x061f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 6 + QUAD $0x071e264c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r12 + 30], 7 + QUAD $0x071f267c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r12 + 31], 7 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x081e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 8 + QUAD $0x081f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 8 + QUAD $0x091e364c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r14 + 30], 9 + QUAD $0x091f367c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r14 + 31], 9 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0a1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 10 + QUAD $0x0a1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 10 + QUAD $0x0b1e164c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r10 + 30], 11 + QUAD $0x0b1f167c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r10 + 31], 11 + QUAD $0x0c1e2e4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rsi + r13 + 30], 12 + QUAD $0x0c1f2e7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rsi + r13 + 31], 12 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0d1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 13 + QUAD $0x0d1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0e1e064c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rax + 30], 14 + QUAD $0x0e1f067c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rax + 31], 14 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x0f1e1e4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rsi + rbx + 30], 15 + QUAD $0x0f1f1e7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rsi + rbx + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + LONG $0x6f7dc1c4; BYTE $0xd2 // vmovdqa ymm2, ymm10 + QUAD $0x000240248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 576] + LONG $0xc1deadc5 // vpmaxub ymm0, ymm10, ymm1 + LONG $0xc074f5c5 // vpcmpeqb ymm0, ymm1, ymm0 + LONG $0x756ffdc5; BYTE $0x00 // vmovdqa ymm6, yword 0[rbp] /* [rip + .LCPI10_0] */ + LONG $0xc6dbfdc5 // vpand ymm0, ymm0, ymm6 + QUAD $0x0005002484f8fdc5; BYTE $0x00 // vpsubb ymm0, ymm0, yword [rsp + 1280] + QUAD $0x0001e0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 480] + LONG $0xf9deadc5 // vpmaxub ymm7, ymm10, ymm1 + LONG $0xff74f5c5 // vpcmpeqb ymm7, ymm1, ymm7 + QUAD $0x0001c0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 448] + LONG $0xe1de2dc5 // vpmaxub ymm12, ymm10, ymm1 + LONG $0xe1741dc5 // vpcmpeqb ymm12, ymm12, ymm1 + LONG $0x456f7dc5; BYTE $0x20 // vmovdqa ymm8, yword 32[rbp] /* [rip + .LCPI10_1] */ + LONG $0xffdbbdc5 // vpand ymm7, ymm8, ymm7 + LONG $0x656ffdc5; BYTE $0x40 // vmovdqa ymm4, yword 64[rbp] /* [rip + .LCPI10_2] */ + LONG $0xe4db1dc5 // vpand ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xde0dc1c4; BYTE $0xfa // vpmaxub ymm7, ymm14, ymm10 + LONG $0xff748dc5 // vpcmpeqb ymm7, ymm14, ymm7 + LONG $0xde0541c4; BYTE $0xe2 // vpmaxub ymm12, ymm15, ymm10 + LONG $0x740541c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm15, ymm12 + LONG $0x6d6ffdc5; BYTE $0x60 // vmovdqa ymm5, yword 96[rbp] /* [rip + .LCPI10_3] */ + LONG $0xfddbc5c5 // vpand ymm7, ymm7, ymm5 + QUAD $0x000000808d6ffdc5 // vmovdqa ymm1, yword 128[rbp] /* [rip + .LCPI10_4] */ + LONG $0xe1db1dc5 // vpand ymm12, ymm12, ymm1 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00022024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 544] + LONG $0xde0d41c4; BYTE $0xe2 // vpmaxub ymm12, ymm14, ymm10 + LONG $0x740d41c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm14, ymm12 + QUAD $0x000000a09d6ffdc5 // vmovdqa ymm3, yword 160[rbp] /* [rip + .LCPI10_5] */ + LONG $0xe3db1dc5 // vpand ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x0004e024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1248] + LONG $0xde1dc1c4; BYTE $0xfa // vpmaxub ymm7, ymm12, ymm10 + LONG $0xff749dc5 // vpcmpeqb ymm7, ymm12, ymm7 + QUAD $0x000000c0ad6f7dc5 // vmovdqa ymm13, yword 192[rbp] /* [rip + .LCPI10_6] */ + LONG $0xffdb95c5 // vpand ymm7, ymm13, ymm7 + LONG $0xd7eb7dc5 // vpor ymm10, ymm0, ymm7 + QUAD $0x0004a024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1184] + LONG $0xfade9dc5 // vpmaxub ymm7, ymm12, ymm2 + LONG $0xff749dc5 // vpcmpeqb ymm7, ymm12, ymm7 + LONG $0xfedbc5c5 // vpand ymm7, ymm7, ymm6 + QUAD $0x0004c024bcf8c5c5; BYTE $0x00 // vpsubb ymm7, ymm7, yword [rsp + 1216] + QUAD $0x00048024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1152] + LONG $0xe2de0dc5 // vpmaxub ymm12, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm14, ymm12 + QUAD $0x00046024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1120] + LONG $0xfade0dc5 // vpmaxub ymm15, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xff // vpcmpeqb ymm15, ymm14, ymm15 + LONG $0xdb1d41c4; BYTE $0xe0 // vpand ymm12, ymm12, ymm8 + LONG $0xfcdb05c5 // vpand ymm15, ymm15, ymm4 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00044024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1088] + LONG $0xe2de0dc5 // vpmaxub ymm12, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm14, ymm12 + QUAD $0x00042024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1056] + LONG $0xfade0dc5 // vpmaxub ymm15, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xff // vpcmpeqb ymm15, ymm14, ymm15 + LONG $0xe5db1dc5 // vpand ymm12, ymm12, ymm5 + LONG $0xf9db05c5 // vpand ymm15, ymm15, ymm1 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003c024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 960] + LONG $0xfade0dc5 // vpmaxub ymm15, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xff // vpcmpeqb ymm15, ymm14, ymm15 + LONG $0xfbdb05c5 // vpand ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x0003e024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 992] + LONG $0xe2de0dc5 // vpmaxub ymm12, ymm14, ymm2 + LONG $0x740d41c4; BYTE $0xe4 // vpcmpeqb ymm12, ymm14, ymm12 + LONG $0xdb1d41c4; BYTE $0xe5 // vpand ymm12, ymm12, ymm13 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x0003a024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 928] + LONG $0xfade8dc5 // vpmaxub ymm7, ymm14, ymm2 + LONG $0xff748dc5 // vpcmpeqb ymm7, ymm14, ymm7 + LONG $0xfedbc5c5 // vpand ymm7, ymm7, ymm6 + QUAD $0x00040024bcf8c5c5; BYTE $0x00 // vpsubb ymm7, ymm7, yword [rsp + 1024] + QUAD $0x00036024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 864] + LONG $0xfade7dc5 // vpmaxub ymm15, ymm0, ymm2 + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + QUAD $0x00038024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 896] + LONG $0xf2de7dc5 // vpmaxub ymm14, ymm0, ymm2 + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xdb0541c4; BYTE $0xf8 // vpand ymm15, ymm15, ymm8 + LONG $0xf4db0dc5 // vpand ymm14, ymm14, ymm4 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + LONG $0xf2de25c5 // vpmaxub ymm14, ymm11, ymm2 + LONG $0x742541c4; BYTE $0xde // vpcmpeqb ymm11, ymm11, ymm14 + QUAD $0x00034024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 832] + LONG $0xf2de7dc5 // vpmaxub ymm14, ymm0, ymm2 + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xfd6f7dc5 // vmovdqa ymm15, ymm5 + LONG $0xdddb25c5 // vpand ymm11, ymm11, ymm5 + LONG $0xf1db0dc5 // vpand ymm14, ymm14, ymm1 + LONG $0xeb2541c4; BYTE $0xde // vpor ymm11, ymm11, ymm14 + LONG $0xf2de35c5 // vpmaxub ymm14, ymm9, ymm2 + LONG $0x743541c4; BYTE $0xce // vpcmpeqb ymm9, ymm9, ymm14 + LONG $0xf36f7dc5 // vmovdqa ymm14, ymm3 + LONG $0xcbdb35c5 // vpand ymm9, ymm9, ymm3 + LONG $0xeb2541c4; BYTE $0xc9 // vpor ymm9, ymm11, ymm9 + LONG $0xffebb5c5 // vpor ymm7, ymm9, ymm7 + QUAD $0x00032024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 800] + LONG $0xcade7dc5 // vpmaxub ymm9, ymm0, ymm2 + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xdb3541c4; BYTE $0xcd // vpand ymm9, ymm9, ymm13 + LONG $0xffebb5c5 // vpor ymm7, ymm9, ymm7 + QUAD $0x0001a024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 416] + LONG $0xcade7dc5 // vpmaxub ymm9, ymm0, ymm2 + LONG $0xc07435c5 // vpcmpeqb ymm8, ymm9, ymm0 + LONG $0xc6db3dc5 // vpand ymm8, ymm8, ymm6 + QUAD $0x0003002484f83dc5; BYTE $0x00 // vpsubb ymm8, ymm8, yword [rsp + 768] + QUAD $0x00028024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 640] + LONG $0xcade7dc5 // vpmaxub ymm9, ymm0, ymm2 + LONG $0xe874b5c5 // vpcmpeqb ymm5, ymm9, ymm0 + QUAD $0x0002a024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 672] + LONG $0xcade7dc5 // vpmaxub ymm9, ymm0, ymm2 + LONG $0xf074b5c5 // vpcmpeqb ymm6, ymm9, ymm0 + LONG $0x6ddbd5c5; BYTE $0x20 // vpand ymm5, ymm5, yword 32[rbp] /* [rip + .LCPI10_1] */ + LONG $0xf4dbcdc5 // vpand ymm6, ymm6, ymm4 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + LONG $0xedebbdc5 // vpor ymm5, ymm8, ymm5 + QUAD $0x0002e024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 736] + LONG $0xf2defdc5 // vpmaxub ymm6, ymm0, ymm2 + LONG $0xde74fdc5 // vpcmpeqb ymm3, ymm0, ymm6 + QUAD $0x0002c024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 704] + LONG $0xf2defdc5 // vpmaxub ymm6, ymm0, ymm2 + LONG $0xe674fdc5 // vpcmpeqb ymm4, ymm0, ymm6 + LONG $0xdbdb85c5 // vpand ymm3, ymm15, ymm3 + LONG $0xe1dbddc5 // vpand ymm4, ymm4, ymm1 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + QUAD $0x00014024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 320] + LONG $0xe2defdc5 // vpmaxub ymm4, ymm0, ymm2 + LONG $0xcc74fdc5 // vpcmpeqb ymm1, ymm0, ymm4 + LONG $0xc9db8dc5 // vpand ymm1, ymm14, ymm1 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0xc9ebd5c5 // vpor ymm1, ymm5, ymm1 + QUAD $0x00012024846ffdc5; BYTE $0x00 // vmovdqa ymm0, yword [rsp + 288] + LONG $0xdadefdc5 // vpmaxub ymm3, ymm0, ymm2 + LONG $0xd374fdc5 // vpcmpeqb ymm2, ymm0, ymm3 + LONG $0xd2db95c5 // vpand ymm2, ymm13, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0x602dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm10, ymm12 + LONG $0x682dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm10, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8b44; BYTE $0x60 // vmovdqu yword [r11 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8b54; BYTE $0x40 // vmovdqu yword [r11 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8b64; BYTE $0x20 // vmovdqu yword [r11 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8b0c // vmovdqu yword [r11 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB10_186 + QUAD $0x0000017024bc8b4c // mov r15, qword [rsp + 368] + QUAD $0x0000018024bc3b4c // cmp r15, qword [rsp + 384] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + LONG $0x24748b44; BYTE $0x1c // mov r14d, dword [rsp + 28] + QUAD $0x0000021824a48b4c // mov r12, qword [rsp + 536] + JNE LBB10_89 + JMP LBB10_122 + +DATA LCDATA8<>+0x000(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x008(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x010(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x018(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x020(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x028(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x030(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x038(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x040(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x048(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x050(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x058(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x060(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x068(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x070(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x078(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x080(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x088(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x090(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x098(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x0a0(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x0a8(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x0b0(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x0b8(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x0c0(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x0c8(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x0d0(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x0d8(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x0e0(SB)/8, $0xffffffffffffffff +DATA LCDATA8<>+0x0e8(SB)/8, $0xffffffffffffffff +DATA LCDATA8<>+0x0f0(SB)/8, $0xffffffffffffffff +DATA LCDATA8<>+0x0f8(SB)/8, $0xffffffffffffffff +GLOBL LCDATA8<>(SB), 8, $256 + +TEXT ·_comparison_greater_equal_scalar_arr_avx2(SB), $1320-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $32, SP + ANDQ $-32, SP + MOVQ BP, 1280(SP) + LEAQ LCDATA8<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB11_26 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB11_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB11_99 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB11_114 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB11_185 + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_15: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_15 + LONG $0x01c78349 // add r15, 1 + +LBB11_17: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_21 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_19: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd0930f41 // setae r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd3930f41 // setae r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd2930f41 // setae r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd1930f41 // setae r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd7930f40 // setae dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd6930f40 // setae sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd5930f41 // setae r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd4930f41 // setae r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd7930f41 // setae r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_19 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_21: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_130 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_24 + +LBB11_26: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB11_27 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB11_149 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB11_164 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB11_185 + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fbc5 // vmovsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_49 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_47: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_47 + LONG $0x01c78349 // add r15, 1 + +LBB11_49: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_53 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB11_51: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0xd1930f41 // setae r9b + LONG $0x422ef9c5; BYTE $0x10 // vucomisd xmm0, qword [rdx + 16] + LONG $0xd3930f41 // setae r11b + LONG $0x422ef9c5; BYTE $0x18 // vucomisd xmm0, qword [rdx + 24] + LONG $0xd5930f41 // setae r13b + LONG $0x422ef9c5; BYTE $0x20 // vucomisd xmm0, qword [rdx + 32] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x422ef9c5; BYTE $0x28 // vucomisd xmm0, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x422ef9c5; BYTE $0x30 // vucomisd xmm0, qword [rdx + 48] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x422ef9c5; BYTE $0x38 // vucomisd xmm0, qword [rdx + 56] + LONG $0xd4930f41 // setae r12b + LONG $0x422ef9c5; BYTE $0x40 // vucomisd xmm0, qword [rdx + 64] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x422ef9c5; BYTE $0x48 // vucomisd xmm0, qword [rdx + 72] + LONG $0xd6930f40 // setae sil + LONG $0x422ef9c5; BYTE $0x50 // vucomisd xmm0, qword [rdx + 80] + LONG $0xd7930f40 // setae dil + LONG $0x422ef9c5; BYTE $0x58 // vucomisd xmm0, qword [rdx + 88] + LONG $0xd0930f41 // setae r8b + LONG $0x422ef9c5; BYTE $0x60 // vucomisd xmm0, qword [rdx + 96] + LONG $0xd2930f41 // setae r10b + LONG $0x422ef9c5; BYTE $0x68 // vucomisd xmm0, qword [rdx + 104] + LONG $0xd7930f41 // setae r15b + LONG $0x422ef9c5; BYTE $0x70 // vucomisd xmm0, qword [rdx + 112] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x422ef9c5; BYTE $0x78 // vucomisd xmm0, qword [rdx + 120] + WORD $0x930f; BYTE $0xd1 // setae cl + QUAD $0x00000080822ef9c5 // vucomisd xmm0, qword [rdx + 128] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + QUAD $0x00000088822ef9c5 // vucomisd xmm0, qword [rdx + 136] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + QUAD $0x00000090822ef9c5 // vucomisd xmm0, qword [rdx + 144] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + QUAD $0x00000098822ef9c5 // vucomisd xmm0, qword [rdx + 152] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + QUAD $0x000000a0822ef9c5 // vucomisd xmm0, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + QUAD $0x000000a8822ef9c5 // vucomisd xmm0, qword [rdx + 168] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + QUAD $0x000000b0822ef9c5 // vucomisd xmm0, qword [rdx + 176] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + QUAD $0x000000b8822ef9c5 // vucomisd xmm0, qword [rdx + 184] + LONG $0xd6930f41 // setae r14b + QUAD $0x000000c0822ef9c5 // vucomisd xmm0, qword [rdx + 192] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + QUAD $0x000000c8822ef9c5 // vucomisd xmm0, qword [rdx + 200] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + QUAD $0x000000d0822ef9c5 // vucomisd xmm0, qword [rdx + 208] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + QUAD $0x000000d8822ef9c5 // vucomisd xmm0, qword [rdx + 216] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + QUAD $0x000000e0822ef9c5 // vucomisd xmm0, qword [rdx + 224] + QUAD $0x000001402494930f // setae byte [rsp + 320] + QUAD $0x000000e8822ef9c5 // vucomisd xmm0, qword [rdx + 232] + QUAD $0x000001202494930f // setae byte [rsp + 288] + QUAD $0x000000f0822ef9c5 // vucomisd xmm0, qword [rdx + 240] + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + QUAD $0x000000f8822ef9c5 // vucomisd xmm0, qword [rdx + 248] + WORD $0x930f; BYTE $0xd0 // setae al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a8248c0244 // add r9b, byte [rsp + 168] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000008824b40240 // add sil, byte [rsp + 136] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x0000009024b4b60f // movzx esi, byte [rsp + 144] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xdb00 // add bl, bl + LONG $0x48245c02 // add bl, byte [rsp + 72] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x78 // movzx ebx, byte [rsp + 120] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0x8845; BYTE $0x27 // mov byte [r15], r12b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + LONG $0x014f8841 // mov byte [r15 + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02778845 // mov byte [r15 + 2], r14b + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB11_51 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB11_53: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_179 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_181 + +LBB11_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB11_56 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB11_185 + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_6: + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_6 + LONG $0x01c78349 // add r15, 1 + +LBB11_8: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_9 + LONG $0x20fe8349 // cmp r14, 32 + LONG $0x245c8944; BYTE $0x1c // mov dword [rsp + 28], r11d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + JB LBB11_82 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_85 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB11_85 + +LBB11_82: + WORD $0xc031 // xor eax, eax + QUAD $0x000001a024848948 // mov qword [rsp + 416], rax + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_88: + QUAD $0x000001a024b42b4c // sub r14, qword [rsp + 416] + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + +LBB11_89: + LONG $0x1f5a3a44 // cmp r11b, byte [rdx + 31] + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x1e5a3a44 // cmp r11b, byte [rdx + 30] + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x1d5a3a44 // cmp r11b, byte [rdx + 29] + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x1c5a3a44 // cmp r11b, byte [rdx + 28] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x1b5a3a44 // cmp r11b, byte [rdx + 27] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x1a5a3a44 // cmp r11b, byte [rdx + 26] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x195a3a44 // cmp r11b, byte [rdx + 25] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x175a3a44 // cmp r11b, byte [rdx + 23] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x165a3a44 // cmp r11b, byte [rdx + 22] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x155a3a44 // cmp r11b, byte [rdx + 21] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x145a3a44 // cmp r11b, byte [rdx + 20] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x135a3a44 // cmp r11b, byte [rdx + 19] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x125a3a44 // cmp r11b, byte [rdx + 18] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x115a3a44 // cmp r11b, byte [rdx + 17] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x0f5a3a44 // cmp r11b, byte [rdx + 15] + LONG $0xd69d0f41 // setge r14b + LONG $0x0e5a3a44 // cmp r11b, byte [rdx + 14] + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x0d5a3a44 // cmp r11b, byte [rdx + 13] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x0c5a3a44 // cmp r11b, byte [rdx + 12] + LONG $0xd49d0f41 // setge r12b + LONG $0x0b5a3a44 // cmp r11b, byte [rdx + 11] + LONG $0xd79d0f41 // setge r15b + LONG $0x0a5a3a44 // cmp r11b, byte [rdx + 10] + LONG $0xd39d0f41 // setge r11b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd29d0f41 // setge r10b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd79d0f40 // setge dil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0xd19d0f41 // setge r9b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0xd09d0f41 // setge r8b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0xd69d0f40 // setge sil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x023a // cmp al, byte [rdx] + QUAD $0x0000009824949d0f // setge byte [rsp + 152] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x423a; BYTE $0x01 // cmp al, byte [rdx + 1] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x246c8b44; BYTE $0x1c // mov r13d, dword [rsp + 28] + LONG $0x086a3a44 // cmp r13b, byte [rdx + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000a824949d0f // setge byte [rsp + 168] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x10 // cmp bl, byte [rdx + 16] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5a3a; BYTE $0x18 // cmp bl, byte [rdx + 24] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x98248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 152] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0844; BYTE $0xcf // or dil, r9b + LONG $0x007d8841 // mov byte [r13], dil + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x000000a824940244 // add r10b, byte [rsp + 168] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xce // or r14b, cl + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x01758845 // mov byte [r13 + 1], r14b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x68244402 // add al, byte [rsp + 104] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + QUAD $0x000001102484b60f // movzx eax, byte [rsp + 272] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB11_89 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + JMP LBB11_91 + +LBB11_27: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB11_132 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB11_185 + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_33 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_31: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_31 + LONG $0x01c78349 // add r15, 1 + +LBB11_33: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_37 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_35: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd0930f41 // setae r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd3930f41 // setae r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd2930f41 // setae r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd1930f41 // setae r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd7930f40 // setae dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd6930f40 // setae sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd5930f41 // setae r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd4930f41 // setae r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd7930f41 // setae r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_35 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_37: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_147 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_40 + +LBB11_99: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_103 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_101: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_101 + LONG $0x01c78349 // add r15, 1 + +LBB11_103: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_107 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_105: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x723b4466; BYTE $0x3e // cmp r14w, word [rdx + 62] + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0x723b4466; BYTE $0x3c // cmp r14w, word [rdx + 60] + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x723b4466; BYTE $0x3a // cmp r14w, word [rdx + 58] + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x723b4466; BYTE $0x38 // cmp r14w, word [rdx + 56] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x723b4466; BYTE $0x36 // cmp r14w, word [rdx + 54] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x723b4466; BYTE $0x34 // cmp r14w, word [rdx + 52] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x723b4466; BYTE $0x32 // cmp r14w, word [rdx + 50] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x723b4466; BYTE $0x2e // cmp r14w, word [rdx + 46] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x723b4466; BYTE $0x2c // cmp r14w, word [rdx + 44] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x723b4466; BYTE $0x2a // cmp r14w, word [rdx + 42] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x723b4466; BYTE $0x28 // cmp r14w, word [rdx + 40] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x723b4466; BYTE $0x26 // cmp r14w, word [rdx + 38] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x723b4466; BYTE $0x24 // cmp r14w, word [rdx + 36] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x723b4466; BYTE $0x22 // cmp r14w, word [rdx + 34] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x723b4466; BYTE $0x1e // cmp r14w, word [rdx + 30] + LONG $0xd0930f41 // setae r8b + LONG $0x723b4466; BYTE $0x1c // cmp r14w, word [rdx + 28] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x723b4466; BYTE $0x1a // cmp r14w, word [rdx + 26] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x723b4466; BYTE $0x18 // cmp r14w, word [rdx + 24] + LONG $0xd3930f41 // setae r11b + LONG $0x723b4466; BYTE $0x16 // cmp r14w, word [rdx + 22] + LONG $0xd2930f41 // setae r10b + LONG $0x723b4466; BYTE $0x14 // cmp r14w, word [rdx + 20] + LONG $0xd1930f41 // setae r9b + LONG $0x723b4466; BYTE $0x12 // cmp r14w, word [rdx + 18] + LONG $0xd7930f40 // setae dil + LONG $0x723b4466; BYTE $0x0e // cmp r14w, word [rdx + 14] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x723b4466; BYTE $0x0c // cmp r14w, word [rdx + 12] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x723b4466; BYTE $0x0a // cmp r14w, word [rdx + 10] + LONG $0xd6930f40 // setae sil + LONG $0x723b4466; BYTE $0x08 // cmp r14w, word [rdx + 8] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x723b4466; BYTE $0x06 // cmp r14w, word [rdx + 6] + LONG $0xd5930f41 // setae r13b + LONG $0x723b4466; BYTE $0x04 // cmp r14w, word [rdx + 4] + LONG $0xd4930f41 // setae r12b + LONG $0x323b4466 // cmp r14w, word [rdx] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0xd7930f41 // setae r15b + LONG $0x723b4466; BYTE $0x10 // cmp r14w, word [rdx + 16] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x723b4466; BYTE $0x20 // cmp r14w, word [rdx + 32] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x723b4466; BYTE $0x30 // cmp r14w, word [rdx + 48] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_105 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_107: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_112 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_110 + +LBB11_114: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_118 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_116: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_116 + LONG $0x01c78349 // add r15, 1 + +LBB11_118: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_122 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_120: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x723b4466; BYTE $0x3e // cmp r14w, word [rdx + 62] + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0x723b4466; BYTE $0x3c // cmp r14w, word [rdx + 60] + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x723b4466; BYTE $0x3a // cmp r14w, word [rdx + 58] + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x723b4466; BYTE $0x38 // cmp r14w, word [rdx + 56] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x723b4466; BYTE $0x36 // cmp r14w, word [rdx + 54] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x723b4466; BYTE $0x34 // cmp r14w, word [rdx + 52] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x723b4466; BYTE $0x32 // cmp r14w, word [rdx + 50] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x723b4466; BYTE $0x2e // cmp r14w, word [rdx + 46] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x723b4466; BYTE $0x2c // cmp r14w, word [rdx + 44] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x723b4466; BYTE $0x2a // cmp r14w, word [rdx + 42] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x723b4466; BYTE $0x28 // cmp r14w, word [rdx + 40] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x723b4466; BYTE $0x26 // cmp r14w, word [rdx + 38] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x723b4466; BYTE $0x24 // cmp r14w, word [rdx + 36] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x723b4466; BYTE $0x22 // cmp r14w, word [rdx + 34] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x723b4466; BYTE $0x1e // cmp r14w, word [rdx + 30] + LONG $0xd09d0f41 // setge r8b + LONG $0x723b4466; BYTE $0x1c // cmp r14w, word [rdx + 28] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x723b4466; BYTE $0x1a // cmp r14w, word [rdx + 26] + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x723b4466; BYTE $0x18 // cmp r14w, word [rdx + 24] + LONG $0xd39d0f41 // setge r11b + LONG $0x723b4466; BYTE $0x16 // cmp r14w, word [rdx + 22] + LONG $0xd29d0f41 // setge r10b + LONG $0x723b4466; BYTE $0x14 // cmp r14w, word [rdx + 20] + LONG $0xd19d0f41 // setge r9b + LONG $0x723b4466; BYTE $0x12 // cmp r14w, word [rdx + 18] + LONG $0xd79d0f40 // setge dil + LONG $0x723b4466; BYTE $0x0e // cmp r14w, word [rdx + 14] + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x723b4466; BYTE $0x0c // cmp r14w, word [rdx + 12] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x723b4466; BYTE $0x0a // cmp r14w, word [rdx + 10] + LONG $0xd69d0f40 // setge sil + LONG $0x723b4466; BYTE $0x08 // cmp r14w, word [rdx + 8] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x723b4466; BYTE $0x06 // cmp r14w, word [rdx + 6] + LONG $0xd59d0f41 // setge r13b + LONG $0x723b4466; BYTE $0x04 // cmp r14w, word [rdx + 4] + LONG $0xd49d0f41 // setge r12b + LONG $0x323b4466 // cmp r14w, word [rdx] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0xd79d0f41 // setge r15b + LONG $0x723b4466; BYTE $0x10 // cmp r14w, word [rdx + 16] + QUAD $0x000000a824949d0f // setge byte [rsp + 168] + LONG $0x723b4466; BYTE $0x20 // cmp r14w, word [rdx + 32] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x723b4466; BYTE $0x30 // cmp r14w, word [rdx + 48] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_120 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_122: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_128 + WORD $0xff31 // xor edi, edi + JMP LBB11_125 + +LBB11_149: + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_153 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_151: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_151 + LONG $0x01c78349 // add r15, 1 + +LBB11_153: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_157 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_155: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd09d0f41 // setge r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd39d0f41 // setge r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd29d0f41 // setge r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd19d0f41 // setge r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd79d0f40 // setge dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd69d0f40 // setge sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd59d0f41 // setge r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd49d0f41 // setge r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd79d0f41 // setge r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x000000a824949d0f // setge byte [rsp + 168] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_155 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_157: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_162 + WORD $0xff31 // xor edi, edi + JMP LBB11_160 + +LBB11_164: + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x0610fac5 // vmovss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_168 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_166: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_166 + LONG $0x01c78349 // add r15, 1 + +LBB11_168: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_172 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB11_170: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0xd1930f41 // setae r9b + LONG $0x422ef8c5; BYTE $0x08 // vucomiss xmm0, dword [rdx + 8] + LONG $0xd3930f41 // setae r11b + LONG $0x422ef8c5; BYTE $0x0c // vucomiss xmm0, dword [rdx + 12] + LONG $0xd5930f41 // setae r13b + LONG $0x422ef8c5; BYTE $0x10 // vucomiss xmm0, dword [rdx + 16] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x422ef8c5; BYTE $0x14 // vucomiss xmm0, dword [rdx + 20] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x422ef8c5; BYTE $0x18 // vucomiss xmm0, dword [rdx + 24] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x422ef8c5; BYTE $0x1c // vucomiss xmm0, dword [rdx + 28] + LONG $0xd4930f41 // setae r12b + LONG $0x422ef8c5; BYTE $0x20 // vucomiss xmm0, dword [rdx + 32] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x422ef8c5; BYTE $0x24 // vucomiss xmm0, dword [rdx + 36] + LONG $0xd6930f40 // setae sil + LONG $0x422ef8c5; BYTE $0x28 // vucomiss xmm0, dword [rdx + 40] + LONG $0xd7930f40 // setae dil + LONG $0x422ef8c5; BYTE $0x2c // vucomiss xmm0, dword [rdx + 44] + LONG $0xd0930f41 // setae r8b + LONG $0x422ef8c5; BYTE $0x30 // vucomiss xmm0, dword [rdx + 48] + LONG $0xd2930f41 // setae r10b + LONG $0x422ef8c5; BYTE $0x34 // vucomiss xmm0, dword [rdx + 52] + LONG $0xd7930f41 // setae r15b + LONG $0x422ef8c5; BYTE $0x38 // vucomiss xmm0, dword [rdx + 56] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x422ef8c5; BYTE $0x3c // vucomiss xmm0, dword [rdx + 60] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x422ef8c5; BYTE $0x40 // vucomiss xmm0, dword [rdx + 64] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x422ef8c5; BYTE $0x44 // vucomiss xmm0, dword [rdx + 68] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x422ef8c5; BYTE $0x48 // vucomiss xmm0, dword [rdx + 72] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x422ef8c5; BYTE $0x4c // vucomiss xmm0, dword [rdx + 76] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x422ef8c5; BYTE $0x50 // vucomiss xmm0, dword [rdx + 80] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x422ef8c5; BYTE $0x54 // vucomiss xmm0, dword [rdx + 84] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x422ef8c5; BYTE $0x58 // vucomiss xmm0, dword [rdx + 88] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x422ef8c5; BYTE $0x5c // vucomiss xmm0, dword [rdx + 92] + LONG $0xd6930f41 // setae r14b + LONG $0x422ef8c5; BYTE $0x60 // vucomiss xmm0, dword [rdx + 96] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x422ef8c5; BYTE $0x64 // vucomiss xmm0, dword [rdx + 100] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x422ef8c5; BYTE $0x68 // vucomiss xmm0, dword [rdx + 104] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x422ef8c5; BYTE $0x6c // vucomiss xmm0, dword [rdx + 108] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x422ef8c5; BYTE $0x70 // vucomiss xmm0, dword [rdx + 112] + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x422ef8c5; BYTE $0x74 // vucomiss xmm0, dword [rdx + 116] + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x422ef8c5; BYTE $0x78 // vucomiss xmm0, dword [rdx + 120] + LONG $0x2454930f; BYTE $0x1c // setae byte [rsp + 28] + LONG $0x422ef8c5; BYTE $0x7c // vucomiss xmm0, dword [rdx + 124] + WORD $0x930f; BYTE $0xd0 // setae al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000a8248c0244 // add r9b, byte [rsp + 168] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000008824b40240 // add sil, byte [rsp + 136] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x0000009024b4b60f // movzx esi, byte [rsp + 144] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xdb00 // add bl, bl + LONG $0x48245c02 // add bl, byte [rsp + 72] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x78 // movzx ebx, byte [rsp + 120] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0x8845; BYTE $0x27 // mov byte [r15], r12b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + LONG $0x014f8841 // mov byte [r15 + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000140248cb60f // movzx ecx, byte [rsp + 320] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x1c // movzx ebx, byte [rsp + 28] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02778845 // mov byte [r15 + 2], r14b + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB11_170 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB11_172: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_177 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_175 + +LBB11_56: + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_58: + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_58 + LONG $0x01c78349 // add r15, 1 + +LBB11_60: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_61 + LONG $0x20fe8349 // cmp r14, 32 + LONG $0x245c8944; BYTE $0x1c // mov dword [rsp + 28], r11d + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + JB LBB11_63 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_66 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB11_66 + +LBB11_63: + WORD $0xc031 // xor eax, eax + QUAD $0x0000018024848948 // mov qword [rsp + 384], rax + WORD $0x8948; BYTE $0xd7 // mov rdi, rdx + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_69: + QUAD $0x0000018024b42b4c // sub r14, qword [rsp + 384] + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + +LBB11_70: + LONG $0x1f5f3a44 // cmp r11b, byte [rdi + 31] + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x1e5f3a44 // cmp r11b, byte [rdi + 30] + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x1d5f3a44 // cmp r11b, byte [rdi + 29] + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x1c5f3a44 // cmp r11b, byte [rdi + 28] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x1b5f3a44 // cmp r11b, byte [rdi + 27] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x1a5f3a44 // cmp r11b, byte [rdi + 26] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x195f3a44 // cmp r11b, byte [rdi + 25] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x175f3a44 // cmp r11b, byte [rdi + 23] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x165f3a44 // cmp r11b, byte [rdi + 22] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x155f3a44 // cmp r11b, byte [rdi + 21] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x145f3a44 // cmp r11b, byte [rdi + 20] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x135f3a44 // cmp r11b, byte [rdi + 19] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x125f3a44 // cmp r11b, byte [rdi + 18] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x115f3a44 // cmp r11b, byte [rdi + 17] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x0f5f3a44 // cmp r11b, byte [rdi + 15] + LONG $0xd6930f41 // setae r14b + LONG $0x0e5f3a44 // cmp r11b, byte [rdi + 14] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x0d5f3a44 // cmp r11b, byte [rdi + 13] + QUAD $0x000000882494930f // setae byte [rsp + 136] + LONG $0x0c5f3a44 // cmp r11b, byte [rdi + 12] + LONG $0xd4930f41 // setae r12b + LONG $0x0b5f3a44 // cmp r11b, byte [rdi + 11] + LONG $0xd7930f41 // setae r15b + LONG $0x0a5f3a44 // cmp r11b, byte [rdi + 10] + LONG $0xd3930f41 // setae r11b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x09 // cmp al, byte [rdi + 9] + LONG $0xd2930f41 // setae r10b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x07 // cmp al, byte [rdi + 7] + LONG $0xd6930f40 // setae sil + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x06 // cmp al, byte [rdi + 6] + QUAD $0x000000a82494930f // setae byte [rsp + 168] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x05 // cmp al, byte [rdi + 5] + LONG $0xd1930f41 // setae r9b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x04 // cmp al, byte [rdi + 4] + LONG $0xd0930f41 // setae r8b + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x03 // cmp al, byte [rdi + 3] + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x02 // cmp al, byte [rdi + 2] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x073a // cmp al, byte [rdi] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x1c24448b // mov eax, dword [rsp + 28] + WORD $0x473a; BYTE $0x01 // cmp al, byte [rdi + 1] + WORD $0x930f; BYTE $0xd0 // setae al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x246c8b44; BYTE $0x1c // mov r13d, dword [rsp + 28] + LONG $0x086f3a44 // cmp r13b, byte [rdi + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5f3a; BYTE $0x10 // cmp bl, byte [rdi + 16] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x1c245c8b // mov ebx, dword [rsp + 28] + WORD $0x5f3a; BYTE $0x18 // cmp bl, byte [rdi + 24] + WORD $0x930f; BYTE $0xd3 // setae bl + WORD $0xc000 // add al, al + LONG $0xa0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0xca08 // or dl, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000a82484b60f // movzx eax, byte [rsp + 168] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + LONG $0x00758841 // mov byte [r13], sil + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x0000008024940244 // add r10b, byte [rsp + 128] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xce // or r14b, cl + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x01758845 // mov byte [r13 + 1], r14b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + WORD $0xd808 // or al, bl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + QUAD $0x000001102484b60f // movzx eax, byte [rsp + 272] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c78348 // add rdi, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_70 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + JMP LBB11_72 + +LBB11_132: + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_136 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_134: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_134 + LONG $0x01c78349 // add r15, 1 + +LBB11_136: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB11_140 + QUAD $0x000001182494894c // mov qword [rsp + 280], r10 + QUAD $0x000000b0249c894c // mov qword [rsp + 176], r11 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + +LBB11_138: + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x24549d0f; BYTE $0x1c // setge byte [rsp + 28] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd09d0f41 // setge r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + QUAD $0x0000008824949d0f // setge byte [rsp + 136] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd39d0f41 // setge r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd29d0f41 // setge r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd19d0f41 // setge r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd79d0f40 // setge dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd69d0f40 // setge sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd59d0f41 // setge r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd49d0f41 // setge r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd79d0f41 // setge r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x000000a824949d0f // setge byte [rsp + 168] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000a024bc0244 // add r15b, byte [rsp + 160] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a824bc0240 // add dil, byte [rsp + 168] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000001402484b60f // movzx eax, byte [rsp + 320] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x00000120249cb60f // movzx ebx, byte [rsp + 288] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x1c // movzx eax, byte [rsp + 28] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB11_138 + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + +LBB11_140: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB11_145 + WORD $0xff31 // xor edi, edi + JMP LBB11_143 + +LBB11_9: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_91: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB11_94 + WORD $0xf631 // xor esi, esi + JMP LBB11_97 + +LBB11_61: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x8948; BYTE $0xd7 // mov rdi, rdx + +LBB11_72: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB11_185 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB11_75 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB11_78 + +LBB11_130: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_131: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_131 + +LBB11_24: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + JMP LBB11_183 + +LBB11_179: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_180: + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + LONG $0x000000b8; BYTE $0x00 // mov eax, 0 + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x422ef9c5; BYTE $0x08 // vucomisd xmm0, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xdf // xor dil, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB11_180 + +LBB11_181: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + LONG $0x022ef9c5 // vucomisd xmm0, qword [rdx] + JMP LBB11_183 + +LBB11_147: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_148: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_148 + +LBB11_40: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + JMP LBB11_183 + +LBB11_112: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_113: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_113 + +LBB11_110: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + LONG $0x323b4466 // cmp r14w, word [rdx] + JMP LBB11_183 + +LBB11_128: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB11_129: + LONG $0x323b4466 // cmp r14w, word [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB11_129 + +LBB11_125: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + LONG $0x323b4466 // cmp r14w, word [rdx] + JMP LBB11_127 + +LBB11_162: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB11_163: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB11_163 + +LBB11_160: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + JMP LBB11_127 + +LBB11_177: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_178: + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + LONG $0x000000b8; BYTE $0x00 // mov eax, 0 + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x422ef8c5; BYTE $0x04 // vucomiss xmm0, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xdf // xor dil, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB11_178 + +LBB11_175: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + LONG $0x022ef8c5 // vucomiss xmm0, dword [rdx] + +LBB11_183: + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x17348a41 // mov sil, byte [r15 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB11_184 + +LBB11_145: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB11_146: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB11_146 + +LBB11_143: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + +LBB11_127: + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x17348a41 // mov sil, byte [r15 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB11_184: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + +LBB11_185: + MOVQ 1280(SP), SP + VZEROUPPER + RET + +LBB11_94: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + +LBB11_95: + LONG $0x321c3a44 // cmp r11b, byte [rdx + rsi] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x325c3a44; BYTE $0x01 // cmp r11b, byte [rdx + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x3d448841; BYTE $0x00 // mov byte [r13 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB11_95 + WORD $0x0148; BYTE $0xf2 // add rdx, rsi + +LBB11_97: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x157c8a41; BYTE $0x00 // mov dil, byte [r13 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + JMP LBB11_80 + +LBB11_75: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + +LBB11_76: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0f1c3a46 // cmp r11b, byte [rdi + r9] + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0x894c; BYTE $0xce // mov rsi, r9 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x4cb60f45; WORD $0x0035 // movzx r9d, byte [r13 + rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x35548841; BYTE $0x00 // mov byte [r13 + rsi], dl + LONG $0x075c3a44; BYTE $0x01 // cmp r11b, byte [rdi + rax + 1] + LONG $0x02488d4c // lea r9, [rax + 2] + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x35448841; BYTE $0x00 // mov byte [r13 + rsi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB11_76 + WORD $0x014c; BYTE $0xcf // add rdi, r9 + +LBB11_78: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_185 + WORD $0xc031 // xor eax, eax + WORD $0x3a44; BYTE $0x1f // cmp r11b, byte [rdi] + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x157c8a41; BYTE $0x00 // mov dil, byte [r13 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + +LBB11_80: + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x155c8841; BYTE $0x00 // mov byte [r13 + rdx], bl + JMP LBB11_185 + +LBB11_85: + LONG $0xe0e68349 // and r14, -32 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + QUAD $0x000001a024b4894c // mov qword [rsp + 416], r14 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + QUAD $0x00018024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 384], ymm0 + WORD $0xdb31 // xor ebx, ebx + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + +LBB11_86: + QUAD $0x00000178249c8948 // mov qword [rsp + 376], rbx + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + QUAD $0x000000b824848948 // mov qword [rsp + 184], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xc06ef9c5 // vmovd xmm0, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000220248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 544], xmm1 + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x0a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rcx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x0a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rcx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + QUAD $0x000000f8249c8948 // mov qword [rsp + 248], rbx + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x0a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rcx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xf06ef9c5 // vmovd xmm6, eax + LONG $0x0a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rcx + 6] + QUAD $0x000000e0248c8948 // mov qword [rsp + 224], rcx + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x0a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rcx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x20ce8149; WORD $0x0002; BYTE $0x00 // or r14, 544 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0x40c98148; WORD $0x0002; BYTE $0x00 // or rcx, 576 + QUAD $0x000000b0248c8948 // mov qword [rsp + 176], rcx + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02600d48; WORD $0x0000 // or rax, 608 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x000000c824848948 // mov qword [rsp + 200], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02800d48; WORD $0x0000 // or rax, 640 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0xa0ca8149; WORD $0x0002; BYTE $0x00 // or r10, 672 + QUAD $0x000001002494894c // mov qword [rsp + 256], r10 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0xc0c98149; WORD $0x0002; BYTE $0x00 // or r9, 704 + QUAD $0x000000f0248c894c // mov qword [rsp + 240], r9 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0xe0cb8149; WORD $0x0002; BYTE $0x00 // or r11, 736 + LONG $0x245c894c; BYTE $0x50 // mov qword [rsp + 80], r11 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x00cf8149; WORD $0x0003; BYTE $0x00 // or r15, 768 + QUAD $0x0000008024bc894c // mov qword [rsp + 128], r15 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0x20c88149; WORD $0x0003; BYTE $0x00 // or r8, 800 + LONG $0x2444894c; BYTE $0x38 // mov qword [rsp + 56], r8 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x40cc8149; WORD $0x0003; BYTE $0x00 // or r12, 832 + QUAD $0x0000008824a4894c // mov qword [rsp + 136], r12 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03600d48; WORD $0x0000 // or rax, 864 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03800d48; WORD $0x0000 // or rax, 896 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03a00d48; WORD $0x0000 // or rax, 928 + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xe0cb8148; WORD $0x0003; BYTE $0x00 // or rbx, 992 + LONG $0x207923c4; WORD $0x320c; BYTE $0x01 // vpinsrb xmm9, xmm0, byte [rdx + r14], 1 + LONG $0x2031e3c4; WORD $0x0a04; BYTE $0x02 // vpinsrb xmm0, xmm9, byte [rdx + rcx], 2 + LONG $0x2079a3c4; WORD $0x2a04; BYTE $0x03 // vpinsrb xmm0, xmm0, byte [rdx + r13], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x2079e3c4; WORD $0x0a04; BYTE $0x04 // vpinsrb xmm0, xmm0, byte [rdx + rcx], 4 + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x05 // vpinsrb xmm0, xmm0, byte [rdx + r10], 5 + LONG $0x2079a3c4; WORD $0x0a04; BYTE $0x06 // vpinsrb xmm0, xmm0, byte [rdx + r9], 6 + LONG $0x2079a3c4; WORD $0x1a04; BYTE $0x07 // vpinsrb xmm0, xmm0, byte [rdx + r11], 7 + LONG $0x2079a3c4; WORD $0x3a04; BYTE $0x08 // vpinsrb xmm0, xmm0, byte [rdx + r15], 8 + LONG $0x2079a3c4; WORD $0x0204; BYTE $0x09 // vpinsrb xmm0, xmm0, byte [rdx + r8], 9 + LONG $0x2079a3c4; WORD $0x2204; BYTE $0x0a // vpinsrb xmm0, xmm0, byte [rdx + r12], 10 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + LONG $0x2079a3c4; WORD $0x1204; BYTE $0x0b // vpinsrb xmm0, xmm0, byte [rdx + r10], 11 + LONG $0x2079e3c4; WORD $0x3a04; BYTE $0x0c // vpinsrb xmm0, xmm0, byte [rdx + rdi], 12 + LONG $0x2079e3c4; WORD $0x3204; BYTE $0x0d // vpinsrb xmm0, xmm0, byte [rdx + rsi], 13 + LONG $0x2079e3c4; WORD $0x0204; BYTE $0x0e // vpinsrb xmm0, xmm0, byte [rdx + rax], 14 + LONG $0x2079e3c4; WORD $0x1a04; BYTE $0x0f // vpinsrb xmm0, xmm0, byte [rdx + rbx], 15 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x000000a8249c8948 // mov qword [rsp + 168], rbx + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x01 // vpinsrb xmm3, xmm3, byte [rdx + r11], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x02 // vpinsrb xmm3, xmm3, byte [rdx + rax], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + rax], 3 + QUAD $0x000000c024848b4c // mov r8, qword [rsp + 192] + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r8], 4 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r9], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + rax], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + rsi], 7 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + r15], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + rax], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + rbx], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rbx], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rbx], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rbx], 14 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + r14], 15 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x01011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 2 + QUAD $0x000000c824ac8b4c // mov r13, qword [rsp + 200] + QUAD $0x03012a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 1], 3 + QUAD $0x04010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 4 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x05010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 5 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x06010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x07010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 7 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x08010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 10 + QUAD $0x0b0112642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 1], 11 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0c011a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 1], 12 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0d0112642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 1], 13 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0e010a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 1], 14 + QUAD $0x0f0122642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 1], 15 + QUAD $0x01011a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r11 + 1], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x02010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 2 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x0301226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 1], 3 + QUAD $0x0401026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 1], 4 + QUAD $0x05010a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 1], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x06010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 6 + QUAD $0x0701326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 1], 7 + QUAD $0x08013a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 1], 8 + QUAD $0x09013a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 1], 9 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x0a01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e01026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 1], 14 + LONG $0x386563c4; WORD $0x01e8 // vinserti128 ymm13, ymm3, xmm0, 1 + QUAD $0x0f0132442051a3c4 // vpinsrb xmm0, xmm5, byte [rdx + r14 + 1], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0004c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x00022024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 544] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x01023a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 2], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x020202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x040202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 4 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x050202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 5 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x060202442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 2], 6 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x07020a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 2], 7 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x08021a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 2], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 11 + QUAD $0x0c021a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 2], 12 + QUAD $0x0d0212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 2], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f0202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 2], 15 + QUAD $0x000000e824948b4c // mov r10, qword [rsp + 232] + QUAD $0x0001e0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 480] + QUAD $0x0102125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 2], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0202025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 2 + QUAD $0x0302225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 3 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x0402325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 2], 4 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x0502225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 5 + QUAD $0x06020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 6 + QUAD $0x0702325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08023a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 2], 8 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x09022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 9 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0a02325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 2], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 14 + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0f022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 15 + QUAD $0x01033a642021a3c4 // vpinsrb xmm4, xmm11, byte [rdx + r15 + 3], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 2 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x03031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 3 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x04031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 4 + QUAD $0x00000100249c8b48 // mov rbx, qword [rsp + 256] + QUAD $0x05031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 5 + QUAD $0x060302642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 3], 6 + QUAD $0x07030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 7 + QUAD $0x08031a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 3], 8 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x09030a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 3], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 11 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0c031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 12 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x0d032a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 3], 13 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0e031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 14 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0f031a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 3], 15 + QUAD $0x0103126c2039a3c4 // vpinsrb xmm5, xmm8, byte [rdx + r10 + 3], 1 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0203026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0303026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 3 + QUAD $0x0403326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 4 + QUAD $0x0503226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 3], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0603026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0703026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 7 + QUAD $0x08033a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 3], 8 + QUAD $0x09030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 9 + QUAD $0x0a03326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d03026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 3], 13 + LONG $0x3865e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm3, xmm0, 1 + QUAD $0x00022024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm0 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e0302442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 3], 14 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0302442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 3], 15 + LONG $0x387de3c4; WORD $0x01c4 // vinserti128 ymm0, ymm0, xmm4, 1 + QUAD $0x0001e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x0001c024846ff9c5; BYTE $0x00 // vmovdqa xmm0, oword [rsp + 448] + QUAD $0x01043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x02043a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 4], 2 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x030422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 4], 3 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x040432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 4], 4 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x050402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 4], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x070402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 7 + QUAD $0x08041a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 4], 8 + QUAD $0x09040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b040a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 4], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 12 + QUAD $0x0d042a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 4], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e0402442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 4], 14 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0f0412442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 4], 15 + QUAD $0x01041a5c2001e3c4 // vpinsrb xmm3, xmm15, byte [rdx + rbx + 4], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 2 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x03042a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 4], 3 + QUAD $0x0404325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0504025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x07043a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 4], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0804025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 8 + QUAD $0x09040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b040a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 4], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 15 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x010502642009e3c4 // vpinsrb xmm4, xmm14, byte [rdx + rax + 5], 1 + QUAD $0x02053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 2 + QUAD $0x030522642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 5], 3 + QUAD $0x040532642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 5], 4 + QUAD $0x050502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 5], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 6 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x07053a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 5], 7 + QUAD $0x08051a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 5], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 10 + QUAD $0x0b050a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 5], 11 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0c051a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 5], 12 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0d0532642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 5], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e0502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 5], 14 + QUAD $0x0f0512642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 5], 15 + QUAD $0x01051a6c2049e3c4 // vpinsrb xmm5, xmm6, byte [rdx + rbx + 5], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0205026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 2 + QUAD $0x03052a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 5], 3 + QUAD $0x0405326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 4 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0505026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0605026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 6 + QUAD $0x07053a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 5], 7 + QUAD $0x000000b824b48b4c // mov r14, qword [rsp + 184] + QUAD $0x0805326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 8 + QUAD $0x0000010824a48b4c // mov r12, qword [rsp + 264] + QUAD $0x0905226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 5], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 10 + QUAD $0x0b050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e05026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 5], 14 + LONG $0x386563c4; WORD $0x01f0 // vinserti128 ymm14, ymm3, xmm0, 1 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0502442051e3c4 // vpinsrb xmm0, xmm5, byte [rdx + rax + 5], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x387d63c4; WORD $0x01fc // vinserti128 ymm15, ymm0, xmm4, 1 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x010602442019e3c4 // vpinsrb xmm0, xmm12, byte [rdx + rax + 6], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x020602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 2 + QUAD $0x000000c8249c8b48 // mov rbx, qword [rsp + 200] + QUAD $0x03061a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 6], 3 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x040602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 6], 4 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x050612442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 6], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 6 + QUAD $0x07063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x080602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x09063a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 6], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 6], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b060a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 6], 11 + QUAD $0x0c061a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 6], 12 + QUAD $0x0d0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e0632442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 6], 14 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x0f062a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 6], 15 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x01061a6c2041a3c4 // vpinsrb xmm5, xmm7, byte [rdx + r11 + 6], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x02060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 2 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x03060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 3 + QUAD $0x04060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 4 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x05060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06063a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rdi + 6], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 7 + QUAD $0x0806326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 6], 8 + QUAD $0x0906226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 9 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0a060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 10 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0b06326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 6], 11 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x0c060a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 6], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 14 + QUAD $0x0000012024a48b4c // mov r12, qword [rsp + 288] + QUAD $0x0f06226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 6], 15 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x01070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 1 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x02070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 2 + QUAD $0x03071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 3 + QUAD $0x040702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 4 + QUAD $0x050712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 5 + QUAD $0x000000f024848b4c // mov r8, qword [rsp + 240] + QUAD $0x060702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x07070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 7 + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x080712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 8 + QUAD $0x09073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 9 + QUAD $0x0a0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 7], 12 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x0d071a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 7], 13 + QUAD $0x0e0732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 14 + QUAD $0x0f072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 15 + QUAD $0x01071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 1 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x0207324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 7], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0307024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x04070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 4 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x0507224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 5 + QUAD $0x06073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x07073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x08071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 8 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x09070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 9 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0a070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 10 + QUAD $0x0b07324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 7], 11 + QUAD $0x0c070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 13 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0001c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm0 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e073a442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rdi + 7], 14 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a7cb60f; BYTE $0x0b // movzx edi, byte [rdx + rcx + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f070a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 7], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00020024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm0 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + LONG $0x0a7cb60f; BYTE $0x0b // movzx edi, byte [rdx + rcx + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x01083a442031e3c4 // vpinsrb xmm0, xmm9, byte [rdx + rdi + 8], 1 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x02083a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 8], 2 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x03083a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 8], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x04080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 4 + QUAD $0x00000100248c8b4c // mov r9, qword [rsp + 256] + QUAD $0x05080a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 8], 5 + QUAD $0x060802442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 8], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x07080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 7 + QUAD $0x080812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x09080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 10 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x0b0812442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 8], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 12 + QUAD $0x0d081a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 8], 13 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0e080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 14 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0f080a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 8], 15 + QUAD $0x01082a6c2029a3c4 // vpinsrb xmm5, xmm10, byte [rdx + r13 + 8], 1 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + QUAD $0x0208326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 2 + QUAD $0x0308026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x04080a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 8], 4 + WORD $0x894c; BYTE $0xe7 // mov rdi, r12 + QUAD $0x0508226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 5 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0608326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 6 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0708226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 8], 7 + QUAD $0x08081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0908026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 9 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x0a081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 15 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x01091a742039e3c4 // vpinsrb xmm6, xmm8, byte [rdx + rbx + 9], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x02091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 2 + QUAD $0x03093a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 9], 3 + QUAD $0x00000098249c8b48 // mov rbx, qword [rsp + 152] + QUAD $0x04091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 4 + QUAD $0x05090a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 9], 5 + QUAD $0x060902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 6 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x07093a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 9], 7 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x08091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x09091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 10 + QUAD $0x0b0912742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 9], 11 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0c091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 12 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0d0902742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 9], 13 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0e091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 14 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x0f091a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 9], 15 + QUAD $0x01092a7c2021a3c4 // vpinsrb xmm7, xmm11, byte [rdx + r13 + 9], 1 + QUAD $0x0209327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x03091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 3 + QUAD $0x04090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 4 + QUAD $0x05093a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rdi + 9], 5 + QUAD $0x0609327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 6 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + QUAD $0x0709227c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r12 + 9], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 8 + QUAD $0x0909027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 9 + QUAD $0x0a091a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 9], 10 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0b091a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 9], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 14 + LONG $0x3855e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm5, xmm0, 1 + QUAD $0x0004a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f09026c2041e3c4 // vpinsrb xmm5, xmm7, byte [rdx + rax + 9], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xc76ef9c5 // vmovd xmm0, edi + LONG $0x3855e3c4; WORD $0x01ee // vinserti128 ymm5, ymm5, xmm6, 1 + QUAD $0x00048024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm5 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x010a2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 10], 1 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x020a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 3 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x040a125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 10], 4 + QUAD $0x050a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 5 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x060a0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 10], 6 + QUAD $0x070a3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 10], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x080a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a0a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 12 + QUAD $0x0d0a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 15 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x010a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x020a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 2 + QUAD $0x030a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x040a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 4 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x050a3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 10], 5 + QUAD $0x060a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 6 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x070a1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 10], 7 + QUAD $0x000000b824848b4c // mov r8, qword [rsp + 184] + QUAD $0x080a02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 10], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x090a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 10 + QUAD $0x0b0a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 12 + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + QUAD $0x0d0a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e0a32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 10], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 15 + QUAD $0x010b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 1 + QUAD $0x020b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x030b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 3 + QUAD $0x040b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 4 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x050b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 5 + QUAD $0x060b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x070b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x080b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 9 + QUAD $0x0a0b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 13 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0e0b2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 11], 14 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0f0b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 15 + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x010b0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 11], 1 + QUAD $0x020b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x030b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 3 + QUAD $0x040b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 4 + QUAD $0x050b3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 11], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x060b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 6 + QUAD $0x070b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 7 + QUAD $0x080b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 11], 8 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x090b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 12 + QUAD $0x0d0b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000460249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm3 + QUAD $0x0e0b32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 11], 14 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x0d // movzx edi, byte [rdx + rax + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000440248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm1 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x0d // movzx edi, byte [rdx + rax + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x010c0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 12], 1 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x020c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 12], 2 + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x030c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 12], 3 + QUAD $0x040c12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 12], 4 + QUAD $0x050c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 12], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x060c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x070c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x080c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d0c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 12], 13 + QUAD $0x0e0c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 12], 14 + QUAD $0x0f0c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 12], 15 + QUAD $0x010c0a542051a3c4 // vpinsrb xmm2, xmm5, byte [rdx + r9 + 12], 1 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x020c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x030c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x040c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 4 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x050c2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 12], 5 + QUAD $0x000000d0248c8b4c // mov r9, qword [rsp + 208] + QUAD $0x060c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x070c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 7 + QUAD $0x000000b8249c8b4c // mov r11, qword [rsp + 184] + QUAD $0x080c1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 12], 8 + QUAD $0x090c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a0c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 12], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 11 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 12 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x0d0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 13 + QUAD $0x0e0c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 14 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x0f0c1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 12], 15 + QUAD $0x010d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 1 + QUAD $0x020d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 2 + QUAD $0x030d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 13], 3 + QUAD $0x040d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 4 + QUAD $0x050d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 5 + WORD $0x894d; BYTE $0xe2 // mov r10, r12 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + QUAD $0x060d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 6 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x070d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 7 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x080d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 8 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x090d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 11 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0c0d3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 13], 12 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x0d0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 13 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0e0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 14 + QUAD $0x000000a824a48b4c // mov r12, qword [rsp + 168] + QUAD $0x0f0d225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 13], 15 + QUAD $0x000000e8249c8b48 // mov rbx, qword [rsp + 232] + QUAD $0x010d1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 13], 1 + QUAD $0x020d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 2 + QUAD $0x030d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 3 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x040d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 4 + QUAD $0x050d2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 13], 5 + QUAD $0x060d0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 13], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x070d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 7 + QUAD $0x080d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 8 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x090d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 9 + QUAD $0x0a0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 13 + QUAD $0x0e0d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 14 + LONG $0x386de3c4; WORD $0x01c0 // vinserti128 ymm0, ymm2, xmm0, 1 + QUAD $0x00040024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f0d02442071e3c4 // vpinsrb xmm0, xmm1, byte [rdx + rax + 13], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x387de3c4; WORD $0x01c3 // vinserti128 ymm0, ymm0, xmm3, 1 + QUAD $0x00042024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm0 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x010e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 1 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x020e0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 14], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x030e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x040e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 4 + QUAD $0x050e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 5 + QUAD $0x000000f024ac8b4c // mov r13, qword [rsp + 240] + QUAD $0x060e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 14], 6 + QUAD $0x070e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 7 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x080e1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 14], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 14], 9 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0a0e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 10 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0b0e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 14], 11 + QUAD $0x0c0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 12 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x0d0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 13 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0e0e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 14], 14 + QUAD $0x0f0e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 15 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x010e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x020e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x030e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x040e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x050e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x060e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x070e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x080e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 8 + QUAD $0x090e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 9 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0a0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 10 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0b0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 11 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0c0e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 14], 12 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0d0e32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 14], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e0e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f0e3a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 14], 15 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x0f02 // movzx edi, byte [rdx + r8 + 15] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x010f3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 15], 1 + QUAD $0x020f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 2 + QUAD $0x030f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 3 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x040f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 4 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + QUAD $0x050f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 5 + QUAD $0x060f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 15], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x070f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 15], 7 + QUAD $0x080f1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 15], 8 + QUAD $0x090f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 9 + QUAD $0x0a0f12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 15], 10 + QUAD $0x0b0f1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 15], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c0f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 15], 12 + QUAD $0x0d0f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 15], 13 + QUAD $0x0e0f32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 15], 14 + QUAD $0x000000a8248c8b4c // mov r9, qword [rsp + 168] + QUAD $0x0f0f0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 15], 15 + QUAD $0x000000f8249c8b48 // mov rbx, qword [rsp + 248] + LONG $0x1a7cb60f; BYTE $0x0f // movzx edi, byte [rdx + rbx + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x010f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 1 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x020f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x030f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x040f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 4 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x050f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 5 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x060f0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 15], 6 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x070f325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 15], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x080f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x090f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 9 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b0f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 11 + QUAD $0x0c0f225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 15], 12 + QUAD $0x0d0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 13 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0e0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 14 + QUAD $0x0000012024bc8b4c // mov r15, qword [rsp + 288] + QUAD $0x0f0f3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 15], 15 + LONG $0x387de3c4; WORD $0x01c1 // vinserti128 ymm0, ymm0, xmm1, 1 + QUAD $0x0003c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0003e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm0 + LONG $0x7cb60f42; WORD $0x1002 // movzx edi, byte [rdx + r8 + 16] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x011032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 1 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x021032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 2 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x031032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 3 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x041032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 4 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x051032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 5 + QUAD $0x06102a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 16], 6 + WORD $0x894d; BYTE $0xec // mov r12, r13 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x071032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 7 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x081032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x091032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b1032442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 16], 11 + QUAD $0x0c1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d1002442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 16], 13 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + QUAD $0x0e1002442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 16], 14 + QUAD $0x0f100a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 16], 15 + LONG $0x1a7cb60f; BYTE $0x10 // movzx edi, byte [rdx + rbx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x01101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 1 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x02100a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 16], 2 + QUAD $0x0310124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0410024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0510024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 5 + QUAD $0x06100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 6 + QUAD $0x0710324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0810324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 16], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0910024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 16], 9 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0a102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d103a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 16], 13 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x0e10324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 16], 14 + QUAD $0x0f103a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 16], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3a7cb60f; BYTE $0x11 // movzx edi, byte [rdx + rdi + 17] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x01113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 1 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x02110a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 17], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x03113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x04113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 4 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x051112542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 17], 5 + QUAD $0x061122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 6 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x071122542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 17], 7 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x08113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 9 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0a111a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 17], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 12 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x0d111a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 17], 13 + QUAD $0x0e1102542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 17], 14 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0f113a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 17], 15 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3a7cb60f; BYTE $0x11 // movzx edi, byte [rdx + rdi + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 1 + QUAD $0x02110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x05113a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 17], 5 + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x06113a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 17], 6 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x0711025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 17], 7 + QUAD $0x0811325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 8 + QUAD $0x0911025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 9 + QUAD $0x0a112a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 17], 10 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0b110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0c11325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 17], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 13 + QUAD $0x0e11325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 17], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0003a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1102442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rax + 17], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00038024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x12 // movzx edi, byte [rdx + rax + 18] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x011202442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 18], 1 + QUAD $0x02120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x03120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 3 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x04122a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 18], 4 + QUAD $0x051212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 5 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x06120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 6 + QUAD $0x071222442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 18], 7 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x08120a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 18], 8 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x091212442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 18], 9 + QUAD $0x0a121a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 18], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 12 + QUAD $0x0d121a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 18], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 14 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0f123a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 18], 15 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x121a // movzx edi, byte [rdx + r11 + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 1 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x0212324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 18], 2 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x0312224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 18], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x05123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 5 + QUAD $0x06123a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 18], 6 + QUAD $0x0712024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x09123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 9 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 10 + QUAD $0x0b120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 11 + QUAD $0x0c12324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 18], 12 + QUAD $0x00000140248c8b4c // mov r9, qword [rsp + 320] + QUAD $0x0d120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 14 + QUAD $0x0000012024848b4c // mov r8, qword [rsp + 288] + QUAD $0x0f12024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 18], 15 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3a7cb60f; BYTE $0x13 // movzx edi, byte [rdx + rdi + 19] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x03133a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 19], 3 + QUAD $0x04132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 4 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x051302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x061302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x071302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 7 + QUAD $0x08130a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 19], 8 + QUAD $0x091312542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 19], 9 + QUAD $0x0a131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 10 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x0b131a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 19], 11 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0c132a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 19], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f1302542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 19], 15 + LONG $0x7cb60f42; WORD $0x131a // movzx edi, byte [rdx + r11 + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x01130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 1 + QUAD $0x0213325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 19], 2 + QUAD $0x0313225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 19], 3 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0413025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0513025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 5 + QUAD $0x06133a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 19], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0713025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 7 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x08130a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 19], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0913025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 9 + LONG $0x24548b4c; BYTE $0x60 // mov r10, qword [rsp + 96] + QUAD $0x0a13125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b13025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 19], 11 + QUAD $0x0c13325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 12 + QUAD $0x0d130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 13 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x0e130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 14 + QUAD $0x0f13025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 19], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00034024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x00036024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm0 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x14 // movzx edi, byte [rdx + rax + 20] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x011432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 1 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x02141a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 20], 2 + QUAD $0x000000c824a48b4c // mov r12, qword [rsp + 200] + QUAD $0x031422442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 20], 3 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x041432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 4 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x051402442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 20], 5 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x06143a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 20], 6 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x071432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 7 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x081432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 8 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x091432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 9 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0a1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 10 + QUAD $0x0b141a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 20], 11 + QUAD $0x0c142a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 20], 12 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0d1432442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 20], 13 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0e1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 14 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0f1432442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 20], 15 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3a7cb60f; BYTE $0x14 // movzx edi, byte [rdx + rdi + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 2 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x03141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x05143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x07143a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 20], 7 + QUAD $0x08140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 8 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x09140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 9 + QUAD $0x0a14124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0c140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d140a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 20], 13 + QUAD $0x0e140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 14 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + QUAD $0x0f140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 15 + LONG $0x027cb60f; BYTE $0x15 // movzx edi, byte [rdx + rax + 21] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x011502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 1 + QUAD $0x02151a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 21], 2 + QUAD $0x031522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 3 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x041502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 4 + QUAD $0x051502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 5 + QUAD $0x06153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 6 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x071502542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 21], 7 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x08153a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 21], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 9 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0a1522542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 21], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 12 + QUAD $0x0d1532542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 21], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1502542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 21], 14 + QUAD $0x0f1532542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 21], 15 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x151a // movzx edi, byte [rdx + r11 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824b48b4c // mov r14, qword [rsp + 232] + QUAD $0x0115325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 21], 1 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x0215125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 2 + QUAD $0x03151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 3 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x04151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 4 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x05150a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 21], 5 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x0615325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0715325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 7 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0815325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 8 + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0915325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 9 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00030024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm0 + QUAD $0x0f150a442061a3c4 // vpinsrb xmm0, xmm3, byte [rdx + r9 + 21], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00032024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm0 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3a7cb60f; BYTE $0x16 // movzx edi, byte [rdx + rdi + 22] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x01163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 1 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x02163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 2 + QUAD $0x03162a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 22], 3 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x04160a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 22], 4 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x05163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 5 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x06163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 6 + QUAD $0x071602442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 22], 7 + QUAD $0x08163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 9 + QUAD $0x0a1622442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 22], 10 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 12 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0d163a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 22], 13 + QUAD $0x0e1602442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 22], 14 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0f163a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 22], 15 + LONG $0x7cb60f42; WORD $0x161a // movzx edi, byte [rdx + r11 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0116324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 22], 1 + QUAD $0x0216124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 22], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0316024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 3 + QUAD $0x04161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 4 + QUAD $0x05160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 5 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + QUAD $0x0616224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 22], 6 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x07161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 7 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x0816124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 22], 8 + QUAD $0x0916324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 10 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x0b16024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 22], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f16024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 22], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x17 // movzx edi, byte [rdx + rax + 23] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x011702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 2 + WORD $0x894d; BYTE $0xee // mov r14, r13 + QUAD $0x03172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 3 + QUAD $0x04170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 4 + QUAD $0x0000010024ac8b4c // mov r13, qword [rsp + 256] + QUAD $0x05172a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 23], 5 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x061732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 23], 6 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x07170a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 23], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x081702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091702542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 23], 9 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x0a170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c170a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 23], 12 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x0d171a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 23], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e173a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 23], 14 + QUAD $0x0f173a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 23], 15 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + LONG $0x3a7cb60f; BYTE $0x17 // movzx edi, byte [rdx + rdi + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x01173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 1 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x02173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x04173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x05173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 5 + QUAD $0x0617225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 23], 6 + QUAD $0x07171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 7 + QUAD $0x0817125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 8 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x09171a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 23], 9 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 10 + QUAD $0x0b17025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 12 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x0d173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 15 + LONG $0x387563c4; WORD $0x01d0 // vinserti128 ymm10, ymm1, xmm0, 1 + LONG $0x386563c4; WORD $0x01da // vinserti128 ymm11, ymm3, xmm2, 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + LONG $0x3a7cb60f; BYTE $0x18 // movzx edi, byte [rdx + rdi + 24] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x01183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x02183a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 24], 2 + QUAD $0x031832442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 24], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x04183a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rdi + 24], 4 + QUAD $0x05182a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 24], 5 + QUAD $0x061832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 6 + QUAD $0x07180a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 24], 7 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x081832442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 24], 8 + QUAD $0x091802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 10 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0b1822442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 24], 11 + QUAD $0x0c180a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 24], 12 + QUAD $0x0d181a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 24], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f1802442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 24], 15 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x1832 // movzx edi, byte [rdx + r14 + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e8248c8b4c // mov r9, qword [rsp + 232] + QUAD $0x01180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0218024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0318024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 3 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x04181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 4 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0518024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0618024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0718024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 7 + QUAD $0x0818124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 8 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x09181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 9 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0a182a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 24], 10 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b180a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 24], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0c18324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 24], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d18024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 13 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0e181a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 24], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f18024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 15 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + LONG $0x027cb60f; BYTE $0x19 // movzx edi, byte [rdx + rax + 25] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x011902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 1 + QUAD $0x02193a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 25], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x041902542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 25], 4 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + QUAD $0x05193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 5 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x06193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 6 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x07193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 7 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x08193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 8 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x09193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x0a193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 10 + QUAD $0x0b1922542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 25], 11 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0c193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 12 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0d193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 13 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0e193a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 25], 14 + QUAD $0x000000a824bc8b4c // mov r15, qword [rsp + 168] + QUAD $0x0f193a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 25], 15 + LONG $0x7cb60f42; WORD $0x1932 // movzx edi, byte [rdx + r14 + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x01190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 1 + QUAD $0x000000d8248c8b4c // mov r9, qword [rsp + 216] + QUAD $0x02190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x03193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 3 + QUAD $0x04191a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 25], 4 + QUAD $0x0519025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 25], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x06193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x07193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x08193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 8 + QUAD $0x0919125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 25], 9 + QUAD $0x0a192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 10 + QUAD $0x0b190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 11 + QUAD $0x0c19325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 12 + QUAD $0x0000014024ac8b4c // mov r13, qword [rsp + 320] + QUAD $0x0d192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 13 + QUAD $0x0e191a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 25], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00024024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm0 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x0f190a442061e3c4 // vpinsrb xmm0, xmm3, byte [rdx + rcx + 25], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x00026024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm0 + QUAD $0x000000e0249c8b4c // mov r11, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x1a1a // movzx edi, byte [rdx + r11 + 26] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x011a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 1 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x021a02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 26], 2 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x031a0a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rcx + 26], 3 + QUAD $0x041a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 4 + QUAD $0x0000010024b48b48 // mov rsi, qword [rsp + 256] + QUAD $0x051a32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 26], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x061a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x071a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 7 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x081a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 9 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0a1a22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 26], 10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d1a02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 26], 13 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0e1a32442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r14 + 26], 14 + QUAD $0x0f1a3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 26], 15 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x1a // movzx edi, byte [rdx + rax + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x011a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 1 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x021a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 2 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x031a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 3 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x041a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x051a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 5 + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x061a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 6 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x071a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 7 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x081a3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 26], 8 + QUAD $0x091a124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 26], 9 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0a1a1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 26], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 12 + QUAD $0x0d1a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0e1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 15 + LONG $0x7cb60f42; WORD $0x1b1a // movzx edi, byte [rdx + r11 + 27] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x011b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 27], 1 + QUAD $0x021b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 2 + QUAD $0x031b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 3 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x041b02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 27], 4 + QUAD $0x051b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 5 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + QUAD $0x061b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 27], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x071b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 7 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x081b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 8 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x091b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 9 + QUAD $0x0a1b22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 27], 10 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0b1b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 27], 11 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0c1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 12 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x0d1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 13 + QUAD $0x0e1b32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 27], 14 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x0f1b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 27], 15 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + LONG $0x0a7cb60f; BYTE $0x1b // movzx edi, byte [rdx + rcx + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x011b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 1 + QUAD $0x021b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 3 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x041b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x051b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 5 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x061b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 6 + QUAD $0x071b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 7 + QUAD $0x081b3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 27], 8 + QUAD $0x091b125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 27], 9 + QUAD $0x0a1b1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 27], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 12 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x0d1b0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 27], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00028024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm0 + LONG $0x3865e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm3, xmm2, 1 + QUAD $0x0002a024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm0 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + LONG $0x7cb60f42; WORD $0x1c12 // movzx edi, byte [rdx + r10 + 28] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 1 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x021c3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 28], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 3 + QUAD $0x041c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 4 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x051c22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 28], 5 + QUAD $0x061c32442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rsi + 28], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x071c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 7 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x081c0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 28], 8 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x091c02442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r8 + 28], 9 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x0a1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 10 + QUAD $0x0b1c2a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r13 + 28], 11 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0c1c1a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r11 + 28], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 13 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0e1c1a442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rbx + 28], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f1c02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 28], 15 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + LONG $0x027cb60f; BYTE $0x1c // movzx edi, byte [rdx + rax + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x011c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 1 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x021c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 2 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + QUAD $0x041c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x051c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 5 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x061c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x071c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 7 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x081c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 8 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x091c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 9 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 10 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0b1c2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 28], 11 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 12 + QUAD $0x0d1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e1c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 14 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x0f1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 15 + LONG $0x7cb60f42; WORD $0x1d12 // movzx edi, byte [rdx + r10 + 29] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x011d12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 29], 1 + QUAD $0x021d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 2 + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x031d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 3 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x041d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 4 + QUAD $0x051d22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 29], 5 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x061d3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 29], 6 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x071d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 7 + QUAD $0x081d0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 29], 8 + QUAD $0x091d02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 29], 9 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x0a1d22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 29], 10 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0b1d0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 29], 11 + QUAD $0x0c1d1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 29], 12 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0d1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 13 + QUAD $0x0e1d1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 29], 14 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x0f1d3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 29], 15 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + LONG $0x7cb60f42; WORD $0x1d02 // movzx edi, byte [rdx + r8 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x011d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 1 + QUAD $0x021d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 2 + QUAD $0x031d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 3 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x041d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x051d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 5 + QUAD $0x061d325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 29], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x071d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x091d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 10 + QUAD $0x0b1d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 11 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0c1d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1d025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 29], 13 + QUAD $0x0e1d0a642061e3c4 // vpinsrb xmm4, xmm3, byte [rdx + rcx + 29], 14 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x0002c024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm0 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1d02442059e3c4 // vpinsrb xmm0, xmm4, byte [rdx + rax + 29], 15 + LONG $0x387de3c4; WORD $0x01c2 // vinserti128 ymm0, ymm0, xmm2, 1 + QUAD $0x0002e024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm0 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x0a7cb60f; BYTE $0x1e // movzx edi, byte [rdx + rcx + 30] + LONG $0xc76ef9c5 // vmovd xmm0, edi + QUAD $0x011e12442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r10 + 30], 1 + LONG $0x0a7cb60f; BYTE $0x1f // movzx edi, byte [rdx + rcx + 31] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011f124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 31], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x021e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 2 + QUAD $0x021f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 2 + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x031e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 3 + QUAD $0x031f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 3 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x041e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 4 + QUAD $0x041f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 4 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + QUAD $0x051e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 5 + QUAD $0x051f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 5 + QUAD $0x061e3a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r15 + 30], 6 + QUAD $0x061f3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 31], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x071e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 7 + QUAD $0x071f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 7 + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x081e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 8 + QUAD $0x081f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 8 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x091e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 9 + QUAD $0x091f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 9 + QUAD $0x0a1e22442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r12 + 30], 10 + QUAD $0x0a1f224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 31], 10 + QUAD $0x0b1e0a442079a3c4 // vpinsrb xmm0, xmm0, byte [rdx + r9 + 30], 11 + QUAD $0x0b1f0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 31], 11 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0c1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 12 + QUAD $0x0c1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 12 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0d1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 13 + QUAD $0x0d1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0e1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 14 + QUAD $0x0e1f024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 31], 14 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0f1e02442079e3c4 // vpinsrb xmm0, xmm0, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542071e3c4 // vpinsrb xmm2, xmm1, byte [rdx + rax + 31], 15 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + LONG $0x44b60f42; WORD $0x1e02 // movzx eax, byte [rdx + r8 + 30] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x011e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 30], 1 + LONG $0x44b60f42; WORD $0x1f02 // movzx eax, byte [rdx + r8 + 31] + LONG $0xf86ef9c5 // vmovd xmm7, eax + QUAD $0x011f1a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 31], 1 + QUAD $0x000000d824948b4c // mov r10, qword [rsp + 216] + QUAD $0x021e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 2 + QUAD $0x021f127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 31], 2 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 3 + QUAD $0x041e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 30], 4 + QUAD $0x041f327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 31], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 5 + QUAD $0x061e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 30], 6 + QUAD $0x061f327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 31], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x071e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 7 + QUAD $0x071f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 7 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 8 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 9 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 11 + QUAD $0x0b1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 11 + QUAD $0x0c1e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 30], 12 + QUAD $0x0c1f2a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 31], 12 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0d1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 13 + QUAD $0x0d1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 14 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x0f1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 15 + QUAD $0x0f1f027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 31], 15 + LONG $0x3875e3c4; WORD $0x01c0 // vinserti128 ymm0, ymm1, xmm0, 1 + QUAD $0x00014024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm0 + LONG $0x3845e3c4; WORD $0x01c2 // vinserti128 ymm0, ymm7, xmm2, 1 + QUAD $0x00012024847ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm0 + QUAD $0x00018024946ffdc5; BYTE $0x00 // vmovdqa ymm2, yword [rsp + 384] + LONG $0xc26495c5 // vpcmpgtb ymm0, ymm13, ymm2 + QUAD $0x0004c0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 1216] + LONG $0xfa64f5c5 // vpcmpgtb ymm7, ymm1, ymm2 + LONG $0x6d6ffdc5; BYTE $0x00 // vmovdqa ymm5, yword 0[rbp] /* [rip + .LCPI11_0] */ + LONG $0xfddfc5c5 // vpandn ymm7, ymm7, ymm5 + LONG $0xc0fcc5c5 // vpaddb ymm0, ymm7, ymm0 + QUAD $0x000220249c6ffdc5; BYTE $0x00 // vmovdqa ymm3, yword [rsp + 544] + LONG $0xfa64e5c5 // vpcmpgtb ymm7, ymm3, ymm2 + LONG $0x6d6f7dc5; BYTE $0x20 // vmovdqa ymm13, yword 32[rbp] /* [rip + .LCPI11_1] */ + LONG $0xdf45c1c4; BYTE $0xfd // vpandn ymm7, ymm7, ymm13 + QUAD $0x0001e0249c6ffdc5; BYTE $0x00 // vmovdqa ymm3, yword [rsp + 480] + LONG $0xe26465c5 // vpcmpgtb ymm12, ymm3, ymm2 + LONG $0x4d6f7dc5; BYTE $0x40 // vmovdqa ymm9, yword 64[rbp] /* [rip + .LCPI11_2] */ + LONG $0xdf1d41c4; BYTE $0xe1 // vpandn ymm12, ymm12, ymm9 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xe2640dc5 // vpcmpgtb ymm12, ymm14, ymm2 + LONG $0x656ffdc5; BYTE $0x60 // vmovdqa ymm4, yword 96[rbp] /* [rip + .LCPI11_3] */ + LONG $0xe4df1dc5 // vpandn ymm12, ymm12, ymm4 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0x761d41c4; BYTE $0xe4 // vpcmpeqd ymm12, ymm12, ymm12 + LONG $0xf87dc1c4; BYTE $0xc4 // vpsubb ymm0, ymm0, ymm12 + LONG $0x763d41c4; BYTE $0xc0 // vpcmpeqd ymm8, ymm8, ymm8 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + LONG $0xfa6485c5 // vpcmpgtb ymm7, ymm15, ymm2 + QUAD $0x00000080b56ffdc5 // vmovdqa ymm6, yword 128[rbp] /* [rip + .LCPI11_4] */ + LONG $0xfedfc5c5 // vpandn ymm7, ymm7, ymm6 + QUAD $0x0001c024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 448] + LONG $0xe2641dc5 // vpcmpgtb ymm12, ymm12, ymm2 + QUAD $0x000000a09d6ffdc5 // vmovdqa ymm3, yword 160[rbp] /* [rip + .LCPI11_5] */ + LONG $0xe3df1dc5 // vpandn ymm12, ymm12, ymm3 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00020024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 512] + LONG $0xe2641dc5 // vpcmpgtb ymm12, ymm12, ymm2 + QUAD $0x000000c08d6ffdc5 // vmovdqa ymm1, yword 192[rbp] /* [rip + .LCPI11_6] */ + LONG $0xe1df1dc5 // vpandn ymm12, ymm12, ymm1 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + LONG $0xc7ebfdc5 // vpor ymm0, ymm0, ymm7 + QUAD $0x0004a024bc6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword [rsp + 1184] + LONG $0xfa64c5c5 // vpcmpgtb ymm7, ymm7, ymm2 + QUAD $0x00048024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1152] + LONG $0xe2641dc5 // vpcmpgtb ymm12, ymm12, ymm2 + LONG $0xe5df1dc5 // vpandn ymm12, ymm12, ymm5 + LONG $0xfffc9dc5 // vpaddb ymm7, ymm12, ymm7 + QUAD $0x00046024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1120] + LONG $0xe2641dc5 // vpcmpgtb ymm12, ymm12, ymm2 + LONG $0xdf1d41c4; BYTE $0xe5 // vpandn ymm12, ymm12, ymm13 + QUAD $0x00044024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1088] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xdf0541c4; BYTE $0xf9 // vpandn ymm15, ymm15, ymm9 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x00040024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 1024] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xfcdf05c5 // vpandn ymm15, ymm15, ymm4 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xf845c1c4; BYTE $0xf8 // vpsubb ymm7, ymm7, ymm8 + LONG $0xffeb9dc5 // vpor ymm7, ymm12, ymm7 + QUAD $0x00042024a46f7dc5; BYTE $0x00 // vmovdqa ymm12, yword [rsp + 1056] + LONG $0xe2641dc5 // vpcmpgtb ymm12, ymm12, ymm2 + LONG $0xe6df1dc5 // vpandn ymm12, ymm12, ymm6 + QUAD $0x0003c024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 960] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xfbdf05c5 // vpandn ymm15, ymm15, ymm3 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + QUAD $0x0003e024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 992] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xf9df05c5 // vpandn ymm15, ymm15, ymm1 + LONG $0xeb1d41c4; BYTE $0xe7 // vpor ymm12, ymm12, ymm15 + LONG $0xe7eb1dc5 // vpor ymm12, ymm12, ymm7 + QUAD $0x0003a024bc6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword [rsp + 928] + LONG $0xfa64c5c5 // vpcmpgtb ymm7, ymm7, ymm2 + QUAD $0x00038024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 896] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xfddf05c5 // vpandn ymm15, ymm15, ymm5 + LONG $0xfffc85c5 // vpaddb ymm7, ymm15, ymm7 + QUAD $0x00034024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 832] + LONG $0xfa640dc5 // vpcmpgtb ymm15, ymm14, ymm2 + LONG $0xdf0541c4; BYTE $0xfd // vpandn ymm15, ymm15, ymm13 + QUAD $0x00036024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 864] + LONG $0xf2640dc5 // vpcmpgtb ymm14, ymm14, ymm2 + LONG $0xdf0d41c4; BYTE $0xf1 // vpandn ymm14, ymm14, ymm9 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + QUAD $0x00030024bc6f7dc5; BYTE $0x00 // vmovdqa ymm15, yword [rsp + 768] + LONG $0xfa6405c5 // vpcmpgtb ymm15, ymm15, ymm2 + LONG $0xfcdf05c5 // vpandn ymm15, ymm15, ymm4 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xf845c1c4; BYTE $0xf8 // vpsubb ymm7, ymm7, ymm8 + LONG $0xffeb8dc5 // vpor ymm7, ymm14, ymm7 + QUAD $0x00032024b46f7dc5; BYTE $0x00 // vmovdqa ymm14, yword [rsp + 800] + LONG $0xf2640dc5 // vpcmpgtb ymm14, ymm14, ymm2 + LONG $0xfe6f7dc5 // vmovdqa ymm15, ymm6 + LONG $0xf6df0dc5 // vpandn ymm14, ymm14, ymm6 + LONG $0xd2642dc5 // vpcmpgtb ymm10, ymm10, ymm2 + LONG $0xd3df2dc5 // vpandn ymm10, ymm10, ymm3 + LONG $0xeb0d41c4; BYTE $0xd2 // vpor ymm10, ymm14, ymm10 + LONG $0xda6425c5 // vpcmpgtb ymm11, ymm11, ymm2 + LONG $0xd9df25c5 // vpandn ymm11, ymm11, ymm1 + LONG $0xf16f7dc5 // vmovdqa ymm14, ymm1 + LONG $0xeb2d41c4; BYTE $0xd3 // vpor ymm10, ymm10, ymm11 + LONG $0xffebadc5 // vpor ymm7, ymm10, ymm7 + QUAD $0x000240248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 576] + LONG $0xca6475c5 // vpcmpgtb ymm9, ymm1, ymm2 + QUAD $0x000260248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 608] + LONG $0xc26475c5 // vpcmpgtb ymm8, ymm1, ymm2 + LONG $0xc5df3dc5 // vpandn ymm8, ymm8, ymm5 + LONG $0xfc3d41c4; BYTE $0xc1 // vpaddb ymm8, ymm8, ymm9 + QUAD $0x000280248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 640] + LONG $0xea64f5c5 // vpcmpgtb ymm5, ymm1, ymm2 + LONG $0xdf55c1c4; BYTE $0xed // vpandn ymm5, ymm5, ymm13 + QUAD $0x0002a0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 672] + LONG $0xf264f5c5 // vpcmpgtb ymm6, ymm1, ymm2 + LONG $0x75dfcdc5; BYTE $0x40 // vpandn ymm6, ymm6, yword 64[rbp] /* [rip + .LCPI11_2] */ + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x0002c0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 704] + LONG $0xda64f5c5 // vpcmpgtb ymm3, ymm1, ymm2 + LONG $0xdcdfe5c5 // vpandn ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x000000e0adf8bdc5 // vpsubb ymm5, ymm8, yword 224[rbp] /* [rip + .LCPI11_7] */ + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + QUAD $0x0002e0248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 736] + LONG $0xe264f5c5 // vpcmpgtb ymm4, ymm1, ymm2 + LONG $0xdf5dc1c4; BYTE $0xe7 // vpandn ymm4, ymm4, ymm15 + QUAD $0x000140248c6ffdc5; BYTE $0x00 // vmovdqa ymm1, yword [rsp + 320] + LONG $0xca64f5c5 // vpcmpgtb ymm1, ymm1, ymm2 + QUAD $0x000000a08ddff5c5 // vpandn ymm1, ymm1, yword 160[rbp] /* [rip + .LCPI11_5] */ + LONG $0xc9ebddc5 // vpor ymm1, ymm4, ymm1 + QUAD $0x00012024a46ffdc5; BYTE $0x00 // vmovdqa ymm4, yword [rsp + 288] + LONG $0xd264ddc5 // vpcmpgtb ymm2, ymm4, ymm2 + LONG $0xdf6dc1c4; BYTE $0xd6 // vpandn ymm2, ymm2, ymm14 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xc9ebe5c5 // vpor ymm1, ymm3, ymm1 + LONG $0x607dc1c4; BYTE $0xd4 // vpunpcklbw ymm2, ymm0, ymm12 + LONG $0x687dc1c4; BYTE $0xc4 // vpunpckhbw ymm0, ymm0, ymm12 + LONG $0xd960c5c5 // vpunpcklbw ymm3, ymm7, ymm1 + LONG $0xc968c5c5 // vpunpckhbw ymm1, ymm7, ymm1 + LONG $0xe361edc5 // vpunpcklwd ymm4, ymm2, ymm3 + LONG $0xd369edc5 // vpunpckhwd ymm2, ymm2, ymm3 + LONG $0xd961fdc5 // vpunpcklwd ymm3, ymm0, ymm1 + LONG $0xc169fdc5 // vpunpckhwd ymm0, ymm0, ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + LONG $0x465de3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm4, ymm2, 49 + LONG $0x3865e3c4; WORD $0x01e0 // vinserti128 ymm4, ymm3, xmm0, 1 + LONG $0x4665e3c4; WORD $0x31c0 // vperm2i128 ymm0, ymm3, ymm0, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8f44; BYTE $0x60 // vmovdqu yword [r15 + 4*rcx + 96], ymm0 + LONG $0x7f7ec1c4; WORD $0x8f54; BYTE $0x40 // vmovdqu yword [r15 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8f64; BYTE $0x20 // vmovdqu yword [r15 + 4*rcx + 32], ymm4 + LONG $0x7f7ec1c4; WORD $0x8f0c // vmovdqu yword [r15 + 4*rcx], ymm1 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x000001a0248c3b48 // cmp rcx, qword [rsp + 416] + JNE LBB11_86 + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001a024b43b4c // cmp r14, qword [rsp + 416] + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + QUAD $0x0000017024ac8b4c // mov r13, qword [rsp + 368] + QUAD $0x0000016824948b48 // mov rdx, qword [rsp + 360] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + JNE LBB11_88 + JMP LBB11_91 + +LBB11_66: + LONG $0xe0e68349 // and r14, -32 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000016824848948 // mov qword [rsp + 360], rax + QUAD $0x0000018024b4894c // mov qword [rsp + 384], r14 + LONG $0xb7048d4b // lea rax, [r15 + 4*r14] + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + LONG $0x6e79c1c4; BYTE $0xc3 // vmovd xmm0, r11d + LONG $0x787de2c4; BYTE $0xc0 // vpbroadcastb ymm0, xmm0 + WORD $0xdb31 // xor ebx, ebx + QUAD $0x0000011024bc894c // mov qword [rsp + 272], r15 + +LBB11_67: + QUAD $0x00000178249c8948 // mov qword [rsp + 376], rbx + LONG $0x05e3c148 // shl rbx, 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x20c88348 // or rax, 32 + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x40c88348 // or rax, 64 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x60c88348 // or rax, 96 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00a00d48; WORD $0x0000 // or rax, 160 + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00c00d48; WORD $0x0000 // or rax, 192 + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + QUAD $0x0000008824848948 // mov qword [rsp + 136], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01000d48; WORD $0x0000 // or rax, 256 + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01200d48; WORD $0x0000 // or rax, 288 + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x000000f0249c8948 // mov qword [rsp + 240], rbx + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02000d48; WORD $0x0000 // or rax, 512 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x0204b60f // movzx eax, byte [rdx + rax] + LONG $0xd86ef9c5 // vmovd xmm3, eax + LONG $0x1a04b60f // movzx eax, byte [rdx + rbx] + LONG $0xe06ef9c5 // vmovd xmm4, eax + LONG $0x0a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rcx + 1] + LONG $0xe86ef9c5 // vmovd xmm5, eax + LONG $0x1a44b60f; BYTE $0x01 // movzx eax, byte [rdx + rbx + 1] + LONG $0xd06e79c5 // vmovd xmm10, eax + LONG $0x0a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rcx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001e0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 480], xmm1 + LONG $0x1a44b60f; BYTE $0x02 // movzx eax, byte [rdx + rbx + 2] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x0001c0248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 448], xmm1 + LONG $0x0a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rcx + 3] + LONG $0xd86e79c5 // vmovd xmm11, eax + LONG $0x1a44b60f; BYTE $0x03 // movzx eax, byte [rdx + rbx + 3] + LONG $0xc06e79c5 // vmovd xmm8, eax + LONG $0x0a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rcx + 4] + LONG $0xc86ef9c5 // vmovd xmm1, eax + QUAD $0x000200248c7ff9c5; BYTE $0x00 // vmovdqa oword [rsp + 512], xmm1 + LONG $0x1a44b60f; BYTE $0x04 // movzx eax, byte [rdx + rbx + 4] + LONG $0xf86e79c5 // vmovd xmm15, eax + LONG $0x0a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rcx + 5] + LONG $0xf06e79c5 // vmovd xmm14, eax + LONG $0x1a44b60f; BYTE $0x05 // movzx eax, byte [rdx + rbx + 5] + LONG $0xe06e79c5 // vmovd xmm12, eax + LONG $0x0a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rcx + 6] + QUAD $0x00000100248c8948 // mov qword [rsp + 256], rcx + LONG $0xe86e79c5 // vmovd xmm13, eax + LONG $0x1a44b60f; BYTE $0x06 // movzx eax, byte [rdx + rbx + 6] + LONG $0xf86ef9c5 // vmovd xmm7, eax + LONG $0x0a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rcx + 7] + LONG $0xd06ef9c5 // vmovd xmm2, eax + LONG $0x1a44b60f; BYTE $0x07 // movzx eax, byte [rdx + rbx + 7] + LONG $0xc86ef9c5 // vmovd xmm1, eax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + LONG $0x20cf8148; WORD $0x0002; BYTE $0x00 // or rdi, 544 + QUAD $0x000000c824bc8948 // mov qword [rsp + 200], rdi + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02400d48; WORD $0x0000 // or rax, 576 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0x60cb8149; WORD $0x0002; BYTE $0x00 // or r11, 608 + QUAD $0x000000a8249c894c // mov qword [rsp + 168], r11 + WORD $0x8949; BYTE $0xde // mov r14, rbx + LONG $0x80ce8149; WORD $0x0002; BYTE $0x00 // or r14, 640 + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0xa0ca8149; WORD $0x0002; BYTE $0x00 // or r10, 672 + QUAD $0x000000a02494894c // mov qword [rsp + 160], r10 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x02c00d48; WORD $0x0000 // or rax, 704 + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + LONG $0xe0c88149; WORD $0x0002; BYTE $0x00 // or r8, 736 + LONG $0x2444894c; BYTE $0x78 // mov qword [rsp + 120], r8 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + LONG $0x00cf8149; WORD $0x0003; BYTE $0x00 // or r15, 768 + QUAD $0x000000c024bc894c // mov qword [rsp + 192], r15 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03200d48; WORD $0x0000 // or rax, 800 + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + LONG $0x40c98149; WORD $0x0003; BYTE $0x00 // or r9, 832 + QUAD $0x000000b8248c894c // mov qword [rsp + 184], r9 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x60cc8149; WORD $0x0003; BYTE $0x00 // or r12, 864 + QUAD $0x000000b024a4894c // mov qword [rsp + 176], r12 + WORD $0x8948; BYTE $0xde // mov rsi, rbx + LONG $0x80ce8148; WORD $0x0003; BYTE $0x00 // or rsi, 896 + QUAD $0x0000010824b48948 // mov qword [rsp + 264], rsi + WORD $0x8948; BYTE $0xd9 // mov rcx, rbx + LONG $0xa0c98148; WORD $0x0003; BYTE $0x00 // or rcx, 928 + QUAD $0x000000e8248c8948 // mov qword [rsp + 232], rcx + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + LONG $0x03c00d48; WORD $0x0000 // or rax, 960 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + LONG $0xe0cb8148; WORD $0x0003; BYTE $0x00 // or rbx, 992 + QUAD $0x000000f8249c8948 // mov qword [rsp + 248], rbx + LONG $0x206163c4; WORD $0x3a0c; BYTE $0x01 // vpinsrb xmm9, xmm3, byte [rdx + rdi], 1 + LONG $0x2031a3c4; WORD $0x2a1c; BYTE $0x02 // vpinsrb xmm3, xmm9, byte [rdx + r13], 2 + LONG $0x2061a3c4; WORD $0x1a1c; BYTE $0x03 // vpinsrb xmm3, xmm3, byte [rdx + r11], 3 + LONG $0x2061a3c4; WORD $0x321c; BYTE $0x04 // vpinsrb xmm3, xmm3, byte [rdx + r14], 4 + LONG $0x2061a3c4; WORD $0x121c; BYTE $0x05 // vpinsrb xmm3, xmm3, byte [rdx + r10], 5 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x06 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 6 + LONG $0x2061a3c4; WORD $0x021c; BYTE $0x07 // vpinsrb xmm3, xmm3, byte [rdx + r8], 7 + LONG $0x2061a3c4; WORD $0x3a1c; BYTE $0x08 // vpinsrb xmm3, xmm3, byte [rdx + r15], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + LONG $0x2061e3c4; WORD $0x3a1c; BYTE $0x09 // vpinsrb xmm3, xmm3, byte [rdx + rdi], 9 + LONG $0x2061a3c4; WORD $0x0a1c; BYTE $0x0a // vpinsrb xmm3, xmm3, byte [rdx + r9], 10 + LONG $0x2061a3c4; WORD $0x221c; BYTE $0x0b // vpinsrb xmm3, xmm3, byte [rdx + r12], 11 + LONG $0x2061e3c4; WORD $0x321c; BYTE $0x0c // vpinsrb xmm3, xmm3, byte [rdx + rsi], 12 + LONG $0x2061e3c4; WORD $0x0a1c; BYTE $0x0d // vpinsrb xmm3, xmm3, byte [rdx + rcx], 13 + LONG $0x2061e3c4; WORD $0x021c; BYTE $0x0e // vpinsrb xmm3, xmm3, byte [rdx + rax], 14 + LONG $0x2061e3c4; WORD $0x1a1c; BYTE $0x0f // vpinsrb xmm3, xmm3, byte [rdx + rbx], 15 + QUAD $0x000000d024a48b4c // mov r12, qword [rsp + 208] + LONG $0x2059a3c4; WORD $0x2224; BYTE $0x01 // vpinsrb xmm4, xmm4, byte [rdx + r12], 1 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + LONG $0x2059a3c4; WORD $0x3224; BYTE $0x02 // vpinsrb xmm4, xmm4, byte [rdx + r14], 2 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + LONG $0x2059a3c4; WORD $0x1a24; BYTE $0x03 // vpinsrb xmm4, xmm4, byte [rdx + r11], 3 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + LONG $0x2059a3c4; WORD $0x0224; BYTE $0x04 // vpinsrb xmm4, xmm4, byte [rdx + r8], 4 + QUAD $0x00000120248c8b4c // mov r9, qword [rsp + 288] + LONG $0x2059a3c4; WORD $0x0a24; BYTE $0x05 // vpinsrb xmm4, xmm4, byte [rdx + r9], 5 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + LONG $0x2059e3c4; WORD $0x1a24; BYTE $0x06 // vpinsrb xmm4, xmm4, byte [rdx + rbx], 6 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + LONG $0x2059e3c4; WORD $0x3224; BYTE $0x07 // vpinsrb xmm4, xmm4, byte [rdx + rsi], 7 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + LONG $0x2059a3c4; WORD $0x3a24; BYTE $0x08 // vpinsrb xmm4, xmm4, byte [rdx + r15], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + LONG $0x2059e3c4; WORD $0x3a24; BYTE $0x09 // vpinsrb xmm4, xmm4, byte [rdx + rdi], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + LONG $0x2059e3c4; WORD $0x0224; BYTE $0x0a // vpinsrb xmm4, xmm4, byte [rdx + rax], 10 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + LONG $0x2059a3c4; WORD $0x1224; BYTE $0x0b // vpinsrb xmm4, xmm4, byte [rdx + r10], 11 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x2059e3c4; WORD $0x0a24; BYTE $0x0c // vpinsrb xmm4, xmm4, byte [rdx + rcx], 12 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + LONG $0x2059e3c4; WORD $0x0a24; BYTE $0x0d // vpinsrb xmm4, xmm4, byte [rdx + rcx], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0x2059e3c4; WORD $0x0a24; BYTE $0x0e // vpinsrb xmm4, xmm4, byte [rdx + rcx], 14 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + LONG $0x2059a3c4; WORD $0x2a24; BYTE $0x0f // vpinsrb xmm4, xmm4, byte [rdx + r13], 15 + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x01010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 2 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x03010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 4 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x05010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 5 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x06010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 7 + QUAD $0x000000c024ac8b4c // mov r13, qword [rsp + 192] + QUAD $0x08012a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 1], 8 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x09010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 9 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x0a010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 11 + QUAD $0x00000108248c8b48 // mov rcx, qword [rsp + 264] + QUAD $0x0c010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 12 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x0d010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 13 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0e010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 14 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x0f010a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 1], 15 + QUAD $0x010122742029a3c4 // vpinsrb xmm6, xmm10, byte [rdx + r12 + 1], 1 + QUAD $0x020132742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r14 + 1], 2 + QUAD $0x03011a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r11 + 1], 3 + QUAD $0x040102742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r8 + 1], 4 + QUAD $0x05010a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 1], 5 + QUAD $0x06011a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 1], 6 + QUAD $0x070132742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 1], 7 + QUAD $0x08013a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 1], 8 + QUAD $0x09013a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 1], 9 + QUAD $0x0a0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 10 + QUAD $0x0b0112742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r10 + 1], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 13 + WORD $0x8949; BYTE $0xc3 // mov r11, rax + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e0102742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 1], 14 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x0004c0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1216], ymm3 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f01025c2049e3c4 // vpinsrb xmm3, xmm6, byte [rdx + rax + 1], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xcf6e79c5 // vmovd xmm9, edi + LONG $0x3865e3c4; WORD $0x01dd // vinserti128 ymm3, ymm3, xmm5, 1 + QUAD $0x000220249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 544], ymm3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x08 // movzx edi, byte [rdx + rax + 8] + LONG $0xd76e79c5 // vmovd xmm10, edi + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x0001e0249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 480] + QUAD $0x01020a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 2], 1 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x0202325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 2], 2 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0302025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 3 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x04023a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 2], 4 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0502025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 5 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x0602125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 2], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0702025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 7 + QUAD $0x08022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0902025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 9 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x0a02225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 2], 10 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0b022a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 2], 11 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0c021a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 2], 12 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x0d020a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 2], 13 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0e02025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 2], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0f02025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 2], 15 + QUAD $0x0001c024a46ff9c5; BYTE $0x00 // vmovdqa xmm4, oword [rsp + 448] + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x010202642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 2], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020202642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 2], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x03023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x04023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 6 + QUAD $0x070232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08023a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 2], 8 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x090232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0a0232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 10 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0b0232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 11 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0c0232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 12 + QUAD $0x0d021a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 2], 13 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0e0232642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 2], 14 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x0f021a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 2], 15 + QUAD $0x01030a6c2021a3c4 // vpinsrb xmm5, xmm11, byte [rdx + r9 + 3], 1 + QUAD $0x0203326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 2 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x0303326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 3 + QUAD $0x04033a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 3], 4 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + QUAD $0x000000a024b48b4c // mov r14, qword [rsp + 160] + QUAD $0x0503326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 3], 5 + QUAD $0x0603126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 3], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0703326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x08030a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 3], 8 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x0903326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 3], 9 + QUAD $0x0a03226c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r12 + 3], 10 + QUAD $0x0b032a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 3], 11 + QUAD $0x0c031a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 3], 12 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x0d030a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 3], 13 + QUAD $0x0e03026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 3], 14 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0f03126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 3], 15 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01030a742039e3c4 // vpinsrb xmm6, xmm8, byte [rdx + rcx + 3], 1 + QUAD $0x020302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x040302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 5 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x060322742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 3], 6 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x070302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 7 + QUAD $0x08033a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 3], 8 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x090332742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 3], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c0302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d0302742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 3], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x0001e0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 480], ymm3 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e03025c2049e3c4 // vpinsrb xmm3, xmm6, byte [rdx + rax + 3], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xc76e79c5 // vmovd xmm8, edi + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0f030a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 3], 15 + LONG $0x3865e3c4; WORD $0x01dd // vinserti128 ymm3, ymm3, xmm5, 1 + QUAD $0x0001c0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 448], ymm3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x09 // movzx edi, byte [rdx + rax + 9] + LONG $0xdf6e79c5 // vmovd xmm11, edi + QUAD $0x000200249c6ff9c5; BYTE $0x00 // vmovdqa xmm3, oword [rsp + 512] + QUAD $0x000000c824848b4c // mov r8, qword [rsp + 200] + QUAD $0x0104025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 4], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0204025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 2 + QUAD $0x000000a8249c8b48 // mov rbx, qword [rsp + 168] + QUAD $0x03041a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 4], 3 + QUAD $0x04043a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 4], 4 + QUAD $0x0504325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 5 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0604025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 6 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x07041a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 4], 7 + QUAD $0x08040a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 4], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0904025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 9 + QUAD $0x000000b824bc8b4c // mov r15, qword [rsp + 184] + QUAD $0x0a043a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 4], 10 + QUAD $0x000000b024b48b4c // mov r14, qword [rsp + 176] + QUAD $0x0b04325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 4], 11 + QUAD $0x0c042a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 4], 12 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0d04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e04025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 4], 14 + QUAD $0x0f04125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 4], 15 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x010412642001a3c4 // vpinsrb xmm4, xmm15, byte [rdx + r10 + 4], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x040402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 5 + QUAD $0x060422642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 4], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x07043a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 4], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x080402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 8 + QUAD $0x090432642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 4], 9 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x0a0422642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 4], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0402642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 4], 11 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0c0432642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 4], 12 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0d040a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 4], 13 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0e0432642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 4], 14 + QUAD $0x0f040a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 4], 15 + QUAD $0x0105026c2009a3c4 // vpinsrb xmm5, xmm14, byte [rdx + r8 + 5], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 2 + QUAD $0x03051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 3 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x04051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 4 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x0505026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 5], 5 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x06050a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 5], 6 + QUAD $0x07051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 7 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x08051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 8 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x09051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 9 + QUAD $0x0a053a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 5], 10 + QUAD $0x0b05326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 11 + QUAD $0x0c052a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 5], 12 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x0d051a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 5], 13 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0e051a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 5], 14 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0f05326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 5], 15 + QUAD $0x010512742019a3c4 // vpinsrb xmm6, xmm12, byte [rdx + r10 + 5], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x02051a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 5], 2 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x03051a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 5], 3 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x04051a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 5], 4 + QUAD $0x00000120249c8b48 // mov rbx, qword [rsp + 288] + QUAD $0x05051a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 5], 5 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x06051a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 5], 6 + QUAD $0x07053a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 5], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08053a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 5], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x09053a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 5], 9 + QUAD $0x0a0522742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 5], 10 + QUAD $0x0b0502742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 5], 11 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0c0522742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 5], 12 + QUAD $0x0d050a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 5], 13 + QUAD $0x0e0532742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 5], 14 + LONG $0x385d63c4; WORD $0x01f3 // vinserti128 ymm14, ymm4, xmm3, 1 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f0502642049e3c4 // vpinsrb xmm4, xmm6, byte [rdx + rax + 5], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xe76e79c5 // vmovd xmm12, edi + LONG $0x385de3c4; WORD $0x01dd // vinserti128 ymm3, ymm4, xmm5, 1 + QUAD $0x000200249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 512], ymm3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0a // movzx edi, byte [rdx + rax + 10] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x01063a6c2011a3c4 // vpinsrb xmm5, xmm13, byte [rdx + r15 + 6], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0206026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 2 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0306026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0406026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 4 + QUAD $0x0506026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 6], 5 + QUAD $0x06060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07060a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 6], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0806026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 8 + QUAD $0x0000014024848b4c // mov r8, qword [rsp + 320] + QUAD $0x0906026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 6], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a06026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b06026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 6], 11 + QUAD $0x0c062a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 6], 12 + QUAD $0x0d061a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 6], 13 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x0e06126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 6], 14 + QUAD $0x0f06326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 6], 15 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x01061a742041a3c4 // vpinsrb xmm6, xmm7, byte [rdx + r11 + 6], 1 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x020632742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r14 + 6], 2 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x03061a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rbx + 6], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x040602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06063a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 6], 6 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x070602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x080602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x090602742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rax + 6], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0a0632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 10 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0b060a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r9 + 6], 11 + QUAD $0x0c0622742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 6], 12 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0d0622742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 6], 13 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0e0632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 14 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0f0632742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 6], 15 + QUAD $0x01073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 1 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x020732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 2 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x030732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 3 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x040732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 4 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x050732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 5 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + QUAD $0x06073a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 7], 6 + QUAD $0x07070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 7 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x08070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 8 + QUAD $0x090702542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 7], 9 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0a0732542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 7], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 11 + QUAD $0x0c072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 12 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x0d072a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 7], 13 + QUAD $0x0e0712542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 7], 14 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x0f070a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 7], 15 + QUAD $0x01071a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 7], 1 + QUAD $0x0207324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 7], 2 + QUAD $0x03071a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 7], 3 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x04070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 5 + QUAD $0x06073a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 7], 6 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x07070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x08070a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 7], 8 + QUAD $0x0907024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a07024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 10 + QUAD $0x0b070a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 7], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c07024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 7], 12 + QUAD $0x0d07224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 7], 13 + LONG $0x384de3c4; WORD $0x01dd // vinserti128 ymm3, ymm6, xmm5, 1 + QUAD $0x0004a0249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1184], ymm3 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e07026c2071e3c4 // vpinsrb xmm5, xmm1, byte [rdx + rax + 7], 14 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0b // movzx edi, byte [rdx + rax + 11] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f07026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 7], 15 + LONG $0x3855e3c4; WORD $0x01d2 // vinserti128 ymm2, ymm5, xmm2, 1 + QUAD $0x00048024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1152], ymm2 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0b // movzx edi, byte [rdx + rax + 11] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0108026c2031e3c4 // vpinsrb xmm5, xmm9, byte [rdx + rax + 8], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x0208026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 2 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x03080a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rcx + 8], 3 + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x0408126c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r10 + 8], 4 + QUAD $0x000000a0249c8b48 // mov rbx, qword [rsp + 160] + QUAD $0x05081a6c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rbx + 8], 5 + QUAD $0x06083a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r15 + 8], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0708026c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rax + 8], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x08080a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r9 + 8], 8 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x0908026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 8], 9 + QUAD $0x0a08326c2051e3c4 // vpinsrb xmm5, xmm5, byte [rdx + rsi + 8], 10 + QUAD $0x000000b024848b4c // mov r8, qword [rsp + 176] + QUAD $0x0b08026c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r8 + 8], 11 + QUAD $0x00000108249c8b4c // mov r11, qword [rsp + 264] + QUAD $0x0c081a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r11 + 8], 12 + QUAD $0x0d082a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 8], 13 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x0e082a6c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r13 + 8], 14 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0f08326c2051a3c4 // vpinsrb xmm5, xmm5, byte [rdx + r14 + 8], 15 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x010832742029e3c4 // vpinsrb xmm6, xmm10, byte [rdx + rsi + 8], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 2 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x030832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 3 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x04083a742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r15 + 8], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05083a742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rdi + 8], 5 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x060832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 6 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x070832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 7 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x080832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 8 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x090832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0a0832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 10 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x0b0832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 11 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0c0832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 12 + QUAD $0x0d0822742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 8], 13 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x0e0822742049a3c4 // vpinsrb xmm6, xmm6, byte [rdx + r12 + 8], 14 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0f0832742049e3c4 // vpinsrb xmm6, xmm6, byte [rdx + rsi + 8], 15 + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x0109327c2039e3c4 // vpinsrb xmm7, xmm8, byte [rdx + rsi + 9], 1 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x0209327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 2 + QUAD $0x03090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 3 + WORD $0x8949; BYTE $0xcc // mov r12, rcx + QUAD $0x0409127c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r10 + 9], 4 + QUAD $0x05091a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rbx + 9], 5 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0609327c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rsi + 9], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 7 + QUAD $0x08090a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r9 + 9], 8 + QUAD $0x0909027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 9 + QUAD $0x000000b8248c8b48 // mov rcx, qword [rsp + 184] + QUAD $0x0a090a7c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rcx + 9], 10 + QUAD $0x0b09027c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r8 + 9], 11 + QUAD $0x0c091a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r11 + 9], 12 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0d09027c2041e3c4 // vpinsrb xmm7, xmm7, byte [rdx + rax + 9], 13 + QUAD $0x0e092a7c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r13 + 9], 14 + QUAD $0x0f09327c2041a3c4 // vpinsrb xmm7, xmm7, byte [rdx + r14 + 9], 15 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x01092a5c2021a3c4 // vpinsrb xmm3, xmm11, byte [rdx + r13 + 9], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0209025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0309025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 3 + QUAD $0x04093a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 9], 4 + QUAD $0x05093a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 9], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0609025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 6 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x07091a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 9], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0809025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x0909025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 14 + LONG $0x384de3c4; WORD $0x01ed // vinserti128 ymm5, ymm6, xmm5, 1 + QUAD $0x00046024ac7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1120], ymm5 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f09025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 9], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xef6ef9c5 // vmovd xmm5, edi + LONG $0x3865e3c4; WORD $0x01df // vinserti128 ymm3, ymm3, xmm7, 1 + QUAD $0x000440249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1088], ymm3 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0c // movzx edi, byte [rdx + rax + 12] + LONG $0xf76ef9c5 // vmovd xmm6, edi + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x010a125c2019a3c4 // vpinsrb xmm3, xmm12, byte [rdx + r10 + 10], 1 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + QUAD $0x020a025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 10], 2 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x030a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 3 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x040a1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 10], 4 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x050a225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 10], 5 + QUAD $0x060a325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 10], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x070a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x080a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x090a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 9 + QUAD $0x0a0a0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 10], 10 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0b0a3a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 10], 11 + QUAD $0x0000010824b48b4c // mov r14, qword [rsp + 264] + QUAD $0x0c0a325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 10], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d0a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e0a025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 10], 14 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x0f0a3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 10], 15 + QUAD $0x010a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x020a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x030a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x040a3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 10], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 5 + QUAD $0x0000009024ac8b4c // mov r13, qword [rsp + 144] + QUAD $0x060a2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 10], 6 + QUAD $0x070a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x080a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 8 + QUAD $0x000000d8248c8b48 // mov rcx, qword [rsp + 216] + QUAD $0x090a0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 10], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 10 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0b0a1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 10], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 14 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f0a02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 10], 15 + QUAD $0x010b124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 11], 1 + QUAD $0x020b024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 11], 2 + QUAD $0x030b0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 11], 3 + QUAD $0x040b1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 11], 4 + QUAD $0x050b224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 11], 5 + QUAD $0x060b324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 11], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x070b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x090b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 10 + QUAD $0x0b0b3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 11], 11 + QUAD $0x0c0b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 12 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0d0b024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 11], 13 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x0e0b3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 11], 14 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0f0b324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 11], 15 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x010b1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 11], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 3 + QUAD $0x040b3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 11], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050b02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 11], 5 + QUAD $0x060b2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 11], 6 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x070b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 7 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x080b32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 11], 8 + QUAD $0x090b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 9 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 10 + QUAD $0x0b0b1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 11], 11 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0c0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 12 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0d0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 13 + LONG $0x385de3c4; WORD $0x01db // vinserti128 ymm3, ymm4, xmm3, 1 + QUAD $0x000420249c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1056], ymm3 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 14 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x0d // movzx edi, byte [rdx + rcx + 13] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0f0b0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 11], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000400248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 1024], ymm1 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x0d // movzx edi, byte [rdx + rcx + 13] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + QUAD $0x010c12542051a3c4 // vpinsrb xmm2, xmm5, byte [rdx + r10 + 12], 1 + QUAD $0x020c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 2 + QUAD $0x030c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 3 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x040c02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 12], 4 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x050c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 12], 5 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x060c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x070c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x080c32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 12], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x090c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 9 + QUAD $0x000000b824948b4c // mov r10, qword [rsp + 184] + QUAD $0x0a0c12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 12], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b0c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c0c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d0c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 12], 13 + QUAD $0x0e0c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 12], 14 + QUAD $0x0f0c32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 12], 15 + QUAD $0x010c1a642049e3c4 // vpinsrb xmm4, xmm6, byte [rdx + rbx + 12], 1 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x020c3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 12], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x030c3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 12], 3 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x040c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 4 + QUAD $0x050c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 5 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x060c32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 12], 6 + QUAD $0x0000008824a48b4c // mov r12, qword [rsp + 136] + QUAD $0x070c22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 12], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x080c02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 12], 8 + QUAD $0x090c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 9 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0a0c1a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r11 + 12], 10 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0b0c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 11 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0c0c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 12 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0d0c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 13 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0e0c1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 12], 14 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0f0c2a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 12], 15 + QUAD $0x010d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x020d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 2 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x030d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 3 + QUAD $0x040d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 4 + QUAD $0x050d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 5 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x060d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 6 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x070d0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 13], 7 + QUAD $0x080d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 13], 8 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x090d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 9 + QUAD $0x0a0d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 13], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 11 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0c0d1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 13], 12 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x0d0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 13 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0e0d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 13], 14 + QUAD $0x000000f824848b4c // mov r8, qword [rsp + 248] + QUAD $0x0f0d025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 13], 15 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + QUAD $0x010d124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 13], 1 + QUAD $0x020d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 2 + QUAD $0x030d3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 13], 3 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x040d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 4 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x050d324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 13], 5 + QUAD $0x060d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 6 + QUAD $0x070d224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 13], 7 + QUAD $0x080d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 8 + QUAD $0x000000d824b48b4c // mov r14, qword [rsp + 216] + QUAD $0x090d324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 13], 9 + QUAD $0x0a0d1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 13], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d0d024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 13], 13 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0e0d3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 13], 14 + LONG $0x385de3c4; WORD $0x01d2 // vinserti128 ymm2, ymm4, xmm2, 1 + QUAD $0x0003e024947ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 992], ymm2 + QUAD $0x0f0d2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 13], 15 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xd76ef9c5 // vmovd xmm2, edi + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0003c0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 960], ymm1 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x0e // movzx edi, byte [rdx + rax + 14] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c824b48b48 // mov rsi, qword [rsp + 200] + QUAD $0x010e32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 14], 1 + QUAD $0x000000e024848b48 // mov rax, qword [rsp + 224] + QUAD $0x020e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 2 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x030e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x040e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 4 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x050e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 5 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x060e1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 14], 6 + QUAD $0x070e0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 14], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x080e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x090e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a0e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b0e02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 14], 11 + QUAD $0x0c0e1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 14], 12 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x0d0e2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 14], 13 + QUAD $0x0e0e0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 14], 14 + QUAD $0x0f0e02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 14], 15 + QUAD $0x010e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 14], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x020e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x030e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 3 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x040e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x050e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 5 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x060e224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 14], 6 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x070e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x080e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 8 + QUAD $0x090e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 14], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 11 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0c0e324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 14], 12 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0d0e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 14], 13 + QUAD $0x0e0e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 14], 14 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + QUAD $0x0f0e024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 14], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x0f // movzx edi, byte [rdx + rcx + 15] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x010f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 1 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + QUAD $0x020f125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 15], 2 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x030f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 3 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x040f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 4 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x050f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 5 + QUAD $0x060f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 6 + QUAD $0x070f0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 15], 7 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x080f1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 15], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x090f3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 15], 9 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0a0f325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 15], 10 + QUAD $0x0b0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 11 + QUAD $0x0c0f1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 15], 12 + QUAD $0x0d0f2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 15], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0f0f025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 15], 15 + QUAD $0x000000f024b48b48 // mov rsi, qword [rsp + 240] + LONG $0x327cb60f; BYTE $0x0f // movzx edi, byte [rdx + rsi + 15] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x010f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x020f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x030f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x040f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x050f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 5 + QUAD $0x060f22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 15], 6 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x070f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 15], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x080f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 15], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x090f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 15], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a0f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 15], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0b0f3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 15], 11 + QUAD $0x0c0f32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 15], 12 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0d0f0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 15], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e0f3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 15], 14 + QUAD $0x0f0f02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 15], 15 + LONG $0x3875e3c4; WORD $0x01ca // vinserti128 ymm1, ymm1, xmm2, 1 + QUAD $0x000380248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 896], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x0003a0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 928], ymm1 + LONG $0x0a7cb60f; BYTE $0x10 // movzx edi, byte [rdx + rcx + 16] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x01100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 1 + QUAD $0x0210124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 16], 2 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x03100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 4 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x05100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 5 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x06100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 7 + QUAD $0x08101a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 16], 8 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x09100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 9 + QUAD $0x000000b824a48b4c // mov r12, qword [rsp + 184] + QUAD $0x0a10224c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r12 + 16], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 11 + QUAD $0x0c101a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 16], 12 + QUAD $0x0d102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 13 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x0e102a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 16], 14 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x0f100a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 16], 15 + LONG $0x327cb60f; BYTE $0x10 // movzx edi, byte [rdx + rsi + 16] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01100a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 16], 1 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x02101a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 16], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03100a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 16], 3 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x04100a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 16], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x05100a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 16], 5 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x06100a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 16], 6 + QUAD $0x071002542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 16], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x081002542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 16], 8 + QUAD $0x000000d824b48b48 // mov rsi, qword [rsp + 216] + QUAD $0x091032542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 16], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a1002542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 16], 10 + QUAD $0x0b103a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 16], 11 + QUAD $0x0c1032542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 16], 12 + QUAD $0x0d100a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 16], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e1002542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 16], 14 + QUAD $0x0f1002542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 16], 15 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1102 // movzx edi, byte [rdx + r8 + 17] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0111025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 1 + QUAD $0x0211125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 17], 2 + QUAD $0x000000a8249c8b4c // mov r11, qword [rsp + 168] + QUAD $0x03111a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 17], 3 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x04110a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 17], 4 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x0511025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 5 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x0611025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 6 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0711025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0811025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0911025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 9 + QUAD $0x0a11225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 17], 10 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x0b11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 11 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0c11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 12 + QUAD $0x000000e824848b48 // mov rax, qword [rsp + 232] + QUAD $0x0d11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 13 + QUAD $0x0e112a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 17], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0f11025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 17], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x11 // movzx edi, byte [rdx + rdi + 17] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024bc8b4c // mov r15, qword [rsp + 208] + QUAD $0x01113a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 17], 1 + QUAD $0x02111a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 17], 2 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x03111a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 17], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x04113a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 17], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05113a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 17], 5 + QUAD $0x06110a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 17], 6 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x071132642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 17], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x08110a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 17], 8 + QUAD $0x091132642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 17], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0a1132642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 17], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0b1122642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 17], 11 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x0c112a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 17], 12 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0d1132642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 17], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e113a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 17], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000360248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 864], ymm1 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x0f11324c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rsi + 17], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x000340248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 832], ymm1 + LONG $0x7cb60f42; WORD $0x1202 // movzx edi, byte [rdx + r8 + 18] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x01123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 1 + QUAD $0x0212124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 18], 2 + QUAD $0x03121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 3 + QUAD $0x04120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 4 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x05121a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 18], 5 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x06123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x07123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x08120a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 18], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x09123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 9 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x0a123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 13 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0e123a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 18], 14 + QUAD $0x0f12024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 18], 15 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + LONG $0x027cb60f; BYTE $0x12 // movzx edi, byte [rdx + rax + 18] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01123a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 18], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x021202542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 18], 2 + QUAD $0x03121a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 18], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x041202542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 18], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051202542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 18], 5 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x06121a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 18], 6 + QUAD $0x071232542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 18], 7 + QUAD $0x08120a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 18], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091202542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 18], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a123a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 18], 10 + QUAD $0x0b1222542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 18], 11 + QUAD $0x0c122a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 18], 12 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0d1232542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 18], 13 + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x0e1202542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 18], 14 + QUAD $0x0f1232542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 18], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x13 // movzx edi, byte [rdx + rcx + 19] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c824948b4c // mov r10, qword [rsp + 200] + QUAD $0x0113125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 19], 1 + QUAD $0x000000e024b48b48 // mov rsi, qword [rsp + 224] + QUAD $0x0213325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 19], 2 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x03133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 4 + QUAD $0x05131a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 19], 5 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x06133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 6 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x07131a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 19], 7 + QUAD $0x08130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x09133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 9 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x0a133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 10 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x0b130a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 19], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 12 + QUAD $0x000000e824ac8b4c // mov r13, qword [rsp + 232] + QUAD $0x0d132a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 19], 13 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0e133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 14 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x0f133a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 19], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x13 // movzx edi, byte [rdx + rdi + 19] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024bc8b48 // mov rdi, qword [rsp + 208] + QUAD $0x01133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x03133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 3 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x041322642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 19], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 5 + QUAD $0x06131a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 19], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x07133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08133a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 19], 8 + QUAD $0x091302642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 19], 9 + QUAD $0x0a133a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 19], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1302642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 19], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c1302642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 19], 12 + QUAD $0x0d1332642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 19], 13 + QUAD $0x0e1302642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 19], 14 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f1302642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 19], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000300248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 768], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x000320248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 800], ymm1 + LONG $0x0a7cb60f; BYTE $0x14 // movzx edi, byte [rdx + rcx + 20] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x0114124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 1 + QUAD $0x0214324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 2 + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + QUAD $0x0314124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 20], 3 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + QUAD $0x04143a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 20], 4 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x0514324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 20], 5 + QUAD $0x0000009824848b4c // mov r8, qword [rsp + 152] + QUAD $0x0614024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 20], 6 + QUAD $0x07141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0814024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 8 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x09141a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 20], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a14024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 10 + QUAD $0x0b140a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 20], 11 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0c14024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 12 + QUAD $0x0d142a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 20], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e14024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 20], 14 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x0f141a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 20], 15 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x14 // movzx edi, byte [rdx + rcx + 20] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x01140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 1 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x02140a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 20], 2 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x03140a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 20], 3 + QUAD $0x041422542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 20], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x07143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 7 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x081432542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 20], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x09143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 11 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0c143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 12 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0d143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 14 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0f143a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 20], 15 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1522 // movzx edi, byte [rdx + r12 + 21] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x01153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x02153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 2 + QUAD $0x0315125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 21], 3 + QUAD $0x04153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 4 + QUAD $0x0515325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 5 + QUAD $0x0615025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 21], 6 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x07152a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 21], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x08153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 8 + QUAD $0x09151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 9 + QUAD $0x000000b824b48b48 // mov rsi, qword [rsp + 184] + QUAD $0x0a15325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 21], 10 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x0b153a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r15 + 21], 11 + QUAD $0x00000108249c8b48 // mov rbx, qword [rsp + 264] + QUAD $0x0c151a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 21], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d153a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 21], 13 + QUAD $0x0e15025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 21], 14 + QUAD $0x0f151a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 21], 15 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x151a // movzx edi, byte [rdx + r11 + 21] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x011502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 1 + QUAD $0x02150a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 21], 2 + QUAD $0x03150a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 21], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x041502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 4 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x051512642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 21], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x061502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 6 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x071502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 7 + QUAD $0x081532642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 21], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 9 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0a1502642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 21], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 11 + LONG $0x24748b4c; BYTE $0x28 // mov r14, qword [rsp + 40] + QUAD $0x0c1532642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 21], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d1502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e1502642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 21], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x0002c0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 704], ymm1 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0f150a4c2059e3c4 // vpinsrb xmm1, xmm4, byte [rdx + rcx + 21], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0002e0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 736], ymm1 + LONG $0x7cb60f42; WORD $0x1622 // movzx edi, byte [rdx + r12 + 22] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x01160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 2 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + QUAD $0x03160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 4 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x05160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 5 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + QUAD $0x06160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 6 + QUAD $0x07162a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 22], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x08160a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 22], 8 + QUAD $0x00000140248c8b48 // mov rcx, qword [rsp + 320] + QUAD $0x09160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 9 + QUAD $0x0a16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 10 + QUAD $0x0b163a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 22], 11 + QUAD $0x0c161a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 22], 12 + QUAD $0x000000e824b48b48 // mov rsi, qword [rsp + 232] + QUAD $0x0d16324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 22], 13 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0e160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 14 + QUAD $0x000000f8248c8b48 // mov rcx, qword [rsp + 248] + QUAD $0x0f160a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 22], 15 + LONG $0x7cb60f42; WORD $0x161a // movzx edi, byte [rdx + r11 + 22] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x01161a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 22], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 2 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x03163a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 22], 3 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x04162a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 22], 4 + QUAD $0x051612542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 22], 5 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x061622542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 22], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x07163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 7 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x08163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x09163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 9 + QUAD $0x0a1602542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 22], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 11 + QUAD $0x0c1632542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 22], 12 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0d163a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 22], 13 + QUAD $0x0e1602542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 22], 14 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x0f1602542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 22], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x17 // movzx edi, byte [rdx + rdi + 23] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x01173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 1 + QUAD $0x000000e024848b4c // mov r8, qword [rsp + 224] + QUAD $0x0217025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 23], 2 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x03173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x04173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 4 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0517125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 23], 5 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x06171a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 23], 6 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0717325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 23], 7 + QUAD $0x08170a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 23], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x09173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 9 + QUAD $0x000000b8248c8b4c // mov r9, qword [rsp + 184] + QUAD $0x0a170a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 23], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c173a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 23], 12 + QUAD $0x0d17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 13 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0e17325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 23], 14 + QUAD $0x0f170a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 23], 15 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a7cb60f; BYTE $0x17 // movzx edi, byte [rdx + rcx + 23] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x01171a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 23], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02170a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 23], 2 + QUAD $0x03173a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 23], 3 + QUAD $0x04172a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 23], 4 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x051732642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 23], 5 + QUAD $0x061722642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 23], 6 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x07173a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 23], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x08170a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 23], 8 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x091722642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 23], 9 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a170a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 23], 10 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0b172a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r13 + 23], 11 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0c170a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 23], 12 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0d170a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 23], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e173a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 23], 14 + QUAD $0x0f1702642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 23], 15 + LONG $0x386d63c4; WORD $0x01d9 // vinserti128 ymm11, ymm2, xmm1, 1 + LONG $0x385d63c4; WORD $0x01e3 // vinserti128 ymm12, ymm4, xmm3, 1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x18 // movzx edi, byte [rdx + rax + 24] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c824848b48 // mov rax, qword [rsp + 200] + QUAD $0x0118024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 1 + QUAD $0x0218024c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r8 + 24], 2 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x0318024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x0418024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 4 + QUAD $0x0518124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 24], 5 + QUAD $0x06181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 6 + QUAD $0x0718324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 24], 7 + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x0818024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 24], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x09183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 9 + QUAD $0x0a180a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 24], 10 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x0b181a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 24], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 13 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0e183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 14 + QUAD $0x000000f824bc8b48 // mov rdi, qword [rsp + 248] + QUAD $0x0f183a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 24], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x18 // movzx edi, byte [rdx + rdi + 24] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x01181a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 24], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02183a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 24], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x03183a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 24], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x04183a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 24], 4 + QUAD $0x051832542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 24], 5 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x061832542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 24], 6 + QUAD $0x07183a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 24], 7 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x081832542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 24], 8 + QUAD $0x091822542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 24], 9 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0a1802542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 24], 10 + QUAD $0x0b182a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 24], 11 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0c1832542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 24], 12 + QUAD $0x0d180a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 24], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e180a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 24], 14 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x0f1812542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 24], 15 + QUAD $0x00000100248c8b48 // mov rcx, qword [rsp + 256] + LONG $0x0a7cb60f; BYTE $0x19 // movzx edi, byte [rdx + rcx + 25] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c8248c8b4c // mov r9, qword [rsp + 200] + QUAD $0x01190a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 25], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x02190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 2 + QUAD $0x000000a824ac8b4c // mov r13, qword [rsp + 168] + QUAD $0x03192a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 25], 3 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x04190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 4 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x05190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 5 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x0619325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 25], 6 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x07190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 7 + QUAD $0x0819025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x0919025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 10 + QUAD $0x0b191a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 25], 11 + QUAD $0x0000010824848b48 // mov rax, qword [rsp + 264] + QUAD $0x0c19025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 25], 12 + QUAD $0x000000e8248c8b48 // mov rcx, qword [rsp + 232] + QUAD $0x0d190a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 25], 13 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0e193a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 25], 14 + QUAD $0x000000f8249c8b4c // mov r11, qword [rsp + 248] + QUAD $0x0f191a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 25], 15 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + LONG $0x3a7cb60f; BYTE $0x19 // movzx edi, byte [rdx + rdi + 25] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x01191a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 25], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x02193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 2 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x03193a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 25], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x04193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x05193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 5 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x06193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x07193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 7 + QUAD $0x081932642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 25], 8 + QUAD $0x091922642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 25], 9 + QUAD $0x0a1902642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 25], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0b1922642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 25], 11 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0c193a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 25], 12 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0d1932642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 25], 13 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0e191a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 25], 14 + LONG $0x386d63c4; WORD $0x01d1 // vinserti128 ymm10, ymm2, xmm1, 1 + QUAD $0x0f19124c2059a3c4 // vpinsrb xmm1, xmm4, byte [rdx + r10 + 25], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0001a0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 416], ymm1 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x1a // movzx edi, byte [rdx + rdi + 26] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x011a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 1 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x021a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 2 + QUAD $0x031a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 3 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x041a0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 26], 4 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x051a3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 26], 5 + QUAD $0x061a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x071a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 7 + QUAD $0x000000c024b48b48 // mov rsi, qword [rsp + 192] + QUAD $0x081a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 8 + QUAD $0x0000014024b48b48 // mov rsi, qword [rsp + 320] + QUAD $0x091a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 9 + QUAD $0x000000b824ac8b4c // mov r13, qword [rsp + 184] + QUAD $0x0a1a2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 26], 10 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0b1a324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 26], 11 + QUAD $0x0c1a024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 26], 12 + QUAD $0x0d1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 13 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0e1a0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 26], 14 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + QUAD $0x0f1a1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 26], 15 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + LONG $0x7cb60f42; WORD $0x1a1a // movzx edi, byte [rdx + r11 + 26] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + QUAD $0x011a0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 26], 1 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x021a02542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r8 + 26], 2 + QUAD $0x031a3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 26], 3 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x041a12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 26], 4 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + QUAD $0x051a0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 26], 5 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x061a0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 26], 6 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x071a3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 26], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x081a0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 26], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x091a3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 26], 9 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x0a1a3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 26], 10 + QUAD $0x0b1a22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 26], 11 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0c1a3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 26], 12 + QUAD $0x0d1a32542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r14 + 26], 13 + QUAD $0x0e1a1a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rbx + 26], 14 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0f1a3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 26], 15 + QUAD $0x0000010024bc8b48 // mov rdi, qword [rsp + 256] + LONG $0x3a7cb60f; BYTE $0x1b // movzx edi, byte [rdx + rdi + 27] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x000000c824bc8b48 // mov rdi, qword [rsp + 200] + QUAD $0x011b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 1 + QUAD $0x000000e024b48b4c // mov r14, qword [rsp + 224] + QUAD $0x021b325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 27], 2 + QUAD $0x000000a824bc8b48 // mov rdi, qword [rsp + 168] + QUAD $0x031b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 3 + QUAD $0x041b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 4 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x051b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 5 + QUAD $0x0000009824bc8b48 // mov rdi, qword [rsp + 152] + QUAD $0x061b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x071b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x081b0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 27], 8 + QUAD $0x00000140249c8b48 // mov rbx, qword [rsp + 320] + QUAD $0x091b1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 27], 9 + QUAD $0x0a1b2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 27], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b1b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c1b3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 27], 12 + QUAD $0x0d1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e1b025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 27], 14 + QUAD $0x0f1b325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 27], 15 + LONG $0x7cb60f42; WORD $0x1b1a // movzx edi, byte [rdx + r11 + 27] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x011b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 1 + QUAD $0x021b02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 27], 2 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x031b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 3 + QUAD $0x041b12642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r10 + 27], 4 + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x051b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 5 + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x061b32642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rsi + 27], 6 + QUAD $0x071b3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 27], 7 + QUAD $0x081b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 8 + QUAD $0x000000d824a48b4c // mov r12, qword [rsp + 216] + QUAD $0x091b22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 27], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a1b3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 27], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b1b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 11 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0c1b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 12 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0d1b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 13 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0e1b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 14 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0f1b0a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rcx + 27], 15 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000240248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 576], ymm1 + LONG $0x385de3c4; WORD $0x01cb // vinserti128 ymm1, ymm4, xmm3, 1 + QUAD $0x000260248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 608], ymm1 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + LONG $0x7cb60f42; WORD $0x1c02 // movzx edi, byte [rdx + r8 + 28] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c8248c8b48 // mov rcx, qword [rsp + 200] + QUAD $0x011c0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 28], 1 + QUAD $0x021c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 2 + QUAD $0x000000a824b48b48 // mov rsi, qword [rsp + 168] + QUAD $0x031c324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 28], 3 + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x041c124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 28], 4 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x051c1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 28], 5 + QUAD $0x0000009824ac8b4c // mov r13, qword [rsp + 152] + QUAD $0x061c2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 28], 6 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x071c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 7 + QUAD $0x081c0a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r9 + 28], 8 + QUAD $0x091c1a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rbx + 28], 9 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x0a1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 10 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0b1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 11 + QUAD $0x0000010824bc8b48 // mov rdi, qword [rsp + 264] + QUAD $0x0c1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 12 + QUAD $0x000000e824bc8b48 // mov rdi, qword [rsp + 232] + QUAD $0x0d1c3a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rdi + 28], 13 + QUAD $0x0e1c024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 28], 14 + QUAD $0x000000f824b48b4c // mov r14, qword [rsp + 248] + QUAD $0x0f1c324c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r14 + 28], 15 + QUAD $0x000000f0249c8b48 // mov rbx, qword [rsp + 240] + LONG $0x1a7cb60f; BYTE $0x1c // movzx edi, byte [rdx + rbx + 28] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x011c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x021c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x031c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x041c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x061c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 6 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x071c0a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r9 + 28], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x081c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 8 + QUAD $0x091c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 28], 9 + QUAD $0x0a1c3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 28], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c1c02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 28], 12 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0d1c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 28], 13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0e1c3a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rdi + 28], 14 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x0f1c22542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r12 + 28], 15 + LONG $0x7cb60f42; WORD $0x1d02 // movzx edi, byte [rdx + r8 + 29] + LONG $0xdf6ef9c5 // vmovd xmm3, edi + QUAD $0x011d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 29], 1 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + QUAD $0x021d0a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rcx + 29], 2 + QUAD $0x031d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 3 + QUAD $0x041d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 29], 4 + QUAD $0x051d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 5 + QUAD $0x061d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 6 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x071d325c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rsi + 29], 7 + QUAD $0x000000c024bc8b48 // mov rdi, qword [rsp + 192] + QUAD $0x081d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 8 + QUAD $0x0000014024bc8b48 // mov rdi, qword [rsp + 320] + QUAD $0x091d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 9 + QUAD $0x000000b824bc8b48 // mov rdi, qword [rsp + 184] + QUAD $0x0a1d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 10 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x0b1d2a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r13 + 29], 11 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + QUAD $0x0c1d125c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r10 + 29], 12 + QUAD $0x000000e8249c8b4c // mov r11, qword [rsp + 232] + QUAD $0x0d1d1a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r11 + 29], 13 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0e1d3a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rdi + 29], 14 + QUAD $0x0f1d325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 29], 15 + LONG $0x1a7cb60f; BYTE $0x1d // movzx edi, byte [rdx + rbx + 29] + LONG $0xe76ef9c5 // vmovd xmm4, edi + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + QUAD $0x011d02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 29], 1 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x021d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 2 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x031d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 3 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x041d32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 29], 4 + QUAD $0x0000012024bc8b48 // mov rdi, qword [rsp + 288] + QUAD $0x051d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 5 + QUAD $0x00000090249c8b48 // mov rbx, qword [rsp + 144] + QUAD $0x061d1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 29], 6 + QUAD $0x071d0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 29], 7 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x081d0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 29], 8 + QUAD $0x000000d824bc8b48 // mov rdi, qword [rsp + 216] + QUAD $0x091d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 9 + QUAD $0x0a1d3a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r15 + 29], 10 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x0b1d3a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rdi + 29], 11 + QUAD $0x0c1d02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 29], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d1d02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 29], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e1d02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 29], 14 + LONG $0x386de3c4; WORD $0x01c9 // vinserti128 ymm1, ymm2, xmm1, 1 + QUAD $0x000280248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 640], ymm1 + QUAD $0x0f1d224c2059a3c4 // vpinsrb xmm1, xmm4, byte [rdx + r12 + 29], 15 + LONG $0x3875e3c4; WORD $0x01cb // vinserti128 ymm1, ymm1, xmm3, 1 + QUAD $0x0002a0248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 672], ymm1 + QUAD $0x0000010024848b48 // mov rax, qword [rsp + 256] + LONG $0x027cb60f; BYTE $0x1e // movzx edi, byte [rdx + rax + 30] + LONG $0xcf6ef9c5 // vmovd xmm1, edi + QUAD $0x000000c824bc8b4c // mov r15, qword [rsp + 200] + QUAD $0x011e3a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r15 + 30], 1 + LONG $0x027cb60f; BYTE $0x1f // movzx edi, byte [rdx + rax + 31] + LONG $0xd76ef9c5 // vmovd xmm2, edi + QUAD $0x011f3a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r15 + 31], 1 + QUAD $0x021e0a4c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rcx + 30], 2 + QUAD $0x021f0a542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rcx + 31], 2 + QUAD $0x000000a824848b48 // mov rax, qword [rsp + 168] + QUAD $0x031e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 3 + QUAD $0x031f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x041e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 4 + QUAD $0x041f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 4 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x051e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 5 + QUAD $0x051f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 5 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x061e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 6 + QUAD $0x061f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 6 + QUAD $0x071e324c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rsi + 30], 7 + QUAD $0x071f32542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rsi + 31], 7 + QUAD $0x0000011024bc8b4c // mov r15, qword [rsp + 272] + QUAD $0x000000c024848b48 // mov rax, qword [rsp + 192] + QUAD $0x081e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 8 + QUAD $0x081f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 8 + QUAD $0x0000014024848b48 // mov rax, qword [rsp + 320] + QUAD $0x091e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 9 + QUAD $0x000000b824848b48 // mov rax, qword [rsp + 184] + QUAD $0x0a1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 10 + QUAD $0x0b1e2a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r13 + 30], 11 + QUAD $0x0b1f2a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r13 + 31], 11 + QUAD $0x0c1e124c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r10 + 30], 12 + QUAD $0x0c1f12542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r10 + 31], 12 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x0d1e1a4c2071a3c4 // vpinsrb xmm1, xmm1, byte [rdx + r11 + 30], 13 + QUAD $0x0d1f1a542069a3c4 // vpinsrb xmm2, xmm2, byte [rdx + r11 + 31], 13 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0e1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 14 + QUAD $0x0e1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 14 + QUAD $0x000000f824848b48 // mov rax, qword [rsp + 248] + QUAD $0x0f1e024c2071e3c4 // vpinsrb xmm1, xmm1, byte [rdx + rax + 30], 15 + QUAD $0x0f1f02542069e3c4 // vpinsrb xmm2, xmm2, byte [rdx + rax + 31], 15 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x0a44b60f; BYTE $0x1e // movzx eax, byte [rdx + rcx + 30] + LONG $0xd86ef9c5 // vmovd xmm3, eax + QUAD $0x011e025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 30], 1 + LONG $0x0a44b60f; BYTE $0x1f // movzx eax, byte [rdx + rcx + 31] + LONG $0xe06ef9c5 // vmovd xmm4, eax + QUAD $0x011f02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 31], 1 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x021e025c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r8 + 30], 2 + QUAD $0x021f02642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r8 + 31], 2 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x031e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 3 + QUAD $0x031f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 3 + QUAD $0x041e325c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r14 + 30], 4 + QUAD $0x041f32642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r14 + 31], 4 + QUAD $0x0000012024848b48 // mov rax, qword [rsp + 288] + QUAD $0x051e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 5 + QUAD $0x051f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 5 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x061e1a5c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rbx + 30], 6 + QUAD $0x061f1a642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rbx + 31], 6 + QUAD $0x0000008824848b48 // mov rax, qword [rsp + 136] + QUAD $0x071e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 7 + QUAD $0x071f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 7 + QUAD $0x081e0a5c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r9 + 30], 8 + QUAD $0x081f0a642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r9 + 31], 8 + QUAD $0x000000d824848b48 // mov rax, qword [rsp + 216] + QUAD $0x091e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 9 + QUAD $0x091f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 9 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0a1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 10 + QUAD $0x0a1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 11 + QUAD $0x0b1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 11 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 12 + QUAD $0x0c1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 12 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 13 + QUAD $0x0d1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 13 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e1e025c2061e3c4 // vpinsrb xmm3, xmm3, byte [rdx + rax + 30], 14 + QUAD $0x0e1f02642059e3c4 // vpinsrb xmm4, xmm4, byte [rdx + rax + 31], 14 + QUAD $0x0f1e225c2061a3c4 // vpinsrb xmm3, xmm3, byte [rdx + r12 + 30], 15 + QUAD $0x0f1f22642059a3c4 // vpinsrb xmm4, xmm4, byte [rdx + r12 + 31], 15 + LONG $0x3865e3c4; WORD $0x01c9 // vinserti128 ymm1, ymm3, xmm1, 1 + QUAD $0x000140248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 320], ymm1 + LONG $0x385de3c4; WORD $0x01ca // vinserti128 ymm1, ymm4, xmm2, 1 + QUAD $0x000120248c7ffdc5; BYTE $0x00 // vmovdqa yword [rsp + 288], ymm1 + QUAD $0x0004c0248cdefdc5; BYTE $0x00 // vpmaxub ymm1, ymm0, yword [rsp + 1216] + LONG $0xc974fdc5 // vpcmpeqb ymm1, ymm0, ymm1 + QUAD $0x0002202494defdc5; BYTE $0x00 // vpmaxub ymm2, ymm0, yword [rsp + 544] + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + LONG $0x7d6ffdc5; BYTE $0x00 // vmovdqa ymm7, yword 0[rbp] /* [rip + .LCPI11_0] */ + LONG $0xd7dbedc5 // vpand ymm2, ymm2, ymm7 + LONG $0xc9f8edc5 // vpsubb ymm1, ymm2, ymm1 + QUAD $0x0001e02494defdc5; BYTE $0x00 // vpmaxub ymm2, ymm0, yword [rsp + 480] + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + LONG $0x456f7dc5; BYTE $0x20 // vmovdqa ymm8, yword 32[rbp] /* [rip + .LCPI11_1] */ + LONG $0xd2dbbdc5 // vpand ymm2, ymm8, ymm2 + QUAD $0x0001c024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 448] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0x6d6ffdc5; BYTE $0x40 // vmovdqa ymm5, yword 64[rbp] /* [rip + .LCPI11_2] */ + LONG $0xfddb05c5 // vpand ymm15, ymm15, ymm5 + LONG $0xd2eb85c5 // vpor ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + LONG $0xd0de8dc5 // vpmaxub ymm2, ymm14, ymm0 + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + LONG $0x756ffdc5; BYTE $0x60 // vmovdqa ymm6, yword 96[rbp] /* [rip + .LCPI11_3] */ + LONG $0xd6dbedc5 // vpand ymm2, ymm2, ymm6 + QUAD $0x00020024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 512] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + QUAD $0x000000809d6ffdc5 // vmovdqa ymm3, yword 128[rbp] /* [rip + .LCPI11_4] */ + LONG $0xfbdb05c5 // vpand ymm15, ymm15, ymm3 + LONG $0xd2eb85c5 // vpor ymm2, ymm15, ymm2 + QUAD $0x0004a024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 1184] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + QUAD $0x000000a0a56ffdc5 // vmovdqa ymm4, yword 160[rbp] /* [rip + .LCPI11_5] */ + LONG $0xfcdb05c5 // vpand ymm15, ymm15, ymm4 + LONG $0xd2eb85c5 // vpor ymm2, ymm15, ymm2 + LONG $0xcaebf5c5 // vpor ymm1, ymm1, ymm2 + QUAD $0x0004802494defdc5; BYTE $0x00 // vpmaxub ymm2, ymm0, yword [rsp + 1152] + LONG $0xd274fdc5 // vpcmpeqb ymm2, ymm0, ymm2 + QUAD $0x000000c08d6f7dc5 // vmovdqa ymm9, yword 192[rbp] /* [rip + .LCPI11_6] */ + LONG $0xd2dbb5c5 // vpand ymm2, ymm9, ymm2 + LONG $0xd2ebf5c5 // vpor ymm2, ymm1, ymm2 + QUAD $0x000460248cdefdc5; BYTE $0x00 // vpmaxub ymm1, ymm0, yword [rsp + 1120] + LONG $0xc974fdc5 // vpcmpeqb ymm1, ymm0, ymm1 + QUAD $0x00044024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 1088] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xffdb05c5 // vpand ymm15, ymm15, ymm7 + LONG $0xc9f885c5 // vpsubb ymm1, ymm15, ymm1 + QUAD $0x00042024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 1056] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xdb0541c4; BYTE $0xf8 // vpand ymm15, ymm15, ymm8 + QUAD $0x00040024b4de7dc5; BYTE $0x00 // vpmaxub ymm14, ymm0, yword [rsp + 1024] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf5db0dc5 // vpand ymm14, ymm14, ymm5 + LONG $0xeb0541c4; BYTE $0xf6 // vpor ymm14, ymm15, ymm14 + LONG $0xc9eb8dc5 // vpor ymm1, ymm14, ymm1 + QUAD $0x0003e024b4de7dc5; BYTE $0x00 // vpmaxub ymm14, ymm0, yword [rsp + 992] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + QUAD $0x0003c024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 960] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfbdb05c5 // vpand ymm15, ymm15, ymm3 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + QUAD $0x00038024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 896] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfcdb05c5 // vpand ymm15, ymm15, ymm4 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xc9eb8dc5 // vpor ymm1, ymm14, ymm1 + QUAD $0x0003a024b4de7dc5; BYTE $0x00 // vpmaxub ymm14, ymm0, yword [rsp + 928] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xdb0d41c4; BYTE $0xf1 // vpand ymm14, ymm14, ymm9 + LONG $0xc9eb8dc5 // vpor ymm1, ymm14, ymm1 + QUAD $0x00036024b4de7dc5; BYTE $0x00 // vpmaxub ymm14, ymm0, yword [rsp + 864] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + QUAD $0x00034024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 832] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xffdb05c5 // vpand ymm15, ymm15, ymm7 + LONG $0xf80541c4; BYTE $0xf6 // vpsubb ymm14, ymm15, ymm14 + QUAD $0x00030024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 768] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xdb0541c4; BYTE $0xf8 // vpand ymm15, ymm15, ymm8 + QUAD $0x00032024acde7dc5; BYTE $0x00 // vpmaxub ymm13, ymm0, yword [rsp + 800] + LONG $0xe87415c5 // vpcmpeqb ymm13, ymm13, ymm0 + LONG $0xeddb15c5 // vpand ymm13, ymm13, ymm5 + LONG $0xeb0541c4; BYTE $0xed // vpor ymm13, ymm15, ymm13 + LONG $0xeb0d41c4; BYTE $0xed // vpor ymm13, ymm14, ymm13 + QUAD $0x0002c024b4de7dc5; BYTE $0x00 // vpmaxub ymm14, ymm0, yword [rsp + 704] + LONG $0xf0740dc5 // vpcmpeqb ymm14, ymm14, ymm0 + LONG $0xf6db0dc5 // vpand ymm14, ymm14, ymm6 + QUAD $0x0002e024bcde7dc5; BYTE $0x00 // vpmaxub ymm15, ymm0, yword [rsp + 736] + LONG $0xf87405c5 // vpcmpeqb ymm15, ymm15, ymm0 + LONG $0xfbdb05c5 // vpand ymm15, ymm15, ymm3 + LONG $0xeb0d41c4; BYTE $0xf7 // vpor ymm14, ymm14, ymm15 + LONG $0xd8de25c5 // vpmaxub ymm11, ymm11, ymm0 + LONG $0xd87425c5 // vpcmpeqb ymm11, ymm11, ymm0 + LONG $0xdcdb25c5 // vpand ymm11, ymm11, ymm4 + LONG $0xeb0d41c4; BYTE $0xdb // vpor ymm11, ymm14, ymm11 + LONG $0xeb1541c4; BYTE $0xdb // vpor ymm11, ymm13, ymm11 + LONG $0xe0de1dc5 // vpmaxub ymm12, ymm12, ymm0 + LONG $0xe0741dc5 // vpcmpeqb ymm12, ymm12, ymm0 + LONG $0x6f7d41c4; BYTE $0xe9 // vmovdqa ymm13, ymm9 + LONG $0xdb1d41c4; BYTE $0xe1 // vpand ymm12, ymm12, ymm9 + LONG $0xeb2541c4; BYTE $0xdc // vpor ymm11, ymm11, ymm12 + LONG $0xd0de2dc5 // vpmaxub ymm10, ymm10, ymm0 + LONG $0xd0742dc5 // vpcmpeqb ymm10, ymm10, ymm0 + QUAD $0x0001a0248cde7dc5; BYTE $0x00 // vpmaxub ymm9, ymm0, yword [rsp + 416] + LONG $0xc87435c5 // vpcmpeqb ymm9, ymm9, ymm0 + LONG $0xcfdb35c5 // vpand ymm9, ymm9, ymm7 + LONG $0xf83541c4; BYTE $0xca // vpsubb ymm9, ymm9, ymm10 + QUAD $0x00024024bcdefdc5; BYTE $0x00 // vpmaxub ymm7, ymm0, yword [rsp + 576] + LONG $0xff74fdc5 // vpcmpeqb ymm7, ymm0, ymm7 + LONG $0xffdbbdc5 // vpand ymm7, ymm8, ymm7 + QUAD $0x0002602484de7dc5; BYTE $0x00 // vpmaxub ymm8, ymm0, yword [rsp + 608] + LONG $0xc0743dc5 // vpcmpeqb ymm8, ymm8, ymm0 + LONG $0xc5db3dc5 // vpand ymm8, ymm8, ymm5 + LONG $0xffebbdc5 // vpor ymm7, ymm8, ymm7 + LONG $0xffebb5c5 // vpor ymm7, ymm9, ymm7 + QUAD $0x00028024acdefdc5; BYTE $0x00 // vpmaxub ymm5, ymm0, yword [rsp + 640] + LONG $0xed74fdc5 // vpcmpeqb ymm5, ymm0, ymm5 + LONG $0xeedbd5c5 // vpand ymm5, ymm5, ymm6 + QUAD $0x0002a024b4defdc5; BYTE $0x00 // vpmaxub ymm6, ymm0, yword [rsp + 672] + LONG $0xf674fdc5 // vpcmpeqb ymm6, ymm0, ymm6 + LONG $0xf3dbcdc5 // vpand ymm6, ymm6, ymm3 + LONG $0xeeebd5c5 // vpor ymm5, ymm5, ymm6 + QUAD $0x000140249cdefdc5; BYTE $0x00 // vpmaxub ymm3, ymm0, yword [rsp + 320] + LONG $0xdb74fdc5 // vpcmpeqb ymm3, ymm0, ymm3 + LONG $0xdcdbe5c5 // vpand ymm3, ymm3, ymm4 + LONG $0xdbebd5c5 // vpor ymm3, ymm5, ymm3 + LONG $0xdbebc5c5 // vpor ymm3, ymm7, ymm3 + QUAD $0x00012024a4defdc5; BYTE $0x00 // vpmaxub ymm4, ymm0, yword [rsp + 288] + LONG $0xe474fdc5 // vpcmpeqb ymm4, ymm0, ymm4 + LONG $0xe4db95c5 // vpand ymm4, ymm13, ymm4 + LONG $0xdcebe5c5 // vpor ymm3, ymm3, ymm4 + LONG $0xe160edc5 // vpunpcklbw ymm4, ymm2, ymm1 + LONG $0xc968edc5 // vpunpckhbw ymm1, ymm2, ymm1 + LONG $0xd360a5c5 // vpunpcklbw ymm2, ymm11, ymm3 + LONG $0xdb68a5c5 // vpunpckhbw ymm3, ymm11, ymm3 + LONG $0xea61ddc5 // vpunpcklwd ymm5, ymm4, ymm2 + LONG $0xd269ddc5 // vpunpckhwd ymm2, ymm4, ymm2 + LONG $0xe361f5c5 // vpunpcklwd ymm4, ymm1, ymm3 + LONG $0xcb69f5c5 // vpunpckhwd ymm1, ymm1, ymm3 + LONG $0x3855e3c4; WORD $0x01da // vinserti128 ymm3, ymm5, xmm2, 1 + LONG $0x4655e3c4; WORD $0x31d2 // vperm2i128 ymm2, ymm5, ymm2, 49 + LONG $0x385de3c4; WORD $0x01e9 // vinserti128 ymm5, ymm4, xmm1, 1 + LONG $0x465de3c4; WORD $0x31c9 // vperm2i128 ymm1, ymm4, ymm1, 49 + QUAD $0x00000178248c8b48 // mov rcx, qword [rsp + 376] + LONG $0x7f7ec1c4; WORD $0x8f4c; BYTE $0x60 // vmovdqu yword [r15 + 4*rcx + 96], ymm1 + LONG $0x7f7ec1c4; WORD $0x8f54; BYTE $0x40 // vmovdqu yword [r15 + 4*rcx + 64], ymm2 + LONG $0x7f7ec1c4; WORD $0x8f6c; BYTE $0x20 // vmovdqu yword [r15 + 4*rcx + 32], ymm5 + LONG $0x7f7ec1c4; WORD $0x8f1c // vmovdqu yword [r15 + 4*rcx], ymm3 + LONG $0x20c18348 // add rcx, 32 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x00000180248c3b48 // cmp rcx, qword [rsp + 384] + JNE LBB11_67 + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x0000018024b43b4c // cmp r14, qword [rsp + 384] + LONG $0x245c8b44; BYTE $0x1c // mov r11d, dword [rsp + 28] + QUAD $0x0000017024ac8b4c // mov r13, qword [rsp + 368] + QUAD $0x0000016824bc8b48 // mov rdi, qword [rsp + 360] + QUAD $0x0000011824948b4c // mov r10, qword [rsp + 280] + JNE LBB11_69 + JMP LBB11_72 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_noasm.go new file mode 100644 index 0000000..0930822 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_noasm.go @@ -0,0 +1,25 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && (noasm || !amd64) + +package kernels + +import "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + +func genCompareKernel[T exec.NumericTypes](op CompareOperator) *CompareData { + return genGoCompareKernel(getCmpOp[T](op)) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.go new file mode 100644 index 0000000..c9af106 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.go @@ -0,0 +1,109 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 && !noasm + +package kernels + +import ( + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +//go:noescape +func _comparison_equal_arr_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualArrArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_arr_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_equal_arr_scalar_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualArrScalarSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_arr_scalar_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_equal_scalar_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonEqualScalarArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_equal_scalar_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_arr_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualArrArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_arr_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_arr_scalar_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualArrScalarSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_arr_scalar_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_not_equal_scalar_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonNotEqualScalarArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_not_equal_scalar_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_arr_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterArrArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_arr_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_arr_scalar_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterArrScalarSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_arr_scalar_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_scalar_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterScalarArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_scalar_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_arr_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualArrArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_arr_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_arr_scalar_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualArrScalarSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_arr_scalar_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} + +//go:noescape +func _comparison_greater_equal_scalar_arr_sse4(typ int, left, right, out unsafe.Pointer, length int64, offset int) + +func comparisonGreaterEqualScalarArrSSE4(typ arrow.Type, left, right, out []byte, length int64, offset int) { + _comparison_greater_equal_scalar_arr_sse4(int(typ), unsafe.Pointer(&left[0]), unsafe.Pointer(&right[0]), unsafe.Pointer(&out[0]), length, offset) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.s new file mode 100644 index 0000000..00fdac3 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparison_sse4_amd64.s @@ -0,0 +1,58288 @@ +//go:build go1.18 && !noasm && !appengine +// AUTO-GENERATED BY C2GOASM -- DO NOT EDIT + +TEXT ·_comparison_equal_arr_arr_sse4(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB0_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB0_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB0_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB0_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_20 + LONG $0x01c68349 // add r14, 1 + +LBB0_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5940f41 // sete r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0940f41 // sete r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3940f41 // sete r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7940f41 // sete r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2940f41 // sete r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6940f41 // sete r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4940f41 // sete r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1940f41 // sete r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_28 + JMP LBB0_123 + +LBB0_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB0_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB0_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB0_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_48: + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_48 + LONG $0x01c68349 // add r14, 1 + +LBB0_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB0_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x4e100ff2; BYTE $0x08 // movsd xmm1, qword [rsi + 8] + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x4a2e0f66; BYTE $0x08 // ucomisd xmm1, qword [rdx + 8] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x46100ff2; BYTE $0x10 // movsd xmm0, qword [rsi + 16] + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0x46100ff2; BYTE $0x18 // movsd xmm0, qword [rsi + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x46100ff2; BYTE $0x20 // movsd xmm0, qword [rsi + 32] + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + LONG $0x46100ff2; BYTE $0x28 // movsd xmm0, qword [rsi + 40] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x46100ff2; BYTE $0x30 // movsd xmm0, qword [rsi + 48] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + LONG $0x46100ff2; BYTE $0x38 // movsd xmm0, qword [rsi + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd7940f41 // sete r15b + LONG $0x46100ff2; BYTE $0x40 // movsd xmm0, qword [rsi + 64] + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x46100ff2; BYTE $0x48 // movsd xmm0, qword [rsi + 72] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x46100ff2; BYTE $0x50 // movsd xmm0, qword [rsi + 80] + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0x46100ff2; BYTE $0x58 // movsd xmm0, qword [rsi + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd3940f41 // sete r11b + LONG $0x46100ff2; BYTE $0x60 // movsd xmm0, qword [rsi + 96] + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0x46100ff2; BYTE $0x68 // movsd xmm0, qword [rsi + 104] + LONG $0xd2940f41 // sete r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x46100ff2; BYTE $0x70 // movsd xmm0, qword [rsi + 112] + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + LONG $0x46100ff2; BYTE $0x78 // movsd xmm0, qword [rsi + 120] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + QUAD $0x0000008086100ff2 // movsd xmm0, qword [rsi + 128] + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + QUAD $0x0000008886100ff2 // movsd xmm0, qword [rsi + 136] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + QUAD $0x0000009086100ff2 // movsd xmm0, qword [rsi + 144] + LONG $0xd6940f41 // sete r14b + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + QUAD $0x0000009886100ff2 // movsd xmm0, qword [rsi + 152] + LONG $0xd4940f41 // sete r12b + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a086100ff2 // movsd xmm0, qword [rsi + 160] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a886100ff2 // movsd xmm0, qword [rsi + 168] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b086100ff2 // movsd xmm0, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b886100ff2 // movsd xmm0, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c086100ff2 // movsd xmm0, qword [rsi + 192] + LONG $0xd0940f41 // sete r8b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c886100ff2 // movsd xmm0, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d086100ff2 // movsd xmm0, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d886100ff2 // movsd xmm0, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e086100ff2 // movsd xmm0, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e886100ff2 // movsd xmm0, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f086100ff2 // movsd xmm0, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f886100ff2 // movsd xmm0, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB0_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB0_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_56: + LONG $0x04100ff2; BYTE $0xce // movsd xmm0, qword [rsi + 8*rcx] + LONG $0x042e0f66; BYTE $0xca // ucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_56 + JMP LBB0_123 + +LBB0_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB0_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_6 + LONG $0x01c68349 // add r14, 1 + +LBB0_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB0_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7940f41 // sete r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7940f40 // sete dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2940f41 // sete r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3940f41 // sete r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4940f41 // sete r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5940f41 // sete r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1940f41 // sete r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0940f41 // sete r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB0_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB0_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_14 + JMP LBB0_123 + +LBB0_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB0_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB0_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_34 + LONG $0x01c68349 // add r14, 1 + +LBB0_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0940f41 // sete r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3940f41 // sete r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7940f41 // sete r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2940f41 // sete r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6940f41 // sete r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4940f41 // sete r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1940f41 // sete r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_42 + JMP LBB0_123 + +LBB0_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_70 + LONG $0x01c68349 // add r14, 1 + +LBB0_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5940f41 // sete r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0940f41 // sete r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3940f41 // sete r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7940f41 // sete r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2940f41 // sete r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6940f41 // sete r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4940f41 // sete r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1940f41 // sete r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_78 + JMP LBB0_123 + +LBB0_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_81 + LONG $0x01c68349 // add r14, 1 + +LBB0_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5940f41 // sete r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0940f41 // sete r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3940f41 // sete r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7940f41 // sete r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2940f41 // sete r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6940f41 // sete r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4940f41 // sete r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1940f41 // sete r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_89 + JMP LBB0_123 + +LBB0_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_103 + LONG $0x01c68349 // add r14, 1 + +LBB0_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5940f41 // sete r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0940f41 // sete r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3940f41 // sete r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7940f41 // sete r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2940f41 // sete r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6940f41 // sete r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4940f41 // sete r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1940f41 // sete r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_111 + JMP LBB0_123 + +LBB0_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_114: + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_114 + LONG $0x01c68349 // add r14, 1 + +LBB0_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB0_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x4e100ff3; BYTE $0x04 // movss xmm1, dword [rsi + 4] + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x044a2e0f // ucomiss xmm1, dword [rdx + 4] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x46100ff3; BYTE $0x08 // movss xmm0, dword [rsi + 8] + LONG $0x08422e0f // ucomiss xmm0, dword [rdx + 8] + LONG $0x46100ff3; BYTE $0x0c // movss xmm0, dword [rsi + 12] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x0c422e0f // ucomiss xmm0, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x46100ff3; BYTE $0x10 // movss xmm0, dword [rsi + 16] + LONG $0x10422e0f // ucomiss xmm0, dword [rdx + 16] + LONG $0x46100ff3; BYTE $0x14 // movss xmm0, dword [rsi + 20] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x14422e0f // ucomiss xmm0, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x46100ff3; BYTE $0x18 // movss xmm0, dword [rsi + 24] + LONG $0x18422e0f // ucomiss xmm0, dword [rdx + 24] + LONG $0x46100ff3; BYTE $0x1c // movss xmm0, dword [rsi + 28] + LONG $0xd5940f41 // sete r13b + LONG $0x1c422e0f // ucomiss xmm0, dword [rdx + 28] + LONG $0xd7940f41 // sete r15b + LONG $0x46100ff3; BYTE $0x20 // movss xmm0, dword [rsi + 32] + LONG $0x20422e0f // ucomiss xmm0, dword [rdx + 32] + LONG $0x46100ff3; BYTE $0x24 // movss xmm0, dword [rsi + 36] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x24422e0f // ucomiss xmm0, dword [rdx + 36] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x46100ff3; BYTE $0x28 // movss xmm0, dword [rsi + 40] + LONG $0x28422e0f // ucomiss xmm0, dword [rdx + 40] + LONG $0x46100ff3; BYTE $0x2c // movss xmm0, dword [rsi + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x2c422e0f // ucomiss xmm0, dword [rdx + 44] + LONG $0xd3940f41 // sete r11b + LONG $0x46100ff3; BYTE $0x30 // movss xmm0, dword [rsi + 48] + LONG $0x30422e0f // ucomiss xmm0, dword [rdx + 48] + LONG $0x46100ff3; BYTE $0x34 // movss xmm0, dword [rsi + 52] + LONG $0xd2940f41 // sete r10b + LONG $0x34422e0f // ucomiss xmm0, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x46100ff3; BYTE $0x38 // movss xmm0, dword [rsi + 56] + LONG $0x38422e0f // ucomiss xmm0, dword [rdx + 56] + LONG $0x46100ff3; BYTE $0x3c // movss xmm0, dword [rsi + 60] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x3c422e0f // ucomiss xmm0, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x46100ff3; BYTE $0x40 // movss xmm0, dword [rsi + 64] + LONG $0x40422e0f // ucomiss xmm0, dword [rdx + 64] + LONG $0x46100ff3; BYTE $0x44 // movss xmm0, dword [rsi + 68] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x44422e0f // ucomiss xmm0, dword [rdx + 68] + LONG $0x46100ff3; BYTE $0x48 // movss xmm0, dword [rsi + 72] + LONG $0xd6940f41 // sete r14b + LONG $0x48422e0f // ucomiss xmm0, dword [rdx + 72] + LONG $0x46100ff3; BYTE $0x4c // movss xmm0, dword [rsi + 76] + LONG $0xd4940f41 // sete r12b + LONG $0x4c422e0f // ucomiss xmm0, dword [rdx + 76] + LONG $0x46100ff3; BYTE $0x50 // movss xmm0, dword [rsi + 80] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x50422e0f // ucomiss xmm0, dword [rdx + 80] + LONG $0x46100ff3; BYTE $0x54 // movss xmm0, dword [rsi + 84] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x54422e0f // ucomiss xmm0, dword [rdx + 84] + LONG $0x46100ff3; BYTE $0x58 // movss xmm0, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x58422e0f // ucomiss xmm0, dword [rdx + 88] + LONG $0x46100ff3; BYTE $0x5c // movss xmm0, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x5c422e0f // ucomiss xmm0, dword [rdx + 92] + LONG $0x46100ff3; BYTE $0x60 // movss xmm0, dword [rsi + 96] + LONG $0xd0940f41 // sete r8b + LONG $0x60422e0f // ucomiss xmm0, dword [rdx + 96] + LONG $0x46100ff3; BYTE $0x64 // movss xmm0, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x64422e0f // ucomiss xmm0, dword [rdx + 100] + LONG $0x46100ff3; BYTE $0x68 // movss xmm0, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x68422e0f // ucomiss xmm0, dword [rdx + 104] + LONG $0x46100ff3; BYTE $0x6c // movss xmm0, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x6c422e0f // ucomiss xmm0, dword [rdx + 108] + LONG $0x46100ff3; BYTE $0x70 // movss xmm0, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x70422e0f // ucomiss xmm0, dword [rdx + 112] + LONG $0x46100ff3; BYTE $0x74 // movss xmm0, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x74422e0f // ucomiss xmm0, dword [rdx + 116] + LONG $0x46100ff3; BYTE $0x78 // movss xmm0, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x78422e0f // ucomiss xmm0, dword [rdx + 120] + LONG $0x46100ff3; BYTE $0x7c // movss xmm0, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x7c422e0f // ucomiss xmm0, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB0_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB0_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_122: + LONG $0x04100ff3; BYTE $0x8e // movss xmm0, dword [rsi + 4*rcx] + LONG $0x8a042e0f // ucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_122 + JMP LBB0_123 + +LBB0_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_59 + LONG $0x01c68349 // add r14, 1 + +LBB0_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB0_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7940f41 // sete r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7940f40 // sete dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2940f41 // sete r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3940f41 // sete r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4940f41 // sete r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5940f41 // sete r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1940f41 // sete r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0940f41 // sete r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB0_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB0_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_67 + JMP LBB0_123 + +LBB0_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB0_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB0_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2940f41 // sete r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB0_92 + LONG $0x01c68349 // add r14, 1 + +LBB0_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB0_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB0_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454940f; BYTE $0x14 // sete byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454940f; BYTE $0x15 // sete byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x16 // sete byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x17 // sete byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454940f; BYTE $0x04 // sete byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5940f41 // sete r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454940f; BYTE $0x09 // sete byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0940f41 // sete r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3940f41 // sete r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7940f41 // sete r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454940f; BYTE $0x05 // sete byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454940f; BYTE $0x06 // sete byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454940f; BYTE $0x07 // sete byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454940f; BYTE $0x0a // sete byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2940f41 // sete r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6940f41 // sete r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4940f41 // sete r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454940f; BYTE $0x0b // sete byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454940f; BYTE $0x0c // sete byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1940f41 // sete r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454940f; BYTE $0x13 // sete byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454940f; BYTE $0x0d // sete byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454940f; BYTE $0x0e // sete byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454940f; BYTE $0x0f // sete byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454940f; BYTE $0x12 // sete byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454940f; BYTE $0x11 // sete byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB0_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB0_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB0_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB0_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB0_100 + +LBB0_123: + SUBQ $8, SP + RET + +DATA LCDATA1<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA1<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA1<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA1<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA1<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA1<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA1<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA1<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA1<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA1<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA1<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA1<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA1<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA1<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA1<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA1<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x090(SB)/8, $0x0f070e060d050c04 +DATA LCDATA1<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA1<>+0x0a0(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x0a8(SB)/8, $0x0101010101010101 +DATA LCDATA1<>+0x0b0(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x0b8(SB)/8, $0x0404040404040404 +DATA LCDATA1<>+0x0c0(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x0c8(SB)/8, $0x0808080808080808 +DATA LCDATA1<>+0x0d0(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x0d8(SB)/8, $0x1010101010101010 +DATA LCDATA1<>+0x0e0(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x0e8(SB)/8, $0x2020202020202020 +DATA LCDATA1<>+0x0f0(SB)/8, $0x4040404040404040 +DATA LCDATA1<>+0x0f8(SB)/8, $0x4040404040404040 +GLOBL LCDATA1<>(SB), 8, $256 + +TEXT ·_comparison_equal_arr_scalar_sse4(SB), $344-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 320(SP) + LEAQ LCDATA1<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB1_26 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB1_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB1_100 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB1_123 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB1_202 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_15: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_15 + LONG $0x01c68349 // add r14, 1 + +LBB1_17: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_21 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB1_19: + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7940f40 // sete dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6940f41 // sete r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1940f41 // sete r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2940f41 // sete r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3940f41 // sete r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4940f41 // sete r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7940f41 // sete r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000e024bc0240 // add dil, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000b024bcb60f // movzx edi, byte [rsp + 176] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_19 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB1_21: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB1_23 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB1_147: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_147 + JMP LBB1_24 + +LBB1_26: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB1_27 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB1_162 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB1_174 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB1_202 + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_49 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_47: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_47 + LONG $0x01c68349 // add r14, 1 + +LBB1_49: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_53 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + QUAD $0x000000e0249c894c // mov qword [rsp + 224], r11 + +LBB1_51: + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0xd1940f41 // sete r9b + LONG $0x462e0f66; BYTE $0x10 // ucomisd xmm0, qword [rsi + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x462e0f66; BYTE $0x18 // ucomisd xmm0, qword [rsi + 24] + LONG $0xd5940f41 // sete r13b + LONG $0x462e0f66; BYTE $0x20 // ucomisd xmm0, qword [rsi + 32] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x462e0f66; BYTE $0x28 // ucomisd xmm0, qword [rsi + 40] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x462e0f66; BYTE $0x30 // ucomisd xmm0, qword [rsi + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x462e0f66; BYTE $0x38 // ucomisd xmm0, qword [rsi + 56] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x462e0f66; BYTE $0x40 // ucomisd xmm0, qword [rsi + 64] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x462e0f66; BYTE $0x48 // ucomisd xmm0, qword [rsi + 72] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x462e0f66; BYTE $0x50 // ucomisd xmm0, qword [rsi + 80] + LONG $0xd7940f40 // sete dil + LONG $0x462e0f66; BYTE $0x58 // ucomisd xmm0, qword [rsi + 88] + LONG $0xd2940f41 // sete r10b + LONG $0x462e0f66; BYTE $0x60 // ucomisd xmm0, qword [rsi + 96] + LONG $0xd3940f41 // sete r11b + LONG $0x462e0f66; BYTE $0x68 // ucomisd xmm0, qword [rsi + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x462e0f66; BYTE $0x70 // ucomisd xmm0, qword [rsi + 112] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x462e0f66; BYTE $0x78 // ucomisd xmm0, qword [rsi + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + QUAD $0x00000080862e0f66 // ucomisd xmm0, qword [rsi + 128] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + QUAD $0x00000088862e0f66 // ucomisd xmm0, qword [rsi + 136] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + QUAD $0x00000090862e0f66 // ucomisd xmm0, qword [rsi + 144] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + QUAD $0x00000098862e0f66 // ucomisd xmm0, qword [rsi + 152] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + QUAD $0x000000a0862e0f66 // ucomisd xmm0, qword [rsi + 160] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + QUAD $0x000000a8862e0f66 // ucomisd xmm0, qword [rsi + 168] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + QUAD $0x000000b0862e0f66 // ucomisd xmm0, qword [rsi + 176] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + QUAD $0x000000b8862e0f66 // ucomisd xmm0, qword [rsi + 184] + LONG $0xd7940f41 // sete r15b + QUAD $0x000000c0862e0f66 // ucomisd xmm0, qword [rsi + 192] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + QUAD $0x000000c8862e0f66 // ucomisd xmm0, qword [rsi + 200] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + QUAD $0x000000d0862e0f66 // ucomisd xmm0, qword [rsi + 208] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + QUAD $0x000000d8862e0f66 // ucomisd xmm0, qword [rsi + 216] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + QUAD $0x000000e0862e0f66 // ucomisd xmm0, qword [rsi + 224] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + QUAD $0x000000e8862e0f66 // ucomisd xmm0, qword [rsi + 232] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + QUAD $0x000000f0862e0f66 // ucomisd xmm0, qword [rsi + 240] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + QUAD $0x000000f8862e0f66 // ucomisd xmm0, qword [rsi + 248] + LONG $0xd0940f41 // sete r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000d0248c0244 // add r9b, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000008024bcb60f // movzx edi, byte [rsp + 128] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0x68244402 // add al, byte [rsp + 104] + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB1_51 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + +LBB1_53: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB1_197 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_199 + +LBB1_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB1_56 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB1_202 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_6: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_6 + LONG $0x01c68349 // add r14, 1 + +LBB1_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_9 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000010024bc894c // mov qword [rsp + 256], r15 + JB LBB1_83 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB1_86 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB1_86 + +LBB1_83: + WORD $0xc031 // xor eax, eax + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + LONG $0x2474894c; BYTE $0x78 // mov qword [rsp + 120], r14 + +LBB1_89: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000000f824b42b4c // sub r14, qword [rsp + 248] + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + +LBB1_90: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd6940f40 // sete sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd7940f41 // sete r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd4940f41 // sete r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd1940f41 // sete r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd2940f41 // sete r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd6940f41 // sete r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd5940f41 // sete r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd0940f41 // sete r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd3940f41 // sete r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + QUAD $0x000000e02484b60f // movzx eax, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xd200 // add dl, dl + LONG $0x80249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 128] + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + LONG $0x247cb60f; BYTE $0x48 // movzx edi, byte [rsp + 72] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x38244402 // add al, byte [rsp + 56] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000008824b4b60f // movzx esi, byte [rsp + 136] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x78 // mov qword [rsp + 120], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_90 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + JMP LBB1_92 + +LBB1_27: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB1_148 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB1_202 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_33 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_31: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_31 + LONG $0x01c68349 // add r14, 1 + +LBB1_33: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_37 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB1_35: + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7940f40 // sete dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6940f41 // sete r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1940f41 // sete r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2940f41 // sete r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3940f41 // sete r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4940f41 // sete r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7940f41 // sete r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000e024bc0240 // add dil, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000b024bcb60f // movzx edi, byte [rsp + 176] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_35 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB1_37: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB1_39 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB1_161: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_161 + JMP LBB1_40 + +LBB1_56: + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_58: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_58 + LONG $0x01c68349 // add r14, 1 + +LBB1_60: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_61 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000010024bc894c // mov qword [rsp + 256], r15 + JB LBB1_63 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB1_66 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB1_66 + +LBB1_63: + WORD $0xc031 // xor eax, eax + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + LONG $0x2474894c; BYTE $0x50 // mov qword [rsp + 80], r14 + +LBB1_69: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000000f824b42b4c // sub r14, qword [rsp + 248] + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + +LBB1_70: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd6940f40 // sete sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd7940f41 // sete r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd4940f41 // sete r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd1940f41 // sete r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd7940f40 // sete dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd2940f41 // sete r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd6940f41 // sete r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd5940f41 // sete r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd0940f41 // sete r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd3940f41 // sete r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + QUAD $0x000000e02484b60f // movzx eax, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xd200 // add dl, dl + LONG $0x80249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 128] + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xc000 // add al, al + LONG $0x38244402 // add al, byte [rsp + 56] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000008824b4b60f // movzx esi, byte [rsp + 136] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x50 // mov qword [rsp + 80], rdx + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB1_70 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + JMP LBB1_72 + +LBB1_148: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_152 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_150: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_150 + LONG $0x01c68349 // add r14, 1 + +LBB1_152: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_156 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB1_154: + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7940f40 // sete dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6940f41 // sete r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1940f41 // sete r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2940f41 // sete r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3940f41 // sete r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4940f41 // sete r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7940f41 // sete r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000e024bc0240 // add dil, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000b024bcb60f // movzx edi, byte [rsp + 176] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_154 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB1_156: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB1_158 + +LBB1_23: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_24 + +LBB1_100: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_104 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_102: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_102 + LONG $0x01c68349 // add r14, 1 + +LBB1_104: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_105 + LONG $0x08fb8349 // cmp r11, 8 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + JB LBB1_107 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB1_110 + LONG $0x9e048d4b // lea rax, [r14 + 4*r11] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB1_110 + +LBB1_107: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + LONG $0x2474894c; BYTE $0x08 // mov qword [rsp + 8], r14 + +LBB1_113: + LONG $0x245c2b4c; BYTE $0x10 // sub r11, qword [rsp + 16] + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB1_114: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd0940f41 // sete r8b + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6940f41 // sete r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd6940f40 // sete sil + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd1940f41 // sete r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd2940f41 // sete r10b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + LONG $0xd4940f41 // sete r12b + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd7940f40 // sete dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd7940f41 // sete r15b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000e024840244 // add r8b, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xc900 // add cl, cl + LONG $0xa0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xc900 // add cl, cl + LONG $0x68244c02 // add cl, byte [rsp + 104] + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x1988 // mov byte [rcx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_114 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + JMP LBB1_116 + +LBB1_123: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_127 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_125: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_125 + LONG $0x01c68349 // add r14, 1 + +LBB1_127: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_128 + LONG $0x08ff8349 // cmp r15, 8 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + JB LBB1_130 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB1_133 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB1_133 + +LBB1_130: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB1_136: + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x24742b4c; BYTE $0x10 // sub r14, qword [rsp + 16] + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + +LBB1_137: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd0940f41 // sete r8b + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6940f41 // sete r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd6940f40 // sete sil + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd1940f41 // sete r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd2940f41 // sete r10b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + LONG $0xd4940f41 // sete r12b + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd7940f40 // sete dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd7940f41 // sete r15b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000e024840244 // add r8b, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xc900 // add cl, cl + LONG $0xa0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xc900 // add cl, cl + LONG $0x68244c02 // add cl, byte [rsp + 104] + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x1988 // mov byte [rcx], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000088249cb60f // movzx ebx, byte [rsp + 136] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_137 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + JMP LBB1_139 + +LBB1_162: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_166 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_164: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_164 + LONG $0x01c68349 // add r14, 1 + +LBB1_166: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_170 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB1_168: + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000e02494940f // sete byte [rsp + 224] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7940f40 // sete dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6940f41 // sete r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1940f41 // sete r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2940f41 // sete r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3940f41 // sete r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4940f41 // sete r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7940f41 // sete r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0940f41 // sete r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000e024bc0240 // add dil, byte [rsp + 224] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000b024bcb60f // movzx edi, byte [rsp + 176] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB1_168 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB1_170: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB1_172 + +LBB1_39: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB1_40 + +LBB1_174: + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB1_178 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB1_176: + WORD $0x2e0f; BYTE $0x06 // ucomiss xmm0, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB1_176 + LONG $0x01c68349 // add r14, 1 + +LBB1_178: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB1_179 + LONG $0x04fb8349 // cmp r11, 4 + JB LBB1_181 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB1_184 + LONG $0x9e048d4b // lea rax, [r14 + 4*r11] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB1_184 + +LBB1_181: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB1_187: + LONG $0x247c894c; BYTE $0x08 // mov qword [rsp + 8], r15 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + WORD $0x294d; BYTE $0xc3 // sub r11, r8 + QUAD $0x000000e0249c894c // mov qword [rsp + 224], r11 + +LBB1_188: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0940f41 // sete r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5940f41 // sete r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6940f40 // sete sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd7940f40 // sete dil + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd1940f41 // sete r9b + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + QUAD $0x000000882494940f // sete byte [rsp + 136] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x940f; BYTE $0xd1 // sete cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000d024840244 // add r8b, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0x68244402 // add al, byte [rsp + 104] + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000000882494b60f // movzx edx, byte [rsp + 136] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24748948; BYTE $0x08 // mov qword [rsp + 8], rsi + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB1_188 + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + JMP LBB1_190 + +LBB1_9: + LONG $0x2474894c; BYTE $0x78 // mov qword [rsp + 120], r14 + +LBB1_92: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_95 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB1_98 + +LBB1_61: + LONG $0x2474894c; BYTE $0x50 // mov qword [rsp + 80], r14 + +LBB1_72: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_75 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB1_78 + +LBB1_105: + LONG $0x2474894c; BYTE $0x08 // mov qword [rsp + 8], r14 + +LBB1_116: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB1_121 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB1_119 + +LBB1_128: + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB1_139: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB1_144 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB1_142 + +LBB1_179: + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + +LBB1_190: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB1_202 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB1_195 + WORD $0xf631 // xor esi, esi + JMP LBB1_193 + +LBB1_158: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB1_159: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_159 + +LBB1_24: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB1_201 + +LBB1_95: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + +LBB1_96: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB1_96 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB1_98: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + JMP LBB1_80 + +LBB1_75: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + +LBB1_76: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB1_76 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB1_78: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + +LBB1_80: + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + JMP LBB1_81 + +LBB1_197: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB1_198: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_198 + +LBB1_199: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + JMP LBB1_201 + +LBB1_172: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB1_173: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB1_173 + +LBB1_40: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + +LBB1_201: + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB1_202 + +LBB1_121: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + +LBB1_122: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3b // movzx r10d, byte [r11 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB1_122 + +LBB1_119: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + +LBB1_81: + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB1_202 + +LBB1_144: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + +LBB1_145: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB1_145 + +LBB1_142: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB1_202 + +LBB1_195: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xfb // mov r11, r15 + +LBB1_196: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3b048841 // mov byte [r11 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3b148841 // mov byte [r11 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB1_196 + +LBB1_193: + LONG $0x01c0f641 // test r8b, 1 + JE LBB1_202 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x173c8a41 // mov dil, byte [r15 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + +LBB1_202: + MOVQ 320(SP), SP + RET + +LBB1_86: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + QUAD $0x000000f824bc894c // mov qword [rsp + 248], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB1_87: + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + LONG $0x05e7c148 // shl rdi, 5 + WORD $0x8949; BYTE $0xfb // mov r11, rdi + WORD $0x8949; BYTE $0xfe // mov r14, rdi + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + WORD $0x8949; BYTE $0xff // mov r15, rdi + WORD $0x8949; BYTE $0xfa // mov r10, rdi + WORD $0x8949; BYTE $0xf8 // mov r8, rdi + WORD $0x8949; BYTE $0xfc // mov r12, rdi + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x247c8948; BYTE $0x58 // mov qword [rsp + 88], rdi + LONG $0x247c8948; BYTE $0x38 // mov qword [rsp + 56], rdi + LONG $0x3e0cb60f // movzx ecx, byte [rsi + rdi] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x3e4cb60f; BYTE $0x01 // movzx ecx, byte [rsi + rdi + 1] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x3e4cb60f; BYTE $0x02 // movzx ecx, byte [rsi + rdi + 2] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x3e4cb60f; BYTE $0x03 // movzx ecx, byte [rsi + rdi + 3] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x3e4cb60f; BYTE $0x04 // movzx ecx, byte [rsi + rdi + 4] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x3e4cb60f; BYTE $0x05 // movzx ecx, byte [rsi + rdi + 5] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x3e4cb60f; BYTE $0x06 // movzx ecx, byte [rsi + rdi + 6] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x3e4cb60f; BYTE $0x07 // movzx ecx, byte [rsi + rdi + 7] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x3e4cb60f; BYTE $0x08 // movzx ecx, byte [rsi + rdi + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x3e4cb60f; BYTE $0x09 // movzx ecx, byte [rsi + rdi + 9] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x3e4cb60f; BYTE $0x0a // movzx ecx, byte [rsi + rdi + 10] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + LONG $0x3e4cb60f; BYTE $0x0b // movzx ecx, byte [rsi + rdi + 11] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x3e4cb60f; BYTE $0x0c // movzx ecx, byte [rsi + rdi + 12] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x3e4cb60f; BYTE $0x0d // movzx ecx, byte [rsi + rdi + 13] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x3e4cb60f; BYTE $0x0e // movzx ecx, byte [rsi + rdi + 14] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00012024847f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm0 + LONG $0x247c8948; BYTE $0x20 // mov qword [rsp + 32], rdi + WORD $0x8949; BYTE $0xfd // mov r13, rdi + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x28 // mov qword [rsp + 40], r13 + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0x40c98348 // or rcx, 64 + LONG $0x244c8948; BYTE $0x40 // mov qword [rsp + 64], rcx + LONG $0x60cb8349 // or r11, 96 + LONG $0x80cb8148; WORD $0x0000; BYTE $0x00 // or rbx, 128 + LONG $0xa0ce8149; WORD $0x0000; BYTE $0x00 // or r14, 160 + LONG $0xc0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 192 + LONG $0xe0ca8149; WORD $0x0000; BYTE $0x00 // or r10, 224 + LONG $0x00cc8149; WORD $0x0001; BYTE $0x00 // or r12, 256 + LONG $0x20c98149; WORD $0x0001; BYTE $0x00 // or r9, 288 + QUAD $0x00000080248c894c // mov qword [rsp + 128], r9 + LONG $0x40ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 320 + LONG $0x24548948; BYTE $0x30 // mov qword [rsp + 48], rdx + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + LONG $0x60ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 352 + LONG $0x24548948; BYTE $0x58 // mov qword [rsp + 88], rdx + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + LONG $0x80c88149; WORD $0x0001; BYTE $0x00 // or r8, 384 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + QUAD $0x012e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 1 + QUAD $0x020e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 2 + LONG $0x245c894c; BYTE $0x68 // mov qword [rsp + 104], r11 + QUAD $0x031e3c203a0f4666 // pinsrb xmm15, byte [rsi + r11], 3 + LONG $0x245c8948; BYTE $0x50 // mov qword [rsp + 80], rbx + QUAD $0x041e3c203a0f4466 // pinsrb xmm15, byte [rsi + rbx], 4 + LONG $0x2474894c; BYTE $0x60 // mov qword [rsp + 96], r14 + QUAD $0x05363c203a0f4666 // pinsrb xmm15, byte [rsi + r14], 5 + QUAD $0x063e3c203a0f4666 // pinsrb xmm15, byte [rsi + r15], 6 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + QUAD $0x07163c203a0f4666 // pinsrb xmm15, byte [rsi + r10], 7 + QUAD $0x08263c203a0f4666 // pinsrb xmm15, byte [rsi + r12], 8 + QUAD $0x090e3c203a0f4666 // pinsrb xmm15, byte [rsi + r9], 9 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0a2e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 10 + QUAD $0x0b163c203a0f4466 // pinsrb xmm15, byte [rsi + rdx], 11 + QUAD $0x0c063c203a0f4666 // pinsrb xmm15, byte [rsi + r8], 12 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x0d0e3c203a0f4666 // pinsrb xmm15, byte [rsi + r9], 13 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x0e0e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 14 + QUAD $0x0f063c203a0f4466 // pinsrb xmm15, byte [rsi + rax], 15 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x01166c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r10 + 1], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02010e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 1], 2 + QUAD $0x011e6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r11 + 1], 3 + QUAD $0x04011e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 1], 4 + QUAD $0x01366c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r14 + 1], 5 + QUAD $0x013e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r15 + 1], 6 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x07013e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 1], 7 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x000000a024bc8948 // mov qword [rsp + 160], rdi + QUAD $0x01266c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r12 + 1], 8 + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + LONG $0x2464894c; BYTE $0x48 // mov qword [rsp + 72], r12 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x09010e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 1], 9 + QUAD $0x012e6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r13 + 1], 10 + QUAD $0x0b01166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 1], 11 + QUAD $0x01066c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r8 + 1], 12 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0x2444894c; BYTE $0x38 // mov qword [rsp + 56], r8 + QUAD $0x010e6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r9 + 1], 13 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x01266c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r12 + 1], 14 + QUAD $0x0f01066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 1], 15 + QUAD $0x00d0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 208] + LONG $0x740f4166; BYTE $0xe9 // pcmpeqb xmm5, xmm9 + LONG $0xfd6f0f66 // movdqa xmm7, xmm5 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xfcdb0f66 // pand xmm7, xmm4 + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + LONG $0x0654b60f; BYTE $0x0f // movzx edx, byte [rsi + rax + 15] + LONG $0x6e0f4466; BYTE $0xf2 // movd xmm14, edx + LONG $0x740f4566; BYTE $0xf9 // pcmpeqb xmm15, xmm9 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x020674203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r8 + 2], 1 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x021e74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r11 + 2], 2 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x022e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r13 + 2], 3 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x04020e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 2], 4 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x05023e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 2], 5 + QUAD $0x023e74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r15 + 2], 6 + QUAD $0x023674203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r14 + 2], 7 + QUAD $0x08021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 8 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + QUAD $0x09021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 9 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x023674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r14 + 2], 10 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x023e74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r15 + 2], 11 + QUAD $0x021674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r10 + 2], 12 + WORD $0x894d; BYTE $0xca // mov r10, r9 + QUAD $0x020e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r9 + 2], 13 + QUAD $0x022674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r12 + 2], 14 + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x020e74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r9 + 2], 15 + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0x740f4166; BYTE $0xf1 // pcmpeqb xmm6, xmm9 + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x0654b60f; BYTE $0x10 // movzx edx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + QUAD $0x030654203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r8 + 3], 1 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x031e54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r11 + 3], 2 + QUAD $0x032e54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r13 + 3], 3 + QUAD $0x04030e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 3], 4 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + QUAD $0x05033e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 3], 5 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x06030e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 3], 6 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x07033e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 3], 7 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x030654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r8 + 3], 8 + QUAD $0x09031e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 3], 9 + QUAD $0x033654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r14 + 3], 10 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x033e54203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r15 + 3], 11 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x033e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 3], 12 + QUAD $0x031654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r10 + 3], 13 + QUAD $0x032654203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r12 + 3], 14 + QUAD $0x030e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r9 + 3], 15 + QUAD $0x0104164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 1 + QUAD $0x0204064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 4], 2 + QUAD $0x042e4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r13 + 4], 3 + QUAD $0x041e4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r11 + 4], 4 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x041e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r11 + 4], 5 + QUAD $0x06040e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 4], 6 + QUAD $0x07043e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 4], 7 + QUAD $0x04064c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r8 + 4], 8 + QUAD $0x09041e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 4], 9 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0a040e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 4], 10 + QUAD $0x04364c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r14 + 4], 11 + QUAD $0x043e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r15 + 4], 12 + QUAD $0x04164c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r10 + 4], 13 + WORD $0x894d; BYTE $0xd7 // mov r15, r10 + QUAD $0x04264c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r12 + 4], 14 + WORD $0x894d; BYTE $0xe2 // mov r10, r12 + QUAD $0x040e4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r9 + 4], 15 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + LONG $0x3e54b60f; BYTE $0x11 // movzx edx, byte [rsi + rdi + 17] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0x740f4166; BYTE $0xc9 // pcmpeqb xmm1, xmm9 + QUAD $0x000000d0ad6f0f66 // movdqa xmm5, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xcddb0f66 // pand xmm1, xmm5 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x3e54b60f; BYTE $0x12 // movzx edx, byte [rsi + rdi + 18] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x050e44203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r9 + 5], 1 + QUAD $0x050644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rax + 5], 2 + QUAD $0x052e44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r13 + 5], 3 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x051644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 5], 4 + QUAD $0x051e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r11 + 5], 5 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x053e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rdi + 5], 6 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x050644203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r8 + 5], 7 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x051644203a0f4466; BYTE $0x08 // pinsrb xmm8, byte [rsi + rdx + 5], 8 + QUAD $0x051e44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rsi + rbx + 5], 9 + QUAD $0x050e44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rcx + 5], 10 + QUAD $0x053644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 5], 11 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x050e44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rcx + 5], 12 + QUAD $0x053e44203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r15 + 5], 13 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + QUAD $0x051644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r10 + 5], 14 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x051644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r10 + 5], 15 + LONG $0x740f4566; BYTE $0xc1 // pcmpeqb xmm8, xmm9 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xdb0f4466; BYTE $0xc2 // pand xmm8, xmm2 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0x0e54b60f; BYTE $0x13 // movzx edx, byte [rsi + rcx + 19] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + LONG $0x0e54b60f; BYTE $0x14 // movzx edx, byte [rsi + rcx + 20] + LONG $0xf26e0f66 // movd xmm6, edx + QUAD $0x060e5c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r9 + 6], 1 + QUAD $0x0206065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 2 + QUAD $0x062e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r13 + 6], 3 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x061e5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r11 + 6], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x063e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r15 + 6], 5 + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + QUAD $0x06063e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 6], 6 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x06065c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r8 + 6], 7 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0806165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 6], 8 + QUAD $0x09061e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 6], 9 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x06065c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r8 + 6], 10 + QUAD $0x06365c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r14 + 6], 11 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0c06065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 12 + QUAD $0x06265c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r12 + 6], 13 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0e06165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 6], 14 + QUAD $0x06165c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r10 + 6], 15 + QUAD $0x0000e024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 224] + QUAD $0x070e54203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r9 + 7], 1 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x072654203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r12 + 7], 2 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x03071654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 7], 3 + QUAD $0x071e54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r11 + 7], 4 + QUAD $0x073e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r15 + 7], 5 + QUAD $0x06070e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 7], 6 + QUAD $0x07073e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 7], 7 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x071654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r10 + 7], 8 + QUAD $0x09071e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 7], 9 + QUAD $0x070654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r8 + 7], 10 + QUAD $0x073654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 7], 11 + QUAD $0x0c070654203a0f66 // pinsrb xmm2, byte [rsi + rax + 7], 12 + QUAD $0x072e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r13 + 7], 13 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x0e073e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 7], 14 + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x070e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r9 + 7], 15 + LONG $0x740f4166; BYTE $0xd9 // pcmpeqb xmm3, xmm9 + QUAD $0x000000f08d6f0f66 // movdqa xmm1, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0x4d6f0f66; BYTE $0x60 // movdqa xmm1, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xd1db0f66 // pand xmm2, xmm1 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + LONG $0x1e54b60f; BYTE $0x15 // movzx edx, byte [rsi + rbx + 21] + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x091e54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r11 + 9], 1 + QUAD $0x092654203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r12 + 9], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x090654203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rax + 9], 3 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x090e54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rcx + 9], 4 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x093e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r15 + 9], 5 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x092654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r12 + 9], 6 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x090654203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rax + 9], 7 + QUAD $0x091654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r10 + 9], 8 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x090654203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rax + 9], 9 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x090654203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rax + 9], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x091654203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rdx + 9], 11 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x091654203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rsi + rdx + 9], 12 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x092e54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r13 + 9], 13 + QUAD $0x093e54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rdi + 9], 14 + QUAD $0x090e54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r9 + 9], 15 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x0000e0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm1 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xf80f4166; BYTE $0xca // psubb xmm1, xmm10 + LONG $0x1e54b60f; BYTE $0x16 // movzx edx, byte [rsi + rbx + 22] + LONG $0xda6e0f66 // movd xmm3, edx + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + QUAD $0x081e64203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r11 + 8], 1 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x082e64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r13 + 8], 2 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + QUAD $0x080664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r8 + 8], 3 + QUAD $0x04080e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 8], 4 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + QUAD $0x083e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r15 + 8], 5 + QUAD $0x082664203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r12 + 8], 6 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x083e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r15 + 8], 7 + QUAD $0x083664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r14 + 8], 8 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x09081664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 8], 9 + QUAD $0x0a080664203a0f66 // pinsrb xmm4, byte [rsi + rax + 8], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b080664203a0f66 // pinsrb xmm4, byte [rsi + rax + 8], 11 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x083664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r14 + 8], 12 + QUAD $0x081664203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r10 + 8], 13 + QUAD $0x0e083e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 8], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f080664203a0f66 // pinsrb xmm4, byte [rsi + rax + 8], 15 + LONG $0x740f4166; BYTE $0xe1 // pcmpeqb xmm4, xmm9 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + QUAD $0x00c024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 192] + QUAD $0x0a1e54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r11 + 10], 1 + QUAD $0x0a2e54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r13 + 10], 2 + QUAD $0x0a0654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r8 + 10], 3 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x0a0e54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rcx + 10], 4 + QUAD $0x0a0e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r9 + 10], 5 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0a0e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rcx + 10], 6 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + QUAD $0x0a3e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r15 + 10], 7 + QUAD $0x0a1e54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rbx + 10], 8 + QUAD $0x0a1654203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rdx + 10], 9 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0a1654203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rdx + 10], 10 + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a3e54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r15 + 10], 11 + QUAD $0x0a3654203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r14 + 10], 12 + QUAD $0x0a1654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r10 + 10], 13 + QUAD $0x0a3e54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rdi + 10], 14 + QUAD $0x0a0654203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rax + 10], 15 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + QUAD $0x0000b095db0f4466; BYTE $0x00 // pand xmm10, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4466; BYTE $0xd4 // por xmm10, xmm4 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + LONG $0x0654b60f; BYTE $0x17 // movzx edx, byte [rsi + rax + 23] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x00c024947f0f4466; WORD $0x0000 // movdqa oword [rsp + 192], xmm10 + LONG $0x0654b60f; BYTE $0x18 // movzx edx, byte [rsi + rax + 24] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + QUAD $0x0b1e5c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rsi + r11 + 11], 1 + QUAD $0x0b2e5c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rsi + r13 + 11], 2 + QUAD $0x0b265c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r12 + 11], 3 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b065c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rsi + rax + 11], 4 + QUAD $0x0b0e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r9 + 11], 5 + QUAD $0x0b0e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rcx + 11], 6 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x0b065c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r8 + 11], 7 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x0b065c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r8 + 11], 8 + QUAD $0x00000080248c8b4c // mov r9, qword [rsp + 128] + QUAD $0x0b0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 11], 9 + QUAD $0x0b1e5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rbx + 11], 10 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x0b3e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r15 + 11], 11 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x0b3e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 11], 12 + QUAD $0x0b165c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r10 + 11], 13 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x0b265c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r12 + 11], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0b165c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rdx + 11], 15 + QUAD $0x0c1e6c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rsi + r11 + 12], 1 + QUAD $0x0c2e6c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rsi + r13 + 12], 2 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0c1e6c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rsi + rbx + 12], 3 + QUAD $0x0c066c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rsi + rax + 12], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0c066c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rsi + rax + 12], 5 + QUAD $0x0c0e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 12], 6 + QUAD $0x0c3e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdi + 12], 7 + QUAD $0x0c066c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r8 + 12], 8 + QUAD $0x0c0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 12], 9 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0c1e6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rbx + 12], 10 + QUAD $0x0c366c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r14 + 12], 11 + QUAD $0x0c3e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 12], 12 + QUAD $0x0c166c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r10 + 12], 13 + WORD $0x894d; BYTE $0xd3 // mov r11, r10 + QUAD $0x0c266c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r12 + 12], 14 + QUAD $0x0c166c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rdx + 12], 15 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x0d1664203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rsi + r10 + 13], 1 + QUAD $0x0d2e64203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rsi + r13 + 13], 2 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0d2e64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r13 + 13], 3 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x0d1e64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rbx + 13], 4 + QUAD $0x0d0664203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rsi + rax + 13], 5 + QUAD $0x0d0e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rcx + 13], 6 + QUAD $0x0d3e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdi + 13], 7 + QUAD $0x0d0664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r8 + 13], 8 + QUAD $0x0d0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 13], 9 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0d1e64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rsi + rbx + 13], 10 + QUAD $0x0d3664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r14 + 13], 11 + QUAD $0x0d3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 13], 12 + QUAD $0x0d1e64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r11 + 13], 13 + QUAD $0x0d2664203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r12 + 13], 14 + QUAD $0x0d1664203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rdx + 13], 15 + LONG $0x740f4566; BYTE $0xd9 // pcmpeqb xmm11, xmm9 + QUAD $0x0000c09ddb0f4466; BYTE $0x00 // pand xmm11, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4566; BYTE $0xe9 // pcmpeqb xmm13, xmm9 + QUAD $0x0000d0addb0f4466; BYTE $0x00 // pand xmm13, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + LONG $0x0654b60f; BYTE $0x19 // movzx edx, byte [rsi + rax + 25] + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x740f4566; BYTE $0xe1 // pcmpeqb xmm12, xmm9 + QUAD $0x0000e0a5db0f4466; BYTE $0x00 // pand xmm12, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x0654b60f; BYTE $0x1a // movzx edx, byte [rsi + rax + 26] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x00012024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 288] + QUAD $0x0e1664203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r10 + 14], 1 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x0e2664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r12 + 14], 2 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x0e2e64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r13 + 14], 3 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0e1e64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r11 + 14], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x050e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 14], 5 + QUAD $0x060e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 14], 6 + QUAD $0x070e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 7 + QUAD $0x0e0664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r8 + 14], 8 + QUAD $0x0e0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 14], 9 + QUAD $0x0a0e1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 14], 10 + QUAD $0x0e3664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r14 + 14], 11 + QUAD $0x0e3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 14], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d0e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 13 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0e2e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r13 + 14], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f0e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 15 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0f1674203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rdx + 15], 1 + QUAD $0x0f2674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r12 + 15], 2 + QUAD $0x0f1674203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r10 + 15], 3 + QUAD $0x0f1e74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r11 + 15], 4 + QUAD $0x0f0674203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rax + 15], 5 + QUAD $0x0f0e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rcx + 15], 6 + QUAD $0x0f3e74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rdi + 15], 7 + QUAD $0x0f0674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r8 + 15], 8 + QUAD $0x0f0e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r9 + 15], 9 + QUAD $0x0f1e74203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rsi + rbx + 15], 10 + QUAD $0x0f3674203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r14 + 15], 11 + QUAD $0x0f3e74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r15 + 15], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0f1674203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rdx + 15], 13 + QUAD $0x0f2e74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r13 + 15], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0f1674203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rsi + rdx + 15], 15 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x10167c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rdx + 16], 1 + QUAD $0x10267c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r12 + 16], 2 + QUAD $0x10167c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r10 + 16], 3 + QUAD $0x101e7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r11 + 16], 4 + QUAD $0x10067c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rax + 16], 5 + QUAD $0x100e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rcx + 16], 6 + QUAD $0x103e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rdi + 16], 7 + QUAD $0x10067c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r8 + 16], 8 + QUAD $0x100e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r9 + 16], 9 + QUAD $0x101e7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rsi + rbx + 16], 10 + QUAD $0x10367c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r14 + 16], 11 + QUAD $0x103e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 16], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x10167c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rdx + 16], 13 + QUAD $0x102e7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r13 + 16], 14 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x01111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 1 + QUAD $0x112644203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r12 + 17], 2 + QUAD $0x111644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r10 + 17], 3 + QUAD $0x111e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r11 + 17], 4 + QUAD $0x05110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 5 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x06110e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 17], 6 + QUAD $0x07113e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 17], 7 + QUAD $0x110644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r8 + 17], 8 + QUAD $0x110e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 17], 9 + QUAD $0x0a111e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 17], 10 + QUAD $0x113644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 17], 11 + QUAD $0x113e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 17], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 13 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0e111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 14 + QUAD $0x00c024a4eb0f4466; WORD $0x0000 // por xmm12, oword [rsp + 192] + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + LONG $0x54b60f42; WORD $0x1b26 // movzx edx, byte [rsi + r12 + 27] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + QUAD $0x00d024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 208] + LONG $0x740f4166; BYTE $0xe5 // pcmpeqb xmm4, xmm13 + QUAD $0x000000f0a5db0f66 // pand xmm4, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0x740f4566; BYTE $0xf5 // pcmpeqb xmm14, xmm13 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x54b60f42; WORD $0x1c26 // movzx edx, byte [rsi + r12 + 28] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x110644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r8 + 17], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0x740f4166; BYTE $0xc5 // pcmpeqb xmm0, xmm13 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xdb0f4566; BYTE $0xec // pand xmm13, xmm12 + LONG $0xf80f4466; BYTE $0xe8 // psubb xmm13, xmm0 + QUAD $0x00c024ac7f0f4466; WORD $0x0000 // movdqa oword [rsp + 192], xmm13 + LONG $0x54b60f42; WORD $0x1d26 // movzx edx, byte [rsi + r12 + 29] + LONG $0x6e0f4466; BYTE $0xea // movd xmm13, edx + QUAD $0x10067c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r8 + 16], 15 + QUAD $0x0000d024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 208] + LONG $0x740f4466; BYTE $0xf8 // pcmpeqb xmm15, xmm0 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x12266c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r12 + 18], 1 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0212166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 18], 2 + QUAD $0x12166c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r10 + 18], 3 + QUAD $0x121e6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r11 + 18], 4 + QUAD $0x122e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r13 + 18], 5 + QUAD $0x06120e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 18], 6 + QUAD $0x07123e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 18], 7 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x0812166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 18], 8 + QUAD $0x120e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r9 + 18], 9 + QUAD $0x0a121e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 18], 10 + QUAD $0x12366c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r14 + 18], 11 + QUAD $0x123e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 18], 12 + QUAD $0x0d12066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 18], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e12066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 18], 14 + LONG $0xdb0f4566; BYTE $0xfc // pand xmm15, xmm12 + QUAD $0x12066c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r8 + 18], 15 + LONG $0xe8740f66 // pcmpeqb xmm5, xmm0 + QUAD $0x000000b0addb0f66 // pand xmm5, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4166; BYTE $0xef // por xmm5, xmm15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + LONG $0x0654b60f; BYTE $0x1e // movzx edx, byte [rsi + rax + 30] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + QUAD $0x13267c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rsi + r12 + 19], 1 + QUAD $0x142674203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r12 + 20], 1 + QUAD $0x152654203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r12 + 21], 1 + QUAD $0x16265c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r12 + 22], 1 + QUAD $0x172644203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r12 + 23], 1 + QUAD $0x182654203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r12 + 24], 1 + QUAD $0x19264c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rsi + r12 + 25], 1 + QUAD $0x1a265c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rsi + r12 + 26], 1 + QUAD $0x1b264c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rsi + r12 + 27], 1 + QUAD $0x1c2664203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r12 + 28], 1 + QUAD $0x1d266c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rsi + r12 + 29], 1 + QUAD $0x1e2664203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rsi + r12 + 30], 1 + LONG $0x0654b60f; BYTE $0x1f // movzx edx, byte [rsi + rax + 31] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x1f2644203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rsi + r12 + 31], 1 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0213167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 19], 2 + QUAD $0x02141674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 20], 2 + QUAD $0x02151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 2 + QUAD $0x0216165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 22], 2 + QUAD $0x171644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdx + 23], 2 + QUAD $0x181654203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdx + 24], 2 + QUAD $0x0219164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 25], 2 + QUAD $0x1a165c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdx + 26], 2 + QUAD $0x1b164c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdx + 27], 2 + QUAD $0x021c1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 28], 2 + QUAD $0x1d166c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdx + 29], 2 + QUAD $0x1e1664203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdx + 30], 2 + QUAD $0x021f1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 31], 2 + QUAD $0x13167c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r10 + 19], 3 + QUAD $0x131e7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r11 + 19], 4 + QUAD $0x132e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r13 + 19], 5 + QUAD $0x06130e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 19], 6 + QUAD $0x07133e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 19], 7 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x13267c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r12 + 19], 8 + QUAD $0x130e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r9 + 19], 9 + QUAD $0x0a131e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 19], 10 + QUAD $0x13367c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r14 + 19], 11 + QUAD $0x133e7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r15 + 19], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d13167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 19], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e13067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 19], 14 + QUAD $0x13067c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r8 + 19], 15 + QUAD $0x141674203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r10 + 20], 3 + QUAD $0x141e74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r11 + 20], 4 + QUAD $0x142e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r13 + 20], 5 + QUAD $0x06140e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 20], 6 + QUAD $0x07143e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 20], 7 + QUAD $0x142674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r12 + 20], 8 + QUAD $0x140e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 20], 9 + QUAD $0x0a141e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 20], 10 + QUAD $0x143674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r14 + 20], 11 + QUAD $0x143e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r15 + 20], 12 + QUAD $0x0d141674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 20], 13 + QUAD $0x0e140674203a0f66 // pinsrb xmm6, byte [rsi + rax + 20], 14 + QUAD $0x0000c024aceb0f66; BYTE $0x00 // por xmm5, oword [rsp + 192] + QUAD $0x140674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r8 + 20], 15 + QUAD $0x00d024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 208] + LONG $0x740f4166; BYTE $0xff // pcmpeqb xmm7, xmm15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4166; BYTE $0xf7 // pcmpeqb xmm6, xmm15 + QUAD $0x000000d0b5db0f66 // pand xmm6, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0x151654203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r10 + 21], 3 + QUAD $0x151e54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r11 + 21], 4 + QUAD $0x152e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r13 + 21], 5 + QUAD $0x06150e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 21], 6 + QUAD $0x07153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 7 + QUAD $0x152654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r12 + 21], 8 + QUAD $0x150e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 21], 9 + QUAD $0x0a151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 10 + QUAD $0x153654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 21], 11 + QUAD $0x153e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 21], 12 + QUAD $0x0d151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 13 + QUAD $0x0e150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 14 + QUAD $0x150654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r8 + 21], 15 + LONG $0x740f4166; BYTE $0xd7 // pcmpeqb xmm2, xmm15 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xd7db0f66 // pand xmm2, xmm7 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0xd5eb0f66 // por xmm2, xmm5 + QUAD $0x16165c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r10 + 22], 3 + QUAD $0x161e5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r11 + 22], 4 + QUAD $0x162e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r13 + 22], 5 + QUAD $0x06160e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 22], 6 + QUAD $0x07163e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 22], 7 + QUAD $0x16265c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r12 + 22], 8 + QUAD $0x160e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r9 + 22], 9 + QUAD $0x0a161e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 22], 10 + QUAD $0x16365c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r14 + 22], 11 + QUAD $0x163e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 22], 12 + QUAD $0x0d16165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 22], 13 + QUAD $0x0e16065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 22], 14 + QUAD $0x16065c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r8 + 22], 15 + QUAD $0x171644203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r10 + 23], 3 + QUAD $0x171e44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r11 + 23], 4 + QUAD $0x172e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r13 + 23], 5 + QUAD $0x170e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rcx + 23], 6 + QUAD $0x173e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rdi + 23], 7 + QUAD $0x172644203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r12 + 23], 8 + QUAD $0x170e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 23], 9 + QUAD $0x171e44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rbx + 23], 10 + QUAD $0x173644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 23], 11 + QUAD $0x173e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 23], 12 + QUAD $0x171644203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rdx + 23], 13 + QUAD $0x170644203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rax + 23], 14 + QUAD $0x170644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r8 + 23], 15 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x000000f0ad6f0f66 // movdqa xmm5, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0xdddb0f66 // pand xmm3, xmm5 + LONG $0x740f4566; BYTE $0xc7 // pcmpeqb xmm8, xmm15 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + QUAD $0x19164c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r10 + 25], 3 + QUAD $0x191e4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r11 + 25], 4 + QUAD $0x192e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r13 + 25], 5 + QUAD $0x06190e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 25], 6 + QUAD $0x07193e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 25], 7 + QUAD $0x19264c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r12 + 25], 8 + QUAD $0x190e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r9 + 25], 9 + QUAD $0x0a191e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 25], 10 + QUAD $0x19364c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r14 + 25], 11 + QUAD $0x193e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r15 + 25], 12 + QUAD $0x0d19164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 25], 13 + QUAD $0x0e19064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 25], 14 + QUAD $0x19064c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r8 + 25], 15 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x740f4166; BYTE $0xcf // pcmpeqb xmm1, xmm15 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + QUAD $0x181654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r10 + 24], 3 + QUAD $0x181e54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r11 + 24], 4 + QUAD $0x182e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r13 + 24], 5 + QUAD $0x180e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rcx + 24], 6 + QUAD $0x183e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rdi + 24], 7 + QUAD $0x182654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r12 + 24], 8 + QUAD $0x180e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r9 + 24], 9 + QUAD $0x181e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rbx + 24], 10 + QUAD $0x183654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r14 + 24], 11 + QUAD $0x183e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 24], 12 + QUAD $0x181654203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rdx + 24], 13 + QUAD $0x180654203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rax + 24], 14 + QUAD $0x180654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r8 + 24], 15 + LONG $0x740f4566; BYTE $0xd7 // pcmpeqb xmm10, xmm15 + LONG $0xdb0f4466; BYTE $0xd3 // pand xmm10, xmm3 + QUAD $0x1a165c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r10 + 26], 3 + QUAD $0x1a1e5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r11 + 26], 4 + QUAD $0x1a2e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r13 + 26], 5 + QUAD $0x1a0e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rcx + 26], 6 + QUAD $0x1a3e5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rdi + 26], 7 + QUAD $0x1a265c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r12 + 26], 8 + QUAD $0x1a0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 26], 9 + QUAD $0x1a1e5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rbx + 26], 10 + QUAD $0x1a365c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r14 + 26], 11 + QUAD $0x1a3e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 26], 12 + QUAD $0x1a165c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rdx + 26], 13 + QUAD $0x1a065c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rax + 26], 14 + QUAD $0x1a065c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r8 + 26], 15 + LONG $0x740f4566; BYTE $0xdf // pcmpeqb xmm11, xmm15 + QUAD $0x0000b09ddb0f4466; BYTE $0x00 // pand xmm11, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0xeb0f4466; BYTE $0xda // por xmm11, xmm2 + QUAD $0x1b164c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r10 + 27], 3 + QUAD $0x1b1e4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r11 + 27], 4 + QUAD $0x1b2e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r13 + 27], 5 + QUAD $0x1b0e4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rcx + 27], 6 + QUAD $0x1b3e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rdi + 27], 7 + QUAD $0x1b264c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r12 + 27], 8 + QUAD $0x1b0e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 27], 9 + QUAD $0x1b1e4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rbx + 27], 10 + QUAD $0x1b364c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r14 + 27], 11 + QUAD $0x1b3e4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r15 + 27], 12 + QUAD $0x1b164c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rdx + 27], 13 + QUAD $0x1b064c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rax + 27], 14 + QUAD $0x1b064c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r8 + 27], 15 + QUAD $0x1c1664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r10 + 28], 3 + QUAD $0x1c1e64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r11 + 28], 4 + QUAD $0x1c2e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r13 + 28], 5 + QUAD $0x061c0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 28], 6 + QUAD $0x071c3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 28], 7 + QUAD $0x1c2664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r12 + 28], 8 + QUAD $0x1c0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 28], 9 + QUAD $0x0a1c1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 28], 10 + QUAD $0x1c3664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r14 + 28], 11 + QUAD $0x1c3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 28], 12 + QUAD $0x0d1c1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 28], 13 + QUAD $0x0e1c0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 28], 14 + QUAD $0x1c0664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r8 + 28], 15 + QUAD $0x1d166c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r10 + 29], 3 + QUAD $0x1d1e6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r11 + 29], 4 + QUAD $0x1d2e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r13 + 29], 5 + QUAD $0x1d0e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 29], 6 + QUAD $0x1d3e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdi + 29], 7 + QUAD $0x1d266c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r12 + 29], 8 + QUAD $0x1d0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 29], 9 + QUAD $0x1d1e6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rbx + 29], 10 + QUAD $0x1d366c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r14 + 29], 11 + QUAD $0x1d3e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 29], 12 + QUAD $0x1d166c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rdx + 29], 13 + QUAD $0x1d066c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rax + 29], 14 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0x740f4566; BYTE $0xcf // pcmpeqb xmm9, xmm15 + QUAD $0x0000c08ddb0f4466; BYTE $0x00 // pand xmm9, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4166; BYTE $0xe7 // pcmpeqb xmm4, xmm15 + QUAD $0x000000d0a5db0f66 // pand xmm4, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + QUAD $0x1d066c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r8 + 29], 15 + LONG $0x740f4566; BYTE $0xef // pcmpeqb xmm13, xmm15 + LONG $0xdb0f4466; BYTE $0xef // pand xmm13, xmm7 + LONG $0xeb0f4466; BYTE $0xec // por xmm13, xmm4 + QUAD $0x1e1664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r10 + 30], 3 + QUAD $0x1f1644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r10 + 31], 3 + QUAD $0x1e1e64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r11 + 30], 4 + QUAD $0x1f1e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r11 + 31], 4 + QUAD $0x1e2e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r13 + 30], 5 + QUAD $0x1f2e44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r13 + 31], 5 + QUAD $0x1e0e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rcx + 30], 6 + QUAD $0x061f0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 31], 6 + QUAD $0x1e3e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdi + 30], 7 + QUAD $0x071f3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 31], 7 + QUAD $0x1e2664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r12 + 30], 8 + QUAD $0x1f2644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r12 + 31], 8 + QUAD $0x1e0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 30], 9 + QUAD $0x1f0e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 31], 9 + QUAD $0x1e1e64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rsi + rbx + 30], 10 + QUAD $0x0a1f1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 31], 10 + QUAD $0x1e3664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r14 + 30], 11 + QUAD $0x1f3644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 31], 11 + QUAD $0x1e3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 30], 12 + QUAD $0x1f3e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 31], 12 + QUAD $0x1e1664203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rdx + 30], 13 + QUAD $0x0d1f1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 31], 13 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x1e0664203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rax + 30], 14 + QUAD $0x0e1f0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 31], 14 + QUAD $0x1e0664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r8 + 30], 15 + QUAD $0x1f0644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r8 + 31], 15 + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x740f4566; BYTE $0xe7 // pcmpeqb xmm12, xmm15 + LONG $0xdb0f4466; BYTE $0xe5 // pand xmm12, xmm5 + LONG $0x740f4166; BYTE $0xc7 // pcmpeqb xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xc6db0f66 // pand xmm0, xmm6 + LONG $0xeb0f4166; BYTE $0xc4 // por xmm0, xmm12 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000e024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 224] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd9610f66 // punpcklwd xmm3, xmm1 + LONG $0xd1690f66 // punpckhwd xmm2, xmm1 + LONG $0x680f4466; BYTE $0xc0 // punpckhbw xmm8, xmm0 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x7f0f41f3; WORD $0x8e64; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm4 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e54; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm2 + LONG $0x7f0f41f3; WORD $0x8e1c // movdqu oword [r14 + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000f8248c3b48 // cmp rcx, qword [rsp + 248] + JNE LBB1_87 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x000000f824bc3b4c // cmp r15, qword [rsp + 248] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + JNE LBB1_89 + JMP LBB1_92 + +LBB1_66: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + QUAD $0x000000f824bc894c // mov qword [rsp + 248], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB1_67: + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + LONG $0x05e7c149 // shl r15, 5 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x247c894c; BYTE $0x70 // mov qword [rsp + 112], r15 + LONG $0x14b60f42; BYTE $0x3e // movzx edx, byte [rsi + r15] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0x54b60f42; WORD $0x013e // movzx edx, byte [rsi + r15 + 1] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x54b60f42; WORD $0x023e // movzx edx, byte [rsi + r15 + 2] + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x54b60f42; WORD $0x033e // movzx edx, byte [rsi + r15 + 3] + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x54b60f42; WORD $0x043e // movzx edx, byte [rsi + r15 + 4] + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x54b60f42; WORD $0x053e // movzx edx, byte [rsi + r15 + 5] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0x54b60f42; WORD $0x063e // movzx edx, byte [rsi + r15 + 6] + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x54b60f42; WORD $0x073e // movzx edx, byte [rsi + r15 + 7] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x54b60f42; WORD $0x083e // movzx edx, byte [rsi + r15 + 8] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x00012024847f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm0 + LONG $0x54b60f42; WORD $0x093e // movzx edx, byte [rsi + r15 + 9] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x54b60f42; WORD $0x0a3e // movzx edx, byte [rsi + r15 + 10] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x0000a024847f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm0 + LONG $0x54b60f42; WORD $0x0b3e // movzx edx, byte [rsi + r15 + 11] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + LONG $0x54b60f42; WORD $0x0c3e // movzx edx, byte [rsi + r15 + 12] + LONG $0x6e0f4466; BYTE $0xea // movd xmm13, edx + LONG $0x54b60f42; WORD $0x0d3e // movzx edx, byte [rsi + r15 + 13] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + LONG $0x54b60f42; WORD $0x0e3e // movzx edx, byte [rsi + r15 + 14] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x18 // mov qword [rsp + 24], r13 + LONG $0x40cf8348 // or rdi, 64 + LONG $0x60c98348 // or rcx, 96 + QUAD $0x00000080248c8948 // mov qword [rsp + 128], rcx + LONG $0x80ca8149; WORD $0x0000; BYTE $0x00 // or r10, 128 + LONG $0xa0c88149; WORD $0x0000; BYTE $0x00 // or r8, 160 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0xe0c98149; WORD $0x0000; BYTE $0x00 // or r9, 224 + LONG $0x00cb8149; WORD $0x0001; BYTE $0x00 // or r11, 256 + LONG $0x20cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 288 + LONG $0x40ce8149; WORD $0x0001; BYTE $0x00 // or r14, 320 + LONG $0x01600d48; WORD $0x0000 // or rax, 352 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + LONG $0x80ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 384 + LONG $0x24548948; BYTE $0x70 // mov qword [rsp + 112], rdx + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + QUAD $0x012e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 1 + QUAD $0x023e3c203a0f4466 // pinsrb xmm15, byte [rsi + rdi], 2 + QUAD $0x030e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 3 + QUAD $0x04163c203a0f4666 // pinsrb xmm15, byte [rsi + r10], 4 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + LONG $0x2444894c; BYTE $0x78 // mov qword [rsp + 120], r8 + QUAD $0x05063c203a0f4666 // pinsrb xmm15, byte [rsi + r8], 5 + LONG $0x2464894c; BYTE $0x68 // mov qword [rsp + 104], r12 + QUAD $0x06263c203a0f4666 // pinsrb xmm15, byte [rsi + r12], 6 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + QUAD $0x070e3c203a0f4666 // pinsrb xmm15, byte [rsi + r9], 7 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + LONG $0x245c894c; BYTE $0x10 // mov qword [rsp + 16], r11 + QUAD $0x081e3c203a0f4666 // pinsrb xmm15, byte [rsi + r11], 8 + LONG $0x245c8948; BYTE $0x40 // mov qword [rsp + 64], rbx + QUAD $0x091e3c203a0f4466 // pinsrb xmm15, byte [rsi + rbx], 9 + LONG $0x2474894c; BYTE $0x60 // mov qword [rsp + 96], r14 + QUAD $0x0a363c203a0f4666 // pinsrb xmm15, byte [rsi + r14], 10 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0b2e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 11 + QUAD $0x0c163c203a0f4466 // pinsrb xmm15, byte [rsi + rdx], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0d0e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 13 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0e0e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 14 + QUAD $0x0f063c203a0f4466 // pinsrb xmm15, byte [rsi + rax], 15 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x011e6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r11 + 1], 1 + QUAD $0x02013e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 1], 2 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x011e6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r11 + 1], 3 + QUAD $0x01166c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r10 + 1], 4 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + QUAD $0x013e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r15 + 1], 5 + QUAD $0x01266c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r12 + 1], 6 + QUAD $0x01066c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r8 + 1], 7 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + QUAD $0x010e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r9 + 1], 8 + QUAD $0x09011e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 1], 9 + QUAD $0x01366c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r14 + 1], 10 + QUAD $0x012e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r13 + 1], 11 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x0c01166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 1], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d01166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 1], 13 + QUAD $0x0e010e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 1], 14 + QUAD $0x0f01066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 1], 15 + QUAD $0x00b0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe9 // pcmpeqb xmm5, xmm9 + LONG $0xfd6f0f66 // movdqa xmm7, xmm5 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xfcdb0f66 // pand xmm7, xmm4 + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0654b60f; BYTE $0x0f // movzx edx, byte [rsi + rax + 15] + LONG $0x6e0f4466; BYTE $0xf2 // movd xmm14, edx + LONG $0x740f4566; BYTE $0xf9 // pcmpeqb xmm15, xmm9 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x01021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 1 + QUAD $0x02023e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 2], 2 + WORD $0x894d; BYTE $0xdc // mov r12, r11 + QUAD $0x021e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r11 + 2], 3 + QUAD $0x021674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r10 + 2], 4 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x05020e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 2], 5 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x021e74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r11 + 2], 6 + QUAD $0x000000c024bc894c // mov qword [rsp + 192], r15 + QUAD $0x023e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r15 + 2], 7 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x022e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r13 + 2], 8 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x023674203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r14 + 2], 9 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x020e74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r9 + 2], 10 + QUAD $0x020674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r8 + 2], 11 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0c021674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 2], 12 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x021674203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r10 + 2], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e021674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 2], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f021674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 2], 15 + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0x740f4166; BYTE $0xf1 // pcmpeqb xmm6, xmm9 + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x0654b60f; BYTE $0x10 // movzx edx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + QUAD $0x01031e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 3], 1 + QUAD $0x02033e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 3], 2 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x032654203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r12 + 3], 3 + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x032654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r12 + 3], 4 + QUAD $0x05030e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 3], 5 + QUAD $0x031e54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r11 + 3], 6 + QUAD $0x033e54203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rsi + r15 + 3], 7 + QUAD $0x032e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r13 + 3], 8 + QUAD $0x033654203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r14 + 3], 9 + QUAD $0x030e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r9 + 3], 10 + WORD $0x894d; BYTE $0xce // mov r14, r9 + QUAD $0x030654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r8 + 3], 11 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x033e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 3], 12 + QUAD $0x031654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r10 + 3], 13 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x032e54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r13 + 3], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f031654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 3], 15 + QUAD $0x01041e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 4], 1 + QUAD $0x02043e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 4], 2 + QUAD $0x0304064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 4], 3 + QUAD $0x04264c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r12 + 4], 4 + QUAD $0x05040e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 4], 5 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x041e4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rsi + r11 + 4], 6 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x041e4c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rsi + r11 + 4], 7 + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x040e4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r9 + 4], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x09041e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 4], 9 + QUAD $0x04364c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r14 + 4], 10 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + QUAD $0x04064c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r8 + 4], 11 + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + QUAD $0x043e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r15 + 4], 12 + QUAD $0x04164c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r10 + 4], 13 + QUAD $0x042e4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r13 + 4], 14 + QUAD $0x0f04164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 15 + WORD $0x8949; BYTE $0xd2 // mov r10, rdx + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + LONG $0x1e54b60f; BYTE $0x11 // movzx edx, byte [rsi + rbx + 17] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0x740f4166; BYTE $0xc9 // pcmpeqb xmm1, xmm9 + QUAD $0x000000d0ad6f0f66 // movdqa xmm5, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xcddb0f66 // pand xmm1, xmm5 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x1e54b60f; BYTE $0x12 // movzx edx, byte [rsi + rbx + 18] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x050644203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r8 + 5], 1 + QUAD $0x053e44203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdi + 5], 2 + QUAD $0x050644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rax + 5], 3 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x051644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 5], 4 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x051644203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rdx + 5], 5 + QUAD $0x050e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rcx + 5], 6 + QUAD $0x051e44203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r11 + 5], 7 + QUAD $0x050e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r9 + 5], 8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x050e44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rsi + rcx + 5], 9 + QUAD $0x052644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r12 + 5], 10 + QUAD $0x053644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 5], 11 + QUAD $0x053e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 5], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x050e44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rcx + 5], 13 + QUAD $0x052e44203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r13 + 5], 14 + QUAD $0x051644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r10 + 5], 15 + LONG $0x740f4566; BYTE $0xc1 // pcmpeqb xmm8, xmm9 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xdb0f4466; BYTE $0xc2 // pand xmm8, xmm2 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x1e54b60f; BYTE $0x13 // movzx edx, byte [rsi + rbx + 19] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + LONG $0x1e54b60f; BYTE $0x14 // movzx edx, byte [rsi + rbx + 20] + LONG $0xf26e0f66 // movd xmm6, edx + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + QUAD $0x06065c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r8 + 6], 1 + QUAD $0x02063e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 6], 2 + QUAD $0x0306065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 3 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x061e5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r11 + 6], 4 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x060e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r9 + 6], 5 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + QUAD $0x06065c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r8 + 6], 6 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x06265c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r12 + 6], 7 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0806065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x09061e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 6], 9 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x06365c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r14 + 6], 10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0b060e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 6], 11 + QUAD $0x063e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 6], 12 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x06165c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r10 + 6], 13 + QUAD $0x062e5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r13 + 6], 14 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f060e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 6], 15 + QUAD $0x0000d024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 208] + QUAD $0x01071654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 7], 1 + QUAD $0x02073e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 7], 2 + QUAD $0x000000e024bc8948 // mov qword [rsp + 224], rdi + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x03070e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 7], 3 + QUAD $0x071e54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r11 + 7], 4 + QUAD $0x070e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r9 + 7], 5 + QUAD $0x070654203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r8 + 7], 6 + QUAD $0x072654203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rsi + r12 + 7], 7 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + QUAD $0x08070654203a0f66 // pinsrb xmm2, byte [rsi + rax + 7], 8 + QUAD $0x09071e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 7], 9 + QUAD $0x073654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r14 + 7], 10 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0b070654203a0f66 // pinsrb xmm2, byte [rsi + rax + 7], 11 + QUAD $0x073e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 7], 12 + QUAD $0x071654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r10 + 7], 13 + QUAD $0x072e54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r13 + 7], 14 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x073654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r14 + 7], 15 + LONG $0x740f4166; BYTE $0xd9 // pcmpeqb xmm3, xmm9 + QUAD $0x000000f08d6f0f66 // movdqa xmm1, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0x4d6f0f66; BYTE $0x60 // movdqa xmm1, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xd1db0f66 // pand xmm2, xmm1 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + LONG $0x1e54b60f; BYTE $0x15 // movzx edx, byte [rsi + rbx + 21] + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x091654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rdx + 9], 1 + QUAD $0x093e54203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdi + 9], 2 + QUAD $0x090e54203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rcx + 9], 3 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x093e54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rdi + 9], 4 + QUAD $0x090e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r9 + 9], 5 + QUAD $0x090654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r8 + 9], 6 + QUAD $0x091e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r11 + 9], 7 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x090e54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rcx + 9], 8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x090e54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rcx + 9], 9 + QUAD $0x092654203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r12 + 9], 10 + QUAD $0x090654203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rax + 9], 11 + QUAD $0x093e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 9], 12 + QUAD $0x091654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r10 + 9], 13 + QUAD $0x092e54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r13 + 9], 14 + QUAD $0x093654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r14 + 9], 15 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xf80f4166; BYTE $0xca // psubb xmm1, xmm10 + LONG $0x1e54b60f; BYTE $0x16 // movzx edx, byte [rsi + rbx + 22] + LONG $0xda6e0f66 // movd xmm3, edx + QUAD $0x00012024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 288] + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x081664203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r10 + 8], 1 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x082664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r12 + 8], 2 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x03080664203a0f66 // pinsrb xmm4, byte [rsi + rax + 8], 3 + QUAD $0x04083e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 8], 4 + QUAD $0x080e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r9 + 8], 5 + QUAD $0x080664203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r8 + 8], 6 + WORD $0x894c; BYTE $0xdb // mov rbx, r11 + QUAD $0x081e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 8], 7 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x08081664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 8], 8 + QUAD $0x09080e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 8], 9 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0a080e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 8], 10 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x083664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r14 + 8], 11 + QUAD $0x083e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 8], 12 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0d083e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 8], 13 + QUAD $0x082e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r13 + 8], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f083e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 8], 15 + LONG $0x740f4166; BYTE $0xe1 // pcmpeqb xmm4, xmm9 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + QUAD $0x00a024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 160] + QUAD $0x0a1654203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r10 + 10], 1 + QUAD $0x0a2654203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r12 + 10], 2 + QUAD $0x0a0654203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rax + 10], 3 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x0a1e54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r11 + 10], 4 + QUAD $0x0a0e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r9 + 10], 5 + QUAD $0x0a0654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r8 + 10], 6 + QUAD $0x0a1e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rbx + 10], 7 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x0a1654203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rdx + 10], 8 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0a0654203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r8 + 10], 9 + QUAD $0x0a0e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rcx + 10], 10 + QUAD $0x0a3654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r14 + 10], 11 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + QUAD $0x0a3e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 10], 12 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0a0e54203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rcx + 10], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0a1654203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rdx + 10], 14 + QUAD $0x0a3e54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rdi + 10], 15 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + QUAD $0x0000b095db0f4466; BYTE $0x00 // pand xmm10, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4466; BYTE $0xd4 // por xmm10, xmm4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x3e54b60f; BYTE $0x17 // movzx edx, byte [rsi + rdi + 23] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x00a024947f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm10 + LONG $0x3e54b60f; BYTE $0x18 // movzx edx, byte [rsi + rdi + 24] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0b165c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rdx + 11], 1 + QUAD $0x0b265c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rsi + r12 + 11], 2 + QUAD $0x0b065c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rax + 11], 3 + QUAD $0x0b1e5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r11 + 11], 4 + QUAD $0x0b0e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r9 + 11], 5 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0b1e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rbx + 11], 6 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + QUAD $0x0b165c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r10 + 11], 7 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0b165c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r10 + 11], 8 + QUAD $0x0b065c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r8 + 11], 9 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x0b0e5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r9 + 11], 10 + QUAD $0x0b2e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r13 + 11], 11 + QUAD $0x0b3e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 11], 12 + QUAD $0x0b0e5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rcx + 11], 13 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b3e5c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rdi + 11], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0b3e5c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rdi + 11], 15 + QUAD $0x0c166c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rdx + 12], 1 + QUAD $0x0c266c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rsi + r12 + 12], 2 + QUAD $0x0c066c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rsi + rax + 12], 3 + QUAD $0x0c1e6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r11 + 12], 4 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x0c2e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r13 + 12], 5 + QUAD $0x0c1e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rbx + 12], 6 + QUAD $0x0c366c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rsi + r14 + 12], 7 + QUAD $0x0c166c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r10 + 12], 8 + QUAD $0x0c066c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r8 + 12], 9 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + QUAD $0x0c0e6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r9 + 12], 10 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0c2e6c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r13 + 12], 11 + QUAD $0x0c3e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 12], 12 + QUAD $0x0c0e6c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rcx + 12], 13 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x0c0e6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r9 + 12], 14 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c3e6c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rdi + 12], 15 + QUAD $0x0d1664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rdx + 13], 1 + QUAD $0x0d2664203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rsi + r12 + 13], 2 + QUAD $0x0d0664203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rax + 13], 3 + QUAD $0x0d1e64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r11 + 13], 4 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x0d0664203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rsi + rax + 13], 5 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0d1664203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rdx + 13], 6 + QUAD $0x0d3664203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rsi + r14 + 13], 7 + QUAD $0x0d1664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r10 + 13], 8 + QUAD $0x0d1e64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rsi + rbx + 13], 9 + QUAD $0x0d0664203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r8 + 13], 10 + QUAD $0x0d2e64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r13 + 13], 11 + QUAD $0x0d3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 13], 12 + QUAD $0x0d0e64203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rcx + 13], 13 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + QUAD $0x0d0e64203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r9 + 13], 14 + QUAD $0x0d3e64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rdi + 13], 15 + LONG $0x740f4566; BYTE $0xd9 // pcmpeqb xmm11, xmm9 + QUAD $0x0000c09ddb0f4466; BYTE $0x00 // pand xmm11, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4566; BYTE $0xe9 // pcmpeqb xmm13, xmm9 + QUAD $0x0000d0addb0f4466; BYTE $0x00 // pand xmm13, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + LONG $0x0e54b60f; BYTE $0x19 // movzx edx, byte [rsi + rcx + 25] + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x740f4566; BYTE $0xe1 // pcmpeqb xmm12, xmm9 + QUAD $0x0000e0a5db0f4466; BYTE $0x00 // pand xmm12, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x0e54b60f; BYTE $0x1a // movzx edx, byte [rsi + rcx + 26] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x010e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 14], 1 + QUAD $0x0e2664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r12 + 14], 2 + QUAD $0x0000008024948b4c // mov r10, qword [rsp + 128] + QUAD $0x0e1664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r10 + 14], 3 + QUAD $0x0e1e64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r11 + 14], 4 + QUAD $0x050e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 14], 5 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x060e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 14], 6 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x0e3664203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r14 + 14], 7 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x0e0664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r8 + 14], 8 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x0e0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 14], 9 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x0a0e1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 14], 10 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0e3664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r14 + 14], 11 + QUAD $0x0e3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 14], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d0e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 13 + QUAD $0x0e2e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r13 + 14], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f0e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 15 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0f1674203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rdx + 15], 1 + QUAD $0x0f2674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r12 + 15], 2 + QUAD $0x0f1674203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r10 + 15], 3 + QUAD $0x0f1e74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r11 + 15], 4 + QUAD $0x0f0674203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rax + 15], 5 + QUAD $0x0f0e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rcx + 15], 6 + QUAD $0x0f3e74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rdi + 15], 7 + QUAD $0x0f0674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r8 + 15], 8 + QUAD $0x0f0e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r9 + 15], 9 + QUAD $0x0f1e74203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rsi + rbx + 15], 10 + QUAD $0x0f3674203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r14 + 15], 11 + QUAD $0x0f3e74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r15 + 15], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0f1674203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rdx + 15], 13 + QUAD $0x0f2e74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r13 + 15], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f1674203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rsi + rdx + 15], 15 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x10167c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rdx + 16], 1 + QUAD $0x10267c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r12 + 16], 2 + QUAD $0x10167c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r10 + 16], 3 + QUAD $0x101e7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r11 + 16], 4 + QUAD $0x10067c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rax + 16], 5 + QUAD $0x100e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rcx + 16], 6 + QUAD $0x103e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rdi + 16], 7 + QUAD $0x10067c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r8 + 16], 8 + QUAD $0x100e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r9 + 16], 9 + QUAD $0x101e7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rsi + rbx + 16], 10 + QUAD $0x10367c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r14 + 16], 11 + QUAD $0x103e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 16], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x10167c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rdx + 16], 13 + QUAD $0x102e7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r13 + 16], 14 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x01111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 1 + QUAD $0x112644203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r12 + 17], 2 + QUAD $0x111644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r10 + 17], 3 + QUAD $0x111e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r11 + 17], 4 + QUAD $0x05110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 5 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x06110e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 17], 6 + QUAD $0x07113e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 17], 7 + QUAD $0x110644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r8 + 17], 8 + QUAD $0x110e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 17], 9 + QUAD $0x0a111e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 17], 10 + QUAD $0x113644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 17], 11 + QUAD $0x113e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 17], 12 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 13 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0e111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 14 + QUAD $0x00a024a4eb0f4466; WORD $0x0000 // por xmm12, oword [rsp + 160] + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x54b60f42; WORD $0x1b26 // movzx edx, byte [rsi + r12 + 27] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + QUAD $0x00b024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe5 // pcmpeqb xmm4, xmm13 + QUAD $0x000000f0a5db0f66 // pand xmm4, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0x740f4566; BYTE $0xf5 // pcmpeqb xmm14, xmm13 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x54b60f42; WORD $0x1c26 // movzx edx, byte [rsi + r12 + 28] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x110644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r8 + 17], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0x740f4166; BYTE $0xc5 // pcmpeqb xmm0, xmm13 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xdb0f4566; BYTE $0xec // pand xmm13, xmm12 + LONG $0xf80f4466; BYTE $0xe8 // psubb xmm13, xmm0 + QUAD $0x00a024ac7f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm13 + LONG $0x54b60f42; WORD $0x1d26 // movzx edx, byte [rsi + r12 + 29] + LONG $0x6e0f4466; BYTE $0xea // movd xmm13, edx + QUAD $0x10067c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r8 + 16], 15 + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x740f4466; BYTE $0xf8 // pcmpeqb xmm15, xmm0 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x12266c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r12 + 18], 1 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x0212166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 18], 2 + QUAD $0x12166c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r10 + 18], 3 + QUAD $0x121e6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r11 + 18], 4 + QUAD $0x122e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r13 + 18], 5 + QUAD $0x06120e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 18], 6 + QUAD $0x07123e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 18], 7 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0812166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 18], 8 + QUAD $0x120e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r9 + 18], 9 + QUAD $0x0a121e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 18], 10 + QUAD $0x12366c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r14 + 18], 11 + QUAD $0x123e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 18], 12 + QUAD $0x0d12066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 18], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e12066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 18], 14 + LONG $0xdb0f4566; BYTE $0xfc // pand xmm15, xmm12 + QUAD $0x12066c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r8 + 18], 15 + LONG $0xe8740f66 // pcmpeqb xmm5, xmm0 + QUAD $0x000000b0addb0f66 // pand xmm5, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4166; BYTE $0xef // por xmm5, xmm15 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0654b60f; BYTE $0x1e // movzx edx, byte [rsi + rax + 30] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + QUAD $0x13267c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rsi + r12 + 19], 1 + QUAD $0x142674203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r12 + 20], 1 + QUAD $0x152654203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r12 + 21], 1 + QUAD $0x16265c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r12 + 22], 1 + QUAD $0x172644203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r12 + 23], 1 + QUAD $0x182654203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r12 + 24], 1 + QUAD $0x19264c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rsi + r12 + 25], 1 + QUAD $0x1a265c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rsi + r12 + 26], 1 + QUAD $0x1b264c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rsi + r12 + 27], 1 + QUAD $0x1c2664203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r12 + 28], 1 + QUAD $0x1d266c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rsi + r12 + 29], 1 + QUAD $0x1e2664203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rsi + r12 + 30], 1 + LONG $0x0654b60f; BYTE $0x1f // movzx edx, byte [rsi + rax + 31] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x1f2644203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rsi + r12 + 31], 1 + QUAD $0x000000e024948b48 // mov rdx, qword [rsp + 224] + QUAD $0x0213167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 19], 2 + QUAD $0x02141674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 20], 2 + QUAD $0x02151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 2 + QUAD $0x0216165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 22], 2 + QUAD $0x171644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdx + 23], 2 + QUAD $0x181654203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdx + 24], 2 + QUAD $0x0219164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 25], 2 + QUAD $0x1a165c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdx + 26], 2 + QUAD $0x1b164c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdx + 27], 2 + QUAD $0x021c1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 28], 2 + QUAD $0x1d166c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdx + 29], 2 + QUAD $0x1e1664203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdx + 30], 2 + QUAD $0x021f1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 31], 2 + QUAD $0x13167c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r10 + 19], 3 + QUAD $0x131e7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r11 + 19], 4 + QUAD $0x132e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r13 + 19], 5 + QUAD $0x06130e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 19], 6 + QUAD $0x07133e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 19], 7 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x13267c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r12 + 19], 8 + QUAD $0x130e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r9 + 19], 9 + QUAD $0x0a131e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 19], 10 + QUAD $0x13367c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r14 + 19], 11 + QUAD $0x133e7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r15 + 19], 12 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d13167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 19], 13 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0e13067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 19], 14 + QUAD $0x13067c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r8 + 19], 15 + QUAD $0x141674203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r10 + 20], 3 + QUAD $0x141e74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r11 + 20], 4 + QUAD $0x142e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r13 + 20], 5 + QUAD $0x06140e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 20], 6 + QUAD $0x07143e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 20], 7 + QUAD $0x142674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r12 + 20], 8 + QUAD $0x140e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 20], 9 + QUAD $0x0a141e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 20], 10 + QUAD $0x143674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r14 + 20], 11 + QUAD $0x143e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r15 + 20], 12 + QUAD $0x0d141674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 20], 13 + QUAD $0x0e140674203a0f66 // pinsrb xmm6, byte [rsi + rax + 20], 14 + QUAD $0x0000a024aceb0f66; BYTE $0x00 // por xmm5, oword [rsp + 160] + QUAD $0x140674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r8 + 20], 15 + QUAD $0x00b024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xff // pcmpeqb xmm7, xmm15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4166; BYTE $0xf7 // pcmpeqb xmm6, xmm15 + QUAD $0x000000d0b5db0f66 // pand xmm6, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0x151654203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r10 + 21], 3 + QUAD $0x151e54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r11 + 21], 4 + QUAD $0x152e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r13 + 21], 5 + QUAD $0x06150e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 21], 6 + QUAD $0x07153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 7 + QUAD $0x152654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r12 + 21], 8 + QUAD $0x150e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 21], 9 + QUAD $0x0a151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 10 + QUAD $0x153654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 21], 11 + QUAD $0x153e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 21], 12 + QUAD $0x0d151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 13 + QUAD $0x0e150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 14 + QUAD $0x150654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r8 + 21], 15 + LONG $0x740f4166; BYTE $0xd7 // pcmpeqb xmm2, xmm15 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI1_14] */ + LONG $0xd7db0f66 // pand xmm2, xmm7 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0xd5eb0f66 // por xmm2, xmm5 + QUAD $0x16165c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r10 + 22], 3 + QUAD $0x161e5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r11 + 22], 4 + QUAD $0x162e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r13 + 22], 5 + QUAD $0x06160e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 22], 6 + QUAD $0x07163e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 22], 7 + QUAD $0x16265c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r12 + 22], 8 + QUAD $0x160e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r9 + 22], 9 + QUAD $0x0a161e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 22], 10 + QUAD $0x16365c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r14 + 22], 11 + QUAD $0x163e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 22], 12 + QUAD $0x0d16165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 22], 13 + QUAD $0x0e16065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 22], 14 + QUAD $0x16065c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r8 + 22], 15 + QUAD $0x171644203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r10 + 23], 3 + QUAD $0x171e44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r11 + 23], 4 + QUAD $0x172e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r13 + 23], 5 + QUAD $0x170e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rcx + 23], 6 + QUAD $0x173e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rdi + 23], 7 + QUAD $0x172644203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r12 + 23], 8 + QUAD $0x170e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 23], 9 + QUAD $0x171e44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rbx + 23], 10 + QUAD $0x173644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 23], 11 + QUAD $0x173e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 23], 12 + QUAD $0x171644203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rdx + 23], 13 + QUAD $0x170644203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rax + 23], 14 + QUAD $0x170644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r8 + 23], 15 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x000000f0ad6f0f66 // movdqa xmm5, oword 240[rbp] /* [rip + .LCPI1_15] */ + LONG $0xdddb0f66 // pand xmm3, xmm5 + LONG $0x740f4566; BYTE $0xc7 // pcmpeqb xmm8, xmm15 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + QUAD $0x19164c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r10 + 25], 3 + QUAD $0x191e4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r11 + 25], 4 + QUAD $0x192e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r13 + 25], 5 + QUAD $0x06190e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 25], 6 + QUAD $0x07193e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 25], 7 + QUAD $0x19264c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r12 + 25], 8 + QUAD $0x190e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r9 + 25], 9 + QUAD $0x0a191e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 25], 10 + QUAD $0x19364c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r14 + 25], 11 + QUAD $0x193e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r15 + 25], 12 + QUAD $0x0d19164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 25], 13 + QUAD $0x0e19064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 25], 14 + QUAD $0x19064c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r8 + 25], 15 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x740f4166; BYTE $0xcf // pcmpeqb xmm1, xmm15 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI1_10] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + QUAD $0x181654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r10 + 24], 3 + QUAD $0x181e54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r11 + 24], 4 + QUAD $0x182e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r13 + 24], 5 + QUAD $0x180e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rcx + 24], 6 + QUAD $0x183e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rdi + 24], 7 + QUAD $0x182654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r12 + 24], 8 + QUAD $0x180e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r9 + 24], 9 + QUAD $0x181e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rbx + 24], 10 + QUAD $0x183654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r14 + 24], 11 + QUAD $0x183e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 24], 12 + QUAD $0x181654203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rdx + 24], 13 + QUAD $0x180654203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rax + 24], 14 + QUAD $0x180654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r8 + 24], 15 + LONG $0x740f4566; BYTE $0xd7 // pcmpeqb xmm10, xmm15 + LONG $0xdb0f4466; BYTE $0xd3 // pand xmm10, xmm3 + QUAD $0x1a165c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r10 + 26], 3 + QUAD $0x1a1e5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r11 + 26], 4 + QUAD $0x1a2e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r13 + 26], 5 + QUAD $0x1a0e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rcx + 26], 6 + QUAD $0x1a3e5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rdi + 26], 7 + QUAD $0x1a265c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r12 + 26], 8 + QUAD $0x1a0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 26], 9 + QUAD $0x1a1e5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rbx + 26], 10 + QUAD $0x1a365c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r14 + 26], 11 + QUAD $0x1a3e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 26], 12 + QUAD $0x1a165c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rdx + 26], 13 + QUAD $0x1a065c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rax + 26], 14 + QUAD $0x1a065c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r8 + 26], 15 + LONG $0x740f4566; BYTE $0xdf // pcmpeqb xmm11, xmm15 + QUAD $0x0000b09ddb0f4466; BYTE $0x00 // pand xmm11, oword 176[rbp] /* [rip + .LCPI1_11] */ + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0xeb0f4466; BYTE $0xda // por xmm11, xmm2 + QUAD $0x1b164c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r10 + 27], 3 + QUAD $0x1b1e4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r11 + 27], 4 + QUAD $0x1b2e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r13 + 27], 5 + QUAD $0x1b0e4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rcx + 27], 6 + QUAD $0x1b3e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rdi + 27], 7 + QUAD $0x1b264c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r12 + 27], 8 + QUAD $0x1b0e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 27], 9 + QUAD $0x1b1e4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rbx + 27], 10 + QUAD $0x1b364c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r14 + 27], 11 + QUAD $0x1b3e4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r15 + 27], 12 + QUAD $0x1b164c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rdx + 27], 13 + QUAD $0x1b064c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rax + 27], 14 + QUAD $0x1b064c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r8 + 27], 15 + QUAD $0x1c1664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r10 + 28], 3 + QUAD $0x1c1e64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r11 + 28], 4 + QUAD $0x1c2e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r13 + 28], 5 + QUAD $0x061c0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 28], 6 + QUAD $0x071c3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 28], 7 + QUAD $0x1c2664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r12 + 28], 8 + QUAD $0x1c0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 28], 9 + QUAD $0x0a1c1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 28], 10 + QUAD $0x1c3664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r14 + 28], 11 + QUAD $0x1c3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 28], 12 + QUAD $0x0d1c1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 28], 13 + QUAD $0x0e1c0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 28], 14 + QUAD $0x1c0664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r8 + 28], 15 + QUAD $0x1d166c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r10 + 29], 3 + QUAD $0x1d1e6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r11 + 29], 4 + QUAD $0x1d2e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r13 + 29], 5 + QUAD $0x1d0e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 29], 6 + QUAD $0x1d3e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdi + 29], 7 + QUAD $0x1d266c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r12 + 29], 8 + QUAD $0x1d0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 29], 9 + QUAD $0x1d1e6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rbx + 29], 10 + QUAD $0x1d366c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r14 + 29], 11 + QUAD $0x1d3e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 29], 12 + QUAD $0x1d166c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rdx + 29], 13 + QUAD $0x1d066c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rax + 29], 14 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0x740f4566; BYTE $0xcf // pcmpeqb xmm9, xmm15 + QUAD $0x0000c08ddb0f4466; BYTE $0x00 // pand xmm9, oword 192[rbp] /* [rip + .LCPI1_12] */ + LONG $0x740f4166; BYTE $0xe7 // pcmpeqb xmm4, xmm15 + QUAD $0x000000d0a5db0f66 // pand xmm4, oword 208[rbp] /* [rip + .LCPI1_13] */ + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + QUAD $0x1d066c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r8 + 29], 15 + LONG $0x740f4566; BYTE $0xef // pcmpeqb xmm13, xmm15 + LONG $0xdb0f4466; BYTE $0xef // pand xmm13, xmm7 + LONG $0xeb0f4466; BYTE $0xec // por xmm13, xmm4 + QUAD $0x1e1664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r10 + 30], 3 + QUAD $0x1f1644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r10 + 31], 3 + QUAD $0x1e1e64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r11 + 30], 4 + QUAD $0x1f1e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r11 + 31], 4 + QUAD $0x1e2e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r13 + 30], 5 + QUAD $0x1f2e44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r13 + 31], 5 + QUAD $0x1e0e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rcx + 30], 6 + QUAD $0x061f0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 31], 6 + QUAD $0x1e3e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdi + 30], 7 + QUAD $0x071f3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 31], 7 + QUAD $0x1e2664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r12 + 30], 8 + QUAD $0x1f2644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r12 + 31], 8 + QUAD $0x1e0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 30], 9 + QUAD $0x1f0e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 31], 9 + QUAD $0x1e1e64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rsi + rbx + 30], 10 + QUAD $0x0a1f1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 31], 10 + QUAD $0x1e3664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r14 + 30], 11 + QUAD $0x1f3644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 31], 11 + QUAD $0x1e3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 30], 12 + QUAD $0x1f3e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 31], 12 + QUAD $0x1e1664203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rdx + 30], 13 + QUAD $0x0d1f1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 31], 13 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x1e0664203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rax + 30], 14 + QUAD $0x0e1f0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 31], 14 + QUAD $0x1e0664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r8 + 30], 15 + QUAD $0x1f0644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r8 + 31], 15 + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x740f4566; BYTE $0xe7 // pcmpeqb xmm12, xmm15 + LONG $0xdb0f4466; BYTE $0xe5 // pand xmm12, xmm5 + LONG $0x740f4166; BYTE $0xc7 // pcmpeqb xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xc6db0f66 // pand xmm0, xmm6 + LONG $0xeb0f4166; BYTE $0xc4 // por xmm0, xmm12 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000d024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 208] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd9610f66 // punpcklwd xmm3, xmm1 + LONG $0xd1690f66 // punpckhwd xmm2, xmm1 + LONG $0x680f4466; BYTE $0xc0 // punpckhbw xmm8, xmm0 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x7f0f41f3; WORD $0x8e64; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm4 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e54; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm2 + LONG $0x7f0f41f3; WORD $0x8e1c // movdqu oword [r14 + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000f8248c3b48 // cmp rcx, qword [rsp + 248] + JNE LBB1_67 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x000000f824bc3b4c // cmp r15, qword [rsp + 248] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + JNE LBB1_69 + JMP LBB1_72 + +LBB1_110: + LONG $0xf8e38349 // and r11, -8 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + LONG $0x245c894c; BYTE $0x10 // mov qword [rsp + 16], r11 + LONG $0x9e048d4b // lea rax, [r14 + 4*r11] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x38 // mov dword [rsp + 56], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x000080bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 128[rbp] /* [rip + .LCPI1_8] */ + LONG $0x6f0f4466; WORD $0x104d // movdqa xmm9, oword 16[rbp] /* [rip + .LCPI1_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI1_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI1_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI1_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI1_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI1_6] */ + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB1_111: + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0x34b70f46; BYTE $0x3e // movzx r14d, word [rsi + r15] + LONG $0x44b70f42; WORD $0x023e // movzx eax, word [rsi + r15 + 2] + LONG $0x54b70f42; WORD $0x043e // movzx edx, word [rsi + r15 + 4] + LONG $0x5cb70f46; WORD $0x063e // movzx r11d, word [rsi + r15 + 6] + LONG $0x54b70f46; WORD $0x083e // movzx r10d, word [rsi + r15 + 8] + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x40c88349 // or r8, 64 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0xc40f4266; WORD $0x0624; BYTE $0x01 // pinsrw xmm4, word [rsi + r8], 1 + LONG $0xc40f4266; WORD $0x0e24; BYTE $0x02 // pinsrw xmm4, word [rsi + r9], 2 + LONG $0xc40f4266; WORD $0x2624; BYTE $0x03 // pinsrw xmm4, word [rsi + r12], 3 + LONG $0xc40f4266; WORD $0x2e24; BYTE $0x04 // pinsrw xmm4, word [rsi + r13], 4 + LONG $0x24c40f66; WORD $0x050e // pinsrw xmm4, word [rsi + rcx], 5 + LONG $0x24c40f66; WORD $0x063e // pinsrw xmm4, word [rsi + rdi], 6 + LONG $0x24c40f66; WORD $0x071e // pinsrw xmm4, word [rsi + rbx], 7 + LONG $0x74b70f46; WORD $0x0a3e // movzx r14d, word [rsi + r15 + 10] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x01020674c40f4266 // pinsrw xmm6, word [rsi + r8 + 2], 1 + QUAD $0x02020e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 2], 2 + QUAD $0x03022674c40f4266 // pinsrw xmm6, word [rsi + r12 + 2], 3 + LONG $0x44b70f42; WORD $0x0c3e // movzx eax, word [rsi + r15 + 12] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x04022e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 2], 4 + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x54b70f42; WORD $0x0e3e // movzx edx, word [rsi + r15 + 14] + LONG $0x74c40f66; WORD $0x020e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 2], 5 + LONG $0x6e0f4166; BYTE $0xeb // movd xmm5, r11d + LONG $0x44b70f42; WORD $0x103e // movzx eax, word [rsi + r15 + 16] + LONG $0x18244489 // mov dword [rsp + 24], eax + LONG $0x74c40f66; WORD $0x023e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 2], 6 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x44b70f42; WORD $0x123e // movzx eax, word [rsi + r15 + 18] + LONG $0x30244489 // mov dword [rsp + 48], eax + LONG $0x74c40f66; WORD $0x021e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 2], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xcef80f66 // psubb xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf6 // movd xmm6, r14d + LONG $0x5cb70f46; WORD $0x143e // movzx r11d, word [rsi + r15 + 20] + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0x01040654c40f4266 // pinsrw xmm2, word [rsi + r8 + 4], 1 + QUAD $0x02040e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 4], 2 + QUAD $0x03042654c40f4266 // pinsrw xmm2, word [rsi + r12 + 4], 3 + QUAD $0x04042e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 4], 7 + QUAD $0x0106066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 6], 1 + QUAD $0x02060e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 6], 2 + QUAD $0x0306266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 6], 3 + QUAD $0x04062e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 6], 4 + LONG $0x6cc40f66; WORD $0x060e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 6], 5 + LONG $0x6cc40f66; WORD $0x063e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 6], 6 + LONG $0x6cc40f66; WORD $0x061e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 6], 7 + QUAD $0x0108065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 8], 1 + QUAD $0x02080e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 8], 2 + QUAD $0x0308265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 8], 3 + QUAD $0x04082e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 8], 4 + LONG $0x5cc40f66; WORD $0x080e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 8], 5 + LONG $0x5cc40f66; WORD $0x083e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 8], 6 + LONG $0x5cc40f66; WORD $0x081e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 8], 7 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x44b70f42; WORD $0x163e // movzx eax, word [rsi + r15 + 22] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0xdb0f4166; BYTE $0xd1 // pand xmm2, xmm9 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x54b70f42; WORD $0x183e // movzx edx, word [rsi + r15 + 24] + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0x4c6e0f66; WORD $0x1824 // movd xmm1, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x1a3e // movzx r10d, word [rsi + r15 + 26] + QUAD $0x010a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 10], 1 + QUAD $0x020a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 10], 2 + QUAD $0x030a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 10], 3 + QUAD $0x040a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 10], 4 + LONG $0x74c40f66; WORD $0x0a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 10], 5 + LONG $0x74c40f66; WORD $0x0a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 10], 6 + LONG $0x74c40f66; WORD $0x0a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 10], 7 + QUAD $0x010c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 12], 1 + QUAD $0x020c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 12], 2 + QUAD $0x030c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 12], 3 + QUAD $0x040c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 12], 4 + LONG $0x7cc40f66; WORD $0x0c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 12], 5 + LONG $0x7cc40f66; WORD $0x0c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 12], 6 + LONG $0x7cc40f66; WORD $0x0c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 12], 7 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4466; WORD $0x2444; BYTE $0x30 // movd xmm8, dword [rsp + 48] + LONG $0x74b70f46; WORD $0x1c3e // movzx r14d, word [rsi + r15 + 28] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xeb // movd xmm5, r11d + LONG $0x5cb70f46; WORD $0x1e3e // movzx r11d, word [rsi + r15 + 30] + QUAD $0x010e0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 14], 1 + QUAD $0x020e0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 14], 2 + QUAD $0x030e2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 14], 3 + QUAD $0x040e2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 14], 4 + LONG $0x64c40f66; WORD $0x0e0e; BYTE $0x05 // pinsrw xmm4, word [rsi + rcx + 14], 5 + LONG $0x64c40f66; WORD $0x0e3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 14], 6 + LONG $0x64c40f66; WORD $0x0e1e; BYTE $0x07 // pinsrw xmm4, word [rsi + rbx + 14], 7 + QUAD $0x01120644c40f4666 // pinsrw xmm8, word [rsi + r8 + 18], 1 + QUAD $0x02120e44c40f4666 // pinsrw xmm8, word [rsi + r9 + 18], 2 + QUAD $0x03122644c40f4666 // pinsrw xmm8, word [rsi + r12 + 18], 3 + QUAD $0x04122e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 18], 4 + QUAD $0x05120e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 18], 5 + QUAD $0x06123e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 18], 6 + QUAD $0x07121e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 18], 7 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x203e // movzx eax, word [rsi + r15 + 32] + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x750f4466; BYTE $0xc0 // pcmpeqw xmm8, xmm0 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf80f4166; BYTE $0xf8 // psubb xmm7, xmm8 + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x54b70f42; WORD $0x223e // movzx edx, word [rsi + r15 + 34] + LONG $0x20245489 // mov dword [rsp + 32], edx + QUAD $0x0110064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 16], 1 + QUAD $0x02100e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 16], 2 + QUAD $0x0310264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 16], 3 + QUAD $0x04102e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 16], 4 + LONG $0x4cc40f66; WORD $0x100e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 16], 5 + LONG $0x4cc40f66; WORD $0x103e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 16], 6 + LONG $0x4cc40f66; WORD $0x101e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 16], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x54b70f46; WORD $0x243e // movzx r10d, word [rsi + r15 + 36] + QUAD $0x0114066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 20], 1 + QUAD $0x02140e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 20], 2 + QUAD $0x0314266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 20], 3 + QUAD $0x04142e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 20], 4 + LONG $0x6cc40f66; WORD $0x140e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 20], 5 + LONG $0x6cc40f66; WORD $0x143e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 20], 6 + LONG $0x6cc40f66; WORD $0x141e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 20], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe9 // pand xmm5, xmm9 + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6e0f4166; BYTE $0xfe // movd xmm7, r14d + LONG $0x54b70f42; WORD $0x263e // movzx edx, word [rsi + r15 + 38] + LONG $0x18245489 // mov dword [rsp + 24], edx + QUAD $0x01160654c40f4266 // pinsrw xmm2, word [rsi + r8 + 22], 1 + QUAD $0x02160e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 22], 2 + QUAD $0x03162654c40f4266 // pinsrw xmm2, word [rsi + r12 + 22], 3 + QUAD $0x04162e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 22], 4 + LONG $0x54c40f66; WORD $0x160e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 22], 5 + LONG $0x54c40f66; WORD $0x163e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 22], 6 + LONG $0x54c40f66; WORD $0x161e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 22], 7 + QUAD $0x0118065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 24], 1 + QUAD $0x02180e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 24], 2 + QUAD $0x0318265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 24], 3 + QUAD $0x04182e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 24], 4 + LONG $0x5cc40f66; WORD $0x180e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 24], 5 + LONG $0x5cc40f66; WORD $0x183e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 24], 6 + LONG $0x5cc40f66; WORD $0x181e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 24], 7 + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x74b70f46; WORD $0x283e // movzx r14d, word [rsi + r15 + 40] + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x5cb70f46; WORD $0x2a3e // movzx r11d, word [rsi + r15 + 42] + QUAD $0x011a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 26], 1 + QUAD $0x021a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 26], 2 + QUAD $0x031a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 26], 3 + QUAD $0x041a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 26], 4 + LONG $0x74c40f66; WORD $0x1a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 26], 5 + LONG $0x74c40f66; WORD $0x1a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 26], 6 + LONG $0x74c40f66; WORD $0x1a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 26], 7 + QUAD $0x011c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 28], 1 + QUAD $0x021c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 28], 2 + QUAD $0x031c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 28], 3 + QUAD $0x041c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 28], 4 + LONG $0x7cc40f66; WORD $0x1c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 28], 5 + LONG $0x7cc40f66; WORD $0x1c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 28], 6 + LONG $0x7cc40f66; WORD $0x1c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 28], 7 + QUAD $0x011e0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 30], 1 + QUAD $0x021e0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 30], 2 + QUAD $0x031e2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 30], 3 + QUAD $0x041e2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 30], 4 + LONG $0x54c40f66; WORD $0x1e0e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 30], 5 + LONG $0x54c40f66; WORD $0x1e3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 30], 6 + LONG $0x54c40f66; WORD $0x1e1e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 30], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x54b70f42; WORD $0x2c3e // movzx edx, word [rsi + r15 + 44] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x44b70f42; WORD $0x2e3e // movzx eax, word [rsi + r15 + 46] + QUAD $0x0120066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 32], 1 + QUAD $0x02200e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 32], 2 + QUAD $0x0320266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 32], 3 + QUAD $0x04202e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 32], 4 + LONG $0x6cc40f66; WORD $0x200e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 32], 5 + LONG $0x6cc40f66; WORD $0x203e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 32], 6 + QUAD $0x0122064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 34], 1 + QUAD $0x02220e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 34], 2 + QUAD $0x0322264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 34], 3 + QUAD $0x04222e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 34], 4 + LONG $0x4cc40f66; WORD $0x220e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 34], 5 + LONG $0x4cc40f66; WORD $0x223e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 34], 6 + LONG $0x4cc40f66; WORD $0x221e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 34], 7 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0x5c6e0f66; WORD $0x1824 // movd xmm3, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x303e // movzx r10d, word [rsi + r15 + 48] + LONG $0x6cc40f66; WORD $0x201e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 32], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x01240674c40f4266 // pinsrw xmm6, word [rsi + r8 + 36], 1 + QUAD $0x02240e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 36], 2 + QUAD $0x03242674c40f4266 // pinsrw xmm6, word [rsi + r12 + 36], 3 + QUAD $0x04242e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 36], 4 + LONG $0x74c40f66; WORD $0x240e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 36], 5 + LONG $0x74c40f66; WORD $0x243e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 36], 6 + LONG $0x74c40f66; WORD $0x241e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 36], 7 + QUAD $0x0126065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 38], 1 + QUAD $0x02260e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 38], 2 + QUAD $0x0326265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 38], 3 + QUAD $0x04262e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 38], 4 + LONG $0x5cc40f66; WORD $0x260e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 38], 5 + LONG $0x5cc40f66; WORD $0x263e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 38], 6 + LONG $0x5cc40f66; WORD $0x261e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 38], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6e0f4166; BYTE $0xee // movd xmm5, r14d + QUAD $0x0128066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 40], 1 + QUAD $0x02280e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 40], 2 + QUAD $0x0328266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 40], 3 + QUAD $0x04282e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 40], 4 + LONG $0x6cc40f66; WORD $0x280e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 40], 5 + LONG $0x6cc40f66; WORD $0x283e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 40], 6 + LONG $0x74b70f46; WORD $0x323e // movzx r14d, word [rsi + r15 + 50] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x5cb70f46; WORD $0x343e // movzx r11d, word [rsi + r15 + 52] + LONG $0x6cc40f66; WORD $0x281e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 40], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0xdb0f4166; BYTE $0xda // pand xmm3, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xebeb0f66 // por xmm5, xmm3 + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0x54b70f42; WORD $0x363e // movzx edx, word [rsi + r15 + 54] + QUAD $0x012a064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 42], 1 + QUAD $0x022a0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 42], 2 + QUAD $0x032a264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 42], 3 + QUAD $0x042a2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 42], 4 + LONG $0x4cc40f66; WORD $0x2a0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 42], 5 + LONG $0x4cc40f66; WORD $0x2a3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 42], 6 + LONG $0x4cc40f66; WORD $0x2a1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 42], 7 + QUAD $0x012c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 44], 1 + QUAD $0x022c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 44], 2 + QUAD $0x032c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 44], 3 + QUAD $0x042c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 44], 4 + LONG $0x7cc40f66; WORD $0x2c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 44], 5 + LONG $0x7cc40f66; WORD $0x2c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 44], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x44b70f42; WORD $0x383e // movzx eax, word [rsi + r15 + 56] + LONG $0x7cc40f66; WORD $0x2c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 44], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x05 // psllw xmm1, 5 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x54b70f46; WORD $0x3a3e // movzx r10d, word [rsi + r15 + 58] + QUAD $0x012e065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 46], 1 + QUAD $0x022e0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 46], 2 + QUAD $0x032e265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 46], 3 + QUAD $0x042e2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 46], 4 + LONG $0x5cc40f66; WORD $0x2e0e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 46], 5 + LONG $0x5cc40f66; WORD $0x2e3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 46], 6 + LONG $0x5cc40f66; WORD $0x2e1e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 46], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdfeb0f66 // por xmm3, xmm7 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + LONG $0x74b70f46; WORD $0x3c3e // movzx r14d, word [rsi + r15 + 60] + LONG $0x7cb70f46; WORD $0x3e3e // movzx r15d, word [rsi + r15 + 62] + QUAD $0x0132064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 50], 1 + QUAD $0x02320e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 50], 2 + QUAD $0x0332264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 50], 3 + QUAD $0x04322e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x320e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 50], 5 + LONG $0x4cc40f66; WORD $0x323e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 50], 6 + LONG $0x4cc40f66; WORD $0x321e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 50], 7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + QUAD $0x01300674c40f4266 // pinsrw xmm6, word [rsi + r8 + 48], 1 + QUAD $0x02300e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 48], 2 + QUAD $0x03302674c40f4266 // pinsrw xmm6, word [rsi + r12 + 48], 3 + QUAD $0x04302e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 48], 4 + LONG $0x74c40f66; WORD $0x300e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 48], 5 + LONG $0x74c40f66; WORD $0x303e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 48], 6 + LONG $0x74c40f66; WORD $0x301e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 48], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x0134064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 52], 1 + QUAD $0x02340e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 52], 2 + QUAD $0x0334264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 52], 3 + QUAD $0x04342e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 52], 4 + LONG $0x4cc40f66; WORD $0x340e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 52], 5 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x4cc40f66; WORD $0x343e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 52], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x4cc40f66; WORD $0x341e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 52], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x02 // psllw xmm1, 2 + LONG $0xdb0f4166; BYTE $0xc9 // pand xmm1, xmm9 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + QUAD $0x01360674c40f4266 // pinsrw xmm6, word [rsi + r8 + 54], 1 + QUAD $0x02360e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 54], 2 + QUAD $0x03362674c40f4266 // pinsrw xmm6, word [rsi + r12 + 54], 3 + QUAD $0x04362e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 54], 7 + QUAD $0x0138066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 56], 1 + QUAD $0x02380e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 56], 2 + QUAD $0x0338266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 56], 3 + QUAD $0x04382e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 56], 4 + LONG $0x6cc40f66; WORD $0x380e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 56], 5 + LONG $0x6cc40f66; WORD $0x383e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 56], 6 + LONG $0x6cc40f66; WORD $0x381e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 56], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x03 // psllw xmm6, 3 + LONG $0xdb0f4166; BYTE $0xf2 // pand xmm6, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + QUAD $0x013a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 58], 1 + QUAD $0x023a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 58], 2 + QUAD $0x033a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 58], 3 + QUAD $0x043a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 58], 4 + LONG $0x74c40f66; WORD $0x3a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 58], 5 + LONG $0x74c40f66; WORD $0x3a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 58], 6 + LONG $0x74c40f66; WORD $0x3a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 58], 7 + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + QUAD $0x013c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 60], 1 + QUAD $0x023c0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 60], 2 + QUAD $0x033c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 60], 3 + QUAD $0x043c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 60], 4 + LONG $0x4cc40f66; WORD $0x3c0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 60], 5 + LONG $0x4cc40f66; WORD $0x3c3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 60], 6 + LONG $0x4cc40f66; WORD $0x3c1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 60], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x06 // psllw xmm1, 6 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf7 // movd xmm6, r15d + QUAD $0x013e0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 62], 1 + QUAD $0x023e0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 62], 2 + QUAD $0x033e2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 62], 3 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x043e2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 62], 4 + LONG $0x74c40f66; WORD $0x3e0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 62], 5 + LONG $0x74c40f66; WORD $0x3e3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 62], 6 + LONG $0x74c40f66; WORD $0x3e1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 62], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0xdb0f4166; BYTE $0xf6 // pand xmm6, xmm14 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + QUAD $0x00000090bd6f0f66 // movdqa xmm7, oword 144[rbp] /* [rip + .LCPI1_9] */ + LONG $0x00380f66; BYTE $0xef // pshufb xmm5, xmm7 + LONG $0x00380f66; BYTE $0xcf // pshufb xmm1, xmm7 + LONG $0xcd610f66 // punpcklwd xmm1, xmm5 + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe2600f66 // punpcklbw xmm4, xmm2 + LONG $0xe3610f66 // punpcklwd xmm4, xmm3 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x10 // cmp rcx, qword [rsp + 16] + JNE LBB1_111 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + LONG $0x245c3b4c; BYTE $0x10 // cmp r11, qword [rsp + 16] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x38 // mov r13d, dword [rsp + 56] + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + JNE LBB1_113 + JMP LBB1_116 + +LBB1_133: + LONG $0xf8e78349 // and r15, -8 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + LONG $0x247c894c; BYTE $0x10 // mov qword [rsp + 16], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x38 // mov dword [rsp + 56], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x000080bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 128[rbp] /* [rip + .LCPI1_8] */ + LONG $0x6f0f4466; WORD $0x104d // movdqa xmm9, oword 16[rbp] /* [rip + .LCPI1_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI1_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI1_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI1_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI1_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI1_6] */ + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB1_134: + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0x34b70f46; BYTE $0x3e // movzx r14d, word [rsi + r15] + LONG $0x44b70f42; WORD $0x023e // movzx eax, word [rsi + r15 + 2] + LONG $0x54b70f42; WORD $0x043e // movzx edx, word [rsi + r15 + 4] + LONG $0x5cb70f46; WORD $0x063e // movzx r11d, word [rsi + r15 + 6] + LONG $0x54b70f46; WORD $0x083e // movzx r10d, word [rsi + r15 + 8] + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x40c88349 // or r8, 64 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0xc40f4266; WORD $0x0624; BYTE $0x01 // pinsrw xmm4, word [rsi + r8], 1 + LONG $0xc40f4266; WORD $0x0e24; BYTE $0x02 // pinsrw xmm4, word [rsi + r9], 2 + LONG $0xc40f4266; WORD $0x2624; BYTE $0x03 // pinsrw xmm4, word [rsi + r12], 3 + LONG $0xc40f4266; WORD $0x2e24; BYTE $0x04 // pinsrw xmm4, word [rsi + r13], 4 + LONG $0x24c40f66; WORD $0x050e // pinsrw xmm4, word [rsi + rcx], 5 + LONG $0x24c40f66; WORD $0x063e // pinsrw xmm4, word [rsi + rdi], 6 + LONG $0x24c40f66; WORD $0x071e // pinsrw xmm4, word [rsi + rbx], 7 + LONG $0x74b70f46; WORD $0x0a3e // movzx r14d, word [rsi + r15 + 10] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x01020674c40f4266 // pinsrw xmm6, word [rsi + r8 + 2], 1 + QUAD $0x02020e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 2], 2 + QUAD $0x03022674c40f4266 // pinsrw xmm6, word [rsi + r12 + 2], 3 + LONG $0x44b70f42; WORD $0x0c3e // movzx eax, word [rsi + r15 + 12] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x04022e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 2], 4 + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x54b70f42; WORD $0x0e3e // movzx edx, word [rsi + r15 + 14] + LONG $0x74c40f66; WORD $0x020e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 2], 5 + LONG $0x6e0f4166; BYTE $0xeb // movd xmm5, r11d + LONG $0x44b70f42; WORD $0x103e // movzx eax, word [rsi + r15 + 16] + LONG $0x18244489 // mov dword [rsp + 24], eax + LONG $0x74c40f66; WORD $0x023e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 2], 6 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x44b70f42; WORD $0x123e // movzx eax, word [rsi + r15 + 18] + LONG $0x30244489 // mov dword [rsp + 48], eax + LONG $0x74c40f66; WORD $0x021e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 2], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xcef80f66 // psubb xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf6 // movd xmm6, r14d + LONG $0x5cb70f46; WORD $0x143e // movzx r11d, word [rsi + r15 + 20] + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0x01040654c40f4266 // pinsrw xmm2, word [rsi + r8 + 4], 1 + QUAD $0x02040e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 4], 2 + QUAD $0x03042654c40f4266 // pinsrw xmm2, word [rsi + r12 + 4], 3 + QUAD $0x04042e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 4], 7 + QUAD $0x0106066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 6], 1 + QUAD $0x02060e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 6], 2 + QUAD $0x0306266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 6], 3 + QUAD $0x04062e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 6], 4 + LONG $0x6cc40f66; WORD $0x060e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 6], 5 + LONG $0x6cc40f66; WORD $0x063e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 6], 6 + LONG $0x6cc40f66; WORD $0x061e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 6], 7 + QUAD $0x0108065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 8], 1 + QUAD $0x02080e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 8], 2 + QUAD $0x0308265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 8], 3 + QUAD $0x04082e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 8], 4 + LONG $0x5cc40f66; WORD $0x080e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 8], 5 + LONG $0x5cc40f66; WORD $0x083e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 8], 6 + LONG $0x5cc40f66; WORD $0x081e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 8], 7 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x44b70f42; WORD $0x163e // movzx eax, word [rsi + r15 + 22] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0xdb0f4166; BYTE $0xd1 // pand xmm2, xmm9 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x54b70f42; WORD $0x183e // movzx edx, word [rsi + r15 + 24] + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0x4c6e0f66; WORD $0x1824 // movd xmm1, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x1a3e // movzx r10d, word [rsi + r15 + 26] + QUAD $0x010a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 10], 1 + QUAD $0x020a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 10], 2 + QUAD $0x030a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 10], 3 + QUAD $0x040a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 10], 4 + LONG $0x74c40f66; WORD $0x0a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 10], 5 + LONG $0x74c40f66; WORD $0x0a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 10], 6 + LONG $0x74c40f66; WORD $0x0a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 10], 7 + QUAD $0x010c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 12], 1 + QUAD $0x020c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 12], 2 + QUAD $0x030c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 12], 3 + QUAD $0x040c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 12], 4 + LONG $0x7cc40f66; WORD $0x0c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 12], 5 + LONG $0x7cc40f66; WORD $0x0c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 12], 6 + LONG $0x7cc40f66; WORD $0x0c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 12], 7 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4466; WORD $0x2444; BYTE $0x30 // movd xmm8, dword [rsp + 48] + LONG $0x74b70f46; WORD $0x1c3e // movzx r14d, word [rsi + r15 + 28] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xeb // movd xmm5, r11d + LONG $0x5cb70f46; WORD $0x1e3e // movzx r11d, word [rsi + r15 + 30] + QUAD $0x010e0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 14], 1 + QUAD $0x020e0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 14], 2 + QUAD $0x030e2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 14], 3 + QUAD $0x040e2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 14], 4 + LONG $0x64c40f66; WORD $0x0e0e; BYTE $0x05 // pinsrw xmm4, word [rsi + rcx + 14], 5 + LONG $0x64c40f66; WORD $0x0e3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 14], 6 + LONG $0x64c40f66; WORD $0x0e1e; BYTE $0x07 // pinsrw xmm4, word [rsi + rbx + 14], 7 + QUAD $0x01120644c40f4666 // pinsrw xmm8, word [rsi + r8 + 18], 1 + QUAD $0x02120e44c40f4666 // pinsrw xmm8, word [rsi + r9 + 18], 2 + QUAD $0x03122644c40f4666 // pinsrw xmm8, word [rsi + r12 + 18], 3 + QUAD $0x04122e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 18], 4 + QUAD $0x05120e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 18], 5 + QUAD $0x06123e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 18], 6 + QUAD $0x07121e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 18], 7 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x203e // movzx eax, word [rsi + r15 + 32] + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x750f4466; BYTE $0xc0 // pcmpeqw xmm8, xmm0 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf80f4166; BYTE $0xf8 // psubb xmm7, xmm8 + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x54b70f42; WORD $0x223e // movzx edx, word [rsi + r15 + 34] + LONG $0x20245489 // mov dword [rsp + 32], edx + QUAD $0x0110064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 16], 1 + QUAD $0x02100e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 16], 2 + QUAD $0x0310264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 16], 3 + QUAD $0x04102e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 16], 4 + LONG $0x4cc40f66; WORD $0x100e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 16], 5 + LONG $0x4cc40f66; WORD $0x103e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 16], 6 + LONG $0x4cc40f66; WORD $0x101e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 16], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x54b70f46; WORD $0x243e // movzx r10d, word [rsi + r15 + 36] + QUAD $0x0114066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 20], 1 + QUAD $0x02140e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 20], 2 + QUAD $0x0314266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 20], 3 + QUAD $0x04142e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 20], 4 + LONG $0x6cc40f66; WORD $0x140e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 20], 5 + LONG $0x6cc40f66; WORD $0x143e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 20], 6 + LONG $0x6cc40f66; WORD $0x141e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 20], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe9 // pand xmm5, xmm9 + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6e0f4166; BYTE $0xfe // movd xmm7, r14d + LONG $0x54b70f42; WORD $0x263e // movzx edx, word [rsi + r15 + 38] + LONG $0x18245489 // mov dword [rsp + 24], edx + QUAD $0x01160654c40f4266 // pinsrw xmm2, word [rsi + r8 + 22], 1 + QUAD $0x02160e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 22], 2 + QUAD $0x03162654c40f4266 // pinsrw xmm2, word [rsi + r12 + 22], 3 + QUAD $0x04162e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 22], 4 + LONG $0x54c40f66; WORD $0x160e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 22], 5 + LONG $0x54c40f66; WORD $0x163e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 22], 6 + LONG $0x54c40f66; WORD $0x161e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 22], 7 + QUAD $0x0118065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 24], 1 + QUAD $0x02180e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 24], 2 + QUAD $0x0318265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 24], 3 + QUAD $0x04182e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 24], 4 + LONG $0x5cc40f66; WORD $0x180e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 24], 5 + LONG $0x5cc40f66; WORD $0x183e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 24], 6 + LONG $0x5cc40f66; WORD $0x181e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 24], 7 + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x74b70f46; WORD $0x283e // movzx r14d, word [rsi + r15 + 40] + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x5cb70f46; WORD $0x2a3e // movzx r11d, word [rsi + r15 + 42] + QUAD $0x011a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 26], 1 + QUAD $0x021a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 26], 2 + QUAD $0x031a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 26], 3 + QUAD $0x041a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 26], 4 + LONG $0x74c40f66; WORD $0x1a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 26], 5 + LONG $0x74c40f66; WORD $0x1a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 26], 6 + LONG $0x74c40f66; WORD $0x1a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 26], 7 + QUAD $0x011c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 28], 1 + QUAD $0x021c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 28], 2 + QUAD $0x031c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 28], 3 + QUAD $0x041c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 28], 4 + LONG $0x7cc40f66; WORD $0x1c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 28], 5 + LONG $0x7cc40f66; WORD $0x1c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 28], 6 + LONG $0x7cc40f66; WORD $0x1c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 28], 7 + QUAD $0x011e0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 30], 1 + QUAD $0x021e0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 30], 2 + QUAD $0x031e2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 30], 3 + QUAD $0x041e2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 30], 4 + LONG $0x54c40f66; WORD $0x1e0e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 30], 5 + LONG $0x54c40f66; WORD $0x1e3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 30], 6 + LONG $0x54c40f66; WORD $0x1e1e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 30], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x54b70f42; WORD $0x2c3e // movzx edx, word [rsi + r15 + 44] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x44b70f42; WORD $0x2e3e // movzx eax, word [rsi + r15 + 46] + QUAD $0x0120066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 32], 1 + QUAD $0x02200e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 32], 2 + QUAD $0x0320266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 32], 3 + QUAD $0x04202e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 32], 4 + LONG $0x6cc40f66; WORD $0x200e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 32], 5 + LONG $0x6cc40f66; WORD $0x203e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 32], 6 + QUAD $0x0122064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 34], 1 + QUAD $0x02220e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 34], 2 + QUAD $0x0322264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 34], 3 + QUAD $0x04222e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 34], 4 + LONG $0x4cc40f66; WORD $0x220e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 34], 5 + LONG $0x4cc40f66; WORD $0x223e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 34], 6 + LONG $0x4cc40f66; WORD $0x221e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 34], 7 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0x5c6e0f66; WORD $0x1824 // movd xmm3, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x303e // movzx r10d, word [rsi + r15 + 48] + LONG $0x6cc40f66; WORD $0x201e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 32], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x01240674c40f4266 // pinsrw xmm6, word [rsi + r8 + 36], 1 + QUAD $0x02240e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 36], 2 + QUAD $0x03242674c40f4266 // pinsrw xmm6, word [rsi + r12 + 36], 3 + QUAD $0x04242e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 36], 4 + LONG $0x74c40f66; WORD $0x240e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 36], 5 + LONG $0x74c40f66; WORD $0x243e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 36], 6 + LONG $0x74c40f66; WORD $0x241e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 36], 7 + QUAD $0x0126065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 38], 1 + QUAD $0x02260e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 38], 2 + QUAD $0x0326265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 38], 3 + QUAD $0x04262e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 38], 4 + LONG $0x5cc40f66; WORD $0x260e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 38], 5 + LONG $0x5cc40f66; WORD $0x263e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 38], 6 + LONG $0x5cc40f66; WORD $0x261e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 38], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6e0f4166; BYTE $0xee // movd xmm5, r14d + QUAD $0x0128066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 40], 1 + QUAD $0x02280e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 40], 2 + QUAD $0x0328266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 40], 3 + QUAD $0x04282e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 40], 4 + LONG $0x6cc40f66; WORD $0x280e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 40], 5 + LONG $0x6cc40f66; WORD $0x283e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 40], 6 + LONG $0x74b70f46; WORD $0x323e // movzx r14d, word [rsi + r15 + 50] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x5cb70f46; WORD $0x343e // movzx r11d, word [rsi + r15 + 52] + LONG $0x6cc40f66; WORD $0x281e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 40], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0xdb0f4166; BYTE $0xda // pand xmm3, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xebeb0f66 // por xmm5, xmm3 + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0x54b70f42; WORD $0x363e // movzx edx, word [rsi + r15 + 54] + QUAD $0x012a064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 42], 1 + QUAD $0x022a0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 42], 2 + QUAD $0x032a264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 42], 3 + QUAD $0x042a2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 42], 4 + LONG $0x4cc40f66; WORD $0x2a0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 42], 5 + LONG $0x4cc40f66; WORD $0x2a3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 42], 6 + LONG $0x4cc40f66; WORD $0x2a1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 42], 7 + QUAD $0x012c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 44], 1 + QUAD $0x022c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 44], 2 + QUAD $0x032c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 44], 3 + QUAD $0x042c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 44], 4 + LONG $0x7cc40f66; WORD $0x2c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 44], 5 + LONG $0x7cc40f66; WORD $0x2c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 44], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x44b70f42; WORD $0x383e // movzx eax, word [rsi + r15 + 56] + LONG $0x7cc40f66; WORD $0x2c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 44], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x05 // psllw xmm1, 5 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x54b70f46; WORD $0x3a3e // movzx r10d, word [rsi + r15 + 58] + QUAD $0x012e065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 46], 1 + QUAD $0x022e0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 46], 2 + QUAD $0x032e265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 46], 3 + QUAD $0x042e2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 46], 4 + LONG $0x5cc40f66; WORD $0x2e0e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 46], 5 + LONG $0x5cc40f66; WORD $0x2e3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 46], 6 + LONG $0x5cc40f66; WORD $0x2e1e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 46], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdfeb0f66 // por xmm3, xmm7 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + LONG $0x74b70f46; WORD $0x3c3e // movzx r14d, word [rsi + r15 + 60] + LONG $0x7cb70f46; WORD $0x3e3e // movzx r15d, word [rsi + r15 + 62] + QUAD $0x0132064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 50], 1 + QUAD $0x02320e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 50], 2 + QUAD $0x0332264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 50], 3 + QUAD $0x04322e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x320e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 50], 5 + LONG $0x4cc40f66; WORD $0x323e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 50], 6 + LONG $0x4cc40f66; WORD $0x321e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 50], 7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + QUAD $0x01300674c40f4266 // pinsrw xmm6, word [rsi + r8 + 48], 1 + QUAD $0x02300e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 48], 2 + QUAD $0x03302674c40f4266 // pinsrw xmm6, word [rsi + r12 + 48], 3 + QUAD $0x04302e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 48], 4 + LONG $0x74c40f66; WORD $0x300e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 48], 5 + LONG $0x74c40f66; WORD $0x303e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 48], 6 + LONG $0x74c40f66; WORD $0x301e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 48], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x0134064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 52], 1 + QUAD $0x02340e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 52], 2 + QUAD $0x0334264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 52], 3 + QUAD $0x04342e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 52], 4 + LONG $0x4cc40f66; WORD $0x340e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 52], 5 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x4cc40f66; WORD $0x343e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 52], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x4cc40f66; WORD $0x341e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 52], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x02 // psllw xmm1, 2 + LONG $0xdb0f4166; BYTE $0xc9 // pand xmm1, xmm9 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + QUAD $0x01360674c40f4266 // pinsrw xmm6, word [rsi + r8 + 54], 1 + QUAD $0x02360e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 54], 2 + QUAD $0x03362674c40f4266 // pinsrw xmm6, word [rsi + r12 + 54], 3 + QUAD $0x04362e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 54], 7 + QUAD $0x0138066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 56], 1 + QUAD $0x02380e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 56], 2 + QUAD $0x0338266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 56], 3 + QUAD $0x04382e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 56], 4 + LONG $0x6cc40f66; WORD $0x380e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 56], 5 + LONG $0x6cc40f66; WORD $0x383e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 56], 6 + LONG $0x6cc40f66; WORD $0x381e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 56], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x03 // psllw xmm6, 3 + LONG $0xdb0f4166; BYTE $0xf2 // pand xmm6, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + QUAD $0x013a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 58], 1 + QUAD $0x023a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 58], 2 + QUAD $0x033a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 58], 3 + QUAD $0x043a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 58], 4 + LONG $0x74c40f66; WORD $0x3a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 58], 5 + LONG $0x74c40f66; WORD $0x3a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 58], 6 + LONG $0x74c40f66; WORD $0x3a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 58], 7 + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + QUAD $0x013c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 60], 1 + QUAD $0x023c0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 60], 2 + QUAD $0x033c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 60], 3 + QUAD $0x043c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 60], 4 + LONG $0x4cc40f66; WORD $0x3c0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 60], 5 + LONG $0x4cc40f66; WORD $0x3c3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 60], 6 + LONG $0x4cc40f66; WORD $0x3c1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 60], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x06 // psllw xmm1, 6 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf7 // movd xmm6, r15d + QUAD $0x013e0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 62], 1 + QUAD $0x023e0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 62], 2 + QUAD $0x033e2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 62], 3 + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + QUAD $0x043e2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 62], 4 + LONG $0x74c40f66; WORD $0x3e0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 62], 5 + LONG $0x74c40f66; WORD $0x3e3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 62], 6 + LONG $0x74c40f66; WORD $0x3e1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 62], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0xdb0f4166; BYTE $0xf6 // pand xmm6, xmm14 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + QUAD $0x00000090bd6f0f66 // movdqa xmm7, oword 144[rbp] /* [rip + .LCPI1_9] */ + LONG $0x00380f66; BYTE $0xef // pshufb xmm5, xmm7 + LONG $0x00380f66; BYTE $0xcf // pshufb xmm1, xmm7 + LONG $0xcd610f66 // punpcklwd xmm1, xmm5 + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe2600f66 // punpcklbw xmm4, xmm2 + LONG $0xe3610f66 // punpcklwd xmm4, xmm3 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x10 // cmp rcx, qword [rsp + 16] + JNE LBB1_134 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + LONG $0x247c3b4c; BYTE $0x10 // cmp r15, qword [rsp + 16] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x38 // mov r13d, dword [rsp + 56] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + JNE LBB1_136 + JMP LBB1_139 + +LBB1_184: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xf3 // add rbx, rsi + LONG $0x863c8d4f // lea r15, [r14 + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc68148; WORD $0x0001; BYTE $0x00 // add rsi, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI1_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI1_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI1_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI1_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI1_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI1_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI1_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI1_7] */ + +LBB1_185: + QUAD $0xfffffe04b6100ff3 // movss xmm6, dword [rsi - 508] + QUAD $0xfffffe08be100ff3 // movss xmm7, dword [rsi - 504] + QUAD $0xfffffe0cae100ff3 // movss xmm5, dword [rsi - 500] + QUAD $0xfffffe10a6100ff3 // movss xmm4, dword [rsi - 496] + QUAD $0xfffe84b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 380], 16 + QUAD $0xffff04b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 252], 32 + LONG $0x213a0f66; WORD $0x8476; BYTE $0x30 // insertps xmm6, dword [rsi - 124], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfffe88be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 376], 16 + QUAD $0xffff08be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 248], 32 + LONG $0x213a0f66; WORD $0x887e; BYTE $0x30 // insertps xmm7, dword [rsi - 120], 48 + QUAD $0xfffe8cae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 372], 16 + QUAD $0xffff0cae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 244], 32 + LONG $0x213a0f66; WORD $0x8c6e; BYTE $0x30 // insertps xmm5, dword [rsi - 116], 48 + QUAD $0xfffe90a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 368], 16 + QUAD $0xffff10a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 240], 32 + LONG $0x213a0f66; WORD $0x9066; BYTE $0x30 // insertps xmm4, dword [rsi - 112], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffffe14be100ff3 // movss xmm7, dword [rsi - 492] + QUAD $0xfffe94be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 364], 16 + QUAD $0xffff14be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 236], 32 + LONG $0x213a0f66; WORD $0x947e; BYTE $0x30 // insertps xmm7, dword [rsi - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe18b6100ff3 // movss xmm6, dword [rsi - 488] + QUAD $0xfffe98b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 360], 16 + QUAD $0xffff18b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 232], 32 + LONG $0x213a0f66; WORD $0x9876; BYTE $0x30 // insertps xmm6, dword [rsi - 104], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe1c9e100ff3 // movss xmm3, dword [rsi - 484] + QUAD $0xfffe9c9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 356], 16 + QUAD $0xffff1c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 228], 32 + LONG $0x213a0f66; WORD $0x9c5e; BYTE $0x30 // insertps xmm3, dword [rsi - 100], 48 + LONG $0x00e1c20f // cmpeqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffffe20a6100ff3 // movss xmm4, dword [rsi - 480] + QUAD $0xfffea0a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 352], 16 + QUAD $0xffff20a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 224], 32 + LONG $0x213a0f66; WORD $0xa066; BYTE $0x30 // insertps xmm4, dword [rsi - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe24ae100ff3 // movss xmm5, dword [rsi - 476] + QUAD $0xfffea4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 348], 16 + QUAD $0xffff24ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 220], 32 + LONG $0x213a0f66; WORD $0xa46e; BYTE $0x30 // insertps xmm5, dword [rsi - 92], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe2896100ff3 // movss xmm2, dword [rsi - 472] + QUAD $0xfffea896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 344], 16 + QUAD $0xffff2896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 216], 32 + LONG $0x213a0f66; WORD $0xa856; BYTE $0x30 // insertps xmm2, dword [rsi - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x00e1c20f // cmpeqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffffe2c9e100ff3 // movss xmm3, dword [rsi - 468] + QUAD $0xfffeac9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 340], 16 + QUAD $0xffff2c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0x213a0f66; WORD $0xac5e; BYTE $0x30 // insertps xmm3, dword [rsi - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe30be100ff3 // movss xmm7, dword [rsi - 464] + QUAD $0xfffeb0be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 336], 16 + QUAD $0xffff30be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 208], 32 + LONG $0x213a0f66; WORD $0xb07e; BYTE $0x30 // insertps xmm7, dword [rsi - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe34ae100ff3 // movss xmm5, dword [rsi - 460] + QUAD $0xfffeb4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 332], 16 + QUAD $0xffff34ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 204], 32 + LONG $0x213a0f66; WORD $0xb46e; BYTE $0x30 // insertps xmm5, dword [rsi - 76], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe38b6100ff3 // movss xmm6, dword [rsi - 456] + QUAD $0xfffeb8b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 328], 16 + QUAD $0xffff38b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 200], 32 + LONG $0x213a0f66; WORD $0xb876; BYTE $0x30 // insertps xmm6, dword [rsi - 72], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffffe3c96100ff3 // movss xmm2, dword [rsi - 452] + QUAD $0xfffebc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 324], 16 + QUAD $0xffff3c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 196], 32 + LONG $0x213a0f66; WORD $0xbc56; BYTE $0x30 // insertps xmm2, dword [rsi - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffffe40be100ff3 // movss xmm7, dword [rsi - 448] + QUAD $0xfffec0be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 320], 16 + QUAD $0xffff40be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 192], 32 + LONG $0x213a0f66; WORD $0xc07e; BYTE $0x30 // insertps xmm7, dword [rsi - 64], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe44b6100ff3 // movss xmm6, dword [rsi - 444] + QUAD $0xfffec4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 316], 16 + QUAD $0xffff44b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 188], 32 + LONG $0x213a0f66; WORD $0xc476; BYTE $0x30 // insertps xmm6, dword [rsi - 60], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffffe4896100ff3 // movss xmm2, dword [rsi - 440] + QUAD $0xfffec896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 312], 16 + QUAD $0xffff4896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 184], 32 + LONG $0x213a0f66; WORD $0xc856; BYTE $0x30 // insertps xmm2, dword [rsi - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe4c9e100ff3 // movss xmm3, dword [rsi - 436] + QUAD $0xfffecc9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 308], 16 + QUAD $0xffff4c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x213a0f66; WORD $0xcc5e; BYTE $0x30 // insertps xmm3, dword [rsi - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffffe50ae100ff3 // movss xmm5, dword [rsi - 432] + QUAD $0xfffed0ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 304], 16 + QUAD $0xffff50ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 176], 32 + LONG $0x213a0f66; WORD $0xd06e; BYTE $0x30 // insertps xmm5, dword [rsi - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffffe54b6100ff3 // movss xmm6, dword [rsi - 428] + QUAD $0xfffed4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 300], 16 + QUAD $0xffff54b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 172], 32 + LONG $0x213a0f66; WORD $0xd476; BYTE $0x30 // insertps xmm6, dword [rsi - 44], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffffe58be100ff3 // movss xmm7, dword [rsi - 424] + QUAD $0xfffed8be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 296], 16 + QUAD $0xffff58be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 168], 32 + LONG $0x213a0f66; WORD $0xd87e; BYTE $0x30 // insertps xmm7, dword [rsi - 40], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe5c96100ff3 // movss xmm2, dword [rsi - 420] + QUAD $0xfffedc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 292], 16 + QUAD $0xffff5c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 164], 32 + LONG $0x213a0f66; WORD $0xdc56; BYTE $0x30 // insertps xmm2, dword [rsi - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe60ae100ff3 // movss xmm5, dword [rsi - 416] + QUAD $0xfffee0ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 288], 16 + QUAD $0xffff60ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 160], 32 + LONG $0x213a0f66; WORD $0xe06e; BYTE $0x30 // insertps xmm5, dword [rsi - 32], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe64be100ff3 // movss xmm7, dword [rsi - 412] + QUAD $0xfffee4be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 284], 16 + QUAD $0xffff64be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 156], 32 + LONG $0x213a0f66; WORD $0xe47e; BYTE $0x30 // insertps xmm7, dword [rsi - 28], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe6896100ff3 // movss xmm2, dword [rsi - 408] + QUAD $0xfffee896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 280], 16 + QUAD $0xffff6896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0x213a0f66; WORD $0xe856; BYTE $0x30 // insertps xmm2, dword [rsi - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe6c9e100ff3 // movss xmm3, dword [rsi - 404] + QUAD $0xfffeec9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 276], 16 + QUAD $0xffff6c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 148], 32 + LONG $0x213a0f66; WORD $0xec5e; BYTE $0x30 // insertps xmm3, dword [rsi - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffffe7096100ff3 // movss xmm2, dword [rsi - 400] + QUAD $0xfffef096213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 272], 16 + QUAD $0xffff7096213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 144], 32 + LONG $0x213a0f66; WORD $0xf056; BYTE $0x30 // insertps xmm2, dword [rsi - 16], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe74b6100ff3 // movss xmm6, dword [rsi - 396] + QUAD $0xfffef4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 268], 16 + QUAD $0xffff74b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 140], 32 + LONG $0x213a0f66; WORD $0xf476; BYTE $0x30 // insertps xmm6, dword [rsi - 12], 48 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffffe78be100ff3 // movss xmm7, dword [rsi - 392] + QUAD $0xfffef8be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 264], 16 + QUAD $0xffff78be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 136], 32 + LONG $0x213a0f66; WORD $0xf87e; BYTE $0x30 // insertps xmm7, dword [rsi - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe7c96100ff3 // movss xmm2, dword [rsi - 388] + QUAD $0xfffefc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 260], 16 + QUAD $0xffff7c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 132], 32 + LONG $0x213a0f66; WORD $0xfc56; BYTE $0x30 // insertps xmm2, dword [rsi - 4], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe809e100ff3 // movss xmm3, dword [rsi - 384] + QUAD $0xffff009e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 256], 16 + LONG $0x213a0f66; WORD $0x805e; BYTE $0x20 // insertps xmm3, dword [rsi - 128], 32 + LONG $0x213a0f66; WORD $0x301e // insertps xmm3, dword [rsi], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c68148; WORD $0x0002; BYTE $0x00 // add rsi, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB1_185 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB1_187 + JMP LBB1_190 + +DATA LCDATA2<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA2<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA2<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA2<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA2<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA2<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA2<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA2<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA2<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA2<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA2<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA2<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA2<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA2<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA2<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA2<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA2<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA2<>+0x090(SB)/8, $0x0f070e060d050c04 +DATA LCDATA2<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA2<>+0x0a0(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x0a8(SB)/8, $0x0101010101010101 +DATA LCDATA2<>+0x0b0(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x0b8(SB)/8, $0x0404040404040404 +DATA LCDATA2<>+0x0c0(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x0c8(SB)/8, $0x0808080808080808 +DATA LCDATA2<>+0x0d0(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x0d8(SB)/8, $0x1010101010101010 +DATA LCDATA2<>+0x0e0(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x0e8(SB)/8, $0x2020202020202020 +DATA LCDATA2<>+0x0f0(SB)/8, $0x4040404040404040 +DATA LCDATA2<>+0x0f8(SB)/8, $0x4040404040404040 +GLOBL LCDATA2<>(SB), 8, $256 + +TEXT ·_comparison_equal_scalar_arr_sse4(SB), $328-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 304(SP) + LEAQ LCDATA2<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0x240c8948 // mov qword [rsp], rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB2_17 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB2_32 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB2_83 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB2_95 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB2_176 + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x240c8b4c // mov r9, qword [rsp] + +LBB2_7: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x31 // movzx r8d, byte [r9 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x313c8841 // mov byte [r9 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_7 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_9: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_13 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + +LBB2_11: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7940f40 // sete dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6940f40 // sete sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0940f41 // sete r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc689 // mov esi, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc789 // mov edi, eax + LONG $0x24048b48 // mov rax, qword [rsp] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + LONG $0x24348b48 // mov rsi, qword [rsp] + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_11 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB2_13: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB2_82 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_16: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_16 + JMP LBB2_152 + +LBB2_17: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB2_46 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB2_107 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB2_118 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB2_176 + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_25 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_23: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_23 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_25: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_29 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + +LBB2_27: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0xd0940f41 // sete r8b + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0xd3940f41 // sete r11b + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0xd5940f41 // sete r13b + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd6940f41 // sete r14b + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0xd7940f40 // sete dil + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + QUAD $0x000000802494940f // sete byte [rsp + 128] + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000a024840244 // add r8b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xc6 // or r14b, al + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000b024b40240 // add sil, byte [rsp + 176] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x24048b4c // mov r8, qword [rsp] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc3 // mov r11d, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x78 // movzx esi, byte [rsp + 120] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc6 // or r14b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc689 // mov esi, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x30 // mov byte [r8], r14b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x01488841 // mov byte [r8 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x02788845 // mov byte [r8 + 2], r15b + LONG $0x03588841 // mov byte [r8 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c08349 // add r8, 4 + LONG $0x2404894c // mov qword [rsp], r8 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB2_27 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + +LBB2_29: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_161 + WORD $0xff31 // xor edi, edi + JMP LBB2_163 + +LBB2_32: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB2_60 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB2_176 + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_38 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_36: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_36 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_38: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_130 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x24748844; BYTE $0x08 // mov byte [rsp + 8], r14b + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x000000f024bc894c // mov qword [rsp + 240], r15 + JB LBB2_42 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24043948 // cmp qword [rsp], rax + JAE LBB2_185 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB2_185 + +LBB2_42: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + +LBB2_43: + QUAD $0x000000e824bc2b4c // sub r15, qword [rsp + 232] + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB2_44: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3a44; BYTE $0x36 // cmp r14b, byte [rsi] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x01763a44 // cmp r14b, byte [rsi + 1] + LONG $0xd7940f40 // sete dil + LONG $0x02763a44 // cmp r14b, byte [rsi + 2] + LONG $0xd3940f41 // sete r11b + LONG $0x03763a44 // cmp r14b, byte [rsi + 3] + LONG $0xd7940f41 // sete r15b + LONG $0x04763a44 // cmp r14b, byte [rsi + 4] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x05763a44 // cmp r14b, byte [rsi + 5] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x06763a44 // cmp r14b, byte [rsi + 6] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x07763a44 // cmp r14b, byte [rsi + 7] + LONG $0xd5940f41 // sete r13b + LONG $0x08763a44 // cmp r14b, byte [rsi + 8] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x09763a44 // cmp r14b, byte [rsi + 9] + LONG $0xd6940f40 // sete sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd0940f41 // sete r8b + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd1940f41 // sete r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0d // cmp al, byte [rcx + 13] + LONG $0xd4940f41 // sete r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0e // cmp al, byte [rcx + 14] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0f // cmp al, byte [rcx + 15] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x10 // cmp dl, byte [rcx + 16] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x11 // cmp dl, byte [rcx + 17] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x12 // cmp dl, byte [rcx + 18] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x13 // cmp dl, byte [rcx + 19] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x14 // cmp dl, byte [rcx + 20] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x15 // cmp dl, byte [rcx + 21] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x16 // cmp dl, byte [rcx + 22] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x17 // cmp dl, byte [rcx + 23] + LONG $0xd2940f41 // sete r10b + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + LONG $0x2414940f // sete byte [rsp] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0841; BYTE $0xfb // or r11b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000a0249cb60f // movzx ebx, byte [rsp + 160] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xfb // or bl, r15b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x74b60f44; WORD $0x0824 // movzx r14d, byte [rsp + 8] + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x0841; BYTE $0xdd // or r13b, bl + WORD $0x0844; BYTE $0xe0 // or al, r12b + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xdb00 // add bl, bl + LONG $0x78245c02 // add bl, byte [rsp + 120] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + WORD $0x8844; BYTE $0x2f // mov byte [rdi], r13b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xf2 // or r10b, sil + WORD $0x4788; BYTE $0x01 // mov byte [rdi + 1], al + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x38244402 // add al, byte [rsp + 56] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02578844 // mov byte [rdi + 2], r10b + WORD $0x5788; BYTE $0x03 // mov byte [rdi + 3], dl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c78348 // add rdi, 4 + LONG $0x247c8948; BYTE $0x68 // mov qword [rsp + 104], rdi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_44 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + JMP LBB2_131 + +LBB2_46: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB2_72 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB2_176 + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x240c8b4c // mov r9, qword [rsp] + +LBB2_50: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x31 // movzx r8d, byte [r9 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x313c8841 // mov byte [r9 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_50 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_52: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_56 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + +LBB2_54: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7940f40 // sete dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3940f41 // sete r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0940f41 // sete r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc689 // mov esi, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc789 // mov edi, eax + LONG $0x24048b48 // mov rax, qword [rsp] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + LONG $0x24348b48 // mov rsi, qword [rsp] + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_54 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB2_56: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JE LBB2_117 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_59: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_59 + JMP LBB2_167 + +LBB2_60: + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_64 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_62: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_62 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_64: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_134 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x24748844; BYTE $0x08 // mov byte [rsp + 8], r14b + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x000000f024bc894c // mov qword [rsp + 240], r15 + JB LBB2_68 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24043948 // cmp qword [rsp], rax + JAE LBB2_188 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB2_188 + +LBB2_68: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + +LBB2_69: + QUAD $0x000000e824bc2b4c // sub r15, qword [rsp + 232] + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB2_70: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3a44; BYTE $0x36 // cmp r14b, byte [rsi] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x01763a44 // cmp r14b, byte [rsi + 1] + LONG $0xd7940f40 // sete dil + LONG $0x02763a44 // cmp r14b, byte [rsi + 2] + LONG $0xd3940f41 // sete r11b + LONG $0x03763a44 // cmp r14b, byte [rsi + 3] + LONG $0xd7940f41 // sete r15b + LONG $0x04763a44 // cmp r14b, byte [rsi + 4] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x05763a44 // cmp r14b, byte [rsi + 5] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x06763a44 // cmp r14b, byte [rsi + 6] + WORD $0x940f; BYTE $0xd3 // sete bl + LONG $0x07763a44 // cmp r14b, byte [rsi + 7] + LONG $0xd5940f41 // sete r13b + LONG $0x08763a44 // cmp r14b, byte [rsi + 8] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x09763a44 // cmp r14b, byte [rsi + 9] + LONG $0xd6940f40 // sete sil + LONG $0x0a713a44 // cmp r14b, byte [rcx + 10] + LONG $0xd0940f41 // sete r8b + LONG $0x0b713a44 // cmp r14b, byte [rcx + 11] + LONG $0xd1940f41 // sete r9b + LONG $0x0c713a44 // cmp r14b, byte [rcx + 12] + LONG $0xd6940f41 // sete r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0d // cmp al, byte [rcx + 13] + LONG $0xd4940f41 // sete r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0e // cmp al, byte [rcx + 14] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x413a; BYTE $0x0f // cmp al, byte [rcx + 15] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x10 // cmp dl, byte [rcx + 16] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x11 // cmp dl, byte [rcx + 17] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x12 // cmp dl, byte [rcx + 18] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x13 // cmp dl, byte [rcx + 19] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x14 // cmp dl, byte [rcx + 20] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x15 // cmp dl, byte [rcx + 21] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x16 // cmp dl, byte [rcx + 22] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x17 // cmp dl, byte [rcx + 23] + LONG $0xd2940f41 // sete r10b + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + LONG $0x2414940f // sete byte [rsp] + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0841; BYTE $0xfb // or r11b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000a0249cb60f // movzx ebx, byte [rsp + 160] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xfb // or bl, r15b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x74b60f44; WORD $0x0824 // movzx r14d, byte [rsp + 8] + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x0841; BYTE $0xdd // or r13b, bl + WORD $0x0844; BYTE $0xe0 // or al, r12b + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xdb00 // add bl, bl + LONG $0x78245c02 // add bl, byte [rsp + 120] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + WORD $0x8844; BYTE $0x2f // mov byte [rdi], r13b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xf2 // or r10b, sil + WORD $0x4788; BYTE $0x01 // mov byte [rdi + 1], al + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x38244402 // add al, byte [rsp + 56] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02578844 // mov byte [rdi + 2], r10b + WORD $0x5788; BYTE $0x03 // mov byte [rdi + 3], dl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c78348 // add rdi, 4 + LONG $0x247c8948; BYTE $0x68 // mov qword [rsp + 104], rdi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_70 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + JMP LBB2_135 + +LBB2_72: + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x240c8b4c // mov r9, qword [rsp] + +LBB2_74: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x31 // movzx r8d, byte [r9 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x313c8841 // mov byte [r9 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_74 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_76: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_80 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + +LBB2_78: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7940f40 // sete dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6940f40 // sete sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0940f41 // sete r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1940f41 // sete r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc689 // mov esi, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc789 // mov edi, eax + LONG $0x24048b48 // mov rax, qword [rsp] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + LONG $0x24348b48 // mov rsi, qword [rsp] + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_78 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB2_80: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB2_150 + +LBB2_82: + WORD $0xff31 // xor edi, edi + JMP LBB2_152 + +LBB2_83: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_87 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_85: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_85 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_87: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_138 + LONG $0x08fe8349 // cmp r14, 8 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000009824b4894c // mov qword [rsp + 152], r14 + JB LBB2_91 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24043948 // cmp qword [rsp], rax + JAE LBB2_191 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb0048d4a // lea rax, [rax + 4*r14] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB2_191 + +LBB2_91: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + +LBB2_92: + LONG $0x24742b4c; BYTE $0x20 // sub r14, qword [rsp + 32] + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + +LBB2_93: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0xd7940f40 // sete dil + LONG $0x6e3b4466; BYTE $0x04 // cmp r13w, word [rsi + 4] + LONG $0xd6940f41 // sete r14b + LONG $0x6e3b4466; BYTE $0x06 // cmp r13w, word [rsi + 6] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e3b4466; BYTE $0x08 // cmp r13w, word [rsi + 8] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6e3b4466; BYTE $0x0a // cmp r13w, word [rsi + 10] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e3b4466; BYTE $0x0c // cmp r13w, word [rsi + 12] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e3b4466; BYTE $0x0e // cmp r13w, word [rsi + 14] + LONG $0xd2940f41 // sete r10b + LONG $0x6e3b4466; BYTE $0x10 // cmp r13w, word [rsi + 16] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x6e3b4466; BYTE $0x12 // cmp r13w, word [rsi + 18] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e3b4466; BYTE $0x14 // cmp r13w, word [rsi + 20] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x6e3b4466; BYTE $0x16 // cmp r13w, word [rsi + 22] + LONG $0xd6940f40 // sete sil + LONG $0x6b3b4566; BYTE $0x18 // cmp r13w, word [r11 + 24] + LONG $0xd1940f41 // sete r9b + LONG $0x6b3b4566; BYTE $0x1a // cmp r13w, word [r11 + 26] + LONG $0xd4940f41 // sete r12b + LONG $0x6b3b4566; BYTE $0x1c // cmp r13w, word [r11 + 28] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x6b3b4566; BYTE $0x1e // cmp r13w, word [r11 + 30] + LONG $0xd0940f41 // sete r8b + LONG $0x6b3b4566; BYTE $0x20 // cmp r13w, word [r11 + 32] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6b3b4566; BYTE $0x22 // cmp r13w, word [r11 + 34] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6b3b4566; BYTE $0x24 // cmp r13w, word [r11 + 36] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6b3b4566; BYTE $0x26 // cmp r13w, word [r11 + 38] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6b3b4566; BYTE $0x28 // cmp r13w, word [r11 + 40] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6b3b4566; BYTE $0x2a // cmp r13w, word [r11 + 42] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6b3b4566; BYTE $0x2c // cmp r13w, word [r11 + 44] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6b3b4566; BYTE $0x2e // cmp r13w, word [r11 + 46] + LONG $0xd7940f41 // sete r15b + LONG $0x6b3b4566; BYTE $0x30 // cmp r13w, word [r11 + 48] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x6b3b4566; BYTE $0x32 // cmp r13w, word [r11 + 50] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6b3b4566; BYTE $0x34 // cmp r13w, word [r11 + 52] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6b3b4566; BYTE $0x36 // cmp r13w, word [r11 + 54] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6b3b4566; BYTE $0x38 // cmp r13w, word [r11 + 56] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6b3b4566; BYTE $0x3a // cmp r13w, word [r11 + 58] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6b3b4566; BYTE $0x3c // cmp r13w, word [r11 + 60] + LONG $0x2414940f // sete byte [rsp] + LONG $0x6b3b4566; BYTE $0x3e // cmp r13w, word [r11 + 62] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xc2 // or r10b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xc900 // add cl, cl + LONG $0xd0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xca08 // or dl, cl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e1c041 // shl r9b, 4 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0845; BYTE $0xe0 // or r8b, r12b + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xc900 // add cl, cl + LONG $0x48244c02 // add cl, byte [rsp + 72] + WORD $0xca89 // mov edx, ecx + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x8844; BYTE $0x11 // mov byte [rcx], r10b + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x01418844 // mov byte [rcx + 1], r8b + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5988; BYTE $0x03 // mov byte [rcx + 3], bl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_93 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + JMP LBB2_139 + +LBB2_95: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_99 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_97: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_97 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_99: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_142 + LONG $0x08ff8349 // cmp r15, 8 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000009824bc894c // mov qword [rsp + 152], r15 + JB LBB2_103 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24043948 // cmp qword [rsp], rax + JAE LBB2_194 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB2_194 + +LBB2_103: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x24348b4c // mov r14, qword [rsp] + +LBB2_104: + LONG $0x2474894c; BYTE $0x08 // mov qword [rsp + 8], r14 + LONG $0x247c2b4c; BYTE $0x20 // sub r15, qword [rsp + 32] + QUAD $0x0000008824bc894c // mov qword [rsp + 136], r15 + +LBB2_105: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0xd7940f40 // sete dil + LONG $0x6e3b4466; BYTE $0x04 // cmp r13w, word [rsi + 4] + LONG $0xd6940f41 // sete r14b + LONG $0x6e3b4466; BYTE $0x06 // cmp r13w, word [rsi + 6] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x6e3b4466; BYTE $0x08 // cmp r13w, word [rsi + 8] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x6e3b4466; BYTE $0x0a // cmp r13w, word [rsi + 10] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x6e3b4466; BYTE $0x0c // cmp r13w, word [rsi + 12] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x6e3b4466; BYTE $0x0e // cmp r13w, word [rsi + 14] + LONG $0xd2940f41 // sete r10b + LONG $0x6e3b4466; BYTE $0x10 // cmp r13w, word [rsi + 16] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x6e3b4466; BYTE $0x12 // cmp r13w, word [rsi + 18] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x6e3b4466; BYTE $0x14 // cmp r13w, word [rsi + 20] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x6e3b4466; BYTE $0x16 // cmp r13w, word [rsi + 22] + LONG $0xd6940f40 // sete sil + LONG $0x6b3b4566; BYTE $0x18 // cmp r13w, word [r11 + 24] + LONG $0xd1940f41 // sete r9b + LONG $0x6b3b4566; BYTE $0x1a // cmp r13w, word [r11 + 26] + LONG $0xd4940f41 // sete r12b + LONG $0x6b3b4566; BYTE $0x1c // cmp r13w, word [r11 + 28] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x6b3b4566; BYTE $0x1e // cmp r13w, word [r11 + 30] + LONG $0xd0940f41 // sete r8b + LONG $0x6b3b4566; BYTE $0x20 // cmp r13w, word [r11 + 32] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x6b3b4566; BYTE $0x22 // cmp r13w, word [r11 + 34] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x6b3b4566; BYTE $0x24 // cmp r13w, word [r11 + 36] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x6b3b4566; BYTE $0x26 // cmp r13w, word [r11 + 38] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x6b3b4566; BYTE $0x28 // cmp r13w, word [r11 + 40] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x6b3b4566; BYTE $0x2a // cmp r13w, word [r11 + 42] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x6b3b4566; BYTE $0x2c // cmp r13w, word [r11 + 44] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x6b3b4566; BYTE $0x2e // cmp r13w, word [r11 + 46] + LONG $0xd7940f41 // sete r15b + LONG $0x6b3b4566; BYTE $0x30 // cmp r13w, word [r11 + 48] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x6b3b4566; BYTE $0x32 // cmp r13w, word [r11 + 50] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x6b3b4566; BYTE $0x34 // cmp r13w, word [r11 + 52] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6b3b4566; BYTE $0x36 // cmp r13w, word [r11 + 54] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x6b3b4566; BYTE $0x38 // cmp r13w, word [r11 + 56] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x6b3b4566; BYTE $0x3a // cmp r13w, word [r11 + 58] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x6b3b4566; BYTE $0x3c // cmp r13w, word [r11 + 60] + LONG $0x2414940f // sete byte [rsp] + LONG $0x6b3b4566; BYTE $0x3e // cmp r13w, word [r11 + 62] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xc2 // or r10b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xc900 // add cl, cl + LONG $0xd0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xca08 // or dl, cl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e1c041 // shl r9b, 4 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0845; BYTE $0xe0 // or r8b, r12b + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xc900 // add cl, cl + LONG $0x48244c02 // add cl, byte [rsp + 72] + WORD $0xca89 // mov edx, ecx + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x8844; BYTE $0x11 // mov byte [rcx], r10b + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x01418844 // mov byte [rcx + 1], r8b + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5988; BYTE $0x03 // mov byte [rcx + 3], bl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_105 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + LONG $0x24748b4c; BYTE $0x08 // mov r14, qword [rsp + 8] + JMP LBB2_143 + +LBB2_107: + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_111 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x240c8b4c // mov r9, qword [rsp] + +LBB2_109: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x31 // movzx r8d, byte [r9 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x313c8841 // mov byte [r9 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_109 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_111: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_115 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x00000098249c894c // mov qword [rsp + 152], r11 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + +LBB2_113: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000c02494940f // sete byte [rsp + 192] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7940f40 // sete dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6940f41 // sete r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3940f41 // sete r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6940f40 // sete sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0940f41 // sete r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1940f41 // sete r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2940f41 // sete r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4940f41 // sete r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x940f; BYTE $0xd1 // sete cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7940f41 // sete r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000d024b40240 // add sil, byte [rsp + 208] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + WORD $0xc689 // mov esi, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc789 // mov edi, eax + LONG $0x24048b48 // mov rax, qword [rsp] + WORD $0x8844; BYTE $0x18 // mov byte [rax], r11b + LONG $0x24348b48 // mov rsi, qword [rsp] + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + WORD $0xcb08 // or bl, cl + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x5e88; BYTE $0x03 // mov byte [rsi + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x0000008824848348; BYTE $0xff // add qword [rsp + 136], -1 + JNE LBB2_113 + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + +LBB2_115: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB2_165 + +LBB2_117: + WORD $0xff31 // xor edi, edi + JMP LBB2_167 + +LBB2_118: + LONG $0x1f728d4d // lea r14, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xf2490f4d // cmovns r14, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB2_122 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_120: + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x333c8841 // mov byte [r11 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB2_120 + LONG $0x24048348; BYTE $0x01 // add qword [rsp], 1 + +LBB2_122: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB2_146 + LONG $0x04fe8349 // cmp r14, 4 + JB LBB2_126 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24043948 // cmp qword [rsp], rax + JAE LBB2_197 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb0048d4a // lea rax, [rax + 4*r14] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB2_197 + +LBB2_126: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_127: + LONG $0x241c894c // mov qword [rsp], r11 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x0000008824b4894c // mov qword [rsp + 136], r14 + WORD $0x294d; BYTE $0xc6 // sub r14, r8 + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + +LBB2_128: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + QUAD $0x000000a02494940f // sete byte [rsp + 160] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0940f41 // sete r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6940f41 // sete r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5940f41 // sete r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + LONG $0x2454940f; BYTE $0x70 // sete byte [rsp + 112] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454940f; BYTE $0x58 // sete byte [rsp + 88] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x940f; BYTE $0xd0 // sete al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3940f41 // sete r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + QUAD $0x000000b02494940f // sete byte [rsp + 176] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x940f; BYTE $0xd2 // sete dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6940f40 // sete sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd7940f40 // sete dil + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2940f41 // sete r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4940f41 // sete r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + LONG $0x2454940f; BYTE $0x78 // sete byte [rsp + 120] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd1940f41 // sete r9b + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454940f; BYTE $0x48 // sete byte [rsp + 72] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + QUAD $0x000000d02494940f // sete byte [rsp + 208] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + QUAD $0x000000802494940f // sete byte [rsp + 128] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + LONG $0x2454940f; BYTE $0x60 // sete byte [rsp + 96] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454940f; BYTE $0x50 // sete byte [rsp + 80] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + LONG $0x2454940f; BYTE $0x68 // sete byte [rsp + 104] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454940f; BYTE $0x40 // sete byte [rsp + 64] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7940f41 // sete r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454940f; BYTE $0x18 // sete byte [rsp + 24] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454940f; BYTE $0x38 // sete byte [rsp + 56] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454940f; BYTE $0x20 // sete byte [rsp + 32] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454940f; BYTE $0x28 // sete byte [rsp + 40] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454940f; BYTE $0x10 // sete byte [rsp + 16] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454940f; BYTE $0x30 // sete byte [rsp + 48] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + LONG $0x2454940f; BYTE $0x08 // sete byte [rsp + 8] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x940f; BYTE $0xd1 // sete cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000a024840244 // add r8b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x78 // movzx esi, byte [rsp + 120] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xc000 // add al, al + LONG $0x48244402 // add al, byte [rsp + 72] + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24348b48 // mov rsi, qword [rsp] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB2_128 + LONG $0x241c8b4c // mov r11, qword [rsp] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + QUAD $0x0000008824b48b4c // mov r14, qword [rsp + 136] + JMP LBB2_147 + +LBB2_130: + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB2_131: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JE LBB2_137 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + +LBB2_155: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e343a46 // cmp r14b, byte [rsi + r9] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06743a44; BYTE $0x01 // cmp r14b, byte [rsi + rax + 1] + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB2_155 + JMP LBB2_158 + +LBB2_134: + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB2_135: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB2_156 + +LBB2_137: + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + JMP LBB2_160 + +LBB2_138: + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB2_139: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_170 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB2_172 + +LBB2_142: + LONG $0x24348b4c // mov r14, qword [rsp] + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB2_143: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB2_177 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + JMP LBB2_179 + +LBB2_146: + LONG $0x241c8b4c // mov r11, qword [rsp] + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + +LBB2_147: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xd6 // cmp r14, r10 + JGE LBB2_176 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xd6 // add r14, r10 + JNE LBB2_181 + WORD $0xf631 // xor esi, esi + JMP LBB2_183 + +LBB2_150: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_151: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_151 + +LBB2_152: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + JMP LBB2_169 + +LBB2_156: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + +LBB2_157: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e343a46 // cmp r14b, byte [rsi + r9] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06743a44; BYTE $0x01 // cmp r14b, byte [rsi + rax + 1] + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x940f; BYTE $0xd3 // sete bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB2_157 + +LBB2_158: + WORD $0x014c; BYTE $0xce // add rsi, r9 + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + +LBB2_160: + WORD $0x3a44; BYTE $0x36 // cmp r14b, byte [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + JMP LBB2_174 + +LBB2_161: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_162: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_162 + +LBB2_163: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + JMP LBB2_169 + +LBB2_165: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + LONG $0x241c8b4c // mov r11, qword [rsp] + +LBB2_166: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x33 // movzx r9d, byte [r11 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x331c8841 // mov byte [r11 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x33048841 // mov byte [r11 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB2_166 + +LBB2_167: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + +LBB2_169: + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24048b4c // mov r8, qword [rsp] + LONG $0x10348a41 // mov sil, byte [r8 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + JMP LBB2_175 + +LBB2_170: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + +LBB2_171: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3b // movzx r10d, byte [r11 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB2_171 + +LBB2_172: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + +LBB2_174: + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + +LBB2_175: + LONG $0x101c8841 // mov byte [r8 + rdx], bl + +LBB2_176: + MOVQ 304(SP), SP + RET + +LBB2_177: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + +LBB2_178: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xff // mov rdi, r15 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3e // movzx r10d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xf9 // mov ecx, r15d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c78349 // add r15, 2 + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xf9 // cmp r9, r15 + JNE LBB2_178 + +LBB2_179: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xfa // mov rdx, r15 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x163c8a41 // mov dil, byte [r14 + rdx] + LONG $0x07e78041 // and r15b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf9 // mov ecx, r15d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB2_176 + +LBB2_181: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB2_182: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x940f; BYTE $0xd2 // sete dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + LONG $0xd1940f41 // sete r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB2_182 + +LBB2_183: + LONG $0x01c0f641 // test r8b, 1 + JE LBB2_176 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x940f; BYTE $0xd0 // sete al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x133c8a41 // mov dil, byte [r11 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x131c8841 // mov byte [r11 + rdx], bl + JMP LBB2_176 + +LBB2_185: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + QUAD $0x000000e824bc894c // mov qword [rsp + 232], r15 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xc6b60f41 // movzx eax, r14b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + WORD $0xc031 // xor eax, eax + +LBB2_186: + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + LONG $0x05e7c148 // shl rdi, 5 + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + WORD $0x8949; BYTE $0xfa // mov r10, rdi + WORD $0x8949; BYTE $0xfe // mov r14, rdi + WORD $0x8949; BYTE $0xff // mov r15, rdi + WORD $0x8949; BYTE $0xfc // mov r12, rdi + WORD $0x8949; BYTE $0xfb // mov r11, rdi + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + LONG $0x247c8948; BYTE $0x50 // mov qword [rsp + 80], rdi + LONG $0x247c8948; BYTE $0x60 // mov qword [rsp + 96], rdi + LONG $0x3a0cb60f // movzx ecx, byte [rdx + rdi] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x3a4cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rdi + 1] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x3a4cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rdi + 2] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x3a4cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rdi + 3] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x3a4cb60f; BYTE $0x04 // movzx ecx, byte [rdx + rdi + 4] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x3a4cb60f; BYTE $0x05 // movzx ecx, byte [rdx + rdi + 5] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x3a4cb60f; BYTE $0x06 // movzx ecx, byte [rdx + rdi + 6] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x3a4cb60f; BYTE $0x07 // movzx ecx, byte [rdx + rdi + 7] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x3a4cb60f; BYTE $0x08 // movzx ecx, byte [rdx + rdi + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00010024847f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm0 + LONG $0x3a4cb60f; BYTE $0x09 // movzx ecx, byte [rdx + rdi + 9] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x3a4cb60f; BYTE $0x0a // movzx ecx, byte [rdx + rdi + 10] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000a024847f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm0 + LONG $0x3a4cb60f; BYTE $0x0b // movzx ecx, byte [rdx + rdi + 11] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x3a4cb60f; BYTE $0x0c // movzx ecx, byte [rdx + rdi + 12] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x3a4cb60f; BYTE $0x0d // movzx ecx, byte [rdx + rdi + 13] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x3a4cb60f; BYTE $0x0e // movzx ecx, byte [rdx + rdi + 14] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x247c8948; BYTE $0x40 // mov qword [rsp + 64], rdi + WORD $0x8949; BYTE $0xfd // mov r13, rdi + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x18 // mov qword [rsp + 24], r13 + LONG $0x40ce8348 // or rsi, 64 + LONG $0x24748948; BYTE $0x28 // mov qword [rsp + 40], rsi + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0x60c98348 // or rcx, 96 + LONG $0x80ce8149; WORD $0x0000; BYTE $0x00 // or r14, 128 + LONG $0xa0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 160 + LONG $0xc0ca8149; WORD $0x0000; BYTE $0x00 // or r10, 192 + LONG $0xe0cb8149; WORD $0x0000; BYTE $0x00 // or r11, 224 + LONG $0x00cc8149; WORD $0x0001; BYTE $0x00 // or r12, 256 + LONG $0x20c98149; WORD $0x0001; BYTE $0x00 // or r9, 288 + LONG $0x244c894c; BYTE $0x48 // mov qword [rsp + 72], r9 + LONG $0x40cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 320 + LONG $0x245c8948; BYTE $0x78 // mov qword [rsp + 120], rbx + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + LONG $0x60cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 352 + LONG $0x245c8948; BYTE $0x50 // mov qword [rsp + 80], rbx + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + LONG $0x80c88149; WORD $0x0001; BYTE $0x00 // or r8, 384 + LONG $0x2444894c; BYTE $0x60 // mov qword [rsp + 96], r8 + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01e00d48; WORD $0x0000 // or rax, 480 + QUAD $0x012a3c203a0f4666 // pinsrb xmm15, byte [rdx + r13], 1 + QUAD $0x02323c203a0f4466 // pinsrb xmm15, byte [rdx + rsi], 2 + LONG $0x244c8948; BYTE $0x20 // mov qword [rsp + 32], rcx + QUAD $0x030a3c203a0f4466 // pinsrb xmm15, byte [rdx + rcx], 3 + LONG $0x2474894c; BYTE $0x70 // mov qword [rsp + 112], r14 + QUAD $0x04323c203a0f4666 // pinsrb xmm15, byte [rdx + r14], 4 + QUAD $0x0000008024bc894c // mov qword [rsp + 128], r15 + QUAD $0x053a3c203a0f4666 // pinsrb xmm15, byte [rdx + r15], 5 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + QUAD $0x06123c203a0f4666 // pinsrb xmm15, byte [rdx + r10], 6 + WORD $0x894d; BYTE $0xda // mov r10, r11 + LONG $0x245c894c; BYTE $0x58 // mov qword [rsp + 88], r11 + QUAD $0x071a3c203a0f4666 // pinsrb xmm15, byte [rdx + r11], 7 + QUAD $0x08223c203a0f4666 // pinsrb xmm15, byte [rdx + r12], 8 + QUAD $0x090a3c203a0f4666 // pinsrb xmm15, byte [rdx + r9], 9 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x0a2a3c203a0f4666 // pinsrb xmm15, byte [rdx + r13], 10 + QUAD $0x0b1a3c203a0f4466 // pinsrb xmm15, byte [rdx + rbx], 11 + QUAD $0x0c023c203a0f4666 // pinsrb xmm15, byte [rdx + r8], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0d323c203a0f4466 // pinsrb xmm15, byte [rdx + rsi], 13 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0e323c203a0f4466 // pinsrb xmm15, byte [rdx + rsi], 14 + QUAD $0x0f023c203a0f4466 // pinsrb xmm15, byte [rdx + rax], 15 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x011a6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rdx + r11 + 1], 1 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0201326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 1], 2 + QUAD $0x03010a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 1], 3 + QUAD $0x01326c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r14 + 1], 4 + QUAD $0x013a6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rdx + r15 + 1], 5 + QUAD $0x06013a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 1], 6 + QUAD $0x01126c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r10 + 1], 7 + QUAD $0x01226c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r12 + 1], 8 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + QUAD $0x000000c024a4894c // mov qword [rsp + 192], r12 + QUAD $0x010a6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r9 + 1], 9 + QUAD $0x012a6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r13 + 1], 10 + WORD $0x894d; BYTE $0xef // mov r15, r13 + QUAD $0x0b011a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 1], 11 + QUAD $0x01026c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r8 + 1], 12 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x010a6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r9 + 1], 13 + LONG $0x245c8b4c; BYTE $0x10 // mov r11, qword [rsp + 16] + QUAD $0x011a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r11 + 1], 14 + QUAD $0x0f01026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 1], 15 + QUAD $0x00b0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe9 // pcmpeqb xmm5, xmm9 + LONG $0xfd6f0f66 // movdqa xmm7, xmm5 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xfcdb0f66 // pand xmm7, xmm4 + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + LONG $0x74b60f42; WORD $0x0f22 // movzx esi, byte [rdx + r12 + 15] + LONG $0x6e0f4466; BYTE $0xf6 // movd xmm14, esi + LONG $0x740f4566; BYTE $0xf9 // pcmpeqb xmm15, xmm9 + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x020274203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rdx + r8 + 2], 1 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x021274203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rdx + r10 + 2], 2 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x03020a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 2], 3 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x04021a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 2], 4 + QUAD $0x0000008024b48b48 // mov rsi, qword [rsp + 128] + QUAD $0x05023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 5 + QUAD $0x06023a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 2], 6 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x07023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 7 + QUAD $0x023274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r14 + 2], 8 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x022a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r13 + 2], 9 + QUAD $0x023a74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r15 + 2], 10 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x023274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r14 + 2], 11 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x023a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 2], 12 + QUAD $0x020a74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rdx + r9 + 2], 13 + QUAD $0x021a74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r11 + 2], 14 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x0f020274203a0f66 // pinsrb xmm6, byte [rdx + rax + 2], 15 + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0x740f4166; BYTE $0xf1 // pcmpeqb xmm6, xmm9 + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x74b60f42; WORD $0x1022 // movzx esi, byte [rdx + r12 + 16] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + WORD $0x894c; BYTE $0xc6 // mov rsi, r8 + QUAD $0x030254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r8 + 3], 1 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x031254203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r10 + 3], 2 + QUAD $0x03030a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 3], 3 + QUAD $0x04031a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 3], 4 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x05030a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 3], 5 + QUAD $0x0000008824bc8948 // mov qword [rsp + 136], rdi + QUAD $0x06033a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 3], 6 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x030254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r8 + 3], 7 + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + QUAD $0x031254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r10 + 3], 8 + QUAD $0x032a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r13 + 3], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0a031a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 3], 10 + QUAD $0x033254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r14 + 3], 11 + QUAD $0x033a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 3], 12 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x032254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 3], 13 + QUAD $0x031a54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r11 + 3], 14 + QUAD $0x030a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r9 + 3], 15 + QUAD $0x0104324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 4], 1 + QUAD $0x0204024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 4], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0304324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 4], 3 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x0404324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 4], 4 + QUAD $0x05040a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 4], 5 + QUAD $0x06043a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 4], 6 + QUAD $0x04024c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r8 + 4], 7 + QUAD $0x04124c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r10 + 4], 8 + QUAD $0x042a4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rdx + r13 + 4], 9 + QUAD $0x0a041a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 4], 10 + QUAD $0x04324c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r14 + 4], 11 + QUAD $0x043a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r15 + 4], 12 + QUAD $0x04224c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r12 + 4], 13 + QUAD $0x041a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r11 + 4], 14 + QUAD $0x040a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r9 + 4], 15 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0x244c894c; BYTE $0x38 // mov qword [rsp + 56], r9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + LONG $0x74b60f42; WORD $0x110a // movzx esi, byte [rdx + r9 + 17] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0x740f4166; BYTE $0xc9 // pcmpeqb xmm1, xmm9 + QUAD $0x000000d0ad6f0f66 // movdqa xmm5, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xcddb0f66 // pand xmm1, xmm5 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x74b60f42; WORD $0x120a // movzx esi, byte [rdx + r9 + 18] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x052a44203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rdx + r13 + 5], 1 + QUAD $0x050244203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rax + 5], 2 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x051a44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r11 + 5], 3 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x050244203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rdx + rax + 5], 4 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x053a44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rdi + 5], 5 + QUAD $0x0000008824848b4c // mov r8, qword [rsp + 136] + QUAD $0x050244203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rdx + r8 + 5], 6 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x051244203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rdx + r10 + 5], 7 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x051a44203a0f4466; BYTE $0x08 // pinsrb xmm8, byte [rdx + rbx + 5], 8 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x053244203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rdx + rsi + 5], 9 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x053244203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rdx + r14 + 5], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x053a44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r15 + 5], 11 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x052244203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r12 + 5], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x053244203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rsi + 5], 13 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x053244203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rdx + rsi + 5], 14 + QUAD $0x050a44203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rdx + rcx + 5], 15 + LONG $0x740f4566; BYTE $0xc1 // pcmpeqb xmm8, xmm9 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xdb0f4466; BYTE $0xc2 // pand xmm8, xmm2 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x74b60f42; WORD $0x130a // movzx esi, byte [rdx + r9 + 19] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + LONG $0x74b60f42; WORD $0x140a // movzx esi, byte [rdx + r9 + 20] + LONG $0xf66e0f66 // movd xmm6, esi + QUAD $0x062a5c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rdx + r13 + 6], 1 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x060a5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rdx + r9 + 6], 2 + QUAD $0x061a5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r11 + 6], 3 + QUAD $0x0406025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 6], 4 + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + QUAD $0x05063a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 6], 5 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x06025c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r8 + 6], 6 + QUAD $0x06125c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r10 + 6], 7 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x08061a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 6], 8 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0906025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 6], 9 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + QUAD $0x06325c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r14 + 6], 10 + WORD $0x894c; BYTE $0xfe // mov rsi, r15 + QUAD $0x063a5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r15 + 6], 11 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + QUAD $0x06225c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r12 + 6], 12 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x06225c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r12 + 6], 13 + LONG $0x24748b4c; BYTE $0x10 // mov r14, qword [rsp + 16] + QUAD $0x06325c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r14 + 6], 14 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x06025c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r8 + 6], 15 + QUAD $0x0000d024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 208] + QUAD $0x072a54203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r13 + 7], 1 + QUAD $0x070a54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r9 + 7], 2 + QUAD $0x071a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r11 + 7], 3 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x070a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r9 + 7], 4 + QUAD $0x05070a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 7], 5 + QUAD $0x06073a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 7], 6 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x07070a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 7], 7 + QUAD $0x071254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r10 + 7], 8 + QUAD $0x09070254203a0f66 // pinsrb xmm2, byte [rdx + rax + 7], 9 + QUAD $0x0a071a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 7], 10 + QUAD $0x0b073254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 7], 11 + QUAD $0x073a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 7], 12 + QUAD $0x072254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 7], 13 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + QUAD $0x073254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r14 + 7], 14 + QUAD $0x070254203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r8 + 7], 15 + LONG $0x740f4166; BYTE $0xd9 // pcmpeqb xmm3, xmm9 + QUAD $0x000000f08d6f0f66 // movdqa xmm1, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0x4d6f0f66; BYTE $0x60 // movdqa xmm1, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xd1db0f66 // pand xmm2, xmm1 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x0274b60f; BYTE $0x15 // movzx esi, byte [rdx + rax + 21] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x090a54203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rdx + rcx + 9], 1 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x091a54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rdx + r11 + 9], 2 + QUAD $0x092a54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r13 + 9], 3 + QUAD $0x090a54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r9 + 9], 4 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x092a54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r13 + 9], 5 + QUAD $0x093a54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rdx + rdi + 9], 6 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x090254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r8 + 9], 7 + QUAD $0x091254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r10 + 9], 8 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x093254203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rsi + 9], 9 + QUAD $0x091a54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rbx + 9], 10 + WORD $0x8949; BYTE $0xdc // mov r12, rbx + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x091254203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r10 + 9], 11 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x091a54203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rbx + 9], 12 + QUAD $0x093a54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r15 + 9], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x093a54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rdx + rdi + 9], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x093254203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rsi + 9], 15 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xf80f4166; BYTE $0xca // psubb xmm1, xmm10 + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xde6e0f66 // movd xmm3, esi + QUAD $0x00010024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 256] + QUAD $0x01080a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 8], 1 + QUAD $0x081a64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r11 + 8], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x03080264203a0f66 // pinsrb xmm4, byte [rdx + rax + 8], 3 + QUAD $0x080a64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r9 + 8], 4 + QUAD $0x082a64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rdx + r13 + 8], 5 + QUAD $0x0000008824bc8b4c // mov r15, qword [rsp + 136] + QUAD $0x083a64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r15 + 8], 6 + QUAD $0x080264203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r8 + 8], 7 + QUAD $0x083264203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r14 + 8], 8 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x09083264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 8], 9 + QUAD $0x082264203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r12 + 8], 10 + QUAD $0x081264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r10 + 8], 11 + QUAD $0x0c081a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 8], 12 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0d081a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 8], 13 + QUAD $0x0e083a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 8], 14 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0f080a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 8], 15 + LONG $0x740f4166; BYTE $0xe1 // pcmpeqb xmm4, xmm9 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + QUAD $0x00a024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 160] + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x0a3a54203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rdx + rdi + 10], 1 + QUAD $0x0a1a54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rdx + r11 + 10], 2 + QUAD $0x0a0254203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rdx + rax + 10], 3 + QUAD $0x0a0a54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r9 + 10], 4 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + WORD $0x894d; BYTE $0xeb // mov r11, r13 + QUAD $0x0a2a54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r13 + 10], 5 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + QUAD $0x0a3a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r15 + 10], 6 + QUAD $0x0a0254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r8 + 10], 7 + QUAD $0x0a3254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r14 + 10], 8 + QUAD $0x0a3254203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rsi + 10], 9 + QUAD $0x0a2254203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r12 + 10], 10 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0a3254203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r14 + 10], 11 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x0a3a54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r15 + 10], 12 + QUAD $0x0a1a54203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rbx + 10], 13 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x0a1254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r10 + 10], 14 + QUAD $0x0a0a54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rcx + 10], 15 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + QUAD $0x0000b095db0f4466; BYTE $0x00 // pand xmm10, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4466; BYTE $0xd4 // por xmm10, xmm4 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + LONG $0x0a74b60f; BYTE $0x17 // movzx esi, byte [rdx + rcx + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x00a024947f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm10 + LONG $0x0a74b60f; BYTE $0x18 // movzx esi, byte [rdx + rcx + 24] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + QUAD $0x0b3a5c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rdi + 11], 1 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0b0a5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rcx + 11], 2 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0b0a5c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rdx + rcx + 11], 3 + QUAD $0x0b025c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rdx + rax + 11], 4 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x0b1a5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r11 + 11], 5 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + QUAD $0x0b0a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r9 + 11], 6 + QUAD $0x0b025c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r8 + 11], 7 + QUAD $0x000000c0248c8b4c // mov r9, qword [rsp + 192] + QUAD $0x0b0a5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r9 + 11], 8 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0b1a5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rdx + r11 + 11], 9 + QUAD $0x0b225c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r12 + 11], 10 + QUAD $0x0b325c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r14 + 11], 11 + QUAD $0x0b3a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r15 + 11], 12 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x0b1a5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rbx + 11], 13 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0b225c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r12 + 11], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0b325c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rdx + rsi + 11], 15 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0c2a6c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rdx + r13 + 12], 1 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0c1a6c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rbx + 12], 2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0c1a6c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rdx + rbx + 12], 3 + QUAD $0x0c026c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rdx + rax + 12], 4 + QUAD $0x0c0a6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rcx + 12], 5 + QUAD $0x0c3a6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rdx + rdi + 12], 6 + QUAD $0x0c026c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r8 + 12], 7 + QUAD $0x0c0a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r9 + 12], 8 + QUAD $0x0c1a6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rdx + r11 + 12], 9 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x0c1a6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rbx + 12], 10 + QUAD $0x0c326c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rdx + r14 + 12], 11 + QUAD $0x0c3a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r15 + 12], 12 + QUAD $0x0c126c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r10 + 12], 13 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x0c226c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r12 + 12], 14 + QUAD $0x0c326c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rsi + 12], 15 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x0d1264203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rdx + r10 + 13], 1 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0d3264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rsi + 13], 2 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0d3264203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rdx + rsi + 13], 3 + QUAD $0x0d0264203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rax + 13], 4 + QUAD $0x0d0a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rcx + 13], 5 + QUAD $0x0d3a64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rdx + rdi + 13], 6 + QUAD $0x0d0264203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r8 + 13], 7 + QUAD $0x0d0a64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r9 + 13], 8 + QUAD $0x0d1a64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r11 + 13], 9 + QUAD $0x0d1a64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rbx + 13], 10 + QUAD $0x0d3264203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r14 + 13], 11 + QUAD $0x0d3a64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r15 + 13], 12 + QUAD $0x0d2a64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r13 + 13], 13 + QUAD $0x0d2264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r12 + 13], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0d0264203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rax + 13], 15 + LONG $0x740f4566; BYTE $0xd9 // pcmpeqb xmm11, xmm9 + QUAD $0x0000c09ddb0f4466; BYTE $0x00 // pand xmm11, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4566; BYTE $0xe9 // pcmpeqb xmm13, xmm9 + QUAD $0x0000d0addb0f4466; BYTE $0x00 // pand xmm13, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x740f4566; BYTE $0xe1 // pcmpeqb xmm12, xmm9 + QUAD $0x0000e0a5db0f4466; BYTE $0x00 // pand xmm12, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x0274b60f; BYTE $0x1a // movzx esi, byte [rdx + rax + 26] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + QUAD $0x0e1264203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rdx + r10 + 14], 1 + WORD $0x894c; BYTE $0xd6 // mov rsi, r10 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0e2264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r12 + 14], 2 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0e1264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r10 + 14], 3 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x0e2a64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r13 + 14], 4 + QUAD $0x050e0a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 14], 5 + QUAD $0x060e3a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 14], 6 + QUAD $0x0e0264203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r8 + 14], 7 + QUAD $0x0e0a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r9 + 14], 8 + QUAD $0x0e1a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r11 + 14], 9 + QUAD $0x0a0e1a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 14], 10 + QUAD $0x0e3264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r14 + 14], 11 + QUAD $0x0e3a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 14], 12 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0d0e0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 14], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e0e0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 14], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0f0e0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 14], 15 + QUAD $0x0f3274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rsi + 15], 1 + QUAD $0x0f2274203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rdx + r12 + 15], 2 + QUAD $0x0f1274203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r10 + 15], 3 + QUAD $0x0f2a74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rdx + r13 + 15], 4 + QUAD $0x0f0a74203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rdx + rcx + 15], 5 + QUAD $0x0f3a74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rdx + rdi + 15], 6 + QUAD $0x0f0274203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rdx + r8 + 15], 7 + QUAD $0x0f0a74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r9 + 15], 8 + QUAD $0x0f1a74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rdx + r11 + 15], 9 + QUAD $0x0f1a74203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rdx + rbx + 15], 10 + QUAD $0x0f3274203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rdx + r14 + 15], 11 + QUAD $0x0f3a74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r15 + 15], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0f3274203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rsi + 15], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f0274203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rdx + rax + 15], 14 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0f3274203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rsi + 15], 15 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x10327c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rsi + 16], 1 + QUAD $0x10227c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rdx + r12 + 16], 2 + QUAD $0x10127c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r10 + 16], 3 + QUAD $0x102a7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rdx + r13 + 16], 4 + QUAD $0x100a7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rcx + 16], 5 + QUAD $0x103a7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rdx + rdi + 16], 6 + QUAD $0x10027c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r8 + 16], 7 + QUAD $0x100a7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r9 + 16], 8 + QUAD $0x101a7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r11 + 16], 9 + QUAD $0x101a7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rdx + rbx + 16], 10 + QUAD $0x10327c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r14 + 16], 11 + QUAD $0x103a7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r15 + 16], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x10327c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rsi + 16], 13 + QUAD $0x10027c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rdx + rax + 16], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x01110244203a0f66 // pinsrb xmm0, byte [rdx + rax + 17], 1 + QUAD $0x112244203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r12 + 17], 2 + QUAD $0x111244203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r10 + 17], 3 + QUAD $0x112a44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r13 + 17], 4 + QUAD $0x05110a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 17], 5 + QUAD $0x06113a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 17], 6 + QUAD $0x110244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r8 + 17], 7 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x110a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r9 + 17], 8 + QUAD $0x111a44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rdx + r11 + 17], 9 + QUAD $0x0a111a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 17], 10 + QUAD $0x113244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r14 + 17], 11 + QUAD $0x113a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 17], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0d113244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0e113244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 17], 14 + QUAD $0x00a024a4eb0f4466; WORD $0x0000 // por xmm12, oword [rsp + 160] + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + LONG $0x74b60f42; WORD $0x1b22 // movzx esi, byte [rdx + r12 + 27] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + QUAD $0x00b024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe5 // pcmpeqb xmm4, xmm13 + QUAD $0x000000f0a5db0f66 // pand xmm4, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0x740f4566; BYTE $0xf5 // pcmpeqb xmm14, xmm13 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x74b60f42; WORD $0x1c22 // movzx esi, byte [rdx + r12 + 28] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x110244203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r8 + 17], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0x740f4166; BYTE $0xc5 // pcmpeqb xmm0, xmm13 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xdb0f4566; BYTE $0xec // pand xmm13, xmm12 + LONG $0xf80f4466; BYTE $0xe8 // psubb xmm13, xmm0 + QUAD $0x00a024ac7f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm13 + LONG $0x74b60f42; WORD $0x1d22 // movzx esi, byte [rdx + r12 + 29] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + QUAD $0x10027c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rdx + r8 + 16], 15 + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x740f4466; BYTE $0xf8 // pcmpeqb xmm15, xmm0 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x12226c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rdx + r12 + 18], 1 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0212326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 2 + QUAD $0x12126c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r10 + 18], 3 + QUAD $0x122a6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r13 + 18], 4 + QUAD $0x05120a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 18], 5 + QUAD $0x06123a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 18], 6 + QUAD $0x0712026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 18], 7 + QUAD $0x120a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r9 + 18], 8 + QUAD $0x121a6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r11 + 18], 9 + QUAD $0x0a121a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 18], 10 + QUAD $0x12326c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r14 + 18], 11 + QUAD $0x123a6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r15 + 18], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0d12326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 13 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0e12326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 14 + LONG $0xdb0f4566; BYTE $0xfc // pand xmm15, xmm12 + QUAD $0x12026c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r8 + 18], 15 + LONG $0xe8740f66 // pcmpeqb xmm5, xmm0 + QUAD $0x000000b0addb0f66 // pand xmm5, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4166; BYTE $0xef // por xmm5, xmm15 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x0274b60f; BYTE $0x1e // movzx esi, byte [rdx + rax + 30] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x13227c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rdx + r12 + 19], 1 + QUAD $0x142274203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rdx + r12 + 20], 1 + QUAD $0x152254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r12 + 21], 1 + QUAD $0x16225c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rdx + r12 + 22], 1 + QUAD $0x172244203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rdx + r12 + 23], 1 + QUAD $0x182254203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r12 + 24], 1 + QUAD $0x19224c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rdx + r12 + 25], 1 + QUAD $0x1a225c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r12 + 26], 1 + QUAD $0x1b224c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rdx + r12 + 27], 1 + QUAD $0x1c2264203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rdx + r12 + 28], 1 + QUAD $0x1d226c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rdx + r12 + 29], 1 + QUAD $0x1e2264203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rdx + r12 + 30], 1 + LONG $0x0274b60f; BYTE $0x1f // movzx esi, byte [rdx + rax + 31] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x1f2244203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rdx + r12 + 31], 1 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0213327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 19], 2 + QUAD $0x02143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 2 + QUAD $0x02153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 2 + QUAD $0x0216325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 22], 2 + QUAD $0x173244203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rsi + 23], 2 + QUAD $0x183254203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rsi + 24], 2 + QUAD $0x0219324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 25], 2 + QUAD $0x1a325c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rsi + 26], 2 + QUAD $0x1b324c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rsi + 27], 2 + QUAD $0x021c3264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 28], 2 + QUAD $0x1d326c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rsi + 29], 2 + QUAD $0x1e3264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rsi + 30], 2 + QUAD $0x021f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 2 + QUAD $0x13127c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r10 + 19], 3 + QUAD $0x132a7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r13 + 19], 4 + QUAD $0x05130a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 19], 5 + QUAD $0x06133a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 19], 6 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0713027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 19], 7 + QUAD $0x130a7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r9 + 19], 8 + QUAD $0x131a7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r11 + 19], 9 + QUAD $0x0a131a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 19], 10 + QUAD $0x13327c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r14 + 19], 11 + QUAD $0x133a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r15 + 19], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0d13327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 19], 13 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x13227c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r12 + 19], 14 + QUAD $0x13027c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r8 + 19], 15 + QUAD $0x141274203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r10 + 20], 3 + QUAD $0x142a74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r13 + 20], 4 + QUAD $0x05140a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 20], 5 + QUAD $0x06143a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 20], 6 + QUAD $0x07140274203a0f66 // pinsrb xmm6, byte [rdx + rax + 20], 7 + QUAD $0x140a74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r9 + 20], 8 + QUAD $0x141a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r11 + 20], 9 + QUAD $0x0a141a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 20], 10 + QUAD $0x143274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r14 + 20], 11 + QUAD $0x143a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 20], 12 + QUAD $0x0d143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 13 + QUAD $0x142274203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r12 + 20], 14 + QUAD $0x0000a024aceb0f66; BYTE $0x00 // por xmm5, oword [rsp + 160] + QUAD $0x140274203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rdx + r8 + 20], 15 + QUAD $0x00b024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xff // pcmpeqb xmm7, xmm15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4166; BYTE $0xf7 // pcmpeqb xmm6, xmm15 + QUAD $0x000000d0b5db0f66 // pand xmm6, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0x151254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r10 + 21], 3 + QUAD $0x152a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r13 + 21], 4 + QUAD $0x05150a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 21], 5 + QUAD $0x06153a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 21], 6 + QUAD $0x07150254203a0f66 // pinsrb xmm2, byte [rdx + rax + 21], 7 + QUAD $0x150a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r9 + 21], 8 + QUAD $0x151a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r11 + 21], 9 + QUAD $0x0a151a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 21], 10 + QUAD $0x153254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r14 + 21], 11 + QUAD $0x153a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 21], 12 + QUAD $0x0d153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 13 + QUAD $0x152254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r12 + 21], 14 + QUAD $0x150254203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r8 + 21], 15 + LONG $0x740f4166; BYTE $0xd7 // pcmpeqb xmm2, xmm15 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xd7db0f66 // pand xmm2, xmm7 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0xd5eb0f66 // por xmm2, xmm5 + QUAD $0x16125c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r10 + 22], 3 + QUAD $0x162a5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r13 + 22], 4 + QUAD $0x05160a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 22], 5 + QUAD $0x06163a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 22], 6 + QUAD $0x0716025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 22], 7 + QUAD $0x160a5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r9 + 22], 8 + QUAD $0x161a5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rdx + r11 + 22], 9 + QUAD $0x0a161a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 22], 10 + QUAD $0x16325c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r14 + 22], 11 + QUAD $0x163a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r15 + 22], 12 + QUAD $0x0d16325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 22], 13 + QUAD $0x16225c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r12 + 22], 14 + QUAD $0x16025c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r8 + 22], 15 + QUAD $0x171244203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r10 + 23], 3 + QUAD $0x172a44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r13 + 23], 4 + QUAD $0x170a44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rcx + 23], 5 + QUAD $0x173a44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rdx + rdi + 23], 6 + QUAD $0x170244203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rdx + rax + 23], 7 + QUAD $0x170a44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r9 + 23], 8 + QUAD $0x171a44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rdx + r11 + 23], 9 + QUAD $0x171a44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rdx + rbx + 23], 10 + QUAD $0x173244203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r14 + 23], 11 + QUAD $0x173a44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r15 + 23], 12 + QUAD $0x173244203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rsi + 23], 13 + QUAD $0x172244203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rdx + r12 + 23], 14 + QUAD $0x170244203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r8 + 23], 15 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x000000f0ad6f0f66 // movdqa xmm5, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0xdddb0f66 // pand xmm3, xmm5 + LONG $0x740f4566; BYTE $0xc7 // pcmpeqb xmm8, xmm15 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + QUAD $0x19124c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r10 + 25], 3 + QUAD $0x192a4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r13 + 25], 4 + QUAD $0x05190a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 25], 5 + QUAD $0x06193a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 25], 6 + QUAD $0x0719024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 25], 7 + QUAD $0x190a4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r9 + 25], 8 + QUAD $0x191a4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rdx + r11 + 25], 9 + QUAD $0x0a191a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 25], 10 + QUAD $0x19324c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r14 + 25], 11 + QUAD $0x193a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r15 + 25], 12 + QUAD $0x0d19324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 25], 13 + QUAD $0x19224c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r12 + 25], 14 + QUAD $0x19024c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r8 + 25], 15 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x740f4166; BYTE $0xcf // pcmpeqb xmm1, xmm15 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + QUAD $0x181254203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r10 + 24], 3 + QUAD $0x182a54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r13 + 24], 4 + QUAD $0x180a54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rcx + 24], 5 + QUAD $0x183a54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rdx + rdi + 24], 6 + QUAD $0x180254203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rdx + rax + 24], 7 + QUAD $0x180a54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r9 + 24], 8 + QUAD $0x181a54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rdx + r11 + 24], 9 + QUAD $0x181a54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rbx + 24], 10 + QUAD $0x183254203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r14 + 24], 11 + QUAD $0x183a54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r15 + 24], 12 + QUAD $0x183254203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rsi + 24], 13 + QUAD $0x182254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r12 + 24], 14 + QUAD $0x180254203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rdx + r8 + 24], 15 + LONG $0x740f4566; BYTE $0xd7 // pcmpeqb xmm10, xmm15 + LONG $0xdb0f4466; BYTE $0xd3 // pand xmm10, xmm3 + QUAD $0x1a125c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r10 + 26], 3 + QUAD $0x1a2a5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r13 + 26], 4 + QUAD $0x1a0a5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rcx + 26], 5 + QUAD $0x1a3a5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rdx + rdi + 26], 6 + QUAD $0x1a025c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rdx + rax + 26], 7 + QUAD $0x1a0a5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r9 + 26], 8 + QUAD $0x1a1a5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rdx + r11 + 26], 9 + QUAD $0x1a1a5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rdx + rbx + 26], 10 + QUAD $0x1a325c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r14 + 26], 11 + QUAD $0x1a3a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r15 + 26], 12 + QUAD $0x1a325c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rsi + 26], 13 + QUAD $0x1a225c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r12 + 26], 14 + QUAD $0x1a025c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r8 + 26], 15 + LONG $0x740f4566; BYTE $0xdf // pcmpeqb xmm11, xmm15 + QUAD $0x0000b09ddb0f4466; BYTE $0x00 // pand xmm11, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0xeb0f4466; BYTE $0xda // por xmm11, xmm2 + QUAD $0x1b124c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r10 + 27], 3 + QUAD $0x1b2a4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r13 + 27], 4 + QUAD $0x1b0a4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rdx + rcx + 27], 5 + QUAD $0x1b3a4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rdx + rdi + 27], 6 + QUAD $0x1b024c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rdx + rax + 27], 7 + QUAD $0x1b0a4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r9 + 27], 8 + QUAD $0x1b1a4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r11 + 27], 9 + QUAD $0x1b1a4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rdx + rbx + 27], 10 + QUAD $0x1b324c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r14 + 27], 11 + QUAD $0x1b3a4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r15 + 27], 12 + QUAD $0x1b324c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rsi + 27], 13 + QUAD $0x1b224c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r12 + 27], 14 + QUAD $0x1b024c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r8 + 27], 15 + QUAD $0x1c1264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r10 + 28], 3 + QUAD $0x1c2a64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r13 + 28], 4 + QUAD $0x051c0a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 28], 5 + QUAD $0x061c3a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 28], 6 + QUAD $0x071c0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 28], 7 + QUAD $0x1c0a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r9 + 28], 8 + QUAD $0x1c1a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r11 + 28], 9 + QUAD $0x0a1c1a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 28], 10 + QUAD $0x1c3264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r14 + 28], 11 + QUAD $0x1c3a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 28], 12 + QUAD $0x0d1c3264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 28], 13 + QUAD $0x1c2264203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r12 + 28], 14 + QUAD $0x1c0264203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rdx + r8 + 28], 15 + QUAD $0x1d126c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r10 + 29], 3 + QUAD $0x1d2a6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rdx + r13 + 29], 4 + QUAD $0x1d0a6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rcx + 29], 5 + QUAD $0x1d3a6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rdx + rdi + 29], 6 + QUAD $0x1d026c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rdx + rax + 29], 7 + QUAD $0x1d0a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r9 + 29], 8 + QUAD $0x1d1a6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rdx + r11 + 29], 9 + QUAD $0x1d1a6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rbx + 29], 10 + QUAD $0x1d326c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rdx + r14 + 29], 11 + QUAD $0x1d3a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r15 + 29], 12 + QUAD $0x1d326c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rdx + rsi + 29], 13 + QUAD $0x1d226c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r12 + 29], 14 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0x740f4566; BYTE $0xcf // pcmpeqb xmm9, xmm15 + QUAD $0x0000c08ddb0f4466; BYTE $0x00 // pand xmm9, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4166; BYTE $0xe7 // pcmpeqb xmm4, xmm15 + QUAD $0x000000d0a5db0f66 // pand xmm4, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + QUAD $0x1d026c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rdx + r8 + 29], 15 + LONG $0x740f4566; BYTE $0xef // pcmpeqb xmm13, xmm15 + LONG $0xdb0f4466; BYTE $0xef // pand xmm13, xmm7 + LONG $0xeb0f4466; BYTE $0xec // por xmm13, xmm4 + QUAD $0x1e1264203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r10 + 30], 3 + QUAD $0x1f1244203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r10 + 31], 3 + QUAD $0x1e2a64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rdx + r13 + 30], 4 + QUAD $0x1f2a44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r13 + 31], 4 + QUAD $0x1e0a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rcx + 30], 5 + QUAD $0x051f0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 31], 5 + QUAD $0x1e3a64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rdx + rdi + 30], 6 + QUAD $0x061f3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 31], 6 + QUAD $0x1e0264203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rdx + rax + 30], 7 + QUAD $0x071f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 31], 7 + QUAD $0x1e0a64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r9 + 30], 8 + QUAD $0x1f0a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r9 + 31], 8 + QUAD $0x1e1a64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r11 + 30], 9 + QUAD $0x1f1a44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rdx + r11 + 31], 9 + QUAD $0x1e1a64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rbx + 30], 10 + QUAD $0x0a1f1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 31], 10 + QUAD $0x1e3264203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r14 + 30], 11 + QUAD $0x1f3244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r14 + 31], 11 + QUAD $0x1e3a64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r15 + 30], 12 + QUAD $0x1f3a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 31], 12 + QUAD $0x1e3264203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rdx + rsi + 30], 13 + QUAD $0x0d1f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 13 + QUAD $0x1e2264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r12 + 30], 14 + QUAD $0x1f2244203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r12 + 31], 14 + QUAD $0x1e0264203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rdx + r8 + 30], 15 + QUAD $0x1f0244203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r8 + 31], 15 + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x740f4566; BYTE $0xe7 // pcmpeqb xmm12, xmm15 + LONG $0xdb0f4466; BYTE $0xe5 // pand xmm12, xmm5 + LONG $0x740f4166; BYTE $0xc7 // pcmpeqb xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xc6db0f66 // pand xmm0, xmm6 + LONG $0xeb0f4166; BYTE $0xc4 // por xmm0, xmm12 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000d024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 208] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd9610f66 // punpcklwd xmm3, xmm1 + LONG $0xd1690f66 // punpckhwd xmm2, xmm1 + LONG $0x680f4466; BYTE $0xc0 // punpckhbw xmm8, xmm0 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x647f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm4 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x547f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm2 + LONG $0x1c7f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB2_186 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x000000e824bc3b4c // cmp r15, qword [rsp + 232] + LONG $0x24748a44; BYTE $0x08 // mov r14b, byte [rsp + 8] + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + JNE LBB2_43 + JMP LBB2_131 + +LBB2_188: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + QUAD $0x000000e824bc894c // mov qword [rsp + 232], r15 + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xc6b60f41 // movzx eax, r14b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + WORD $0xc031 // xor eax, eax + +LBB2_189: + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + LONG $0x05e7c149 // shl r15, 5 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x34b60f42; BYTE $0x3a // movzx esi, byte [rdx + r15] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + LONG $0x74b60f42; WORD $0x013a // movzx esi, byte [rdx + r15 + 1] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x74b60f42; WORD $0x023a // movzx esi, byte [rdx + r15 + 2] + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0x74b60f42; WORD $0x033a // movzx esi, byte [rdx + r15 + 3] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x74b60f42; WORD $0x043a // movzx esi, byte [rdx + r15 + 4] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x74b60f42; WORD $0x053a // movzx esi, byte [rdx + r15 + 5] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0x74b60f42; WORD $0x063a // movzx esi, byte [rdx + r15 + 6] + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x74b60f42; WORD $0x073a // movzx esi, byte [rdx + r15 + 7] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + LONG $0x74b60f42; WORD $0x083a // movzx esi, byte [rdx + r15 + 8] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x74b60f42; WORD $0x093a // movzx esi, byte [rdx + r15 + 9] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x74b60f42; WORD $0x0a3a // movzx esi, byte [rdx + r15 + 10] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x0000a024847f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm0 + LONG $0x74b60f42; WORD $0x0b3a // movzx esi, byte [rdx + r15 + 11] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + LONG $0x74b60f42; WORD $0x0c3a // movzx esi, byte [rdx + r15 + 12] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + LONG $0x74b60f42; WORD $0x0d3a // movzx esi, byte [rdx + r15 + 13] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + LONG $0x74b60f42; WORD $0x0e3a // movzx esi, byte [rdx + r15 + 14] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x00010024847f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm0 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x20ce8349 // or r14, 32 + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x40cb8348 // or rbx, 64 + LONG $0x245c8948; BYTE $0x48 // mov qword [rsp + 72], rbx + LONG $0x60c88348 // or rax, 96 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + LONG $0x80c98148; WORD $0x0000; BYTE $0x00 // or rcx, 128 + LONG $0xa0cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 160 + LONG $0xc0c88149; WORD $0x0000; BYTE $0x00 // or r8, 192 + LONG $0xe0c98149; WORD $0x0000; BYTE $0x00 // or r9, 224 + LONG $0x00cb8149; WORD $0x0001; BYTE $0x00 // or r11, 256 + LONG $0x20cc8149; WORD $0x0001; BYTE $0x00 // or r12, 288 + LONG $0x2464894c; BYTE $0x40 // mov qword [rsp + 64], r12 + LONG $0x40ca8149; WORD $0x0001; BYTE $0x00 // or r10, 320 + LONG $0x2454894c; BYTE $0x58 // mov qword [rsp + 88], r10 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + LONG $0x60ca8149; WORD $0x0001; BYTE $0x00 // or r10, 352 + LONG $0x2454894c; BYTE $0x50 // mov qword [rsp + 80], r10 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + LONG $0x80cc8149; WORD $0x0001; BYTE $0x00 // or r12, 384 + WORD $0x894c; BYTE $0xfe // mov rsi, r15 + LONG $0xa0ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 416 + LONG $0x24748948; BYTE $0x10 // mov qword [rsp + 16], rsi + LONG $0xc0cd8149; WORD $0x0001; BYTE $0x00 // or r13, 448 + LONG $0x246c894c; BYTE $0x18 // mov qword [rsp + 24], r13 + WORD $0x894c; BYTE $0xfe // mov rsi, r15 + LONG $0xe0ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 480 + LONG $0x24748948; BYTE $0x28 // mov qword [rsp + 40], rsi + QUAD $0x01323c203a0f4666 // pinsrb xmm15, byte [rdx + r14], 1 + QUAD $0x021a3c203a0f4466 // pinsrb xmm15, byte [rdx + rbx], 2 + QUAD $0x03023c203a0f4466 // pinsrb xmm15, byte [rdx + rax], 3 + QUAD $0x00000080248c8948 // mov qword [rsp + 128], rcx + QUAD $0x040a3c203a0f4466 // pinsrb xmm15, byte [rdx + rcx], 4 + QUAD $0x053a3c203a0f4466 // pinsrb xmm15, byte [rdx + rdi], 5 + LONG $0x2444894c; BYTE $0x60 // mov qword [rsp + 96], r8 + QUAD $0x06023c203a0f4666 // pinsrb xmm15, byte [rdx + r8], 6 + QUAD $0x000000d0248c894c // mov qword [rsp + 208], r9 + QUAD $0x070a3c203a0f4666 // pinsrb xmm15, byte [rdx + r9], 7 + LONG $0x245c894c; BYTE $0x78 // mov qword [rsp + 120], r11 + QUAD $0x081a3c203a0f4666 // pinsrb xmm15, byte [rdx + r11], 8 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x09323c203a0f4666 // pinsrb xmm15, byte [rdx + r14], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0a3a3c203a0f4666 // pinsrb xmm15, byte [rdx + r15], 10 + QUAD $0x0b123c203a0f4666 // pinsrb xmm15, byte [rdx + r10], 11 + LONG $0x2464894c; BYTE $0x20 // mov qword [rsp + 32], r12 + QUAD $0x0c223c203a0f4666 // pinsrb xmm15, byte [rdx + r12], 12 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0d123c203a0f4666 // pinsrb xmm15, byte [rdx + r10], 13 + QUAD $0x0e2a3c203a0f4666 // pinsrb xmm15, byte [rdx + r13], 14 + QUAD $0x0f323c203a0f4466 // pinsrb xmm15, byte [rdx + rsi], 15 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x01011a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 1], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x02011a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 1], 2 + QUAD $0x0301026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 1], 3 + QUAD $0x04010a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 1], 4 + QUAD $0x05013a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 1], 5 + QUAD $0x01026c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r8 + 1], 6 + QUAD $0x010a6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r9 + 1], 7 + QUAD $0x011a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r11 + 1], 8 + QUAD $0x01326c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r14 + 1], 9 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + QUAD $0x013a6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r15 + 1], 10 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0b010a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 1], 11 + QUAD $0x01226c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r12 + 1], 12 + QUAD $0x01126c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r10 + 1], 13 + QUAD $0x012a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r13 + 1], 14 + QUAD $0x0f01326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 1], 15 + QUAD $0x00b0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe9 // pcmpeqb xmm5, xmm9 + LONG $0xfd6f0f66 // movdqa xmm7, xmm5 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xfcdb0f66 // pand xmm7, xmm4 + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + LONG $0x74b60f42; WORD $0x0f2a // movzx esi, byte [rdx + r13 + 15] + LONG $0x6e0f4466; BYTE $0xf6 // movd xmm14, esi + LONG $0x740f4566; BYTE $0xf9 // pcmpeqb xmm15, xmm9 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x01020a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 2], 1 + QUAD $0x02021a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 2], 2 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x021a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 2], 3 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x020274203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r8 + 2], 4 + QUAD $0x05023a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 2], 5 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x022274203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r12 + 2], 6 + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + QUAD $0x023274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r14 + 2], 7 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x023a74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r15 + 2], 8 + QUAD $0x09020274203a0f66 // pinsrb xmm6, byte [rdx + rax + 2], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x0a023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 10 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x021274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r10 + 2], 11 + LONG $0x244c8b4c; BYTE $0x20 // mov r9, qword [rsp + 32] + QUAD $0x020a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r9 + 2], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0d023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 13 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0e023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 15 + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0x740f4166; BYTE $0xf1 // pcmpeqb xmm6, xmm9 + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x74b60f42; WORD $0x102a // movzx esi, byte [rdx + r13 + 16] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + QUAD $0x01030a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 3], 1 + QUAD $0x02031a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 3], 2 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x031a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r11 + 3], 3 + QUAD $0x030254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r8 + 3], 4 + QUAD $0x0000008824bc8948 // mov qword [rsp + 136], rdi + QUAD $0x05033a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 3], 5 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + QUAD $0x032254203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r12 + 3], 6 + QUAD $0x033254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r14 + 3], 7 + WORD $0x894c; BYTE $0xfe // mov rsi, r15 + QUAD $0x033a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r15 + 3], 8 + QUAD $0x09030254203a0f66 // pinsrb xmm2, byte [rdx + rax + 3], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x033a54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r15 + 3], 10 + QUAD $0x031254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r10 + 3], 11 + QUAD $0x030a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 3], 12 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x032254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 3], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e030254203a0f66 // pinsrb xmm2, byte [rdx + rax + 3], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0f030254203a0f66 // pinsrb xmm2, byte [rdx + rax + 3], 15 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x042a4c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rdx + r13 + 4], 1 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x02041a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 4], 2 + QUAD $0x03040a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 4], 3 + QUAD $0x04024c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r8 + 4], 4 + QUAD $0x05043a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 4], 5 + QUAD $0x041a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r11 + 4], 6 + QUAD $0x04324c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r14 + 4], 7 + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + QUAD $0x0804324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 4], 8 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0904324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 4], 9 + QUAD $0x043a4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r15 + 4], 10 + QUAD $0x04124c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r10 + 4], 11 + WORD $0x894d; BYTE $0xd7 // mov r15, r10 + QUAD $0x040a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r9 + 4], 12 + QUAD $0x04224c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r12 + 4], 13 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x0e041a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 4], 14 + QUAD $0x0f04024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 4], 15 + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x3a74b60f; BYTE $0x11 // movzx esi, byte [rdx + rdi + 17] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0x740f4166; BYTE $0xc9 // pcmpeqb xmm1, xmm9 + QUAD $0x000000d0ad6f0f66 // movdqa xmm5, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xcddb0f66 // pand xmm1, xmm5 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x3a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rdi + 18] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x052a44203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rdx + r13 + 5], 1 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x051a44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rdx + r11 + 5], 2 + QUAD $0x050a44203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rdx + rcx + 5], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x053244203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r14 + 5], 4 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x050a44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rdx + r9 + 5], 5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x050244203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rdx + rax + 5], 6 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x050244203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rdx + r8 + 5], 7 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x050244203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r8 + 5], 8 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x053244203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rdx + rsi + 5], 9 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x053244203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rdx + rsi + 5], 10 + QUAD $0x053a44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r15 + 5], 11 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x052244203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r12 + 5], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x053244203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rsi + 5], 13 + QUAD $0x051a44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rdx + rbx + 5], 14 + QUAD $0x051244203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r10 + 5], 15 + LONG $0x740f4566; BYTE $0xc1 // pcmpeqb xmm8, xmm9 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xdb0f4466; BYTE $0xc2 // pand xmm8, xmm2 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x3a74b60f; BYTE $0x13 // movzx esi, byte [rdx + rdi + 19] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + LONG $0x3a74b60f; BYTE $0x14 // movzx esi, byte [rdx + rdi + 20] + LONG $0xf66e0f66 // movd xmm6, esi + QUAD $0x062a5c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rdx + r13 + 6], 1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + QUAD $0x061a5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rdx + r11 + 6], 2 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x06125c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r10 + 6], 3 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x06325c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r14 + 6], 4 + QUAD $0x060a5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rdx + r9 + 6], 5 + QUAD $0x0606025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 6], 6 + QUAD $0x07060a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 6], 7 + WORD $0x8949; BYTE $0xce // mov r14, rcx + QUAD $0x06025c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r8 + 6], 8 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x09063a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 6], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x063a5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r15 + 6], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b06025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 6], 11 + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + QUAD $0x06225c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r12 + 6], 12 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x06225c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r12 + 6], 13 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x0e060a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 6], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f060a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 6], 15 + QUAD $0x0000c024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 192] + QUAD $0x072a54203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r13 + 7], 1 + QUAD $0x02073254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 7], 2 + WORD $0x8949; BYTE $0xf5 // mov r13, rsi + QUAD $0x071254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r10 + 7], 3 + WORD $0x894d; BYTE $0xda // mov r10, r11 + QUAD $0x071a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r11 + 7], 4 + QUAD $0x070a54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r9 + 7], 5 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x06070a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 7], 6 + QUAD $0x073254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r14 + 7], 7 + QUAD $0x070254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r8 + 7], 8 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x09073a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 7], 9 + QUAD $0x073a54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r15 + 7], 10 + QUAD $0x0b070254203a0f66 // pinsrb xmm2, byte [rdx + rax + 7], 11 + QUAD $0x0c071a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 7], 12 + QUAD $0x072254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 7], 13 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x072254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r12 + 7], 14 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0f071a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 7], 15 + LONG $0x740f4166; BYTE $0xd9 // pcmpeqb xmm3, xmm9 + QUAD $0x000000f08d6f0f66 // movdqa xmm1, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0x4d6f0f66; BYTE $0x60 // movdqa xmm1, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xd1db0f66 // pand xmm2, xmm1 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x15 // movzx esi, byte [rdx + rax + 21] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x090a54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r9 + 9], 1 + QUAD $0x092a54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rdx + r13 + 9], 2 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x090254203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r8 + 9], 3 + QUAD $0x091254203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r10 + 9], 4 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x093a54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rdi + 9], 5 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x092a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r13 + 9], 6 + QUAD $0x093254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r14 + 9], 7 + QUAD $0x090a54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rdx + rcx + 9], 8 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x093254203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rsi + 9], 9 + QUAD $0x093a54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r15 + 9], 10 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x093254203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rdx + rsi + 9], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x093254203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rsi + 9], 12 + QUAD $0x091a54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r11 + 9], 13 + QUAD $0x092254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r12 + 9], 14 + QUAD $0x091a54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rbx + 9], 15 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x0000c0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm1 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xf80f4166; BYTE $0xca // psubb xmm1, xmm10 + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xde6e0f66 // movd xmm3, esi + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + QUAD $0x080a64203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rdx + r9 + 8], 1 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x082264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r12 + 8], 2 + QUAD $0x080264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r8 + 8], 3 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + QUAD $0x081264203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r10 + 8], 4 + QUAD $0x05083a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 8], 5 + QUAD $0x082a64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r13 + 8], 6 + QUAD $0x083264203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r14 + 8], 7 + QUAD $0x08080a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 8], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x09081a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 8], 9 + QUAD $0x083a64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r15 + 8], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b080264203a0f66 // pinsrb xmm4, byte [rdx + rax + 8], 11 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0c083264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 8], 12 + QUAD $0x081a64203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r11 + 8], 13 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x081264203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r10 + 8], 14 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x0f080a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 8], 15 + LONG $0x740f4166; BYTE $0xe1 // pcmpeqb xmm4, xmm9 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + QUAD $0x00a024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 160] + QUAD $0x0a0a54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r9 + 10], 1 + QUAD $0x0a2254203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rdx + r12 + 10], 2 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x0a0a54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r9 + 10], 3 + QUAD $0x0a0254203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r8 + 10], 4 + QUAD $0x0a3a54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rdi + 10], 5 + QUAD $0x0a2a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r13 + 10], 6 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x0a3254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r14 + 10], 7 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0a3254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r14 + 10], 8 + QUAD $0x0a1a54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rbx + 10], 9 + QUAD $0x0a3a54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r15 + 10], 10 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x0a0254203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rdx + rax + 10], 11 + QUAD $0x0a3254203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rsi + 10], 12 + QUAD $0x0a1a54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r11 + 10], 13 + QUAD $0x0a1254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r10 + 10], 14 + QUAD $0x0a0a54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rcx + 10], 15 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + QUAD $0x0000b095db0f4466; BYTE $0x00 // pand xmm10, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4466; BYTE $0xd4 // por xmm10, xmm4 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + LONG $0x0a74b60f; BYTE $0x17 // movzx esi, byte [rdx + rcx + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x00a024947f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm10 + LONG $0x0a74b60f; BYTE $0x18 // movzx esi, byte [rdx + rcx + 24] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0b125c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r10 + 11], 1 + QUAD $0x0b225c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rdx + r12 + 11], 2 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + QUAD $0x0b0a5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r9 + 11], 3 + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + QUAD $0x0b1a5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r11 + 11], 4 + QUAD $0x0b3a5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rdi + 11], 5 + QUAD $0x0b025c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r8 + 11], 6 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + QUAD $0x0b2a5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r13 + 11], 7 + QUAD $0x0b325c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r14 + 11], 8 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0b025c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rdx + r8 + 11], 9 + QUAD $0x0b1a5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rdx + rbx + 11], 10 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0b025c203a0f4466; BYTE $0x0b // pinsrb xmm11, byte [rdx + rax + 11], 11 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0b2a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r13 + 11], 12 + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x0b0a5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rdx + r9 + 11], 13 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0b325c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rdx + rsi + 11], 14 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0b025c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rdx + rax + 11], 15 + QUAD $0x0c126c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rdx + r10 + 12], 1 + QUAD $0x0c226c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rdx + r12 + 12], 2 + QUAD $0x0c0a6c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rdx + rcx + 12], 3 + QUAD $0x0c1a6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rdx + r11 + 12], 4 + QUAD $0x0c3a6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rdi + 12], 5 + QUAD $0x0c3a6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r15 + 12], 6 + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + QUAD $0x0c1a6c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r11 + 12], 7 + QUAD $0x0c326c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r14 + 12], 8 + QUAD $0x0c026c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rdx + r8 + 12], 9 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x0c3a6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rdx + r15 + 12], 10 + QUAD $0x0c1a6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rdx + rbx + 12], 11 + QUAD $0x0c2a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r13 + 12], 12 + QUAD $0x0c0a6c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r9 + 12], 13 + QUAD $0x0c326c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rdx + rsi + 12], 14 + QUAD $0x0c026c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rax + 12], 15 + QUAD $0x0d1264203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rdx + r10 + 13], 1 + QUAD $0x0d2264203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rdx + r12 + 13], 2 + QUAD $0x0d0a64203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rdx + rcx + 13], 3 + WORD $0x8949; BYTE $0xca // mov r10, rcx + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x0d0a64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rcx + 13], 4 + QUAD $0x0d3a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rdi + 13], 5 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0d3a64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rdx + rdi + 13], 6 + QUAD $0x0d1a64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r11 + 13], 7 + QUAD $0x0d3264203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r14 + 13], 8 + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + QUAD $0x0d0264203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r8 + 13], 9 + QUAD $0x0d3a64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rdx + r15 + 13], 10 + QUAD $0x0d1a64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rdx + rbx + 13], 11 + QUAD $0x0d2a64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r13 + 13], 12 + QUAD $0x0d0a64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r9 + 13], 13 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + QUAD $0x0d3264203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rdx + rsi + 13], 14 + QUAD $0x0d0264203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rax + 13], 15 + LONG $0x740f4566; BYTE $0xd9 // pcmpeqb xmm11, xmm9 + QUAD $0x0000c09ddb0f4466; BYTE $0x00 // pand xmm11, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4566; BYTE $0xe9 // pcmpeqb xmm13, xmm9 + QUAD $0x0000d0addb0f4466; BYTE $0x00 // pand xmm13, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + LONG $0x1a74b60f; BYTE $0x19 // movzx esi, byte [rdx + rbx + 25] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x740f4566; BYTE $0xe1 // pcmpeqb xmm12, xmm9 + QUAD $0x0000e0a5db0f4466; BYTE $0x00 // pand xmm12, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x1a74b60f; BYTE $0x1a // movzx esi, byte [rdx + rbx + 26] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x00010024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 256] + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x010e0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 14], 1 + QUAD $0x0e2264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r12 + 14], 2 + QUAD $0x0e1264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r10 + 14], 3 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x040e0a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 14], 4 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x050e0a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 14], 5 + QUAD $0x060e3a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 14], 6 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x0e1a64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r11 + 14], 7 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x0e0a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r9 + 14], 8 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + QUAD $0x0e3264203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r14 + 14], 9 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + QUAD $0x0e3a64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r15 + 14], 10 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0e3264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r14 + 14], 11 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0e3a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 14], 12 + QUAD $0x0e2a64203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r13 + 14], 13 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0e2a64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r13 + 14], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f0e3264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 14], 15 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0f3274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rsi + 15], 1 + QUAD $0x0f2274203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rdx + r12 + 15], 2 + QUAD $0x0f1274203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r10 + 15], 3 + QUAD $0x0f0274203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rdx + rax + 15], 4 + QUAD $0x0f0a74203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rdx + rcx + 15], 5 + QUAD $0x0f3a74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rdx + rdi + 15], 6 + QUAD $0x0f0274203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rdx + r8 + 15], 7 + QUAD $0x0f0a74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r9 + 15], 8 + QUAD $0x0f1a74203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rdx + rbx + 15], 9 + QUAD $0x0f1a74203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rdx + r11 + 15], 10 + QUAD $0x0f3274203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rdx + r14 + 15], 11 + QUAD $0x0f3a74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r15 + 15], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0f3274203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rsi + 15], 13 + QUAD $0x0f2a74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r13 + 15], 14 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0f3274203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rsi + 15], 15 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x10327c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rsi + 16], 1 + QUAD $0x10227c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rdx + r12 + 16], 2 + QUAD $0x10127c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r10 + 16], 3 + QUAD $0x10027c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rdx + rax + 16], 4 + QUAD $0x100a7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rcx + 16], 5 + QUAD $0x103a7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rdx + rdi + 16], 6 + QUAD $0x10027c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r8 + 16], 7 + QUAD $0x100a7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r9 + 16], 8 + QUAD $0x101a7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rdx + rbx + 16], 9 + QUAD $0x101a7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rdx + r11 + 16], 10 + QUAD $0x10327c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r14 + 16], 11 + QUAD $0x103a7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r15 + 16], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x10327c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rsi + 16], 13 + QUAD $0x102a7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rdx + r13 + 16], 14 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x01113244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 17], 1 + QUAD $0x112244203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r12 + 17], 2 + QUAD $0x111244203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r10 + 17], 3 + QUAD $0x04110244203a0f66 // pinsrb xmm0, byte [rdx + rax + 17], 4 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x05110a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 17], 5 + QUAD $0x06113a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 17], 6 + QUAD $0x110244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r8 + 17], 7 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x110a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r9 + 17], 8 + QUAD $0x09111a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 17], 9 + QUAD $0x111a44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r11 + 17], 10 + QUAD $0x113244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r14 + 17], 11 + QUAD $0x113a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 17], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0d113244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 17], 13 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0e113244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 17], 14 + QUAD $0x00a024a4eb0f4466; WORD $0x0000 // por xmm12, oword [rsp + 160] + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x74b60f42; WORD $0x1b22 // movzx esi, byte [rdx + r12 + 27] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + QUAD $0x00b024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xe5 // pcmpeqb xmm4, xmm13 + QUAD $0x000000f0a5db0f66 // pand xmm4, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0x740f4566; BYTE $0xf5 // pcmpeqb xmm14, xmm13 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x74b60f42; WORD $0x1c22 // movzx esi, byte [rdx + r12 + 28] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x110244203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r8 + 17], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0x740f4166; BYTE $0xc5 // pcmpeqb xmm0, xmm13 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xdb0f4566; BYTE $0xec // pand xmm13, xmm12 + LONG $0xf80f4466; BYTE $0xe8 // psubb xmm13, xmm0 + QUAD $0x00a024ac7f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm13 + LONG $0x74b60f42; WORD $0x1d22 // movzx esi, byte [rdx + r12 + 29] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + QUAD $0x10027c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rdx + r8 + 16], 15 + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x740f4466; BYTE $0xf8 // pcmpeqb xmm15, xmm0 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x12226c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rdx + r12 + 18], 1 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0212326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 2 + QUAD $0x12126c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r10 + 18], 3 + QUAD $0x122a6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r13 + 18], 4 + QUAD $0x05120a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 18], 5 + QUAD $0x06123a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 18], 6 + QUAD $0x0712026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 18], 7 + QUAD $0x120a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r9 + 18], 8 + QUAD $0x09121a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 18], 9 + QUAD $0x121a6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r11 + 18], 10 + QUAD $0x12326c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r14 + 18], 11 + QUAD $0x123a6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r15 + 18], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0d12326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 13 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0e12326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 18], 14 + LONG $0xdb0f4566; BYTE $0xfc // pand xmm15, xmm12 + QUAD $0x12026c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r8 + 18], 15 + LONG $0xe8740f66 // pcmpeqb xmm5, xmm0 + QUAD $0x000000b0addb0f66 // pand xmm5, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4166; BYTE $0xef // por xmm5, xmm15 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x1e // movzx esi, byte [rdx + rax + 30] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x13227c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rdx + r12 + 19], 1 + QUAD $0x142274203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rdx + r12 + 20], 1 + QUAD $0x152254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r12 + 21], 1 + QUAD $0x16225c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rdx + r12 + 22], 1 + QUAD $0x172244203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rdx + r12 + 23], 1 + QUAD $0x182254203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r12 + 24], 1 + QUAD $0x19224c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rdx + r12 + 25], 1 + QUAD $0x1a225c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r12 + 26], 1 + QUAD $0x1b224c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rdx + r12 + 27], 1 + QUAD $0x1c2264203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rdx + r12 + 28], 1 + QUAD $0x1d226c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rdx + r12 + 29], 1 + QUAD $0x1e2264203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rdx + r12 + 30], 1 + LONG $0x0274b60f; BYTE $0x1f // movzx esi, byte [rdx + rax + 31] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x1f2244203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rdx + r12 + 31], 1 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0213327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 19], 2 + QUAD $0x02143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 2 + QUAD $0x02153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 2 + QUAD $0x0216325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 22], 2 + QUAD $0x173244203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rsi + 23], 2 + QUAD $0x183254203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rsi + 24], 2 + QUAD $0x0219324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 25], 2 + QUAD $0x1a325c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rsi + 26], 2 + QUAD $0x1b324c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rsi + 27], 2 + QUAD $0x021c3264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 28], 2 + QUAD $0x1d326c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rsi + 29], 2 + QUAD $0x1e3264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rsi + 30], 2 + QUAD $0x021f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 2 + QUAD $0x13127c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r10 + 19], 3 + QUAD $0x132a7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r13 + 19], 4 + QUAD $0x05130a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 19], 5 + QUAD $0x06133a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 19], 6 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + QUAD $0x0713027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 19], 7 + QUAD $0x130a7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r9 + 19], 8 + QUAD $0x09131a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 19], 9 + QUAD $0x131a7c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rdx + r11 + 19], 10 + QUAD $0x13327c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r14 + 19], 11 + QUAD $0x133a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r15 + 19], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0d13327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 19], 13 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x13227c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r12 + 19], 14 + QUAD $0x13027c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r8 + 19], 15 + QUAD $0x141274203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r10 + 20], 3 + QUAD $0x142a74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r13 + 20], 4 + QUAD $0x05140a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 20], 5 + QUAD $0x06143a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 20], 6 + QUAD $0x07140274203a0f66 // pinsrb xmm6, byte [rdx + rax + 20], 7 + QUAD $0x140a74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r9 + 20], 8 + QUAD $0x09141a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 20], 9 + QUAD $0x141a74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r11 + 20], 10 + QUAD $0x143274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r14 + 20], 11 + QUAD $0x143a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 20], 12 + QUAD $0x0d143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 13 + QUAD $0x142274203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r12 + 20], 14 + QUAD $0x0000a024aceb0f66; BYTE $0x00 // por xmm5, oword [rsp + 160] + QUAD $0x140274203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rdx + r8 + 20], 15 + QUAD $0x00b024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xff // pcmpeqb xmm7, xmm15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4166; BYTE $0xf7 // pcmpeqb xmm6, xmm15 + QUAD $0x000000d0b5db0f66 // pand xmm6, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0x151254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r10 + 21], 3 + QUAD $0x152a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r13 + 21], 4 + QUAD $0x05150a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 21], 5 + QUAD $0x06153a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 21], 6 + QUAD $0x07150254203a0f66 // pinsrb xmm2, byte [rdx + rax + 21], 7 + QUAD $0x150a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r9 + 21], 8 + QUAD $0x09151a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 21], 9 + QUAD $0x151a54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r11 + 21], 10 + QUAD $0x153254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r14 + 21], 11 + QUAD $0x153a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 21], 12 + QUAD $0x0d153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 13 + QUAD $0x152254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r12 + 21], 14 + QUAD $0x150254203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r8 + 21], 15 + LONG $0x740f4166; BYTE $0xd7 // pcmpeqb xmm2, xmm15 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI2_14] */ + LONG $0xd7db0f66 // pand xmm2, xmm7 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0xd5eb0f66 // por xmm2, xmm5 + QUAD $0x16125c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r10 + 22], 3 + QUAD $0x162a5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r13 + 22], 4 + QUAD $0x05160a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 22], 5 + QUAD $0x06163a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 22], 6 + QUAD $0x0716025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 22], 7 + QUAD $0x160a5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r9 + 22], 8 + QUAD $0x09161a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 22], 9 + QUAD $0x161a5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r11 + 22], 10 + QUAD $0x16325c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r14 + 22], 11 + QUAD $0x163a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r15 + 22], 12 + QUAD $0x0d16325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 22], 13 + QUAD $0x16225c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r12 + 22], 14 + QUAD $0x16025c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r8 + 22], 15 + QUAD $0x171244203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r10 + 23], 3 + QUAD $0x172a44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r13 + 23], 4 + QUAD $0x170a44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rcx + 23], 5 + QUAD $0x173a44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rdx + rdi + 23], 6 + QUAD $0x170244203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rdx + rax + 23], 7 + QUAD $0x170a44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r9 + 23], 8 + QUAD $0x171a44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rdx + rbx + 23], 9 + QUAD $0x171a44203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rdx + r11 + 23], 10 + QUAD $0x173244203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r14 + 23], 11 + QUAD $0x173a44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r15 + 23], 12 + QUAD $0x173244203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rsi + 23], 13 + QUAD $0x172244203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rdx + r12 + 23], 14 + QUAD $0x170244203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r8 + 23], 15 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x000000f0ad6f0f66 // movdqa xmm5, oword 240[rbp] /* [rip + .LCPI2_15] */ + LONG $0xdddb0f66 // pand xmm3, xmm5 + LONG $0x740f4566; BYTE $0xc7 // pcmpeqb xmm8, xmm15 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + QUAD $0x19124c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r10 + 25], 3 + QUAD $0x192a4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r13 + 25], 4 + QUAD $0x05190a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 25], 5 + QUAD $0x06193a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 25], 6 + QUAD $0x0719024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 25], 7 + QUAD $0x190a4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r9 + 25], 8 + QUAD $0x09191a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 25], 9 + QUAD $0x191a4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r11 + 25], 10 + QUAD $0x19324c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r14 + 25], 11 + QUAD $0x193a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r15 + 25], 12 + QUAD $0x0d19324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 25], 13 + QUAD $0x19224c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r12 + 25], 14 + QUAD $0x19024c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r8 + 25], 15 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x740f4166; BYTE $0xcf // pcmpeqb xmm1, xmm15 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI2_10] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + QUAD $0x181254203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r10 + 24], 3 + QUAD $0x182a54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r13 + 24], 4 + QUAD $0x180a54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rcx + 24], 5 + QUAD $0x183a54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rdx + rdi + 24], 6 + QUAD $0x180254203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rdx + rax + 24], 7 + QUAD $0x180a54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r9 + 24], 8 + QUAD $0x181a54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rbx + 24], 9 + QUAD $0x181a54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r11 + 24], 10 + QUAD $0x183254203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r14 + 24], 11 + QUAD $0x183a54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r15 + 24], 12 + QUAD $0x183254203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rsi + 24], 13 + QUAD $0x182254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r12 + 24], 14 + QUAD $0x180254203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rdx + r8 + 24], 15 + LONG $0x740f4566; BYTE $0xd7 // pcmpeqb xmm10, xmm15 + LONG $0xdb0f4466; BYTE $0xd3 // pand xmm10, xmm3 + QUAD $0x1a125c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r10 + 26], 3 + QUAD $0x1a2a5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r13 + 26], 4 + QUAD $0x1a0a5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rcx + 26], 5 + QUAD $0x1a3a5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rdx + rdi + 26], 6 + QUAD $0x1a025c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rdx + rax + 26], 7 + QUAD $0x1a0a5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r9 + 26], 8 + QUAD $0x1a1a5c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rbx + 26], 9 + QUAD $0x1a1a5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r11 + 26], 10 + QUAD $0x1a325c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r14 + 26], 11 + QUAD $0x1a3a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r15 + 26], 12 + QUAD $0x1a325c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rsi + 26], 13 + QUAD $0x1a225c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r12 + 26], 14 + QUAD $0x1a025c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r8 + 26], 15 + LONG $0x740f4566; BYTE $0xdf // pcmpeqb xmm11, xmm15 + QUAD $0x0000b09ddb0f4466; BYTE $0x00 // pand xmm11, oword 176[rbp] /* [rip + .LCPI2_11] */ + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0xeb0f4466; BYTE $0xda // por xmm11, xmm2 + QUAD $0x1b124c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r10 + 27], 3 + QUAD $0x1b2a4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r13 + 27], 4 + QUAD $0x1b0a4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rdx + rcx + 27], 5 + QUAD $0x1b3a4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rdx + rdi + 27], 6 + QUAD $0x1b024c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rdx + rax + 27], 7 + QUAD $0x1b0a4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r9 + 27], 8 + QUAD $0x1b1a4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rdx + rbx + 27], 9 + QUAD $0x1b1a4c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r11 + 27], 10 + QUAD $0x1b324c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r14 + 27], 11 + QUAD $0x1b3a4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r15 + 27], 12 + QUAD $0x1b324c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rsi + 27], 13 + QUAD $0x1b224c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r12 + 27], 14 + QUAD $0x1b024c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r8 + 27], 15 + QUAD $0x1c1264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r10 + 28], 3 + QUAD $0x1c2a64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r13 + 28], 4 + QUAD $0x051c0a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 28], 5 + QUAD $0x061c3a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 28], 6 + QUAD $0x071c0264203a0f66 // pinsrb xmm4, byte [rdx + rax + 28], 7 + QUAD $0x1c0a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r9 + 28], 8 + QUAD $0x091c1a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 28], 9 + QUAD $0x1c1a64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r11 + 28], 10 + QUAD $0x1c3264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r14 + 28], 11 + QUAD $0x1c3a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 28], 12 + QUAD $0x0d1c3264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 28], 13 + QUAD $0x1c2264203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r12 + 28], 14 + QUAD $0x1c0264203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rdx + r8 + 28], 15 + QUAD $0x1d126c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r10 + 29], 3 + QUAD $0x1d2a6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rdx + r13 + 29], 4 + QUAD $0x1d0a6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rcx + 29], 5 + QUAD $0x1d3a6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rdx + rdi + 29], 6 + QUAD $0x1d026c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rdx + rax + 29], 7 + QUAD $0x1d0a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r9 + 29], 8 + QUAD $0x1d1a6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rdx + rbx + 29], 9 + QUAD $0x1d1a6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rdx + r11 + 29], 10 + QUAD $0x1d326c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rdx + r14 + 29], 11 + QUAD $0x1d3a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r15 + 29], 12 + QUAD $0x1d326c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rdx + rsi + 29], 13 + QUAD $0x1d226c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r12 + 29], 14 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0x740f4566; BYTE $0xcf // pcmpeqb xmm9, xmm15 + QUAD $0x0000c08ddb0f4466; BYTE $0x00 // pand xmm9, oword 192[rbp] /* [rip + .LCPI2_12] */ + LONG $0x740f4166; BYTE $0xe7 // pcmpeqb xmm4, xmm15 + QUAD $0x000000d0a5db0f66 // pand xmm4, oword 208[rbp] /* [rip + .LCPI2_13] */ + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + QUAD $0x1d026c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rdx + r8 + 29], 15 + LONG $0x740f4566; BYTE $0xef // pcmpeqb xmm13, xmm15 + LONG $0xdb0f4466; BYTE $0xef // pand xmm13, xmm7 + LONG $0xeb0f4466; BYTE $0xec // por xmm13, xmm4 + QUAD $0x1e1264203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r10 + 30], 3 + QUAD $0x1f1244203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r10 + 31], 3 + QUAD $0x1e2a64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rdx + r13 + 30], 4 + QUAD $0x1f2a44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r13 + 31], 4 + QUAD $0x1e0a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rcx + 30], 5 + QUAD $0x051f0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 31], 5 + QUAD $0x1e3a64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rdx + rdi + 30], 6 + QUAD $0x061f3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 31], 6 + QUAD $0x1e0264203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rdx + rax + 30], 7 + QUAD $0x071f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 31], 7 + QUAD $0x1e0a64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r9 + 30], 8 + QUAD $0x1f0a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r9 + 31], 8 + QUAD $0x1e1a64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rdx + rbx + 30], 9 + QUAD $0x091f1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 31], 9 + QUAD $0x1e1a64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rdx + r11 + 30], 10 + QUAD $0x1f1a44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r11 + 31], 10 + QUAD $0x1e3264203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r14 + 30], 11 + QUAD $0x1f3244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r14 + 31], 11 + QUAD $0x1e3a64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r15 + 30], 12 + QUAD $0x1f3a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 31], 12 + QUAD $0x1e3264203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rdx + rsi + 30], 13 + QUAD $0x0d1f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 13 + QUAD $0x1e2264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r12 + 30], 14 + QUAD $0x1f2244203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r12 + 31], 14 + QUAD $0x1e0264203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rdx + r8 + 30], 15 + QUAD $0x1f0244203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r8 + 31], 15 + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x740f4566; BYTE $0xe7 // pcmpeqb xmm12, xmm15 + LONG $0xdb0f4466; BYTE $0xe5 // pand xmm12, xmm5 + LONG $0x740f4166; BYTE $0xc7 // pcmpeqb xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xc6db0f66 // pand xmm0, xmm6 + LONG $0xeb0f4166; BYTE $0xc4 // por xmm0, xmm12 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000c024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 192] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd9610f66 // punpcklwd xmm3, xmm1 + LONG $0xd1690f66 // punpckhwd xmm2, xmm1 + LONG $0x680f4466; BYTE $0xc0 // punpckhbw xmm8, xmm0 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x647f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm4 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x547f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm2 + LONG $0x1c7f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB2_189 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x000000e824bc3b4c // cmp r15, qword [rsp + 232] + LONG $0x24748a44; BYTE $0x08 // mov r14b, byte [rsp + 8] + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + JNE LBB2_69 + JMP LBB2_135 + +LBB2_191: + LONG $0xf8e68349 // and r14, -8 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x2474894c; BYTE $0x20 // mov qword [rsp + 32], r14 + LONG $0xb0048d4a // lea rax, [rax + 4*r14] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x38 // mov dword [rsp + 56], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x000080bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 128[rbp] /* [rip + .LCPI2_8] */ + LONG $0x6f0f4466; WORD $0x104d // movdqa xmm9, oword 16[rbp] /* [rip + .LCPI2_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI2_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI2_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI2_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI2_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI2_6] */ + +LBB2_192: + LONG $0x247c894c; BYTE $0x30 // mov qword [rsp + 48], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0x04b70f42; BYTE $0x3a // movzx eax, word [rdx + r15] + LONG $0x54b70f46; WORD $0x023a // movzx r10d, word [rdx + r15 + 2] + LONG $0x74b70f46; WORD $0x043a // movzx r14d, word [rdx + r15 + 4] + LONG $0x74b70f42; WORD $0x063a // movzx esi, word [rdx + r15 + 6] + LONG $0x5cb70f46; WORD $0x083a // movzx r11d, word [rdx + r15 + 8] + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x40c88349 // or r8, 64 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xc40f4266; WORD $0x0224; BYTE $0x01 // pinsrw xmm4, word [rdx + r8], 1 + LONG $0xc40f4266; WORD $0x0a24; BYTE $0x02 // pinsrw xmm4, word [rdx + r9], 2 + LONG $0xc40f4266; WORD $0x2224; BYTE $0x03 // pinsrw xmm4, word [rdx + r12], 3 + LONG $0xc40f4266; WORD $0x2a24; BYTE $0x04 // pinsrw xmm4, word [rdx + r13], 4 + LONG $0x24c40f66; WORD $0x050a // pinsrw xmm4, word [rdx + rcx], 5 + LONG $0x24c40f66; WORD $0x063a // pinsrw xmm4, word [rdx + rdi], 6 + LONG $0x24c40f66; WORD $0x071a // pinsrw xmm4, word [rdx + rbx], 7 + LONG $0x44b70f42; WORD $0x0a3a // movzx eax, word [rdx + r15 + 10] + LONG $0x18244489 // mov dword [rsp + 24], eax + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + QUAD $0x01020274c40f4266 // pinsrw xmm6, word [rdx + r8 + 2], 1 + QUAD $0x02020a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 2], 2 + QUAD $0x03022274c40f4266 // pinsrw xmm6, word [rdx + r12 + 2], 3 + LONG $0x44b70f42; WORD $0x0c3a // movzx eax, word [rdx + r15 + 12] + LONG $0x10244489 // mov dword [rsp + 16], eax + QUAD $0x04022a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 2], 4 + LONG $0x6e0f4166; BYTE $0xd6 // movd xmm2, r14d + LONG $0x74b70f46; WORD $0x0e3a // movzx r14d, word [rdx + r15 + 14] + LONG $0x74c40f66; WORD $0x020a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 2], 5 + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x74b70f42; WORD $0x103a // movzx esi, word [rdx + r15 + 16] + LONG $0x74c40f66; WORD $0x023a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 2], 6 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + LONG $0x44b70f42; WORD $0x123a // movzx eax, word [rdx + r15 + 18] + LONG $0x28244489 // mov dword [rsp + 40], eax + LONG $0x74c40f66; WORD $0x021a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 2], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xcef80f66 // psubb xmm1, xmm6 + LONG $0x746e0f66; WORD $0x1824 // movd xmm6, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x143a // movzx r10d, word [rdx + r15 + 20] + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0x01040254c40f4266 // pinsrw xmm2, word [rdx + r8 + 4], 1 + QUAD $0x02040a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 4], 2 + QUAD $0x03042254c40f4266 // pinsrw xmm2, word [rdx + r12 + 4], 3 + QUAD $0x04042a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 4], 7 + QUAD $0x0106026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 6], 1 + QUAD $0x02060a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 6], 2 + QUAD $0x0306226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 6], 3 + QUAD $0x04062a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 6], 4 + LONG $0x6cc40f66; WORD $0x060a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 6], 5 + LONG $0x6cc40f66; WORD $0x063a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 6], 6 + LONG $0x6cc40f66; WORD $0x061a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 6], 7 + QUAD $0x0108025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 8], 1 + QUAD $0x02080a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 8], 2 + QUAD $0x0308225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 8], 3 + QUAD $0x04082a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 8], 4 + LONG $0x5cc40f66; WORD $0x080a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 8], 5 + LONG $0x5cc40f66; WORD $0x083a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 8], 6 + LONG $0x5cc40f66; WORD $0x081a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 8], 7 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x7c6e0f66; WORD $0x1024 // movd xmm7, dword [rsp + 16] + LONG $0x44b70f42; WORD $0x163a // movzx eax, word [rdx + r15 + 22] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0xdb0f4166; BYTE $0xd1 // pand xmm2, xmm9 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x5cb70f46; WORD $0x183a // movzx r11d, word [rdx + r15 + 24] + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x74b70f42; WORD $0x1a3a // movzx esi, word [rdx + r15 + 26] + QUAD $0x010a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 10], 1 + QUAD $0x020a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 10], 2 + QUAD $0x030a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 10], 3 + QUAD $0x040a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 10], 4 + LONG $0x74c40f66; WORD $0x0a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 10], 5 + LONG $0x74c40f66; WORD $0x0a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 10], 6 + LONG $0x74c40f66; WORD $0x0a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 10], 7 + QUAD $0x010c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 12], 1 + QUAD $0x020c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 12], 2 + QUAD $0x030c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 12], 3 + QUAD $0x040c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 12], 4 + LONG $0x7cc40f66; WORD $0x0c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 12], 5 + LONG $0x7cc40f66; WORD $0x0c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 12], 6 + LONG $0x7cc40f66; WORD $0x0c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 12], 7 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4466; WORD $0x2444; BYTE $0x28 // movd xmm8, dword [rsp + 40] + LONG $0x74b70f46; WORD $0x1c3a // movzx r14d, word [rdx + r15 + 28] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xea // movd xmm5, r10d + LONG $0x54b70f46; WORD $0x1e3a // movzx r10d, word [rdx + r15 + 30] + QUAD $0x010e0264c40f4266 // pinsrw xmm4, word [rdx + r8 + 14], 1 + QUAD $0x020e0a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 14], 2 + QUAD $0x030e2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 14], 3 + QUAD $0x040e2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 14], 4 + LONG $0x64c40f66; WORD $0x0e0a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 14], 5 + LONG $0x64c40f66; WORD $0x0e3a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 14], 6 + LONG $0x64c40f66; WORD $0x0e1a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 14], 7 + QUAD $0x01120244c40f4666 // pinsrw xmm8, word [rdx + r8 + 18], 1 + QUAD $0x02120a44c40f4666 // pinsrw xmm8, word [rdx + r9 + 18], 2 + QUAD $0x03122244c40f4666 // pinsrw xmm8, word [rdx + r12 + 18], 3 + QUAD $0x04122a44c40f4666 // pinsrw xmm8, word [rdx + r13 + 18], 4 + QUAD $0x05120a44c40f4466 // pinsrw xmm8, word [rdx + rcx + 18], 5 + QUAD $0x06123a44c40f4466 // pinsrw xmm8, word [rdx + rdi + 18], 6 + QUAD $0x07121a44c40f4466 // pinsrw xmm8, word [rdx + rbx + 18], 7 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x203a // movzx eax, word [rdx + r15 + 32] + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x750f4466; BYTE $0xc0 // pcmpeqw xmm8, xmm0 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf80f4166; BYTE $0xf8 // psubb xmm7, xmm8 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + LONG $0x5cb70f46; WORD $0x223a // movzx r11d, word [rdx + r15 + 34] + QUAD $0x0110024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 16], 1 + QUAD $0x02100a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 16], 2 + QUAD $0x0310224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 16], 3 + QUAD $0x04102a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 16], 4 + LONG $0x4cc40f66; WORD $0x100a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 16], 5 + LONG $0x4cc40f66; WORD $0x103a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 16], 6 + LONG $0x4cc40f66; WORD $0x101a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 16], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0x74b70f42; WORD $0x243a // movzx esi, word [rdx + r15 + 36] + LONG $0x28247489 // mov dword [rsp + 40], esi + QUAD $0x0114026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 20], 1 + QUAD $0x02140a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 20], 2 + QUAD $0x0314226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 20], 3 + QUAD $0x04142a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 20], 4 + LONG $0x6cc40f66; WORD $0x140a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 20], 5 + LONG $0x6cc40f66; WORD $0x143a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 20], 6 + LONG $0x6cc40f66; WORD $0x141a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 20], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe9 // pand xmm5, xmm9 + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6e0f4166; BYTE $0xfe // movd xmm7, r14d + LONG $0x74b70f42; WORD $0x263a // movzx esi, word [rdx + r15 + 38] + LONG $0x10247489 // mov dword [rsp + 16], esi + QUAD $0x01160254c40f4266 // pinsrw xmm2, word [rdx + r8 + 22], 1 + QUAD $0x02160a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 22], 2 + QUAD $0x03162254c40f4266 // pinsrw xmm2, word [rdx + r12 + 22], 3 + QUAD $0x04162a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 22], 4 + LONG $0x54c40f66; WORD $0x160a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 22], 5 + LONG $0x54c40f66; WORD $0x163a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 22], 6 + LONG $0x54c40f66; WORD $0x161a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 22], 7 + QUAD $0x0118025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 24], 1 + QUAD $0x02180a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 24], 2 + QUAD $0x0318225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 24], 3 + QUAD $0x04182a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 24], 4 + LONG $0x5cc40f66; WORD $0x180a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 24], 5 + LONG $0x5cc40f66; WORD $0x183a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 24], 6 + LONG $0x5cc40f66; WORD $0x181a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 24], 7 + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x74b70f46; WORD $0x283a // movzx r14d, word [rdx + r15 + 40] + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x2a3a // movzx eax, word [rdx + r15 + 42] + LONG $0x18244489 // mov dword [rsp + 24], eax + QUAD $0x011a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 26], 1 + QUAD $0x021a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 26], 2 + QUAD $0x031a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 26], 3 + QUAD $0x041a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 26], 4 + LONG $0x74c40f66; WORD $0x1a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 26], 5 + LONG $0x74c40f66; WORD $0x1a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 26], 6 + LONG $0x74c40f66; WORD $0x1a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 26], 7 + QUAD $0x011c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 28], 1 + QUAD $0x021c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 28], 2 + QUAD $0x031c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 28], 3 + QUAD $0x041c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 28], 4 + LONG $0x7cc40f66; WORD $0x1c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 28], 5 + LONG $0x7cc40f66; WORD $0x1c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 28], 6 + LONG $0x7cc40f66; WORD $0x1c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 28], 7 + QUAD $0x011e0254c40f4266 // pinsrw xmm2, word [rdx + r8 + 30], 1 + QUAD $0x021e0a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 30], 2 + QUAD $0x031e2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 30], 3 + QUAD $0x041e2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 30], 4 + LONG $0x54c40f66; WORD $0x1e0a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 30], 5 + LONG $0x54c40f66; WORD $0x1e3a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 30], 6 + LONG $0x54c40f66; WORD $0x1e1a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 30], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x54b70f46; WORD $0x2c3a // movzx r10d, word [rdx + r15 + 44] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x746e0f66; WORD $0x2824 // movd xmm6, dword [rsp + 40] + LONG $0x74b70f42; WORD $0x2e3a // movzx esi, word [rdx + r15 + 46] + QUAD $0x0120026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 32], 1 + QUAD $0x02200a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 32], 2 + QUAD $0x0320226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 32], 3 + QUAD $0x04202a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 32], 4 + LONG $0x6cc40f66; WORD $0x200a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 32], 5 + LONG $0x6cc40f66; WORD $0x203a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 32], 6 + QUAD $0x0122024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 34], 1 + QUAD $0x02220a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 34], 2 + QUAD $0x0322224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 34], 3 + QUAD $0x04222a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 34], 4 + LONG $0x4cc40f66; WORD $0x220a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 34], 5 + LONG $0x4cc40f66; WORD $0x223a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 34], 6 + LONG $0x4cc40f66; WORD $0x221a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 34], 7 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0x5c6e0f66; WORD $0x1024 // movd xmm3, dword [rsp + 16] + LONG $0x5cb70f46; WORD $0x303a // movzx r11d, word [rdx + r15 + 48] + LONG $0x6cc40f66; WORD $0x201a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 32], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x01240274c40f4266 // pinsrw xmm6, word [rdx + r8 + 36], 1 + QUAD $0x02240a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 36], 2 + QUAD $0x03242274c40f4266 // pinsrw xmm6, word [rdx + r12 + 36], 3 + QUAD $0x04242a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 36], 4 + LONG $0x74c40f66; WORD $0x240a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 36], 5 + LONG $0x74c40f66; WORD $0x243a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 36], 6 + LONG $0x74c40f66; WORD $0x241a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 36], 7 + QUAD $0x0126025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 38], 1 + QUAD $0x02260a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 38], 2 + QUAD $0x0326225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 38], 3 + QUAD $0x04262a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 38], 4 + LONG $0x5cc40f66; WORD $0x260a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 38], 5 + LONG $0x5cc40f66; WORD $0x263a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 38], 6 + LONG $0x5cc40f66; WORD $0x261a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 38], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6e0f4166; BYTE $0xee // movd xmm5, r14d + QUAD $0x0128026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 40], 1 + QUAD $0x02280a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 40], 2 + QUAD $0x0328226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 40], 3 + QUAD $0x04282a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 40], 4 + LONG $0x6cc40f66; WORD $0x280a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 40], 5 + LONG $0x6cc40f66; WORD $0x283a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 40], 6 + LONG $0x44b70f42; WORD $0x323a // movzx eax, word [rdx + r15 + 50] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x4c6e0f66; WORD $0x1824 // movd xmm1, dword [rsp + 24] + LONG $0x74b70f46; WORD $0x343a // movzx r14d, word [rdx + r15 + 52] + LONG $0x6cc40f66; WORD $0x281a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 40], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0xdb0f4166; BYTE $0xda // pand xmm3, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xebeb0f66 // por xmm5, xmm3 + LONG $0x6e0f4166; BYTE $0xfa // movd xmm7, r10d + LONG $0x54b70f46; WORD $0x363a // movzx r10d, word [rdx + r15 + 54] + QUAD $0x012a024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 42], 1 + QUAD $0x022a0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 42], 2 + QUAD $0x032a224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 42], 3 + QUAD $0x042a2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 42], 4 + LONG $0x4cc40f66; WORD $0x2a0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 42], 5 + LONG $0x4cc40f66; WORD $0x2a3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 42], 6 + LONG $0x4cc40f66; WORD $0x2a1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 42], 7 + QUAD $0x012c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 44], 1 + QUAD $0x022c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 44], 2 + QUAD $0x032c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 44], 3 + QUAD $0x042c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 44], 4 + LONG $0x7cc40f66; WORD $0x2c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 44], 5 + LONG $0x7cc40f66; WORD $0x2c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 44], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x74b70f42; WORD $0x383a // movzx esi, word [rdx + r15 + 56] + LONG $0x7cc40f66; WORD $0x2c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 44], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x05 // psllw xmm1, 5 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + LONG $0x5cb70f46; WORD $0x3a3a // movzx r11d, word [rdx + r15 + 58] + QUAD $0x012e025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 46], 1 + QUAD $0x022e0a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 46], 2 + QUAD $0x032e225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 46], 3 + QUAD $0x042e2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 46], 4 + LONG $0x5cc40f66; WORD $0x2e0a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 46], 5 + LONG $0x5cc40f66; WORD $0x2e3a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 46], 6 + LONG $0x5cc40f66; WORD $0x2e1a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 46], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdfeb0f66 // por xmm3, xmm7 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x3c3a // movzx eax, word [rdx + r15 + 60] + LONG $0x7cb70f46; WORD $0x3e3a // movzx r15d, word [rdx + r15 + 62] + QUAD $0x0132024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 50], 1 + QUAD $0x02320a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 50], 2 + QUAD $0x0332224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 50], 3 + QUAD $0x04322a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x320a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 50], 5 + LONG $0x4cc40f66; WORD $0x323a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 50], 6 + LONG $0x4cc40f66; WORD $0x321a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 50], 7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + QUAD $0x01300274c40f4266 // pinsrw xmm6, word [rdx + r8 + 48], 1 + QUAD $0x02300a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 48], 2 + QUAD $0x03302274c40f4266 // pinsrw xmm6, word [rdx + r12 + 48], 3 + QUAD $0x04302a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 48], 4 + LONG $0x74c40f66; WORD $0x300a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 48], 5 + LONG $0x74c40f66; WORD $0x303a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 48], 6 + LONG $0x74c40f66; WORD $0x301a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 48], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x0134024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 52], 1 + QUAD $0x02340a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 52], 2 + QUAD $0x0334224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 52], 3 + QUAD $0x04342a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 52], 4 + LONG $0x4cc40f66; WORD $0x340a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 52], 5 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x4cc40f66; WORD $0x343a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 52], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x4cc40f66; WORD $0x341a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 52], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x02 // psllw xmm1, 2 + LONG $0xdb0f4166; BYTE $0xc9 // pand xmm1, xmm9 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xee6e0f66 // movd xmm5, esi + QUAD $0x01360274c40f4266 // pinsrw xmm6, word [rdx + r8 + 54], 1 + QUAD $0x02360a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 54], 2 + QUAD $0x03362274c40f4266 // pinsrw xmm6, word [rdx + r12 + 54], 3 + QUAD $0x04362a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 54], 7 + QUAD $0x0138026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 56], 1 + QUAD $0x02380a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 56], 2 + QUAD $0x0338226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 56], 3 + QUAD $0x04382a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 56], 4 + LONG $0x6cc40f66; WORD $0x380a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 56], 5 + LONG $0x6cc40f66; WORD $0x383a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 56], 6 + LONG $0x6cc40f66; WORD $0x381a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 56], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x03 // psllw xmm6, 3 + LONG $0xdb0f4166; BYTE $0xf2 // pand xmm6, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + LONG $0x24348b48 // mov rsi, qword [rsp] + QUAD $0x013a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 58], 1 + QUAD $0x023a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 58], 2 + QUAD $0x033a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 58], 3 + QUAD $0x043a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 58], 4 + LONG $0x74c40f66; WORD $0x3a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 58], 5 + LONG $0x74c40f66; WORD $0x3a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 58], 6 + LONG $0x74c40f66; WORD $0x3a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 58], 7 + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0xc86e0f66 // movd xmm1, eax + QUAD $0x013c024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 60], 1 + QUAD $0x023c0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 60], 2 + QUAD $0x033c224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 60], 3 + QUAD $0x043c2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 60], 4 + LONG $0x4cc40f66; WORD $0x3c0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 60], 5 + LONG $0x4cc40f66; WORD $0x3c3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 60], 6 + LONG $0x4cc40f66; WORD $0x3c1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 60], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x06 // psllw xmm1, 6 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf7 // movd xmm6, r15d + QUAD $0x013e0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 62], 1 + QUAD $0x023e0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 62], 2 + QUAD $0x033e2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 62], 3 + QUAD $0x043e2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 62], 4 + LONG $0x74c40f66; WORD $0x3e0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 62], 5 + LONG $0x74c40f66; WORD $0x3e3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 62], 6 + LONG $0x74c40f66; WORD $0x3e1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 62], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0xdb0f4166; BYTE $0xf6 // pand xmm6, xmm14 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + QUAD $0x00000090bd6f0f66 // movdqa xmm7, oword 144[rbp] /* [rip + .LCPI2_9] */ + LONG $0x00380f66; BYTE $0xef // pshufb xmm5, xmm7 + LONG $0x00380f66; BYTE $0xcf // pshufb xmm1, xmm7 + LONG $0xcd610f66 // punpcklwd xmm1, xmm5 + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe2600f66 // punpcklbw xmm4, xmm2 + LONG $0xe3610f66 // punpcklwd xmm4, xmm3 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + LONG $0x247f0ff3; BYTE $0x8e // movdqu oword [rsi + 4*rcx], xmm4 + LONG $0x24348948 // mov qword [rsp], rsi + LONG $0x4c7f0ff3; WORD $0x108e // movdqu oword [rsi + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x20 // cmp rcx, qword [rsp + 32] + JNE LBB2_192 + QUAD $0x0000009824b48b4c // mov r14, qword [rsp + 152] + LONG $0x24743b4c; BYTE $0x20 // cmp r14, qword [rsp + 32] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x38 // mov r13d, dword [rsp + 56] + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + JNE LBB2_92 + JMP LBB2_139 + +LBB2_194: + LONG $0xf8e78349 // and r15, -8 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0xb8048d4a // lea rax, [rax + 4*r15] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x38 // mov dword [rsp + 56], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x000080bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 128[rbp] /* [rip + .LCPI2_8] */ + LONG $0x6f0f4466; WORD $0x104d // movdqa xmm9, oword 16[rbp] /* [rip + .LCPI2_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI2_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI2_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI2_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI2_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI2_6] */ + +LBB2_195: + LONG $0x247c894c; BYTE $0x30 // mov qword [rsp + 48], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0x04b70f42; BYTE $0x3a // movzx eax, word [rdx + r15] + LONG $0x54b70f46; WORD $0x023a // movzx r10d, word [rdx + r15 + 2] + LONG $0x74b70f46; WORD $0x043a // movzx r14d, word [rdx + r15 + 4] + LONG $0x74b70f42; WORD $0x063a // movzx esi, word [rdx + r15 + 6] + LONG $0x5cb70f46; WORD $0x083a // movzx r11d, word [rdx + r15 + 8] + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x40c88349 // or r8, 64 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0xc40f4266; WORD $0x0224; BYTE $0x01 // pinsrw xmm4, word [rdx + r8], 1 + LONG $0xc40f4266; WORD $0x0a24; BYTE $0x02 // pinsrw xmm4, word [rdx + r9], 2 + LONG $0xc40f4266; WORD $0x2224; BYTE $0x03 // pinsrw xmm4, word [rdx + r12], 3 + LONG $0xc40f4266; WORD $0x2a24; BYTE $0x04 // pinsrw xmm4, word [rdx + r13], 4 + LONG $0x24c40f66; WORD $0x050a // pinsrw xmm4, word [rdx + rcx], 5 + LONG $0x24c40f66; WORD $0x063a // pinsrw xmm4, word [rdx + rdi], 6 + LONG $0x24c40f66; WORD $0x071a // pinsrw xmm4, word [rdx + rbx], 7 + LONG $0x44b70f42; WORD $0x0a3a // movzx eax, word [rdx + r15 + 10] + LONG $0x18244489 // mov dword [rsp + 24], eax + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + QUAD $0x01020274c40f4266 // pinsrw xmm6, word [rdx + r8 + 2], 1 + QUAD $0x02020a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 2], 2 + QUAD $0x03022274c40f4266 // pinsrw xmm6, word [rdx + r12 + 2], 3 + LONG $0x44b70f42; WORD $0x0c3a // movzx eax, word [rdx + r15 + 12] + LONG $0x10244489 // mov dword [rsp + 16], eax + QUAD $0x04022a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 2], 4 + LONG $0x6e0f4166; BYTE $0xd6 // movd xmm2, r14d + LONG $0x74b70f46; WORD $0x0e3a // movzx r14d, word [rdx + r15 + 14] + LONG $0x74c40f66; WORD $0x020a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 2], 5 + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x74b70f42; WORD $0x103a // movzx esi, word [rdx + r15 + 16] + LONG $0x74c40f66; WORD $0x023a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 2], 6 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + LONG $0x44b70f42; WORD $0x123a // movzx eax, word [rdx + r15 + 18] + LONG $0x28244489 // mov dword [rsp + 40], eax + LONG $0x74c40f66; WORD $0x021a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 2], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xcef80f66 // psubb xmm1, xmm6 + LONG $0x746e0f66; WORD $0x1824 // movd xmm6, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x143a // movzx r10d, word [rdx + r15 + 20] + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0x01040254c40f4266 // pinsrw xmm2, word [rdx + r8 + 4], 1 + QUAD $0x02040a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 4], 2 + QUAD $0x03042254c40f4266 // pinsrw xmm2, word [rdx + r12 + 4], 3 + QUAD $0x04042a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 4], 7 + QUAD $0x0106026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 6], 1 + QUAD $0x02060a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 6], 2 + QUAD $0x0306226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 6], 3 + QUAD $0x04062a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 6], 4 + LONG $0x6cc40f66; WORD $0x060a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 6], 5 + LONG $0x6cc40f66; WORD $0x063a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 6], 6 + LONG $0x6cc40f66; WORD $0x061a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 6], 7 + QUAD $0x0108025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 8], 1 + QUAD $0x02080a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 8], 2 + QUAD $0x0308225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 8], 3 + QUAD $0x04082a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 8], 4 + LONG $0x5cc40f66; WORD $0x080a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 8], 5 + LONG $0x5cc40f66; WORD $0x083a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 8], 6 + LONG $0x5cc40f66; WORD $0x081a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 8], 7 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x7c6e0f66; WORD $0x1024 // movd xmm7, dword [rsp + 16] + LONG $0x44b70f42; WORD $0x163a // movzx eax, word [rdx + r15 + 22] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0xdb0f4166; BYTE $0xd1 // pand xmm2, xmm9 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x5cb70f46; WORD $0x183a // movzx r11d, word [rdx + r15 + 24] + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x74b70f42; WORD $0x1a3a // movzx esi, word [rdx + r15 + 26] + QUAD $0x010a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 10], 1 + QUAD $0x020a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 10], 2 + QUAD $0x030a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 10], 3 + QUAD $0x040a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 10], 4 + LONG $0x74c40f66; WORD $0x0a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 10], 5 + LONG $0x74c40f66; WORD $0x0a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 10], 6 + LONG $0x74c40f66; WORD $0x0a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 10], 7 + QUAD $0x010c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 12], 1 + QUAD $0x020c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 12], 2 + QUAD $0x030c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 12], 3 + QUAD $0x040c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 12], 4 + LONG $0x7cc40f66; WORD $0x0c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 12], 5 + LONG $0x7cc40f66; WORD $0x0c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 12], 6 + LONG $0x7cc40f66; WORD $0x0c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 12], 7 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4466; WORD $0x2444; BYTE $0x28 // movd xmm8, dword [rsp + 40] + LONG $0x74b70f46; WORD $0x1c3a // movzx r14d, word [rdx + r15 + 28] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xea // movd xmm5, r10d + LONG $0x54b70f46; WORD $0x1e3a // movzx r10d, word [rdx + r15 + 30] + QUAD $0x010e0264c40f4266 // pinsrw xmm4, word [rdx + r8 + 14], 1 + QUAD $0x020e0a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 14], 2 + QUAD $0x030e2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 14], 3 + QUAD $0x040e2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 14], 4 + LONG $0x64c40f66; WORD $0x0e0a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 14], 5 + LONG $0x64c40f66; WORD $0x0e3a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 14], 6 + LONG $0x64c40f66; WORD $0x0e1a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 14], 7 + QUAD $0x01120244c40f4666 // pinsrw xmm8, word [rdx + r8 + 18], 1 + QUAD $0x02120a44c40f4666 // pinsrw xmm8, word [rdx + r9 + 18], 2 + QUAD $0x03122244c40f4666 // pinsrw xmm8, word [rdx + r12 + 18], 3 + QUAD $0x04122a44c40f4666 // pinsrw xmm8, word [rdx + r13 + 18], 4 + QUAD $0x05120a44c40f4466 // pinsrw xmm8, word [rdx + rcx + 18], 5 + QUAD $0x06123a44c40f4466 // pinsrw xmm8, word [rdx + rdi + 18], 6 + QUAD $0x07121a44c40f4466 // pinsrw xmm8, word [rdx + rbx + 18], 7 + LONG $0xe0750f66 // pcmpeqw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x203a // movzx eax, word [rdx + r15 + 32] + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x750f4466; BYTE $0xc0 // pcmpeqw xmm8, xmm0 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf80f4166; BYTE $0xf8 // psubb xmm7, xmm8 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + LONG $0x5cb70f46; WORD $0x223a // movzx r11d, word [rdx + r15 + 34] + QUAD $0x0110024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 16], 1 + QUAD $0x02100a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 16], 2 + QUAD $0x0310224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 16], 3 + QUAD $0x04102a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 16], 4 + LONG $0x4cc40f66; WORD $0x100a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 16], 5 + LONG $0x4cc40f66; WORD $0x103a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 16], 6 + LONG $0x4cc40f66; WORD $0x101a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 16], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0x74b70f42; WORD $0x243a // movzx esi, word [rdx + r15 + 36] + LONG $0x28247489 // mov dword [rsp + 40], esi + QUAD $0x0114026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 20], 1 + QUAD $0x02140a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 20], 2 + QUAD $0x0314226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 20], 3 + QUAD $0x04142a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 20], 4 + LONG $0x6cc40f66; WORD $0x140a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 20], 5 + LONG $0x6cc40f66; WORD $0x143a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 20], 6 + LONG $0x6cc40f66; WORD $0x141a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 20], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe9 // pand xmm5, xmm9 + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6e0f4166; BYTE $0xfe // movd xmm7, r14d + LONG $0x74b70f42; WORD $0x263a // movzx esi, word [rdx + r15 + 38] + LONG $0x10247489 // mov dword [rsp + 16], esi + QUAD $0x01160254c40f4266 // pinsrw xmm2, word [rdx + r8 + 22], 1 + QUAD $0x02160a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 22], 2 + QUAD $0x03162254c40f4266 // pinsrw xmm2, word [rdx + r12 + 22], 3 + QUAD $0x04162a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 22], 4 + LONG $0x54c40f66; WORD $0x160a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 22], 5 + LONG $0x54c40f66; WORD $0x163a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 22], 6 + LONG $0x54c40f66; WORD $0x161a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 22], 7 + QUAD $0x0118025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 24], 1 + QUAD $0x02180a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 24], 2 + QUAD $0x0318225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 24], 3 + QUAD $0x04182a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 24], 4 + LONG $0x5cc40f66; WORD $0x180a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 24], 5 + LONG $0x5cc40f66; WORD $0x183a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 24], 6 + LONG $0x5cc40f66; WORD $0x181a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 24], 7 + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x74b70f46; WORD $0x283a // movzx r14d, word [rdx + r15 + 40] + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x2a3a // movzx eax, word [rdx + r15 + 42] + LONG $0x18244489 // mov dword [rsp + 24], eax + QUAD $0x011a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 26], 1 + QUAD $0x021a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 26], 2 + QUAD $0x031a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 26], 3 + QUAD $0x041a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 26], 4 + LONG $0x74c40f66; WORD $0x1a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 26], 5 + LONG $0x74c40f66; WORD $0x1a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 26], 6 + LONG $0x74c40f66; WORD $0x1a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 26], 7 + QUAD $0x011c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 28], 1 + QUAD $0x021c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 28], 2 + QUAD $0x031c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 28], 3 + QUAD $0x041c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 28], 4 + LONG $0x7cc40f66; WORD $0x1c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 28], 5 + LONG $0x7cc40f66; WORD $0x1c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 28], 6 + LONG $0x7cc40f66; WORD $0x1c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 28], 7 + QUAD $0x011e0254c40f4266 // pinsrw xmm2, word [rdx + r8 + 30], 1 + QUAD $0x021e0a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 30], 2 + QUAD $0x031e2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 30], 3 + QUAD $0x041e2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 30], 4 + LONG $0x54c40f66; WORD $0x1e0a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 30], 5 + LONG $0x54c40f66; WORD $0x1e3a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 30], 6 + LONG $0x54c40f66; WORD $0x1e1a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 30], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x54b70f46; WORD $0x2c3a // movzx r10d, word [rdx + r15 + 44] + LONG $0xd0750f66 // pcmpeqw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x746e0f66; WORD $0x2824 // movd xmm6, dword [rsp + 40] + LONG $0x74b70f42; WORD $0x2e3a // movzx esi, word [rdx + r15 + 46] + QUAD $0x0120026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 32], 1 + QUAD $0x02200a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 32], 2 + QUAD $0x0320226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 32], 3 + QUAD $0x04202a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 32], 4 + LONG $0x6cc40f66; WORD $0x200a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 32], 5 + LONG $0x6cc40f66; WORD $0x203a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 32], 6 + QUAD $0x0122024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 34], 1 + QUAD $0x02220a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 34], 2 + QUAD $0x0322224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 34], 3 + QUAD $0x04222a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 34], 4 + LONG $0x4cc40f66; WORD $0x220a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 34], 5 + LONG $0x4cc40f66; WORD $0x223a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 34], 6 + LONG $0x4cc40f66; WORD $0x221a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 34], 7 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0x5c6e0f66; WORD $0x1024 // movd xmm3, dword [rsp + 16] + LONG $0x5cb70f46; WORD $0x303a // movzx r11d, word [rdx + r15 + 48] + LONG $0x6cc40f66; WORD $0x201a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 32], 7 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x01240274c40f4266 // pinsrw xmm6, word [rdx + r8 + 36], 1 + QUAD $0x02240a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 36], 2 + QUAD $0x03242274c40f4266 // pinsrw xmm6, word [rdx + r12 + 36], 3 + QUAD $0x04242a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 36], 4 + LONG $0x74c40f66; WORD $0x240a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 36], 5 + LONG $0x74c40f66; WORD $0x243a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 36], 6 + LONG $0x74c40f66; WORD $0x241a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 36], 7 + QUAD $0x0126025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 38], 1 + QUAD $0x02260a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 38], 2 + QUAD $0x0326225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 38], 3 + QUAD $0x04262a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 38], 4 + LONG $0x5cc40f66; WORD $0x260a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 38], 5 + LONG $0x5cc40f66; WORD $0x263a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 38], 6 + LONG $0x5cc40f66; WORD $0x261a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 38], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6e0f4166; BYTE $0xee // movd xmm5, r14d + QUAD $0x0128026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 40], 1 + QUAD $0x02280a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 40], 2 + QUAD $0x0328226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 40], 3 + QUAD $0x04282a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 40], 4 + LONG $0x6cc40f66; WORD $0x280a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 40], 5 + LONG $0x6cc40f66; WORD $0x283a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 40], 6 + LONG $0x44b70f42; WORD $0x323a // movzx eax, word [rdx + r15 + 50] + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x4c6e0f66; WORD $0x1824 // movd xmm1, dword [rsp + 24] + LONG $0x74b70f46; WORD $0x343a // movzx r14d, word [rdx + r15 + 52] + LONG $0x6cc40f66; WORD $0x281a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 40], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0xdb0f4166; BYTE $0xda // pand xmm3, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xebeb0f66 // por xmm5, xmm3 + LONG $0x6e0f4166; BYTE $0xfa // movd xmm7, r10d + LONG $0x54b70f46; WORD $0x363a // movzx r10d, word [rdx + r15 + 54] + QUAD $0x012a024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 42], 1 + QUAD $0x022a0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 42], 2 + QUAD $0x032a224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 42], 3 + QUAD $0x042a2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 42], 4 + LONG $0x4cc40f66; WORD $0x2a0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 42], 5 + LONG $0x4cc40f66; WORD $0x2a3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 42], 6 + LONG $0x4cc40f66; WORD $0x2a1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 42], 7 + QUAD $0x012c027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 44], 1 + QUAD $0x022c0a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 44], 2 + QUAD $0x032c227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 44], 3 + QUAD $0x042c2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 44], 4 + LONG $0x7cc40f66; WORD $0x2c0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 44], 5 + LONG $0x7cc40f66; WORD $0x2c3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 44], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x74b70f42; WORD $0x383a // movzx esi, word [rdx + r15 + 56] + LONG $0x7cc40f66; WORD $0x2c1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 44], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x05 // psllw xmm1, 5 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xf8750f66 // pcmpeqw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + LONG $0x5cb70f46; WORD $0x3a3a // movzx r11d, word [rdx + r15 + 58] + QUAD $0x012e025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 46], 1 + QUAD $0x022e0a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 46], 2 + QUAD $0x032e225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 46], 3 + QUAD $0x042e2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 46], 4 + LONG $0x5cc40f66; WORD $0x2e0a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 46], 5 + LONG $0x5cc40f66; WORD $0x2e3a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 46], 6 + LONG $0x5cc40f66; WORD $0x2e1a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 46], 7 + LONG $0xd8750f66 // pcmpeqw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdfeb0f66 // por xmm3, xmm7 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x3c3a // movzx eax, word [rdx + r15 + 60] + LONG $0x7cb70f46; WORD $0x3e3a // movzx r15d, word [rdx + r15 + 62] + QUAD $0x0132024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 50], 1 + QUAD $0x02320a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 50], 2 + QUAD $0x0332224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 50], 3 + QUAD $0x04322a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x320a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 50], 5 + LONG $0x4cc40f66; WORD $0x323a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 50], 6 + LONG $0x4cc40f66; WORD $0x321a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 50], 7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + QUAD $0x01300274c40f4266 // pinsrw xmm6, word [rdx + r8 + 48], 1 + QUAD $0x02300a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 48], 2 + QUAD $0x03302274c40f4266 // pinsrw xmm6, word [rdx + r12 + 48], 3 + QUAD $0x04302a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 48], 4 + LONG $0x74c40f66; WORD $0x300a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 48], 5 + LONG $0x74c40f66; WORD $0x303a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 48], 6 + LONG $0x74c40f66; WORD $0x301a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 48], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x0134024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 52], 1 + QUAD $0x02340a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 52], 2 + QUAD $0x0334224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 52], 3 + QUAD $0x04342a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 52], 4 + LONG $0x4cc40f66; WORD $0x340a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 52], 5 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x4cc40f66; WORD $0x343a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 52], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x4cc40f66; WORD $0x341a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 52], 7 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x02 // psllw xmm1, 2 + LONG $0xdb0f4166; BYTE $0xc9 // pand xmm1, xmm9 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xee6e0f66 // movd xmm5, esi + QUAD $0x01360274c40f4266 // pinsrw xmm6, word [rdx + r8 + 54], 1 + QUAD $0x02360a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 54], 2 + QUAD $0x03362274c40f4266 // pinsrw xmm6, word [rdx + r12 + 54], 3 + QUAD $0x04362a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 54], 7 + QUAD $0x0138026cc40f4266 // pinsrw xmm5, word [rdx + r8 + 56], 1 + QUAD $0x02380a6cc40f4266 // pinsrw xmm5, word [rdx + r9 + 56], 2 + QUAD $0x0338226cc40f4266 // pinsrw xmm5, word [rdx + r12 + 56], 3 + QUAD $0x04382a6cc40f4266 // pinsrw xmm5, word [rdx + r13 + 56], 4 + LONG $0x6cc40f66; WORD $0x380a; BYTE $0x05 // pinsrw xmm5, word [rdx + rcx + 56], 5 + LONG $0x6cc40f66; WORD $0x383a; BYTE $0x06 // pinsrw xmm5, word [rdx + rdi + 56], 6 + LONG $0x6cc40f66; WORD $0x381a; BYTE $0x07 // pinsrw xmm5, word [rdx + rbx + 56], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x03 // psllw xmm6, 3 + LONG $0xdb0f4166; BYTE $0xf2 // pand xmm6, xmm10 + LONG $0xe8750f66 // pcmpeqw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + LONG $0x24348b48 // mov rsi, qword [rsp] + QUAD $0x013a0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 58], 1 + QUAD $0x023a0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 58], 2 + QUAD $0x033a2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 58], 3 + QUAD $0x043a2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 58], 4 + LONG $0x74c40f66; WORD $0x3a0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 58], 5 + LONG $0x74c40f66; WORD $0x3a3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 58], 6 + LONG $0x74c40f66; WORD $0x3a1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 58], 7 + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0xc86e0f66 // movd xmm1, eax + QUAD $0x013c024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 60], 1 + QUAD $0x023c0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 60], 2 + QUAD $0x033c224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 60], 3 + QUAD $0x043c2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 60], 4 + LONG $0x4cc40f66; WORD $0x3c0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 60], 5 + LONG $0x4cc40f66; WORD $0x3c3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 60], 6 + LONG $0x4cc40f66; WORD $0x3c1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 60], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xc8750f66 // pcmpeqw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x06 // psllw xmm1, 6 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf7 // movd xmm6, r15d + QUAD $0x013e0274c40f4266 // pinsrw xmm6, word [rdx + r8 + 62], 1 + QUAD $0x023e0a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 62], 2 + QUAD $0x033e2274c40f4266 // pinsrw xmm6, word [rdx + r12 + 62], 3 + QUAD $0x043e2a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 62], 4 + LONG $0x74c40f66; WORD $0x3e0a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 62], 5 + LONG $0x74c40f66; WORD $0x3e3a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 62], 6 + LONG $0x74c40f66; WORD $0x3e1a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 62], 7 + LONG $0xf0750f66 // pcmpeqw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0xdb0f4166; BYTE $0xf6 // pand xmm6, xmm14 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + QUAD $0x00000090bd6f0f66 // movdqa xmm7, oword 144[rbp] /* [rip + .LCPI2_9] */ + LONG $0x00380f66; BYTE $0xef // pshufb xmm5, xmm7 + LONG $0x00380f66; BYTE $0xcf // pshufb xmm1, xmm7 + LONG $0xcd610f66 // punpcklwd xmm1, xmm5 + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe2600f66 // punpcklbw xmm4, xmm2 + LONG $0xe3610f66 // punpcklwd xmm4, xmm3 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + LONG $0x247f0ff3; BYTE $0x8e // movdqu oword [rsi + 4*rcx], xmm4 + LONG $0x24348948 // mov qword [rsp], rsi + LONG $0x4c7f0ff3; WORD $0x108e // movdqu oword [rsi + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x20 // cmp rcx, qword [rsp + 32] + JNE LBB2_195 + QUAD $0x0000009824bc8b4c // mov r15, qword [rsp + 152] + LONG $0x247c3b4c; BYTE $0x20 // cmp r15, qword [rsp + 32] + QUAD $0x0000009024948b4c // mov r10, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x38 // mov r13d, dword [rsp + 56] + LONG $0x24748b4c; BYTE $0x08 // mov r14, qword [rsp + 8] + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + JNE LBB2_104 + JMP LBB2_143 + +LBB2_197: + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xd3 // add rbx, rdx + LONG $0x24048b48 // mov rax, qword [rsp] + LONG $0x801c8d4e // lea r11, [rax + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc28148; WORD $0x0001; BYTE $0x00 // add rdx, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI2_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI2_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI2_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI2_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI2_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI2_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI2_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI2_7] */ + LONG $0x24048b48 // mov rax, qword [rsp] + +LBB2_198: + QUAD $0xfffffe04b2100ff3 // movss xmm6, dword [rdx - 508] + QUAD $0xfffffe08ba100ff3 // movss xmm7, dword [rdx - 504] + QUAD $0xfffffe0caa100ff3 // movss xmm5, dword [rdx - 500] + QUAD $0xfffffe10a2100ff3 // movss xmm4, dword [rdx - 496] + QUAD $0xfffe84b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 380], 16 + QUAD $0xffff04b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 252], 32 + LONG $0x213a0f66; WORD $0x8472; BYTE $0x30 // insertps xmm6, dword [rdx - 124], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfffe88ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 376], 16 + QUAD $0xffff08ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 248], 32 + LONG $0x213a0f66; WORD $0x887a; BYTE $0x30 // insertps xmm7, dword [rdx - 120], 48 + QUAD $0xfffe8caa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 372], 16 + QUAD $0xffff0caa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 244], 32 + LONG $0x213a0f66; WORD $0x8c6a; BYTE $0x30 // insertps xmm5, dword [rdx - 116], 48 + QUAD $0xfffe90a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 368], 16 + QUAD $0xffff10a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 240], 32 + LONG $0x213a0f66; WORD $0x9062; BYTE $0x30 // insertps xmm4, dword [rdx - 112], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffffe14ba100ff3 // movss xmm7, dword [rdx - 492] + QUAD $0xfffe94ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 364], 16 + QUAD $0xffff14ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 236], 32 + LONG $0x213a0f66; WORD $0x947a; BYTE $0x30 // insertps xmm7, dword [rdx - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe18b2100ff3 // movss xmm6, dword [rdx - 488] + QUAD $0xfffe98b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 360], 16 + QUAD $0xffff18b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 232], 32 + LONG $0x213a0f66; WORD $0x9872; BYTE $0x30 // insertps xmm6, dword [rdx - 104], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe1c9a100ff3 // movss xmm3, dword [rdx - 484] + QUAD $0xfffe9c9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 356], 16 + QUAD $0xffff1c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 228], 32 + LONG $0x213a0f66; WORD $0x9c5a; BYTE $0x30 // insertps xmm3, dword [rdx - 100], 48 + LONG $0x00e1c20f // cmpeqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffffe20a2100ff3 // movss xmm4, dword [rdx - 480] + QUAD $0xfffea0a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 352], 16 + QUAD $0xffff20a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 224], 32 + LONG $0x213a0f66; WORD $0xa062; BYTE $0x30 // insertps xmm4, dword [rdx - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe24aa100ff3 // movss xmm5, dword [rdx - 476] + QUAD $0xfffea4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 348], 16 + QUAD $0xffff24aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 220], 32 + LONG $0x213a0f66; WORD $0xa46a; BYTE $0x30 // insertps xmm5, dword [rdx - 92], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe2892100ff3 // movss xmm2, dword [rdx - 472] + QUAD $0xfffea892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 344], 16 + QUAD $0xffff2892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 216], 32 + LONG $0x213a0f66; WORD $0xa852; BYTE $0x30 // insertps xmm2, dword [rdx - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x00e1c20f // cmpeqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffffe2c9a100ff3 // movss xmm3, dword [rdx - 468] + QUAD $0xfffeac9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 340], 16 + QUAD $0xffff2c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0x213a0f66; WORD $0xac5a; BYTE $0x30 // insertps xmm3, dword [rdx - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe30ba100ff3 // movss xmm7, dword [rdx - 464] + QUAD $0xfffeb0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 336], 16 + QUAD $0xffff30ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 208], 32 + LONG $0x213a0f66; WORD $0xb07a; BYTE $0x30 // insertps xmm7, dword [rdx - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe34aa100ff3 // movss xmm5, dword [rdx - 460] + QUAD $0xfffeb4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 332], 16 + QUAD $0xffff34aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 204], 32 + LONG $0x213a0f66; WORD $0xb46a; BYTE $0x30 // insertps xmm5, dword [rdx - 76], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe38b2100ff3 // movss xmm6, dword [rdx - 456] + QUAD $0xfffeb8b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 328], 16 + QUAD $0xffff38b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 200], 32 + LONG $0x213a0f66; WORD $0xb872; BYTE $0x30 // insertps xmm6, dword [rdx - 72], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffffe3c92100ff3 // movss xmm2, dword [rdx - 452] + QUAD $0xfffebc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 324], 16 + QUAD $0xffff3c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 196], 32 + LONG $0x213a0f66; WORD $0xbc52; BYTE $0x30 // insertps xmm2, dword [rdx - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffffe40ba100ff3 // movss xmm7, dword [rdx - 448] + QUAD $0xfffec0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 320], 16 + QUAD $0xffff40ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 192], 32 + LONG $0x213a0f66; WORD $0xc07a; BYTE $0x30 // insertps xmm7, dword [rdx - 64], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe44b2100ff3 // movss xmm6, dword [rdx - 444] + QUAD $0xfffec4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 316], 16 + QUAD $0xffff44b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 188], 32 + LONG $0x213a0f66; WORD $0xc472; BYTE $0x30 // insertps xmm6, dword [rdx - 60], 48 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffffe4892100ff3 // movss xmm2, dword [rdx - 440] + QUAD $0xfffec892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 312], 16 + QUAD $0xffff4892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 184], 32 + LONG $0x213a0f66; WORD $0xc852; BYTE $0x30 // insertps xmm2, dword [rdx - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe4c9a100ff3 // movss xmm3, dword [rdx - 436] + QUAD $0xfffecc9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 308], 16 + QUAD $0xffff4c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x213a0f66; WORD $0xcc5a; BYTE $0x30 // insertps xmm3, dword [rdx - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffffe50aa100ff3 // movss xmm5, dword [rdx - 432] + QUAD $0xfffed0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 304], 16 + QUAD $0xffff50aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 176], 32 + LONG $0x213a0f66; WORD $0xd06a; BYTE $0x30 // insertps xmm5, dword [rdx - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffffe54b2100ff3 // movss xmm6, dword [rdx - 428] + QUAD $0xfffed4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 300], 16 + QUAD $0xffff54b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 172], 32 + LONG $0x213a0f66; WORD $0xd472; BYTE $0x30 // insertps xmm6, dword [rdx - 44], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffffe58ba100ff3 // movss xmm7, dword [rdx - 424] + QUAD $0xfffed8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 296], 16 + QUAD $0xffff58ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 168], 32 + LONG $0x213a0f66; WORD $0xd87a; BYTE $0x30 // insertps xmm7, dword [rdx - 40], 48 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe5c92100ff3 // movss xmm2, dword [rdx - 420] + QUAD $0xfffedc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 292], 16 + QUAD $0xffff5c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 164], 32 + LONG $0x213a0f66; WORD $0xdc52; BYTE $0x30 // insertps xmm2, dword [rdx - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe60aa100ff3 // movss xmm5, dword [rdx - 416] + QUAD $0xfffee0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 288], 16 + QUAD $0xffff60aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 160], 32 + LONG $0x213a0f66; WORD $0xe06a; BYTE $0x30 // insertps xmm5, dword [rdx - 32], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe64ba100ff3 // movss xmm7, dword [rdx - 412] + QUAD $0xfffee4ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 284], 16 + QUAD $0xffff64ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 156], 32 + LONG $0x213a0f66; WORD $0xe47a; BYTE $0x30 // insertps xmm7, dword [rdx - 28], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x00e9c20f // cmpeqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe6892100ff3 // movss xmm2, dword [rdx - 408] + QUAD $0xfffee892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 280], 16 + QUAD $0xffff6892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0x213a0f66; WORD $0xe852; BYTE $0x30 // insertps xmm2, dword [rdx - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe6c9a100ff3 // movss xmm3, dword [rdx - 404] + QUAD $0xfffeec9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 276], 16 + QUAD $0xffff6c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 148], 32 + LONG $0x213a0f66; WORD $0xec5a; BYTE $0x30 // insertps xmm3, dword [rdx - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffffe7092100ff3 // movss xmm2, dword [rdx - 400] + QUAD $0xfffef092213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 272], 16 + QUAD $0xffff7092213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 144], 32 + LONG $0x213a0f66; WORD $0xf052; BYTE $0x30 // insertps xmm2, dword [rdx - 16], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe74b2100ff3 // movss xmm6, dword [rdx - 396] + QUAD $0xfffef4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 268], 16 + QUAD $0xffff74b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 140], 32 + LONG $0x213a0f66; WORD $0xf472; BYTE $0x30 // insertps xmm6, dword [rdx - 12], 48 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x00f1c20f // cmpeqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffffe78ba100ff3 // movss xmm7, dword [rdx - 392] + QUAD $0xfffef8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 264], 16 + QUAD $0xffff78ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 136], 32 + LONG $0x213a0f66; WORD $0xf87a; BYTE $0x30 // insertps xmm7, dword [rdx - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe7c92100ff3 // movss xmm2, dword [rdx - 388] + QUAD $0xfffefc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 260], 16 + QUAD $0xffff7c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 132], 32 + LONG $0x213a0f66; WORD $0xfc52; BYTE $0x30 // insertps xmm2, dword [rdx - 4], 48 + LONG $0x00f9c20f // cmpeqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x00d1c20f // cmpeqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe809a100ff3 // movss xmm3, dword [rdx - 384] + QUAD $0xffff009a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 256], 16 + LONG $0x213a0f66; WORD $0x805a; BYTE $0x20 // insertps xmm3, dword [rdx - 128], 32 + LONG $0x213a0f66; WORD $0x301a // insertps xmm3, dword [rdx], 48 + LONG $0x00d9c20f // cmpeqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x247f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c28148; WORD $0x0002; BYTE $0x00 // add rdx, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB2_198 + WORD $0x394d; BYTE $0xc6 // cmp r14, r8 + JNE LBB2_127 + JMP LBB2_147 + +TEXT ·_comparison_not_equal_arr_arr_sse4(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB3_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB3_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB3_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB3_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_20 + LONG $0x01c68349 // add r14, 1 + +LBB3_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5950f41 // setne r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0950f41 // setne r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3950f41 // setne r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7950f41 // setne r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2950f41 // setne r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6950f41 // setne r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4950f41 // setne r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1950f41 // setne r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_28 + JMP LBB3_123 + +LBB3_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB3_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB3_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB3_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_48: + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_48 + LONG $0x01c68349 // add r14, 1 + +LBB3_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB3_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x4e100ff2; BYTE $0x08 // movsd xmm1, qword [rsi + 8] + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x4a2e0f66; BYTE $0x08 // ucomisd xmm1, qword [rdx + 8] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x46100ff2; BYTE $0x10 // movsd xmm0, qword [rsi + 16] + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0x46100ff2; BYTE $0x18 // movsd xmm0, qword [rsi + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x46100ff2; BYTE $0x20 // movsd xmm0, qword [rsi + 32] + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + LONG $0x46100ff2; BYTE $0x28 // movsd xmm0, qword [rsi + 40] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x46100ff2; BYTE $0x30 // movsd xmm0, qword [rsi + 48] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + LONG $0x46100ff2; BYTE $0x38 // movsd xmm0, qword [rsi + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd7950f41 // setne r15b + LONG $0x46100ff2; BYTE $0x40 // movsd xmm0, qword [rsi + 64] + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x46100ff2; BYTE $0x48 // movsd xmm0, qword [rsi + 72] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x46100ff2; BYTE $0x50 // movsd xmm0, qword [rsi + 80] + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0x46100ff2; BYTE $0x58 // movsd xmm0, qword [rsi + 88] + LONG $0xd1950f41 // setne r9b + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd3950f41 // setne r11b + LONG $0x46100ff2; BYTE $0x60 // movsd xmm0, qword [rsi + 96] + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0x46100ff2; BYTE $0x68 // movsd xmm0, qword [rsi + 104] + LONG $0xd2950f41 // setne r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x46100ff2; BYTE $0x70 // movsd xmm0, qword [rsi + 112] + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + LONG $0x46100ff2; BYTE $0x78 // movsd xmm0, qword [rsi + 120] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + QUAD $0x0000008086100ff2 // movsd xmm0, qword [rsi + 128] + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + QUAD $0x0000008886100ff2 // movsd xmm0, qword [rsi + 136] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + QUAD $0x0000009086100ff2 // movsd xmm0, qword [rsi + 144] + LONG $0xd6950f41 // setne r14b + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + QUAD $0x0000009886100ff2 // movsd xmm0, qword [rsi + 152] + LONG $0xd4950f41 // setne r12b + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a086100ff2 // movsd xmm0, qword [rsi + 160] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a886100ff2 // movsd xmm0, qword [rsi + 168] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b086100ff2 // movsd xmm0, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b886100ff2 // movsd xmm0, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c086100ff2 // movsd xmm0, qword [rsi + 192] + LONG $0xd0950f41 // setne r8b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c886100ff2 // movsd xmm0, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d086100ff2 // movsd xmm0, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d886100ff2 // movsd xmm0, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e086100ff2 // movsd xmm0, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e886100ff2 // movsd xmm0, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f086100ff2 // movsd xmm0, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f886100ff2 // movsd xmm0, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB3_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB3_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_56: + LONG $0x04100ff2; BYTE $0xce // movsd xmm0, qword [rsi + 8*rcx] + LONG $0x042e0f66; BYTE $0xca // ucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_56 + JMP LBB3_123 + +LBB3_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB3_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_6 + LONG $0x01c68349 // add r14, 1 + +LBB3_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB3_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f41 // setne r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7950f40 // setne dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2950f41 // setne r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3950f41 // setne r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6950f41 // setne r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4950f41 // setne r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5950f41 // setne r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1950f41 // setne r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0950f41 // setne r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB3_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB3_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_14 + JMP LBB3_123 + +LBB3_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB3_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB3_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_34 + LONG $0x01c68349 // add r14, 1 + +LBB3_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0950f41 // setne r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3950f41 // setne r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7950f41 // setne r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2950f41 // setne r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6950f41 // setne r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4950f41 // setne r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1950f41 // setne r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_42 + JMP LBB3_123 + +LBB3_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_70 + LONG $0x01c68349 // add r14, 1 + +LBB3_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5950f41 // setne r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0950f41 // setne r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2950f41 // setne r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6950f41 // setne r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4950f41 // setne r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1950f41 // setne r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_78 + JMP LBB3_123 + +LBB3_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_81 + LONG $0x01c68349 // add r14, 1 + +LBB3_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5950f41 // setne r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0950f41 // setne r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2950f41 // setne r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6950f41 // setne r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4950f41 // setne r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1950f41 // setne r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_89 + JMP LBB3_123 + +LBB3_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_103 + LONG $0x01c68349 // add r14, 1 + +LBB3_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5950f41 // setne r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0950f41 // setne r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3950f41 // setne r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7950f41 // setne r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2950f41 // setne r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6950f41 // setne r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4950f41 // setne r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1950f41 // setne r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_111 + JMP LBB3_123 + +LBB3_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_114: + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_114 + LONG $0x01c68349 // add r14, 1 + +LBB3_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB3_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x4e100ff3; BYTE $0x04 // movss xmm1, dword [rsi + 4] + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x044a2e0f // ucomiss xmm1, dword [rdx + 4] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x46100ff3; BYTE $0x08 // movss xmm0, dword [rsi + 8] + LONG $0x08422e0f // ucomiss xmm0, dword [rdx + 8] + LONG $0x46100ff3; BYTE $0x0c // movss xmm0, dword [rsi + 12] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x0c422e0f // ucomiss xmm0, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x46100ff3; BYTE $0x10 // movss xmm0, dword [rsi + 16] + LONG $0x10422e0f // ucomiss xmm0, dword [rdx + 16] + LONG $0x46100ff3; BYTE $0x14 // movss xmm0, dword [rsi + 20] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x14422e0f // ucomiss xmm0, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x46100ff3; BYTE $0x18 // movss xmm0, dword [rsi + 24] + LONG $0x18422e0f // ucomiss xmm0, dword [rdx + 24] + LONG $0x46100ff3; BYTE $0x1c // movss xmm0, dword [rsi + 28] + LONG $0xd5950f41 // setne r13b + LONG $0x1c422e0f // ucomiss xmm0, dword [rdx + 28] + LONG $0xd7950f41 // setne r15b + LONG $0x46100ff3; BYTE $0x20 // movss xmm0, dword [rsi + 32] + LONG $0x20422e0f // ucomiss xmm0, dword [rdx + 32] + LONG $0x46100ff3; BYTE $0x24 // movss xmm0, dword [rsi + 36] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x24422e0f // ucomiss xmm0, dword [rdx + 36] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x46100ff3; BYTE $0x28 // movss xmm0, dword [rsi + 40] + LONG $0x28422e0f // ucomiss xmm0, dword [rdx + 40] + LONG $0x46100ff3; BYTE $0x2c // movss xmm0, dword [rsi + 44] + LONG $0xd1950f41 // setne r9b + LONG $0x2c422e0f // ucomiss xmm0, dword [rdx + 44] + LONG $0xd3950f41 // setne r11b + LONG $0x46100ff3; BYTE $0x30 // movss xmm0, dword [rsi + 48] + LONG $0x30422e0f // ucomiss xmm0, dword [rdx + 48] + LONG $0x46100ff3; BYTE $0x34 // movss xmm0, dword [rsi + 52] + LONG $0xd2950f41 // setne r10b + LONG $0x34422e0f // ucomiss xmm0, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x46100ff3; BYTE $0x38 // movss xmm0, dword [rsi + 56] + LONG $0x38422e0f // ucomiss xmm0, dword [rdx + 56] + LONG $0x46100ff3; BYTE $0x3c // movss xmm0, dword [rsi + 60] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x3c422e0f // ucomiss xmm0, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x46100ff3; BYTE $0x40 // movss xmm0, dword [rsi + 64] + LONG $0x40422e0f // ucomiss xmm0, dword [rdx + 64] + LONG $0x46100ff3; BYTE $0x44 // movss xmm0, dword [rsi + 68] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x44422e0f // ucomiss xmm0, dword [rdx + 68] + LONG $0x46100ff3; BYTE $0x48 // movss xmm0, dword [rsi + 72] + LONG $0xd6950f41 // setne r14b + LONG $0x48422e0f // ucomiss xmm0, dword [rdx + 72] + LONG $0x46100ff3; BYTE $0x4c // movss xmm0, dword [rsi + 76] + LONG $0xd4950f41 // setne r12b + LONG $0x4c422e0f // ucomiss xmm0, dword [rdx + 76] + LONG $0x46100ff3; BYTE $0x50 // movss xmm0, dword [rsi + 80] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x50422e0f // ucomiss xmm0, dword [rdx + 80] + LONG $0x46100ff3; BYTE $0x54 // movss xmm0, dword [rsi + 84] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x54422e0f // ucomiss xmm0, dword [rdx + 84] + LONG $0x46100ff3; BYTE $0x58 // movss xmm0, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x58422e0f // ucomiss xmm0, dword [rdx + 88] + LONG $0x46100ff3; BYTE $0x5c // movss xmm0, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x5c422e0f // ucomiss xmm0, dword [rdx + 92] + LONG $0x46100ff3; BYTE $0x60 // movss xmm0, dword [rsi + 96] + LONG $0xd0950f41 // setne r8b + LONG $0x60422e0f // ucomiss xmm0, dword [rdx + 96] + LONG $0x46100ff3; BYTE $0x64 // movss xmm0, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x64422e0f // ucomiss xmm0, dword [rdx + 100] + LONG $0x46100ff3; BYTE $0x68 // movss xmm0, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x68422e0f // ucomiss xmm0, dword [rdx + 104] + LONG $0x46100ff3; BYTE $0x6c // movss xmm0, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x6c422e0f // ucomiss xmm0, dword [rdx + 108] + LONG $0x46100ff3; BYTE $0x70 // movss xmm0, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x70422e0f // ucomiss xmm0, dword [rdx + 112] + LONG $0x46100ff3; BYTE $0x74 // movss xmm0, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x74422e0f // ucomiss xmm0, dword [rdx + 116] + LONG $0x46100ff3; BYTE $0x78 // movss xmm0, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x78422e0f // ucomiss xmm0, dword [rdx + 120] + LONG $0x46100ff3; BYTE $0x7c // movss xmm0, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x7c422e0f // ucomiss xmm0, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB3_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB3_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_122: + LONG $0x04100ff3; BYTE $0x8e // movss xmm0, dword [rsi + 4*rcx] + LONG $0x8a042e0f // ucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_122 + JMP LBB3_123 + +LBB3_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_59 + LONG $0x01c68349 // add r14, 1 + +LBB3_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB3_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7950f41 // setne r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7950f40 // setne dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2950f41 // setne r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3950f41 // setne r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6950f41 // setne r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4950f41 // setne r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5950f41 // setne r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1950f41 // setne r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0950f41 // setne r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB3_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB3_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_67 + JMP LBB3_123 + +LBB3_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB3_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB3_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd2950f41 // setne r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB3_92 + LONG $0x01c68349 // add r14, 1 + +LBB3_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB3_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB3_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454950f; BYTE $0x14 // setne byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454950f; BYTE $0x15 // setne byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454950f; BYTE $0x16 // setne byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454950f; BYTE $0x17 // setne byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454950f; BYTE $0x04 // setne byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5950f41 // setne r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454950f; BYTE $0x09 // setne byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0950f41 // setne r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3950f41 // setne r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7950f41 // setne r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454950f; BYTE $0x05 // setne byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454950f; BYTE $0x06 // setne byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454950f; BYTE $0x07 // setne byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454950f; BYTE $0x0a // setne byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2950f41 // setne r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6950f41 // setne r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4950f41 // setne r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454950f; BYTE $0x0b // setne byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454950f; BYTE $0x0c // setne byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1950f41 // setne r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454950f; BYTE $0x13 // setne byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454950f; BYTE $0x0d // setne byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454950f; BYTE $0x0e // setne byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454950f; BYTE $0x0f // setne byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454950f; BYTE $0x12 // setne byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454950f; BYTE $0x11 // setne byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB3_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB3_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB3_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB3_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB3_100 + +LBB3_123: + SUBQ $8, SP + RET + +DATA LCDATA3<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA3<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA3<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA3<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA3<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA3<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA3<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA3<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA3<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA3<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA3<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA3<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA3<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA3<>+0x080(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x090(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0a0(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x0a8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0b0(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0c0(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0d0(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x0d8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0e0(SB)/8, $0x8080808080808080 +DATA LCDATA3<>+0x0e8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x0f0(SB)/8, $0x0f070e060d050c04 +DATA LCDATA3<>+0x0f8(SB)/8, $0x0000000000000000 +DATA LCDATA3<>+0x100(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x108(SB)/8, $0x0202020202020202 +DATA LCDATA3<>+0x110(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x118(SB)/8, $0x0404040404040404 +DATA LCDATA3<>+0x120(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x128(SB)/8, $0x0808080808080808 +DATA LCDATA3<>+0x130(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x138(SB)/8, $0x1010101010101010 +DATA LCDATA3<>+0x140(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x148(SB)/8, $0x2020202020202020 +DATA LCDATA3<>+0x150(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x158(SB)/8, $0x4040404040404040 +DATA LCDATA3<>+0x160(SB)/8, $0xffffffffffffffff +DATA LCDATA3<>+0x168(SB)/8, $0xffffffffffffffff +GLOBL LCDATA3<>(SB), 8, $368 + +TEXT ·_comparison_not_equal_arr_scalar_sse4(SB), $328-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 304(SP) + LEAQ LCDATA3<>(SB), BP + + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB4_17 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB4_32 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB4_83 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB4_95 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB4_179 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_7: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_7 + LONG $0x01c68349 // add r14, 1 + +LBB4_9: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_13 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_11: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7950f40 // setne dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6950f41 // setne r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1950f41 // setne r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2950f41 // setne r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3950f41 // setne r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4950f41 // setne r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7950f41 // setne r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xd200 // add dl, dl + LONG $0x60245402 // add dl, byte [rsp + 96] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_11 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + +LBB4_13: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB4_82 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_16: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_16 + JMP LBB4_153 + +LBB4_17: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB4_46 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB4_107 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB4_118 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB4_179 + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_25 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_23: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_23 + LONG $0x01c68349 // add r14, 1 + +LBB4_25: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_29 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + QUAD $0x000000982494894c // mov qword [rsp + 152], r10 + +LBB4_27: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0xd1950f41 // setne r9b + LONG $0x462e0f66; BYTE $0x10 // ucomisd xmm0, qword [rsi + 16] + LONG $0xd6950f41 // setne r14b + LONG $0x462e0f66; BYTE $0x18 // ucomisd xmm0, qword [rsi + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x462e0f66; BYTE $0x20 // ucomisd xmm0, qword [rsi + 32] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x462e0f66; BYTE $0x28 // ucomisd xmm0, qword [rsi + 40] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x462e0f66; BYTE $0x30 // ucomisd xmm0, qword [rsi + 48] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x462e0f66; BYTE $0x38 // ucomisd xmm0, qword [rsi + 56] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x462e0f66; BYTE $0x40 // ucomisd xmm0, qword [rsi + 64] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x462e0f66; BYTE $0x48 // ucomisd xmm0, qword [rsi + 72] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x462e0f66; BYTE $0x50 // ucomisd xmm0, qword [rsi + 80] + LONG $0xd7950f40 // setne dil + LONG $0x462e0f66; BYTE $0x58 // ucomisd xmm0, qword [rsi + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x462e0f66; BYTE $0x60 // ucomisd xmm0, qword [rsi + 96] + LONG $0xd3950f41 // setne r11b + LONG $0x462e0f66; BYTE $0x68 // ucomisd xmm0, qword [rsi + 104] + LONG $0xd4950f41 // setne r12b + LONG $0x462e0f66; BYTE $0x70 // ucomisd xmm0, qword [rsi + 112] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x462e0f66; BYTE $0x78 // ucomisd xmm0, qword [rsi + 120] + WORD $0x950f; BYTE $0xd1 // setne cl + QUAD $0x00000080862e0f66 // ucomisd xmm0, qword [rsi + 128] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + QUAD $0x00000088862e0f66 // ucomisd xmm0, qword [rsi + 136] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + QUAD $0x00000090862e0f66 // ucomisd xmm0, qword [rsi + 144] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + QUAD $0x00000098862e0f66 // ucomisd xmm0, qword [rsi + 152] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + QUAD $0x000000a0862e0f66 // ucomisd xmm0, qword [rsi + 160] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + QUAD $0x000000a8862e0f66 // ucomisd xmm0, qword [rsi + 168] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + QUAD $0x000000b0862e0f66 // ucomisd xmm0, qword [rsi + 176] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + QUAD $0x000000b8862e0f66 // ucomisd xmm0, qword [rsi + 184] + LONG $0xd7950f41 // setne r15b + QUAD $0x000000c0862e0f66 // ucomisd xmm0, qword [rsi + 192] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + QUAD $0x000000c8862e0f66 // ucomisd xmm0, qword [rsi + 200] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + QUAD $0x000000d0862e0f66 // ucomisd xmm0, qword [rsi + 208] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + QUAD $0x000000d8862e0f66 // ucomisd xmm0, qword [rsi + 216] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + QUAD $0x000000e0862e0f66 // ucomisd xmm0, qword [rsi + 224] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + QUAD $0x000000e8862e0f66 // ucomisd xmm0, qword [rsi + 232] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + QUAD $0x000000f0862e0f66 // ucomisd xmm0, qword [rsi + 240] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + QUAD $0x000000f8862e0f66 // ucomisd xmm0, qword [rsi + 248] + LONG $0xd0950f41 // setne r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000088248c0244 // add r9b, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000b024bcb60f // movzx edi, byte [rsp + 176] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB4_27 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + +LBB4_29: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_162 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_164 + +LBB4_32: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB4_60 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB4_179 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_38 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_36: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_36 + LONG $0x01c68349 // add r14, 1 + +LBB4_38: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_130 + LONG $0x10fa8349 // cmp r10, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + JB LBB4_42 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB4_180 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB4_180 + +LBB4_42: + WORD $0xc031 // xor eax, eax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + LONG $0x2474894c; BYTE $0x68 // mov qword [rsp + 104], r14 + +LBB4_43: + QUAD $0x000000f024942b4c // sub r10, qword [rsp + 240] + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB4_44: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x000000e02494950f // setne byte [rsp + 224] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd6950f40 // setne sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd7950f41 // setne r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd4950f41 // setne r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd1950f41 // setne r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd2950f41 // setne r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd6950f41 // setne r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd5950f41 // setne r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd0950f41 // setne r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd3950f41 // setne r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000e024b40240 // add sil, byte [rsp + 224] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + LONG $0x247cb60f; BYTE $0x50 // movzx edi, byte [rsp + 80] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x68 // mov qword [rsp + 104], rdx + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB4_44 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + JMP LBB4_131 + +LBB4_46: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB4_72 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB4_179 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_52 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_50: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_50 + LONG $0x01c68349 // add r14, 1 + +LBB4_52: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_56 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_54: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7950f40 // setne dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6950f41 // setne r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1950f41 // setne r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2950f41 // setne r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3950f41 // setne r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4950f41 // setne r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7950f41 // setne r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xd200 // add dl, dl + LONG $0x60245402 // add dl, byte [rsp + 96] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_54 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + +LBB4_56: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB4_117 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_59: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_59 + JMP LBB4_168 + +LBB4_60: + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_64 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_62: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_62 + LONG $0x01c68349 // add r14, 1 + +LBB4_64: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_134 + LONG $0x10fa8349 // cmp r10, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000001002494894c // mov qword [rsp + 256], r10 + JB LBB4_68 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB4_183 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB4_183 + +LBB4_68: + WORD $0xc031 // xor eax, eax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + LONG $0x2474894c; BYTE $0x68 // mov qword [rsp + 104], r14 + +LBB4_69: + QUAD $0x000000f024942b4c // sub r10, qword [rsp + 240] + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB4_70: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x000000e02494950f // setne byte [rsp + 224] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd6950f40 // setne sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd7950f41 // setne r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd4950f41 // setne r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd1950f41 // setne r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd7950f40 // setne dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd2950f41 // setne r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd6950f41 // setne r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd5950f41 // setne r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd0950f41 // setne r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd3950f41 // setne r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000e024b40240 // add sil, byte [rsp + 224] + QUAD $0x000000982484b60f // movzx eax, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + LONG $0x247cb60f; BYTE $0x50 // movzx edi, byte [rsp + 80] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x68 // mov qword [rsp + 104], rdx + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB4_70 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + JMP LBB4_135 + +LBB4_72: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_76 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_74: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_74 + LONG $0x01c68349 // add r14, 1 + +LBB4_76: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_80 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_78: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7950f40 // setne dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6950f41 // setne r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1950f41 // setne r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2950f41 // setne r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3950f41 // setne r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4950f41 // setne r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7950f41 // setne r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xd200 // add dl, dl + LONG $0x60245402 // add dl, byte [rsp + 96] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_78 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + +LBB4_80: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_151 + +LBB4_82: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_153 + +LBB4_83: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_87 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_85: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_85 + LONG $0x01c68349 // add r14, 1 + +LBB4_87: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_138 + LONG $0x08fa8349 // cmp r10, 8 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + JB LBB4_91 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB4_186 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB4_186 + +LBB4_91: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB4_92: + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + LONG $0x24542b4c; BYTE $0x18 // sub r10, qword [rsp + 24] + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_93: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd6950f40 // setne sil + LONG $0x6b394566; BYTE $0x04 // cmp word [r11 + 4], r13w + LONG $0xd7950f41 // setne r15b + LONG $0x6b394566; BYTE $0x06 // cmp word [r11 + 6], r13w + LONG $0xd4950f41 // setne r12b + LONG $0x6b394566; BYTE $0x08 // cmp word [r11 + 8], r13w + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x6b394566; BYTE $0x0a // cmp word [r11 + 10], r13w + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x6b394566; BYTE $0x0c // cmp word [r11 + 12], r13w + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x6b394566; BYTE $0x0e // cmp word [r11 + 14], r13w + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x6b394566; BYTE $0x10 // cmp word [r11 + 16], r13w + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x6b394566; BYTE $0x12 // cmp word [r11 + 18], r13w + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x6b394566; BYTE $0x14 // cmp word [r11 + 20], r13w + LONG $0xd0950f41 // setne r8b + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd1950f41 // setne r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd6950f41 // setne r14b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd7950f40 // setne dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd2950f41 // setne r10b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000009824b40240 // add sil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xc900 // add cl, cl + LONG $0xc0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 192] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + QUAD $0x000000b0248cb60f // movzx ecx, byte [rsp + 176] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe1 // or cl, r12b + WORD $0xce89 // mov esi, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xc900 // add cl, cl + LONG $0x50244c02 // add cl, byte [rsp + 80] + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x1988 // mov byte [rcx], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf2 // or r10b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x30244402 // add al, byte [rsp + 48] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02518844 // mov byte [rcx + 2], r10b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_93 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + JMP LBB4_139 + +LBB4_95: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_99 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_97: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_97 + LONG $0x01c68349 // add r14, 1 + +LBB4_99: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_143 + LONG $0x08fa8349 // cmp r10, 8 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + JB LBB4_103 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB4_189 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB4_189 + +LBB4_103: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB4_104: + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + LONG $0x24542b4c; BYTE $0x18 // sub r10, qword [rsp + 24] + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_105: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd6950f40 // setne sil + LONG $0x6b394566; BYTE $0x04 // cmp word [r11 + 4], r13w + LONG $0xd7950f41 // setne r15b + LONG $0x6b394566; BYTE $0x06 // cmp word [r11 + 6], r13w + LONG $0xd4950f41 // setne r12b + LONG $0x6b394566; BYTE $0x08 // cmp word [r11 + 8], r13w + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x6b394566; BYTE $0x0a // cmp word [r11 + 10], r13w + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x6b394566; BYTE $0x0c // cmp word [r11 + 12], r13w + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x6b394566; BYTE $0x0e // cmp word [r11 + 14], r13w + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x6b394566; BYTE $0x10 // cmp word [r11 + 16], r13w + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x6b394566; BYTE $0x12 // cmp word [r11 + 18], r13w + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x6b394566; BYTE $0x14 // cmp word [r11 + 20], r13w + LONG $0xd0950f41 // setne r8b + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd1950f41 // setne r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd6950f41 // setne r14b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd7950f40 // setne dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd2950f41 // setne r10b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000009824b40240 // add sil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xc900 // add cl, cl + LONG $0xc0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 192] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + QUAD $0x000000b0248cb60f // movzx ecx, byte [rsp + 176] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe1 // or cl, r12b + WORD $0xce89 // mov esi, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xc900 // add cl, cl + LONG $0x50244c02 // add cl, byte [rsp + 80] + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x1988 // mov byte [rcx], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf2 // or r10b, sil + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x30244402 // add al, byte [rsp + 48] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02518844 // mov byte [rcx + 2], r10b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_105 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + JMP LBB4_144 + +LBB4_107: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_111 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_109: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_109 + LONG $0x01c68349 // add r14, 1 + +LBB4_111: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_115 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB4_113: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7950f40 // setne dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6950f41 // setne r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1950f41 // setne r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2950f41 // setne r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3950f41 // setne r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4950f41 // setne r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7950f41 // setne r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0950f41 // setne r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000009824bc0240 // add dil, byte [rsp + 152] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0xc0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 192] + QUAD $0x000000882484b60f // movzx eax, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xd200 // add dl, dl + LONG $0x60245402 // add dl, byte [rsp + 96] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB4_113 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + +LBB4_115: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_166 + +LBB4_117: + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB4_168 + +LBB4_118: + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff3 // movss xmm0, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB4_122 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB4_120: + WORD $0x2e0f; BYTE $0x06 // ucomiss xmm0, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB4_120 + LONG $0x01c68349 // add r14, 1 + +LBB4_122: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB4_147 + LONG $0x04fa8349 // cmp r10, 4 + JB LBB4_126 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB4_192 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB4_192 + +LBB4_126: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + +LBB4_127: + LONG $0x245c894c; BYTE $0x08 // mov qword [rsp + 8], r11 + QUAD $0x0000009024bc894c // mov qword [rsp + 144], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + WORD $0x294d; BYTE $0xc2 // sub r10, r8 + QUAD $0x000000982494894c // mov qword [rsp + 152], r10 + +LBB4_128: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6950f41 // setne r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3950f41 // setne r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + QUAD $0x000000a02494950f // setne byte [rsp + 160] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6950f40 // setne sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd7950f40 // setne dil + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2950f41 // setne r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4950f41 // setne r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd1950f41 // setne r9b + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7950f41 // setne r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x950f; BYTE $0xd1 // setne cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x0000008824840244 // add r8b, byte [rsp + 136] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x38 // movzx edi, byte [rsp + 56] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24748948; BYTE $0x08 // mov qword [rsp + 8], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB4_128 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + JMP LBB4_148 + +LBB4_130: + LONG $0x2474894c; BYTE $0x68 // mov qword [rsp + 104], r14 + +LBB4_131: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB4_137 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + +LBB4_156: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB4_156 + JMP LBB4_159 + +LBB4_134: + LONG $0x2474894c; BYTE $0x68 // mov qword [rsp + 104], r14 + +LBB4_135: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_157 + +LBB4_137: + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + JMP LBB4_161 + +LBB4_138: + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB4_139: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB4_146 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + +LBB4_142: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB4_142 + JMP LBB4_173 + +LBB4_143: + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB4_144: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_171 + +LBB4_146: + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB4_173 + +LBB4_147: + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + +LBB4_148: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB4_179 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB4_175 + WORD $0xf631 // xor esi, esi + JMP LBB4_177 + +LBB4_151: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_152: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_152 + +LBB4_153: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB4_170 + +LBB4_157: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + +LBB4_158: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB4_158 + +LBB4_159: + WORD $0x014c; BYTE $0xce // add rsi, r9 + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + +LBB4_161: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB4_179 + +LBB4_162: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_163: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_163 + +LBB4_164: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + JMP LBB4_170 + +LBB4_166: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB4_167: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB4_167 + +LBB4_168: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + +LBB4_170: + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB4_179 + +LBB4_171: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + +LBB4_172: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB4_172 + +LBB4_173: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + LONG $0x2e394466 // cmp word [rsi], r13w + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB4_179 + +LBB4_175: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB4_176: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB4_176 + +LBB4_177: + LONG $0x01c0f641 // test r8b, 1 + JE LBB4_179 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x133c8a41 // mov dil, byte [r11 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x131c8841 // mov byte [r11 + rdx], bl + +LBB4_179: + MOVQ 304(SP), SP + RET + +LBB4_180: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000100248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + +LBB4_181: + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x05e1c148 // shl rcx, 5 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0x8949; BYTE $0xcd // mov r13, rcx + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + WORD $0x8949; BYTE $0xcc // mov r12, rcx + WORD $0x8949; BYTE $0xcf // mov r15, rcx + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x244c8948; BYTE $0x30 // mov qword [rsp + 48], rcx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + WORD $0x8948; BYTE $0xca // mov rdx, rcx + LONG $0x0e0cb60f // movzx ecx, byte [rsi + rcx] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x164cb60f; BYTE $0x01 // movzx ecx, byte [rsi + rdx + 1] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x164cb60f; BYTE $0x02 // movzx ecx, byte [rsi + rdx + 2] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x164cb60f; BYTE $0x03 // movzx ecx, byte [rsi + rdx + 3] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x164cb60f; BYTE $0x04 // movzx ecx, byte [rsi + rdx + 4] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x164cb60f; BYTE $0x05 // movzx ecx, byte [rsi + rdx + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x164cb60f; BYTE $0x06 // movzx ecx, byte [rsi + rdx + 6] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x164cb60f; BYTE $0x07 // movzx ecx, byte [rsi + rdx + 7] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x164cb60f; BYTE $0x08 // movzx ecx, byte [rsi + rdx + 8] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x164cb60f; BYTE $0x09 // movzx ecx, byte [rsi + rdx + 9] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x164cb60f; BYTE $0x0a // movzx ecx, byte [rsi + rdx + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x164cb60f; BYTE $0x0b // movzx ecx, byte [rsi + rdx + 11] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x164cb60f; BYTE $0x0c // movzx ecx, byte [rsi + rdx + 12] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x164cb60f; BYTE $0x0d // movzx ecx, byte [rsi + rdx + 13] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x164cb60f; BYTE $0x0e // movzx ecx, byte [rsi + rdx + 14] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x164cb60f; BYTE $0x0f // movzx ecx, byte [rsi + rdx + 15] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000b024847f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm0 + LONG $0x24548948; BYTE $0x18 // mov qword [rsp + 24], rdx + WORD $0x8948; BYTE $0xd1 // mov rcx, rdx + LONG $0x20c98348 // or rcx, 32 + LONG $0x244c8948; BYTE $0x28 // mov qword [rsp + 40], rcx + LONG $0x40cb8349 // or r11, 64 + LONG $0x245c894c; BYTE $0x70 // mov qword [rsp + 112], r11 + LONG $0x60c88349 // or r8, 96 + LONG $0x2444894c; BYTE $0x40 // mov qword [rsp + 64], r8 + LONG $0x80ce8149; WORD $0x0000; BYTE $0x00 // or r14, 128 + LONG $0xa0cd8149; WORD $0x0000; BYTE $0x00 // or r13, 160 + WORD $0x8949; BYTE $0xda // mov r10, rbx + LONG $0xc0ca8149; WORD $0x0000; BYTE $0x00 // or r10, 192 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + LONG $0xe0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 224 + LONG $0x00cf8149; WORD $0x0001; BYTE $0x00 // or r15, 256 + LONG $0x20cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 288 + QUAD $0x000000c024bc8948 // mov qword [rsp + 192], rdi + LONG $0x40c98149; WORD $0x0001; BYTE $0x00 // or r9, 320 + LONG $0x244c894c; BYTE $0x20 // mov qword [rsp + 32], r9 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + LONG $0x60cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 352 + LONG $0x245c8948; BYTE $0x30 // mov qword [rsp + 48], rbx + LONG $0x01800d48; WORD $0x0000 // or rax, 384 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + WORD $0x8948; BYTE $0xd1 // mov rcx, rdx + LONG $0xc0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 448 + LONG $0x244c8948; BYTE $0x10 // mov qword [rsp + 16], rcx + WORD $0x8948; BYTE $0xd1 // mov rcx, rdx + LONG $0xe0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 480 + LONG $0x244c8948; BYTE $0x38 // mov qword [rsp + 56], rcx + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + LONG $0x203a0f66; WORD $0x1624; BYTE $0x01 // pinsrb xmm4, byte [rsi + rdx], 1 + QUAD $0x021e24203a0f4266 // pinsrb xmm4, byte [rsi + r11], 2 + QUAD $0x030624203a0f4266 // pinsrb xmm4, byte [rsi + r8], 3 + QUAD $0x043624203a0f4266 // pinsrb xmm4, byte [rsi + r14], 4 + QUAD $0x052e24203a0f4266 // pinsrb xmm4, byte [rsi + r13], 5 + QUAD $0x061624203a0f4266 // pinsrb xmm4, byte [rsi + r10], 6 + QUAD $0x072624203a0f4266 // pinsrb xmm4, byte [rsi + r12], 7 + QUAD $0x083e24203a0f4266 // pinsrb xmm4, byte [rsi + r15], 8 + LONG $0x203a0f66; WORD $0x3e24; BYTE $0x09 // pinsrb xmm4, byte [rsi + rdi], 9 + QUAD $0x0a0e24203a0f4266 // pinsrb xmm4, byte [rsi + r9], 10 + LONG $0x203a0f66; WORD $0x1e24; BYTE $0x0b // pinsrb xmm4, byte [rsi + rbx], 11 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + LONG $0x203a0f66; WORD $0x1624; BYTE $0x0c // pinsrb xmm4, byte [rsi + rdx], 12 + LONG $0x203a0f66; WORD $0x0624; BYTE $0x0d // pinsrb xmm4, byte [rsi + rax], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + LONG $0x203a0f66; WORD $0x1e24; BYTE $0x0e // pinsrb xmm4, byte [rsi + rbx], 14 + LONG $0x203a0f66; WORD $0x0e24; BYTE $0x0f // pinsrb xmm4, byte [rsi + rcx], 15 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x01011e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 1], 1 + QUAD $0x011e5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r11 + 1], 2 + QUAD $0x01065c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r8 + 1], 3 + QUAD $0x01365c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r14 + 1], 4 + QUAD $0x012e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r13 + 1], 5 + WORD $0x894d; BYTE $0xeb // mov r11, r13 + QUAD $0x01165c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r10 + 1], 6 + QUAD $0x01265c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r12 + 1], 7 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x013e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r15 + 1], 8 + QUAD $0x09013e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 1], 9 + QUAD $0x010e5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r9 + 1], 10 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x01265c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r12 + 1], 11 + QUAD $0x0c01165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 1], 12 + QUAD $0x0d01065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 1], 13 + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e01065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 1], 14 + QUAD $0x00010024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 256] + LONG $0xe6740f66 // pcmpeqb xmm4, xmm6 + QUAD $0x0f010e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 1], 15 + LONG $0xde740f66 // pcmpeqb xmm3, xmm6 + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xdcfc0f66 // paddb xmm3, xmm4 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x0654b60f; BYTE $0x10 // movzx edx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0102066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 2], 1 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x02166c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rsi + r10 + 2], 2 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x03023e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 2], 3 + QUAD $0x02366c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r14 + 2], 4 + QUAD $0x021e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r11 + 2], 5 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x020e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r9 + 2], 6 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x022e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r13 + 2], 7 + QUAD $0x023e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r15 + 2], 8 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0902166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 2], 9 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0a02066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 2], 10 + QUAD $0x02266c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r12 + 2], 11 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0c020e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 2], 12 + QUAD $0x02066c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r8 + 2], 13 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x022e6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r13 + 2], 14 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x02066c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r8 + 2], 15 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0103067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 1 + QUAD $0x03167c203a0f4266; BYTE $0x02 // pinsrb xmm7, byte [rsi + r10 + 3], 2 + QUAD $0x03033e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 3], 3 + QUAD $0x03367c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r14 + 3], 4 + QUAD $0x031e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r11 + 3], 5 + QUAD $0x030e7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r9 + 3], 6 + QUAD $0x07031e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 3], 7 + QUAD $0x033e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r15 + 3], 8 + QUAD $0x0903167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 3], 9 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0a03067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 10 + QUAD $0x03267c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r12 + 3], 11 + QUAD $0x0c030e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 3], 12 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0d03067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 13 + QUAD $0x032e7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r13 + 3], 14 + QUAD $0x03067c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r8 + 3], 15 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0104064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 4], 1 + QUAD $0x04164c203a0f4266; BYTE $0x02 // pinsrb xmm1, byte [rsi + r10 + 4], 2 + QUAD $0x03043e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 4], 3 + QUAD $0x04364c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r14 + 4], 4 + QUAD $0x041e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r11 + 4], 5 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x040e4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rsi + r9 + 4], 6 + QUAD $0x07041e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 4], 7 + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + QUAD $0x043e4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r15 + 4], 8 + QUAD $0x0904164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 9 + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0a04164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 10 + QUAD $0x04264c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r12 + 4], 11 + QUAD $0x0c040e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 4], 12 + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + QUAD $0x041e4c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r11 + 4], 13 + QUAD $0x042e4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r13 + 4], 14 + QUAD $0x04064c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r8 + 4], 15 + LONG $0xee740f66 // pcmpeqb xmm5, xmm6 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xfe740f66 // pcmpeqb xmm7, xmm6 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xf8df0f66 // pandn xmm7, xmm0 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + LONG $0x0e54b60f; BYTE $0x11 // movzx edx, byte [rsi + rcx + 17] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0xce740f66 // pcmpeqb xmm1, xmm6 + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xc8df0f66 // pandn xmm1, xmm0 + LONG $0xcfeb0f66 // por xmm1, xmm7 + LONG $0x0e54b60f; BYTE $0x12 // movzx edx, byte [rsi + rcx + 18] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xcbeb0f66 // por xmm1, xmm3 + LONG $0x0e54b60f; BYTE $0x13 // movzx edx, byte [rsi + rcx + 19] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x01051654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 5], 1 + QUAD $0x051654203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r10 + 5], 2 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x03050e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 5], 3 + LONG $0x2474894c; BYTE $0x78 // mov qword [rsp + 120], r14 + QUAD $0x053654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r14 + 5], 4 + QUAD $0x05050654203a0f66 // pinsrb xmm2, byte [rsi + rax + 5], 5 + WORD $0x894d; BYTE $0xcc // mov r12, r9 + QUAD $0x050e54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r9 + 5], 6 + QUAD $0x000000a024bc8948 // mov qword [rsp + 160], rdi + QUAD $0x07053e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 5], 7 + QUAD $0x053e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r15 + 5], 8 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + QUAD $0x09051e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 5], 9 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0a050654203a0f66 // pinsrb xmm2, byte [rsi + rax + 5], 10 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0b050e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 5], 11 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x052e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r13 + 5], 12 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x051e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r11 + 5], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e050e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 5], 14 + LONG $0x245c8b4c; BYTE $0x38 // mov r11, qword [rsp + 56] + QUAD $0x051e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r11 + 5], 15 + QUAD $0x061644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rdx + 6], 1 + QUAD $0x061644203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r10 + 6], 2 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x061e44203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rbx + 6], 3 + QUAD $0x063644203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r14 + 6], 4 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x061e44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rbx + 6], 5 + QUAD $0x062644203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rsi + r12 + 6], 6 + QUAD $0x063e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rdi + 6], 7 + QUAD $0x063e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r15 + 6], 8 + QUAD $0x060e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 6], 9 + QUAD $0x060644203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rax + 6], 10 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x061e44203a0f4466; BYTE $0x0b // pinsrb xmm8, byte [rsi + rbx + 6], 11 + QUAD $0x062e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r13 + 6], 12 + QUAD $0x060644203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r8 + 6], 13 + QUAD $0x060e44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rcx + 6], 14 + QUAD $0x061e44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r11 + 6], 15 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x071674203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rdx + 7], 1 + QUAD $0x071674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r10 + 7], 2 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x071674203a0f4466; BYTE $0x03 // pinsrb xmm14, byte [rsi + rdx + 7], 3 + QUAD $0x073674203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r14 + 7], 4 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x071e74203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rsi + r11 + 7], 5 + QUAD $0x072674203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rsi + r12 + 7], 6 + QUAD $0x073e74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rdi + 7], 7 + QUAD $0x073e74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r15 + 7], 8 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + LONG $0x247c894c; BYTE $0x60 // mov qword [rsp + 96], r15 + QUAD $0x070e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r9 + 7], 9 + QUAD $0x070674203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rsi + rax + 7], 10 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x071e74203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rsi + rbx + 7], 11 + QUAD $0x072e74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r13 + 7], 12 + WORD $0x894d; BYTE $0xee // mov r14, r13 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x070674203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rsi + r8 + 7], 13 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x072e74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r13 + 7], 14 + LONG $0xd6740f66 // pcmpeqb xmm2, xmm6 + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0xd0df0f66 // pandn xmm2, xmm0 + LONG $0x740f4466; BYTE $0xc6 // pcmpeqb xmm8, xmm6 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xdf0f4466; BYTE $0xc0 // pandn xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + LONG $0x54b60f42; WORD $0x140e // movzx edx, byte [rsi + r9 + 20] + LONG $0xda6e0f66 // movd xmm3, edx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x070e74203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rsi + rcx + 7], 15 + LONG $0x740f4466; BYTE $0xf6 // pcmpeqb xmm14, xmm6 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xdf0f4466; BYTE $0xf0 // pandn xmm14, xmm0 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + LONG $0x54b60f42; WORD $0x150e // movzx edx, byte [rsi + r9 + 21] + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x080e4c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rcx + 8], 1 + QUAD $0x08164c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rsi + r10 + 8], 2 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x08064c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r8 + 8], 3 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x08164c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rdx + 8], 4 + QUAD $0x081e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r11 + 8], 5 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x08164c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rdx + 8], 6 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x083e4c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r15 + 8], 7 + QUAD $0x08264c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r12 + 8], 8 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x08264c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r12 + 8], 9 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x08164c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rdx + 8], 10 + QUAD $0x081e4c203a0f4466; BYTE $0x0b // pinsrb xmm9, byte [rsi + rbx + 8], 11 + QUAD $0x08364c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r14 + 8], 12 + QUAD $0x083e4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rdi + 8], 13 + QUAD $0x082e4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r13 + 8], 14 + QUAD $0x08064c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rsi + rax + 8], 15 + LONG $0xeb0f4466; BYTE $0xf1 // por xmm14, xmm1 + QUAD $0x011024b47f0f4466; WORD $0x0000 // movdqa oword [rsp + 272], xmm14 + LONG $0x54b60f42; WORD $0x160e // movzx edx, byte [rsi + r9 + 22] + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x740f4466; BYTE $0xce // pcmpeqb xmm9, xmm6 + QUAD $0x00d024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 208] + QUAD $0x090e74203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rcx + 9], 1 + QUAD $0x091674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r10 + 9], 2 + QUAD $0x090674203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r8 + 9], 3 + LONG $0x24448b48; BYTE $0x78 // mov rax, qword [rsp + 120] + QUAD $0x090674203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rsi + rax + 9], 4 + QUAD $0x091e74203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rsi + r11 + 9], 5 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x091674203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rdx + 9], 6 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + QUAD $0x093e74203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rsi + r15 + 9], 7 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x093e74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r15 + 9], 8 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x092674203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r12 + 9], 9 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x092e74203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rsi + r13 + 9], 10 + QUAD $0x091e74203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rsi + rbx + 9], 11 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + QUAD $0x093674203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r14 + 9], 12 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x093674203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rsi + r14 + 9], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x090674203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rsi + rax + 9], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090674203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rsi + rax + 9], 15 + WORD $0x8949; BYTE $0xca // mov r10, rcx + QUAD $0x0a0e64203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rcx + 10], 1 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0a0e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rcx + 10], 2 + QUAD $0x0a0664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r8 + 10], 3 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0a0e64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rcx + 10], 4 + QUAD $0x0a1e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r11 + 10], 5 + QUAD $0x0a1664203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rdx + 10], 6 + QUAD $0x0a3e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdi + 10], 7 + QUAD $0x0a3e64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r15 + 10], 8 + QUAD $0x0a0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 10], 9 + QUAD $0x0a2e64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r13 + 10], 10 + QUAD $0x0a1e64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rsi + rbx + 10], 11 + QUAD $0x0a2664203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r12 + 10], 12 + QUAD $0x0a3664203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r14 + 10], 13 + LONG $0x24748b4c; BYTE $0x10 // mov r14, qword [rsp + 16] + QUAD $0x0a3664203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r14 + 10], 14 + QUAD $0x0a0664203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rax + 10], 15 + QUAD $0x0b166c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rsi + r10 + 11], 1 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x0b166c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rsi + r10 + 11], 2 + QUAD $0x0b066c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r8 + 11], 3 + QUAD $0x0b0e6c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rsi + rcx + 11], 4 + QUAD $0x0b1e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r11 + 11], 5 + QUAD $0x0b166c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rdx + 11], 6 + QUAD $0x0b3e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdi + 11], 7 + QUAD $0x0b3e6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r15 + 11], 8 + QUAD $0x0b0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 11], 9 + QUAD $0x0b2e6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r13 + 11], 10 + QUAD $0x0b1e6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rsi + rbx + 11], 11 + WORD $0x8949; BYTE $0xdf // mov r15, rbx + QUAD $0x0b266c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r12 + 11], 12 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x0b2e6c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r13 + 11], 13 + QUAD $0x0b366c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r14 + 11], 14 + QUAD $0x0b066c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rax + 11], 15 + LONG $0x740f4466; BYTE $0xf6 // pcmpeqb xmm14, xmm6 + QUAD $0x000100b5df0f4466; BYTE $0x00 // pandn xmm14, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xfc0f4566; BYTE $0xf1 // paddb xmm14, xmm9 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x0654b60f; BYTE $0x17 // movzx edx, byte [rsi + rax + 23] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0x740f4466; BYTE $0xe6 // pcmpeqb xmm12, xmm6 + QUAD $0x000110a5df0f4466; BYTE $0x00 // pandn xmm12, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0x740f4466; BYTE $0xee // pcmpeqb xmm13, xmm6 + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x0654b60f; BYTE $0x18 // movzx edx, byte [rsi + rax + 24] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + QUAD $0x00e0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 224] + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 12], 1 + QUAD $0x0c164c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rsi + r10 + 12], 2 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x0c064c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r8 + 12], 3 + WORD $0x8949; BYTE $0xce // mov r14, rcx + QUAD $0x0c0e4c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rcx + 12], 4 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x0c1e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r11 + 12], 5 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x0c1e4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rsi + r11 + 12], 6 + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + QUAD $0x0c3e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rdi + 12], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0c0e4c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rsi + rcx + 12], 8 + QUAD $0x0c0e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 12], 9 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c3e4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rdi + 12], 10 + QUAD $0x0c3e4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r15 + 12], 11 + QUAD $0x0c264c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r12 + 12], 12 + QUAD $0x0c2e4c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r13 + 12], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0c164c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rdx + 12], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0c164c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rsi + rdx + 12], 15 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0d165c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rdx + 13], 1 + QUAD $0x0d165c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rsi + r10 + 13], 2 + QUAD $0x0d065c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rax + 13], 3 + QUAD $0x0d365c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r14 + 13], 4 + QUAD $0x0d065c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r8 + 13], 5 + QUAD $0x0d1e5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rsi + r11 + 13], 6 + QUAD $0x0d1e5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rbx + 13], 7 + QUAD $0x0d0e5c203a0f4466; BYTE $0x08 // pinsrb xmm11, byte [rsi + rcx + 13], 8 + QUAD $0x0d0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 13], 9 + QUAD $0x0d3e5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rdi + 13], 10 + QUAD $0x0d3e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r15 + 13], 11 + QUAD $0x0d265c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r12 + 13], 12 + QUAD $0x0d2e5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r13 + 13], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0d165c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rdx + 13], 14 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0d165c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rdx + 13], 15 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e167c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rdx + 14], 1 + QUAD $0x0e167c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r10 + 14], 2 + QUAD $0x0e067c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rax + 14], 3 + QUAD $0x0e367c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r14 + 14], 4 + QUAD $0x0e067c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rsi + r8 + 14], 5 + QUAD $0x0e1e7c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rsi + r11 + 14], 6 + QUAD $0x0e1e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rbx + 14], 7 + QUAD $0x0e0e7c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rsi + rcx + 14], 8 + QUAD $0x0e0e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r9 + 14], 9 + QUAD $0x0e3e7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rsi + rdi + 14], 10 + QUAD $0x0e3e7c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r15 + 14], 11 + QUAD $0x0e267c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r12 + 14], 12 + QUAD $0x0e2e7c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r13 + 14], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x0e3e7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r15 + 14], 14 + LONG $0x740f4466; BYTE $0xce // pcmpeqb xmm9, xmm6 + QUAD $0x0001308ddf0f4466; BYTE $0x00 // pandn xmm9, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xeb0f4566; BYTE $0xcd // por xmm9, xmm13 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + LONG $0x0e54b60f; BYTE $0x19 // movzx edx, byte [rsi + rcx + 25] + LONG $0x6e0f4466; BYTE $0xea // movd xmm13, edx + QUAD $0x000160b5f80f4466; BYTE $0x00 // psubb xmm14, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xeb0f4566; BYTE $0xce // por xmm9, xmm14 + LONG $0x0e54b60f; BYTE $0x1a // movzx edx, byte [rsi + rcx + 26] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0e067c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rsi + rax + 14], 15 + LONG $0x740f4466; BYTE $0xde // pcmpeqb xmm11, xmm6 + QUAD $0x0001409ddf0f4466; BYTE $0x00 // pandn xmm11, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0x740f4466; BYTE $0xfe // pcmpeqb xmm15, xmm6 + LONG $0x6f0f4466; BYTE $0xf6 // movdqa xmm14, xmm6 + QUAD $0x000150bddf0f4466; BYTE $0x00 // pandn xmm15, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + LONG $0x0e54b60f; BYTE $0x1b // movzx edx, byte [rsi + rcx + 27] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x0000b024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 176] + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0f1e74203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r11 + 15], 1 + QUAD $0x0f1674203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r10 + 15], 2 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x030f1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 15], 3 + QUAD $0x0f3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 15], 4 + QUAD $0x0f0674203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r8 + 15], 5 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0f2674203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r12 + 15], 6 + QUAD $0x000000a0248c8b48 // mov rcx, qword [rsp + 160] + QUAD $0x070f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 7 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x080f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 8 + QUAD $0x0f0e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 15], 9 + QUAD $0x0a0f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 10 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x0b0f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 11 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0f3674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r14 + 15], 12 + QUAD $0x0f2e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r13 + 15], 13 + QUAD $0x0f3e74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r15 + 15], 14 + QUAD $0x0f0f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 15], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0x75df0f66; BYTE $0x60 // pandn xmm6, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x0654b60f; BYTE $0x1c // movzx edx, byte [rsi + rax + 28] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0xeb0f4166; BYTE $0xf1 // por xmm6, xmm9 + QUAD $0x0000b024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm6 + LONG $0x0654b60f; BYTE $0x1d // movzx edx, byte [rsi + rax + 29] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + QUAD $0x101e54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r11 + 16], 1 + QUAD $0x101654203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r10 + 16], 2 + QUAD $0x101e54203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rbx + 16], 3 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x102e54203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r13 + 16], 4 + QUAD $0x100654203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r8 + 16], 5 + QUAD $0x102654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r12 + 16], 6 + QUAD $0x000000a024a48b4c // mov r12, qword [rsp + 160] + QUAD $0x102654203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r12 + 16], 7 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x101654203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rdx + 16], 8 + QUAD $0x100e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r9 + 16], 9 + QUAD $0x103e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rdi + 16], 10 + QUAD $0x100e54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rcx + 16], 11 + QUAD $0x103654203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r14 + 16], 12 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x103654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r14 + 16], 13 + QUAD $0x103e54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r15 + 16], 14 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x100654203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rax + 16], 15 + QUAD $0x111e64203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r11 + 17], 1 + QUAD $0x111664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r10 + 17], 2 + QUAD $0x03111e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 17], 3 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x112e64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r13 + 17], 4 + QUAD $0x110664203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r8 + 17], 5 + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + QUAD $0x111e64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r11 + 17], 6 + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + QUAD $0x112664203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r12 + 17], 7 + QUAD $0x08111664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 17], 8 + QUAD $0x110e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 17], 9 + QUAD $0x0a113e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 17], 10 + QUAD $0x0b110e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 17], 11 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0c110e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 17], 12 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + QUAD $0x113664203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r14 + 17], 13 + QUAD $0x113e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r15 + 17], 14 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + QUAD $0x0f110664203a0f66 // pinsrb xmm4, byte [rsi + rax + 17], 15 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + LONG $0x6f0f4166; BYTE $0xf6 // movdqa xmm6, xmm14 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0x740f4166; BYTE $0xe6 // pcmpeqb xmm4, xmm14 + QUAD $0x00000100a5df0f66 // pandn xmm4, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xfc0f4166; BYTE $0xe2 // paddb xmm4, xmm10 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + LONG $0x3e54b60f; BYTE $0x1e // movzx edx, byte [rsi + rdi + 30] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0112067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 18], 1 + QUAD $0x0113066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 1 + QUAD $0x0114065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 20], 1 + QUAD $0x01150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 1 + QUAD $0x0116064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 22], 1 + QUAD $0x170644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rax + 23], 1 + QUAD $0x180664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rax + 24], 1 + QUAD $0x19066c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rax + 25], 1 + QUAD $0x011a0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 26], 1 + QUAD $0x1b065c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rax + 27], 1 + QUAD $0x1c067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 28], 1 + QUAD $0x1d064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 29], 1 + QUAD $0x1e0654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rax + 30], 1 + LONG $0x3e54b60f; BYTE $0x1f // movzx edx, byte [rsi + rdi + 31] + LONG $0xf26e0f66 // movd xmm6, edx + QUAD $0x011f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 31], 1 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0212167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 18], 2 + QUAD $0x0213166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 19], 2 + QUAD $0x0214165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 20], 2 + QUAD $0x02151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 2 + QUAD $0x0216164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 22], 2 + QUAD $0x171644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdx + 23], 2 + QUAD $0x181664203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdx + 24], 2 + QUAD $0x19166c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdx + 25], 2 + QUAD $0x021a1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 26], 2 + QUAD $0x1b165c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdx + 27], 2 + QUAD $0x1c167c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rsi + rdx + 28], 2 + QUAD $0x1d164c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdx + 29], 2 + QUAD $0x1e1654203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdx + 30], 2 + QUAD $0x021f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 31], 2 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x0312167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 18], 3 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + QUAD $0x12167c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r10 + 18], 4 + QUAD $0x12067c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r8 + 18], 5 + QUAD $0x121e7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r11 + 18], 6 + QUAD $0x07121e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 18], 7 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0812067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 18], 8 + QUAD $0x120e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r9 + 18], 9 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0a123e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 18], 10 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x12167c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r10 + 18], 11 + QUAD $0x0c120e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 18], 12 + QUAD $0x122e7c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r13 + 18], 13 + QUAD $0x12267c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r12 + 18], 14 + QUAD $0x123e7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r15 + 18], 15 + QUAD $0x0313166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 19], 3 + QUAD $0x13366c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r14 + 19], 4 + QUAD $0x13066c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r8 + 19], 5 + QUAD $0x131e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r11 + 19], 6 + QUAD $0x07131e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 19], 7 + QUAD $0x0813066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 8 + QUAD $0x130e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r9 + 19], 9 + QUAD $0x0a133e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 19], 10 + QUAD $0x13166c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r10 + 19], 11 + QUAD $0x0c130e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 19], 12 + QUAD $0x132e6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r13 + 19], 13 + QUAD $0x13266c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r12 + 19], 14 + QUAD $0x133e6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r15 + 19], 15 + QUAD $0x0314165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 20], 3 + QUAD $0x14365c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r14 + 20], 4 + QUAD $0x14065c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r8 + 20], 5 + QUAD $0x141e5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r11 + 20], 6 + QUAD $0x07141e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 20], 7 + QUAD $0x0814065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 20], 8 + QUAD $0x140e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r9 + 20], 9 + QUAD $0x0a143e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 20], 10 + QUAD $0x14165c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r10 + 20], 11 + QUAD $0x0c140e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 20], 12 + QUAD $0x142e5c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r13 + 20], 13 + QUAD $0x14265c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r12 + 20], 14 + LONG $0x740f4166; BYTE $0xfe // pcmpeqb xmm7, xmm14 + QUAD $0x00000110bddf0f66 // pandn xmm7, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0x740f4166; BYTE $0xee // pcmpeqb xmm5, xmm14 + QUAD $0x00000120addf0f66 // pandn xmm5, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0x143e5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r15 + 20], 15 + LONG $0x740f4166; BYTE $0xde // pcmpeqb xmm3, xmm14 + QUAD $0x00000130bd6f0f66 // movdqa xmm7, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xdfdf0f66 // pandn xmm3, xmm7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xe5f80f66 // psubb xmm4, xmm5 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x03151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x153654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r14 + 21], 4 + QUAD $0x150654203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r8 + 21], 5 + QUAD $0x151e54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r11 + 21], 6 + QUAD $0x07151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 7 + QUAD $0x08150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 8 + QUAD $0x150e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 21], 9 + QUAD $0x0a153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 10 + QUAD $0x151654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r10 + 21], 11 + QUAD $0x0c150e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 21], 12 + QUAD $0x152e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r13 + 21], 13 + QUAD $0x152654203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r12 + 21], 14 + QUAD $0x153e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r15 + 21], 15 + QUAD $0x0316164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 22], 3 + QUAD $0x16364c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r14 + 22], 4 + QUAD $0x16064c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r8 + 22], 5 + QUAD $0x161e4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rsi + r11 + 22], 6 + QUAD $0x07161e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 22], 7 + QUAD $0x0816064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 22], 8 + QUAD $0x160e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r9 + 22], 9 + QUAD $0x0a163e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 22], 10 + QUAD $0x16164c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r10 + 22], 11 + QUAD $0x0c160e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 22], 12 + QUAD $0x162e4c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r13 + 22], 13 + QUAD $0x16264c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r12 + 22], 14 + QUAD $0x163e4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r15 + 22], 15 + QUAD $0x171644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rdx + 23], 3 + QUAD $0x173644203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r14 + 23], 4 + QUAD $0x170644203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r8 + 23], 5 + QUAD $0x171e44203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rsi + r11 + 23], 6 + QUAD $0x171e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rbx + 23], 7 + QUAD $0x170644203a0f4466; BYTE $0x08 // pinsrb xmm8, byte [rsi + rax + 23], 8 + QUAD $0x170e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 23], 9 + QUAD $0x173e44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rdi + 23], 10 + QUAD $0x171644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r10 + 23], 11 + QUAD $0x170e44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rcx + 23], 12 + QUAD $0x172e44203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r13 + 23], 13 + QUAD $0x172644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r12 + 23], 14 + LONG $0x6f0f4166; BYTE $0xe6 // movdqa xmm4, xmm14 + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140ad6f0f66 // movdqa xmm5, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0xd5df0f66 // pandn xmm2, xmm5 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xcfdf0f66 // pandn xmm1, xmm7 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x173e44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r15 + 23], 15 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + LONG $0x6f0f4166; BYTE $0xd6 // movdqa xmm2, xmm14 + LONG $0x656f0f66; BYTE $0x60 // movdqa xmm4, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + QUAD $0x181664203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rdx + 24], 3 + QUAD $0x183664203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r14 + 24], 4 + QUAD $0x180664203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r8 + 24], 5 + QUAD $0x181e64203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rsi + r11 + 24], 6 + QUAD $0x181e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rbx + 24], 7 + QUAD $0x180664203a0f4466; BYTE $0x08 // pinsrb xmm12, byte [rsi + rax + 24], 8 + QUAD $0x180e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 24], 9 + QUAD $0x183e64203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rsi + rdi + 24], 10 + QUAD $0x181664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r10 + 24], 11 + QUAD $0x180e64203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rsi + rcx + 24], 12 + QUAD $0x182e64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r13 + 24], 13 + QUAD $0x182664203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r12 + 24], 14 + QUAD $0x183e64203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r15 + 24], 15 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x19166c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rsi + rdx + 25], 3 + QUAD $0x19366c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r14 + 25], 4 + QUAD $0x19066c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r8 + 25], 5 + QUAD $0x191e6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rsi + r11 + 25], 6 + QUAD $0x191e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rbx + 25], 7 + QUAD $0x19066c203a0f4466; BYTE $0x08 // pinsrb xmm13, byte [rsi + rax + 25], 8 + QUAD $0x190e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 25], 9 + QUAD $0x193e6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rdi + 25], 10 + QUAD $0x19166c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r10 + 25], 11 + QUAD $0x190e6c203a0f4466; BYTE $0x0c // pinsrb xmm13, byte [rsi + rcx + 25], 12 + QUAD $0x192e6c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r13 + 25], 13 + QUAD $0x19266c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r12 + 25], 14 + QUAD $0x193e6c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r15 + 25], 15 + QUAD $0x031a1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 26], 3 + QUAD $0x1a3644203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r14 + 26], 4 + QUAD $0x1a0644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r8 + 26], 5 + QUAD $0x1a1e44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r11 + 26], 6 + QUAD $0x071a1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 26], 7 + QUAD $0x081a0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 26], 8 + QUAD $0x1a0e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 26], 9 + QUAD $0x0a1a3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 26], 10 + QUAD $0x1a1644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r10 + 26], 11 + QUAD $0x0c1a0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 26], 12 + QUAD $0x1a2e44203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r13 + 26], 13 + QUAD $0x1a2644203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r12 + 26], 14 + QUAD $0x1a3e44203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r15 + 26], 15 + QUAD $0x1b165c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rdx + 27], 3 + QUAD $0x1b365c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r14 + 27], 4 + QUAD $0x1b065c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r8 + 27], 5 + QUAD $0x1b1e5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rsi + r11 + 27], 6 + QUAD $0x1b1e5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rbx + 27], 7 + QUAD $0x1b065c203a0f4466; BYTE $0x08 // pinsrb xmm11, byte [rsi + rax + 27], 8 + QUAD $0x1b0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 27], 9 + QUAD $0x1b3e5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rdi + 27], 10 + QUAD $0x1b165c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r10 + 27], 11 + QUAD $0x1b0e5c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rsi + rcx + 27], 12 + QUAD $0x1b2e5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r13 + 27], 13 + QUAD $0x1b265c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r12 + 27], 14 + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xfc0f4566; BYTE $0xec // paddb xmm13, xmm12 + QUAD $0x1b3e5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r15 + 27], 15 + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x0000011085df0f66 // pandn xmm0, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001209ddf0f4466; BYTE $0x00 // pandn xmm11, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xeb0f4466; BYTE $0xd8 // por xmm11, xmm0 + QUAD $0x1c167c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rdx + 28], 3 + QUAD $0x1d164c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rdx + 29], 3 + QUAD $0x1e1654203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rdx + 30], 3 + QUAD $0x031f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 31], 3 + QUAD $0x1c367c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r14 + 28], 4 + QUAD $0x1d364c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r14 + 29], 4 + QUAD $0x1e3654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r14 + 30], 4 + QUAD $0x1f3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 31], 4 + QUAD $0x1c067c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rsi + r8 + 28], 5 + QUAD $0x1d064c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r8 + 29], 5 + QUAD $0x1e0654203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r8 + 30], 5 + QUAD $0x1f0674203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r8 + 31], 5 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + QUAD $0x1c1e7c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rsi + r11 + 28], 6 + QUAD $0x1d1e4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rsi + r11 + 29], 6 + QUAD $0x1e1e54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r11 + 30], 6 + QUAD $0x1f1e74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r11 + 31], 6 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + WORD $0x8948; BYTE $0xda // mov rdx, rbx + QUAD $0x1c1e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rbx + 28], 7 + QUAD $0x1d1e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rbx + 29], 7 + QUAD $0x1e1e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rbx + 30], 7 + QUAD $0x071f1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 31], 7 + QUAD $0x1c067c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rsi + rax + 28], 8 + QUAD $0x1d064c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rsi + rax + 29], 8 + QUAD $0x1e0654203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rax + 30], 8 + QUAD $0x081f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 31], 8 + QUAD $0x1c0e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r9 + 28], 9 + QUAD $0x1d0e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 29], 9 + QUAD $0x1e0e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r9 + 30], 9 + QUAD $0x1f0e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 31], 9 + QUAD $0x1c3e7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rsi + rdi + 28], 10 + QUAD $0x1d3e4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rdi + 29], 10 + QUAD $0x1e3e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rdi + 30], 10 + QUAD $0x0a1f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 31], 10 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x1c167c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r10 + 28], 11 + QUAD $0x1d164c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r10 + 29], 11 + QUAD $0x1e1654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r10 + 30], 11 + QUAD $0x1f1674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r10 + 31], 11 + QUAD $0x1c0e7c203a0f4466; BYTE $0x0c // pinsrb xmm15, byte [rsi + rcx + 28], 12 + QUAD $0x1d0e4c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rsi + rcx + 29], 12 + QUAD $0x1e0e54203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rsi + rcx + 30], 12 + QUAD $0x0c1f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 31], 12 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x1c2e7c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r13 + 28], 13 + QUAD $0x1d2e4c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r13 + 29], 13 + QUAD $0x1e2e54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r13 + 30], 13 + QUAD $0x1f2e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r13 + 31], 13 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x1c267c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r12 + 28], 14 + QUAD $0x1d264c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r12 + 29], 14 + QUAD $0x1e2654203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r12 + 30], 14 + QUAD $0x1f2674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r12 + 31], 14 + QUAD $0x1c3e7c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r15 + 28], 15 + QUAD $0x1d3e4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r15 + 29], 15 + QUAD $0x1e3e54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r15 + 30], 15 + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000130bddf0f4466; BYTE $0x00 // pandn xmm15, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + QUAD $0x1f3e74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r15 + 31], 15 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + LONG $0xdf0f4466; BYTE $0xcd // pandn xmm9, xmm5 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0xdf0f4466; BYTE $0xd7 // pandn xmm10, xmm7 + LONG $0xeb0f4566; BYTE $0xd1 // por xmm10, xmm9 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0xf4df0f66 // pandn xmm6, xmm4 + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc6600f66 // punpcklbw xmm0, xmm6 + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + QUAD $0x0000b0249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 176] + LONG $0xcb600f66 // punpcklbw xmm1, xmm3 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xd0610f66 // punpcklwd xmm2, xmm0 + LONG $0xc8690f66 // punpckhwd xmm1, xmm0 + LONG $0x680f4466; BYTE $0xc6 // punpckhbw xmm8, xmm6 + LONG $0xe3680f66 // punpckhbw xmm4, xmm3 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x7f0f41f3; WORD $0x8e64; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm4 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm1 + LONG $0x7f0f41f3; WORD $0x8e14 // movdqu oword [r14 + 4*rcx], xmm2 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000f0248c3b48 // cmp rcx, qword [rsp + 240] + JNE LBB4_181 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x000000f024943b4c // cmp r10, qword [rsp + 240] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x0000012024b48b48 // mov rsi, qword [rsp + 288] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + JNE LBB4_43 + JMP LBB4_131 + +LBB4_183: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x000000f824848948 // mov qword [rsp + 248], rax + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000a0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + +LBB4_184: + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x0000009824848948 // mov qword [rsp + 152], rax + LONG $0x05e1c149 // shl r9, 5 + WORD $0x894d; BYTE $0xcc // mov r12, r9 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + WORD $0x894d; BYTE $0xca // mov r10, r9 + LONG $0x244c894c; BYTE $0x40 // mov qword [rsp + 64], r9 + WORD $0x894d; BYTE $0xcf // mov r15, r9 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + WORD $0x894d; BYTE $0xce // mov r14, r9 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x04b60f42; BYTE $0x0e // movzx eax, byte [rsi + r9] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b60f42; WORD $0x010e // movzx eax, byte [rsi + r9 + 1] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x44b60f42; WORD $0x020e // movzx eax, byte [rsi + r9 + 2] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b60f42; WORD $0x030e // movzx eax, byte [rsi + r9 + 3] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b60f42; WORD $0x040e // movzx eax, byte [rsi + r9 + 4] + LONG $0x6e0f4466; BYTE $0xc8 // movd xmm9, eax + LONG $0x44b60f42; WORD $0x050e // movzx eax, byte [rsi + r9 + 5] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b60f42; WORD $0x060e // movzx eax, byte [rsi + r9 + 6] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b60f42; WORD $0x070e // movzx eax, byte [rsi + r9 + 7] + LONG $0x6e0f4466; BYTE $0xf0 // movd xmm14, eax + LONG $0x44b60f42; WORD $0x080e // movzx eax, byte [rsi + r9 + 8] + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x44b60f42; WORD $0x090e // movzx eax, byte [rsi + r9 + 9] + LONG $0x6e0f4466; BYTE $0xd8 // movd xmm11, eax + LONG $0x44b60f42; WORD $0x0a0e // movzx eax, byte [rsi + r9 + 10] + LONG $0x6e0f4466; BYTE $0xe0 // movd xmm12, eax + LONG $0x44b60f42; WORD $0x0b0e // movzx eax, byte [rsi + r9 + 11] + LONG $0x6e0f4466; BYTE $0xe8 // movd xmm13, eax + LONG $0x44b60f42; WORD $0x0c0e // movzx eax, byte [rsi + r9 + 12] + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x44b60f42; WORD $0x0d0e // movzx eax, byte [rsi + r9 + 13] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0x44b60f42; WORD $0x0e0e // movzx eax, byte [rsi + r9 + 14] + LONG $0x6e0f4466; BYTE $0xf8 // movd xmm15, eax + LONG $0x44b60f42; WORD $0x0f0e // movzx eax, byte [rsi + r9 + 15] + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + LONG $0x244c894c; BYTE $0x48 // mov qword [rsp + 72], r9 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0x20c98348 // or rcx, 32 + LONG $0x244c8948; BYTE $0x30 // mov qword [rsp + 48], rcx + LONG $0x40cc8349 // or r12, 64 + LONG $0x60cd8349 // or r13, 96 + LONG $0x80ca8149; WORD $0x0000; BYTE $0x00 // or r10, 128 + LONG $0x2454894c; BYTE $0x70 // mov qword [rsp + 112], r10 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + LONG $0xa0ca8149; WORD $0x0000; BYTE $0x00 // or r10, 160 + LONG $0x2454894c; BYTE $0x40 // mov qword [rsp + 64], r10 + LONG $0xc0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 192 + LONG $0x247c894c; BYTE $0x18 // mov qword [rsp + 24], r15 + LONG $0xe0cb8149; WORD $0x0000; BYTE $0x00 // or r11, 224 + LONG $0x00ce8149; WORD $0x0001; BYTE $0x00 // or r14, 256 + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + LONG $0x20ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 288 + LONG $0x40c88149; WORD $0x0001; BYTE $0x00 // or r8, 320 + LONG $0x2444894c; BYTE $0x78 // mov qword [rsp + 120], r8 + LONG $0x60cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 352 + LONG $0x245c8948; BYTE $0x58 // mov qword [rsp + 88], rbx + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0x247c8948; BYTE $0x20 // mov qword [rsp + 32], rdi + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0xe0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 480 + LONG $0x203a0f66; WORD $0x0e24; BYTE $0x01 // pinsrb xmm4, byte [rsi + rcx], 1 + LONG $0x2464894c; BYTE $0x60 // mov qword [rsp + 96], r12 + QUAD $0x022624203a0f4266 // pinsrb xmm4, byte [rsi + r12], 2 + QUAD $0x032e24203a0f4266 // pinsrb xmm4, byte [rsi + r13], 3 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + LONG $0x203a0f66; WORD $0x0e24; BYTE $0x04 // pinsrb xmm4, byte [rsi + rcx], 4 + QUAD $0x051624203a0f4266 // pinsrb xmm4, byte [rsi + r10], 5 + QUAD $0x063e24203a0f4266 // pinsrb xmm4, byte [rsi + r15], 6 + QUAD $0x071e24203a0f4266 // pinsrb xmm4, byte [rsi + r11], 7 + QUAD $0x083624203a0f4266 // pinsrb xmm4, byte [rsi + r14], 8 + LONG $0x203a0f66; WORD $0x1624; BYTE $0x09 // pinsrb xmm4, byte [rsi + rdx], 9 + QUAD $0x0a0624203a0f4266 // pinsrb xmm4, byte [rsi + r8], 10 + LONG $0x203a0f66; WORD $0x1e24; BYTE $0x0b // pinsrb xmm4, byte [rsi + rbx], 11 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0x203a0f66; WORD $0x0e24; BYTE $0x0c // pinsrb xmm4, byte [rsi + rcx], 12 + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x0d0e24203a0f4266 // pinsrb xmm4, byte [rsi + r9], 13 + LONG $0x203a0f66; WORD $0x0624; BYTE $0x0e // pinsrb xmm4, byte [rsi + rax], 14 + LONG $0x203a0f66; WORD $0x3e24; BYTE $0x0f // pinsrb xmm4, byte [rsi + rdi], 15 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x010e5c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r9 + 1], 1 + QUAD $0x01265c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r12 + 1], 2 + QUAD $0x012e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r13 + 1], 3 + WORD $0x894d; BYTE $0xec // mov r12, r13 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x012e5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r13 + 1], 4 + QUAD $0x01165c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r10 + 1], 5 + QUAD $0x013e5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r15 + 1], 6 + QUAD $0x011e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r11 + 1], 7 + WORD $0x894d; BYTE $0xda // mov r10, r11 + QUAD $0x01365c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r14 + 1], 8 + QUAD $0x0901165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 1], 9 + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + QUAD $0x01065c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r8 + 1], 10 + QUAD $0x0b011e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 1], 11 + QUAD $0x0c010e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 1], 12 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0d01165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 1], 13 + QUAD $0x0e01065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 1], 14 + QUAD $0x0000a0248c6f0f66; BYTE $0x00 // movdqa xmm1, oword [rsp + 160] + LONG $0xe1740f66 // pcmpeqb xmm4, xmm1 + QUAD $0x0f013e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 1], 15 + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0xd9740f66 // pcmpeqb xmm3, xmm1 + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xdcfc0f66 // paddb xmm3, xmm4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0654b60f; BYTE $0x10 // movzx edx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + WORD $0x894c; BYTE $0xca // mov rdx, r9 + QUAD $0x020e6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r9 + 2], 1 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x02023e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 2], 2 + LONG $0x2464894c; BYTE $0x38 // mov qword [rsp + 56], r12 + QUAD $0x02266c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r12 + 2], 3 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x022e6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r13 + 2], 4 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x021e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r11 + 2], 5 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x022e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r13 + 2], 6 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x02166c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r10 + 2], 7 + QUAD $0x000000b024bc8b4c // mov r15, qword [rsp + 176] + QUAD $0x023e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r15 + 2], 8 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x02366c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r14 + 2], 9 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x02166c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r10 + 2], 10 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x02366c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r14 + 2], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c02066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 2], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d02066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 2], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e02066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 2], 14 + LONG $0x244c8948; BYTE $0x50 // mov qword [rsp + 80], rcx + QUAD $0x0f020e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 2], 15 + QUAD $0x0103167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 3], 1 + QUAD $0x02033e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 3], 2 + QUAD $0x03267c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r12 + 3], 3 + QUAD $0x03067c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r8 + 3], 4 + QUAD $0x031e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r11 + 3], 5 + QUAD $0x032e7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r13 + 3], 6 + QUAD $0x07031e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 3], 7 + QUAD $0x033e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r15 + 3], 8 + QUAD $0x030e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r9 + 3], 9 + QUAD $0x03167c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r10 + 3], 10 + QUAD $0x03367c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r14 + 3], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0c03067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d03067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e03067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 3], 14 + QUAD $0x0f030e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 3], 15 + QUAD $0x04164c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rdx + 4], 1 + QUAD $0x043e4c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdi + 4], 2 + QUAD $0x04264c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r12 + 4], 3 + QUAD $0x04064c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r8 + 4], 4 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x041e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r11 + 4], 5 + QUAD $0x042e4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rsi + r13 + 4], 6 + QUAD $0x041e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rbx + 4], 7 + QUAD $0x043e4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r15 + 4], 8 + QUAD $0x040e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 4], 9 + QUAD $0x04164c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r10 + 4], 10 + QUAD $0x04364c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r14 + 4], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x04064c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rsi + rax + 4], 12 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x04064c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r8 + 4], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x04164c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rdx + 4], 14 + QUAD $0x040e4c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rsi + rcx + 4], 15 + LONG $0xe9740f66 // pcmpeqb xmm5, xmm1 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xf9740f66 // pcmpeqb xmm7, xmm1 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xf8df0f66 // pandn xmm7, xmm0 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + LONG $0x0e54b60f; BYTE $0x11 // movzx edx, byte [rsi + rcx + 17] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x740f4466; BYTE $0xc9 // pcmpeqb xmm9, xmm1 + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xdf0f4466; BYTE $0xc8 // pandn xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0x0e54b60f; BYTE $0x12 // movzx edx, byte [rsi + rcx + 18] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xeb0f4466; BYTE $0xcb // por xmm9, xmm3 + LONG $0x0e54b60f; BYTE $0x13 // movzx edx, byte [rsi + rcx + 19] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x052654203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r12 + 5], 1 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x052e54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r13 + 5], 2 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x03050654203a0f66 // pinsrb xmm2, byte [rsi + rax + 5], 3 + QUAD $0x04053e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 5], 4 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x051e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r11 + 5], 5 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x06050654203a0f66 // pinsrb xmm2, byte [rsi + rax + 5], 6 + QUAD $0x00000110249c8948 // mov qword [rsp + 272], rbx + QUAD $0x07051e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 5], 7 + QUAD $0x053e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r15 + 5], 8 + QUAD $0x00000088248c894c // mov qword [rsp + 136], r9 + QUAD $0x050e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 5], 9 + QUAD $0x051654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r10 + 5], 10 + QUAD $0x053654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 5], 11 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0c051654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 5], 12 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x050654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r8 + 5], 13 + LONG $0x24448b4c; BYTE $0x28 // mov r8, qword [rsp + 40] + QUAD $0x050654203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r8 + 5], 14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x051e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r11 + 5], 15 + QUAD $0x062644203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r12 + 6], 1 + QUAD $0x062e44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r13 + 6], 2 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x060644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rax + 6], 3 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x062e44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r13 + 6], 4 + QUAD $0x063e44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rdi + 6], 5 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x060644203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rax + 6], 6 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x061e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rbx + 6], 7 + QUAD $0x063e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r15 + 6], 8 + QUAD $0x060e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 6], 9 + QUAD $0x061644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r10 + 6], 10 + QUAD $0x063644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 6], 11 + QUAD $0x061644203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rdx + 6], 12 + QUAD $0x060e44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rcx + 6], 13 + QUAD $0x060644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r8 + 6], 14 + QUAD $0x061e44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r11 + 6], 15 + QUAD $0x072674203a0f4666; BYTE $0x01 // pinsrb xmm14, byte [rsi + r12 + 7], 1 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x072674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r12 + 7], 2 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x070674203a0f4466; BYTE $0x03 // pinsrb xmm14, byte [rsi + rax + 7], 3 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x071e74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r11 + 7], 4 + QUAD $0x073e74203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rdi + 7], 5 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x072e74203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rsi + r13 + 7], 6 + QUAD $0x071e74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rbx + 7], 7 + QUAD $0x073e74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r15 + 7], 8 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x070e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r9 + 7], 9 + QUAD $0x071674203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rsi + r10 + 7], 10 + QUAD $0x073674203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r14 + 7], 11 + QUAD $0x071674203a0f4466; BYTE $0x0c // pinsrb xmm14, byte [rsi + rdx + 7], 12 + QUAD $0x070e74203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rcx + 7], 13 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x070674203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r8 + 7], 14 + LONG $0x6f0f4166; BYTE $0xce // movdqa xmm1, xmm14 + QUAD $0x00a024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 160] + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0xd0df0f66 // pandn xmm2, xmm0 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xdf0f4466; BYTE $0xc0 // pandn xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + LONG $0x3e54b60f; BYTE $0x14 // movzx edx, byte [rsi + rdi + 20] + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0f070e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 7], 15 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xc8df0f66 // pandn xmm1, xmm0 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + LONG $0x3e54b60f; BYTE $0x15 // movzx edx, byte [rsi + rdi + 21] + LONG $0xd26e0f66 // movd xmm2, edx + QUAD $0x0000d024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 208] + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x01080644203a0f66 // pinsrb xmm0, byte [rsi + rax + 8], 1 + QUAD $0x082644203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r12 + 8], 2 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x082644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r12 + 8], 3 + QUAD $0x081e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r11 + 8], 4 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + LONG $0x24748b4c; BYTE $0x40 // mov r14, qword [rsp + 64] + QUAD $0x083644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r14 + 8], 5 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x06081644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 8], 6 + QUAD $0x00000110249c8b4c // mov r11, qword [rsp + 272] + QUAD $0x081e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r11 + 8], 7 + QUAD $0x083e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r15 + 8], 8 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x081644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r10 + 8], 9 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x083e44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r15 + 8], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x0b081644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 8], 11 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0c081644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 8], 12 + QUAD $0x082e44203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r13 + 8], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0e081644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 8], 14 + QUAD $0x0f080e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 8], 15 + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + LONG $0x3e54b60f; BYTE $0x16 // movzx edx, byte [rsi + rdi + 22] + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x09065c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rax + 9], 1 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x093e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdi + 9], 2 + QUAD $0x09265c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r12 + 9], 3 + QUAD $0x09065c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r8 + 9], 4 + QUAD $0x09365c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r14 + 9], 5 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x092e5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rsi + r13 + 9], 6 + QUAD $0x091e5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r11 + 9], 7 + QUAD $0x091e5c203a0f4466; BYTE $0x08 // pinsrb xmm11, byte [rsi + rbx + 9], 8 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + QUAD $0x09165c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r10 + 9], 9 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + QUAD $0x093e5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r15 + 9], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x09165c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r10 + 9], 11 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x093e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 9], 12 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x09165c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rdx + 9], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x09165c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rdx + 9], 14 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x09165c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rdx + 9], 15 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0a0664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rax + 10], 1 + QUAD $0x0a3e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdi + 10], 2 + QUAD $0x0a2664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r12 + 10], 3 + QUAD $0x0a0664203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r8 + 10], 4 + QUAD $0x0a3664203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r14 + 10], 5 + QUAD $0x0a2e64203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rsi + r13 + 10], 6 + QUAD $0x0a1e64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rsi + r11 + 10], 7 + QUAD $0x0a1e64203a0f4466; BYTE $0x08 // pinsrb xmm12, byte [rsi + rbx + 10], 8 + QUAD $0x0a0e64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rsi + rcx + 10], 9 + QUAD $0x0a0e64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r9 + 10], 10 + QUAD $0x0a1664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r10 + 10], 11 + QUAD $0x0a3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 10], 12 + LONG $0x24748b4c; BYTE $0x10 // mov r14, qword [rsp + 16] + QUAD $0x0a3664203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r14 + 10], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a0664203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rax + 10], 14 + QUAD $0x0a1664203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rdx + 10], 15 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0b066c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rax + 11], 1 + QUAD $0x0b3e6c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdi + 11], 2 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x0b266c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r12 + 11], 3 + QUAD $0x0b066c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r8 + 11], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0b066c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rsi + rax + 11], 5 + QUAD $0x0b2e6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rsi + r13 + 11], 6 + QUAD $0x0b1e6c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rsi + r11 + 11], 7 + WORD $0x894d; BYTE $0xdc // mov r12, r11 + QUAD $0x0b1e6c203a0f4466; BYTE $0x08 // pinsrb xmm13, byte [rsi + rbx + 11], 8 + QUAD $0x0b0e6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rsi + rcx + 11], 9 + QUAD $0x0b0e6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r9 + 11], 10 + QUAD $0x0b166c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r10 + 11], 11 + QUAD $0x0b3e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 11], 12 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0b3e6c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rdi + 11], 13 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x0b0e6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r9 + 11], 14 + QUAD $0x0b166c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rdx + 11], 15 + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001009ddf0f4466; BYTE $0x00 // pandn xmm11, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xfc0f4466; BYTE $0xd8 // paddb xmm11, xmm0 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + LONG $0x3e54b60f; BYTE $0x17 // movzx edx, byte [rsi + rdi + 23] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x000110a5df0f4466; BYTE $0x00 // pandn xmm12, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x3e54b60f; BYTE $0x18 // movzx edx, byte [rsi + rdi + 24] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + QUAD $0x00e0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 224] + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0c1e4c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rsi + r11 + 12], 1 + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + QUAD $0x0c364c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rsi + r14 + 12], 2 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0c3e4c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rdi + 12], 3 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x0c364c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r14 + 12], 4 + QUAD $0x0c064c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rsi + rax + 12], 5 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0c164c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rdx + 12], 6 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + QUAD $0x0c264c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r12 + 12], 7 + QUAD $0x0c1e4c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rsi + rbx + 12], 8 + QUAD $0x0c0e4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rsi + rcx + 12], 9 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x0c264c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r12 + 12], 10 + QUAD $0x0c164c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r10 + 12], 11 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0c164c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r10 + 12], 12 + QUAD $0x0c2e4c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r13 + 12], 13 + QUAD $0x0c0e4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r9 + 12], 14 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0c2e4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r13 + 12], 15 + QUAD $0x0d1e74203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r11 + 13], 1 + QUAD $0x0d0674203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r8 + 13], 2 + QUAD $0x030d3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 13], 3 + QUAD $0x0d3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 13], 4 + QUAD $0x050d0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 13], 5 + QUAD $0x060d1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 13], 6 + QUAD $0x0d3e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r15 + 13], 7 + QUAD $0x080d1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 13], 8 + QUAD $0x090d0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 13], 9 + QUAD $0x0d2674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r12 + 13], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b0d1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 13], 11 + QUAD $0x0d1674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r10 + 13], 12 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0d1674203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r10 + 13], 13 + QUAD $0x0d0e74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r9 + 13], 14 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x0d0e74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r9 + 13], 15 + QUAD $0x0e1e7c203a0f4666; BYTE $0x01 // pinsrb xmm15, byte [rsi + r11 + 14], 1 + QUAD $0x0e067c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r8 + 14], 2 + QUAD $0x0e3e7c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rdi + 14], 3 + QUAD $0x0e367c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r14 + 14], 4 + QUAD $0x0e067c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rax + 14], 5 + QUAD $0x0e167c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rdx + 14], 6 + QUAD $0x0e3e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r15 + 14], 7 + QUAD $0x000000b024bc8b48 // mov rdi, qword [rsp + 176] + QUAD $0x0e3e7c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rsi + rdi + 14], 8 + QUAD $0x0e0e7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rsi + rcx + 14], 9 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + QUAD $0x0e267c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r12 + 14], 10 + QUAD $0x0e1e7c203a0f4466; BYTE $0x0b // pinsrb xmm15, byte [rsi + rbx + 14], 11 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x0e2e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r13 + 14], 12 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x0e167c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r10 + 14], 13 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x0e167c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r10 + 14], 14 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + QUAD $0x0001308ddf0f4466; BYTE $0x00 // pandn xmm9, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xeb0f4566; BYTE $0xcd // por xmm9, xmm13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0654b60f; BYTE $0x19 // movzx edx, byte [rsi + rax + 25] + LONG $0x6e0f4466; BYTE $0xea // movd xmm13, edx + QUAD $0x0001609df80f4466; BYTE $0x00 // psubb xmm11, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xeb0f4566; BYTE $0xcb // por xmm9, xmm11 + LONG $0x0654b60f; BYTE $0x1a // movzx edx, byte [rsi + rax + 26] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x0e0e7c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r9 + 14], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + QUAD $0x00000140b5df0f66 // pandn xmm6, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000150bddf0f4466; BYTE $0x00 // pandn xmm15, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xeb0f4466; BYTE $0xfe // por xmm15, xmm6 + LONG $0x0654b60f; BYTE $0x1b // movzx edx, byte [rsi + rax + 27] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x0000c024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 192] + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x010f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 1 + QUAD $0x0f0674203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r8 + 15], 2 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x0f0e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r9 + 15], 3 + QUAD $0x0f3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 15], 4 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x050f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 5 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x060f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 15], 6 + QUAD $0x0f3e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r15 + 15], 7 + QUAD $0x080f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 8 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x090f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 9 + QUAD $0x0f1e74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r11 + 15], 10 + QUAD $0x0b0f1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 15], 11 + QUAD $0x0f2674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r12 + 15], 12 + QUAD $0x0f2e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r13 + 15], 13 + QUAD $0x0f1674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r10 + 15], 14 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0f1674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r10 + 15], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0x75df0f66; BYTE $0x60 // pandn xmm6, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x0654b60f; BYTE $0x1c // movzx edx, byte [rsi + rax + 28] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0xeb0f4166; BYTE $0xf1 // por xmm6, xmm9 + QUAD $0x0000c024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm6 + LONG $0x0654b60f; BYTE $0x1d // movzx edx, byte [rsi + rax + 29] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x101654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rdx + 16], 1 + QUAD $0x100654203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r8 + 16], 2 + QUAD $0x100e54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r9 + 16], 3 + QUAD $0x103654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r14 + 16], 4 + QUAD $0x100e54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rcx + 16], 5 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x102654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r12 + 16], 6 + QUAD $0x103e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r15 + 16], 7 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x100e54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rcx + 16], 8 + QUAD $0x103e54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rdi + 16], 9 + QUAD $0x101e54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r11 + 16], 10 + QUAD $0x101e54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rbx + 16], 11 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x100654203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rsi + rax + 16], 12 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x102e54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r13 + 16], 13 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x102e54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r13 + 16], 14 + QUAD $0x101654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r10 + 16], 15 + QUAD $0x01111664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 17], 1 + QUAD $0x110664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r8 + 17], 2 + QUAD $0x110e64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r9 + 17], 3 + QUAD $0x113664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r14 + 17], 4 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x110664203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r8 + 17], 5 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x112664203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r12 + 17], 6 + QUAD $0x113e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r15 + 17], 7 + QUAD $0x08110e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 17], 8 + QUAD $0x09113e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 17], 9 + QUAD $0x111e64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r11 + 17], 10 + QUAD $0x0b111e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 17], 11 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x112664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r12 + 17], 12 + QUAD $0x0d110664203a0f66 // pinsrb xmm4, byte [rsi + rax + 17], 13 + QUAD $0x112e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r13 + 17], 14 + QUAD $0x111664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r10 + 17], 15 + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0x740f4166; BYTE $0xe6 // pcmpeqb xmm4, xmm14 + QUAD $0x00000100b56f0f66 // movdqa xmm6, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xe6df0f66 // pandn xmm4, xmm6 + LONG $0xfc0f4166; BYTE $0xe2 // paddb xmm4, xmm10 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + LONG $0x0e54b60f; BYTE $0x1e // movzx edx, byte [rsi + rcx + 30] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0112067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 18], 1 + QUAD $0x0113066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 1 + QUAD $0x0114065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 20], 1 + QUAD $0x01150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 1 + QUAD $0x0116064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 22], 1 + QUAD $0x170644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rax + 23], 1 + QUAD $0x180664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rax + 24], 1 + QUAD $0x19066c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rax + 25], 1 + QUAD $0x011a0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 26], 1 + QUAD $0x1b065c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rax + 27], 1 + QUAD $0x1c067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 28], 1 + QUAD $0x1d064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 29], 1 + QUAD $0x1e0654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rax + 30], 1 + LONG $0x0e54b60f; BYTE $0x1f // movzx edx, byte [rsi + rcx + 31] + LONG $0xf26e0f66 // movd xmm6, edx + QUAD $0x011f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 31], 1 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0212167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 18], 2 + QUAD $0x0213166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 19], 2 + QUAD $0x0214165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 20], 2 + QUAD $0x02151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 2 + QUAD $0x0216164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 22], 2 + QUAD $0x171644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdx + 23], 2 + QUAD $0x181664203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdx + 24], 2 + QUAD $0x19166c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdx + 25], 2 + QUAD $0x021a1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 26], 2 + QUAD $0x1b165c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdx + 27], 2 + QUAD $0x1c167c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rsi + rdx + 28], 2 + QUAD $0x1d164c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdx + 29], 2 + QUAD $0x1e1654203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdx + 30], 2 + QUAD $0x021f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 31], 2 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0312167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 18], 3 + QUAD $0x12367c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r14 + 18], 4 + QUAD $0x12067c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r8 + 18], 5 + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + QUAD $0x120e7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r9 + 18], 6 + QUAD $0x123e7c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rsi + r15 + 18], 7 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x121e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r11 + 18], 8 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x09120e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 18], 9 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x120e7c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r9 + 18], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x12167c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r10 + 18], 11 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x12267c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r12 + 18], 12 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x12267c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r12 + 18], 13 + QUAD $0x122e7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r13 + 18], 14 + QUAD $0x0f123e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 18], 15 + QUAD $0x0313166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 19], 3 + QUAD $0x13366c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r14 + 19], 4 + QUAD $0x13066c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r8 + 19], 5 + QUAD $0x06131e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 19], 6 + QUAD $0x133e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r15 + 19], 7 + QUAD $0x131e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r11 + 19], 8 + QUAD $0x09130e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 19], 9 + QUAD $0x130e6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r9 + 19], 10 + QUAD $0x13166c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r10 + 19], 11 + QUAD $0x0c13066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 12 + QUAD $0x13266c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r12 + 19], 13 + QUAD $0x132e6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r13 + 19], 14 + QUAD $0x0f133e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 19], 15 + QUAD $0x0314165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 20], 3 + QUAD $0x14365c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r14 + 20], 4 + QUAD $0x14065c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r8 + 20], 5 + QUAD $0x06141e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 20], 6 + QUAD $0x143e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r15 + 20], 7 + QUAD $0x141e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r11 + 20], 8 + QUAD $0x09140e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 20], 9 + QUAD $0x140e5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r9 + 20], 10 + QUAD $0x14165c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r10 + 20], 11 + QUAD $0x0c14065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 20], 12 + QUAD $0x14265c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r12 + 20], 13 + QUAD $0x142e5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r13 + 20], 14 + LONG $0x740f4166; BYTE $0xfe // pcmpeqb xmm7, xmm14 + QUAD $0x000110b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0xdf0f4166; BYTE $0xfe // pandn xmm7, xmm14 + QUAD $0x0000a024ac740f66; BYTE $0x00 // pcmpeqb xmm5, oword [rsp + 160] + QUAD $0x000120b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xdf0f4166; BYTE $0xee // pandn xmm5, xmm14 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0x0f143e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 20], 15 + QUAD $0x00a024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 160] + LONG $0x740f4166; BYTE $0xde // pcmpeqb xmm3, xmm14 + QUAD $0x00000130bd6f0f66 // movdqa xmm7, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xdfdf0f66 // pandn xmm3, xmm7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xe5f80f66 // psubb xmm4, xmm5 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x03151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 3 + QUAD $0x153654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r14 + 21], 4 + QUAD $0x150654203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r8 + 21], 5 + QUAD $0x06151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 6 + QUAD $0x153e54203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rsi + r15 + 21], 7 + QUAD $0x151e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r11 + 21], 8 + QUAD $0x09150e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 21], 9 + QUAD $0x150e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r9 + 21], 10 + QUAD $0x151654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r10 + 21], 11 + QUAD $0x0c150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 12 + QUAD $0x152654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r12 + 21], 13 + QUAD $0x152e54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r13 + 21], 14 + QUAD $0x0f153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 15 + QUAD $0x0316164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 22], 3 + QUAD $0x16364c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r14 + 22], 4 + QUAD $0x16064c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r8 + 22], 5 + QUAD $0x06161e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 22], 6 + QUAD $0x163e4c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rsi + r15 + 22], 7 + QUAD $0x161e4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r11 + 22], 8 + QUAD $0x09160e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 22], 9 + QUAD $0x160e4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r9 + 22], 10 + QUAD $0x16164c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r10 + 22], 11 + QUAD $0x0c16064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 22], 12 + QUAD $0x16264c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r12 + 22], 13 + QUAD $0x162e4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r13 + 22], 14 + QUAD $0x0f163e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 22], 15 + QUAD $0x171644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rdx + 23], 3 + QUAD $0x173644203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r14 + 23], 4 + QUAD $0x170644203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r8 + 23], 5 + QUAD $0x171e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rbx + 23], 6 + QUAD $0x173e44203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r15 + 23], 7 + QUAD $0x171e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r11 + 23], 8 + QUAD $0x170e44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rsi + rcx + 23], 9 + QUAD $0x170e44203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r9 + 23], 10 + QUAD $0x171644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r10 + 23], 11 + QUAD $0x170644203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rax + 23], 12 + QUAD $0x172644203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r12 + 23], 13 + QUAD $0x172e44203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r13 + 23], 14 + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140ad6f0f66 // movdqa xmm5, oword 320[rbp] /* [rip + .LCPI4_20] */ + LONG $0xd5df0f66 // pandn xmm2, xmm5 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI4_21] */ + LONG $0xcfdf0f66 // pandn xmm1, xmm7 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x173e44203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rsi + rdi + 23], 15 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + LONG $0x656f0f66; BYTE $0x60 // movdqa xmm4, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + QUAD $0x181664203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rdx + 24], 3 + QUAD $0x183664203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r14 + 24], 4 + QUAD $0x180664203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r8 + 24], 5 + QUAD $0x181e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rbx + 24], 6 + QUAD $0x183e64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rsi + r15 + 24], 7 + QUAD $0x181e64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r11 + 24], 8 + QUAD $0x180e64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rsi + rcx + 24], 9 + QUAD $0x180e64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r9 + 24], 10 + QUAD $0x181664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r10 + 24], 11 + QUAD $0x180664203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rsi + rax + 24], 12 + QUAD $0x182664203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r12 + 24], 13 + QUAD $0x182e64203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r13 + 24], 14 + QUAD $0x183e64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rdi + 24], 15 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x19166c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rsi + rdx + 25], 3 + QUAD $0x19366c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r14 + 25], 4 + QUAD $0x19066c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r8 + 25], 5 + QUAD $0x191e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rbx + 25], 6 + QUAD $0x193e6c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rsi + r15 + 25], 7 + QUAD $0x191e6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r11 + 25], 8 + QUAD $0x190e6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rsi + rcx + 25], 9 + QUAD $0x190e6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r9 + 25], 10 + QUAD $0x19166c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r10 + 25], 11 + QUAD $0x19066c203a0f4466; BYTE $0x0c // pinsrb xmm13, byte [rsi + rax + 25], 12 + QUAD $0x19266c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r12 + 25], 13 + QUAD $0x192e6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rsi + r13 + 25], 14 + QUAD $0x193e6c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rdi + 25], 15 + QUAD $0x031a1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 26], 3 + QUAD $0x1a3644203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r14 + 26], 4 + QUAD $0x1a0644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r8 + 26], 5 + QUAD $0x061a1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 26], 6 + QUAD $0x1a3e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r15 + 26], 7 + QUAD $0x1a1e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r11 + 26], 8 + QUAD $0x091a0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 26], 9 + QUAD $0x1a0e44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r9 + 26], 10 + QUAD $0x1a1644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r10 + 26], 11 + QUAD $0x0c1a0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 26], 12 + QUAD $0x1a2644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r12 + 26], 13 + QUAD $0x1a2e44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r13 + 26], 14 + QUAD $0x0f1a3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 26], 15 + QUAD $0x1b165c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rdx + 27], 3 + QUAD $0x1b365c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r14 + 27], 4 + QUAD $0x1b065c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r8 + 27], 5 + QUAD $0x1b1e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rbx + 27], 6 + QUAD $0x1b3e5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r15 + 27], 7 + QUAD $0x1b1e5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r11 + 27], 8 + QUAD $0x1b0e5c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rsi + rcx + 27], 9 + QUAD $0x1b0e5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r9 + 27], 10 + QUAD $0x1b165c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r10 + 27], 11 + QUAD $0x1b065c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rsi + rax + 27], 12 + QUAD $0x1b265c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r12 + 27], 13 + QUAD $0x1b2e5c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r13 + 27], 14 + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI4_16] */ + LONG $0xfc0f4566; BYTE $0xec // paddb xmm13, xmm12 + QUAD $0x1b3e5c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rdi + 27], 15 + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x0000011085df0f66 // pandn xmm0, oword 272[rbp] /* [rip + .LCPI4_17] */ + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001209ddf0f4466; BYTE $0x00 // pandn xmm11, oword 288[rbp] /* [rip + .LCPI4_18] */ + LONG $0xeb0f4466; BYTE $0xd8 // por xmm11, xmm0 + QUAD $0x1c167c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rdx + 28], 3 + QUAD $0x1d164c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rdx + 29], 3 + QUAD $0x1e1654203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rdx + 30], 3 + QUAD $0x031f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 31], 3 + QUAD $0x1c367c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r14 + 28], 4 + QUAD $0x1d364c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r14 + 29], 4 + QUAD $0x1e3654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r14 + 30], 4 + QUAD $0x1f3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 31], 4 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + QUAD $0x1c067c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rsi + r8 + 28], 5 + QUAD $0x1d064c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r8 + 29], 5 + QUAD $0x1e0654203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r8 + 30], 5 + QUAD $0x1f0674203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r8 + 31], 5 + QUAD $0x1c1e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rbx + 28], 6 + QUAD $0x1d1e4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rbx + 29], 6 + QUAD $0x1e1e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rbx + 30], 6 + QUAD $0x061f1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 31], 6 + QUAD $0x1c3e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r15 + 28], 7 + QUAD $0x1d3e4c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r15 + 29], 7 + QUAD $0x1e3e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r15 + 30], 7 + QUAD $0x1f3e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r15 + 31], 7 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x1c1e7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r11 + 28], 8 + QUAD $0x1d1e4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r11 + 29], 8 + QUAD $0x1e1e54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r11 + 30], 8 + QUAD $0x1f1e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r11 + 31], 8 + QUAD $0x1c0e7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rsi + rcx + 28], 9 + QUAD $0x1d0e4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rsi + rcx + 29], 9 + QUAD $0x1e0e54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rcx + 30], 9 + QUAD $0x091f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 31], 9 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + QUAD $0x1c0e7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r9 + 28], 10 + QUAD $0x1d0e4c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r9 + 29], 10 + QUAD $0x1e0e54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r9 + 30], 10 + QUAD $0x1f0e74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r9 + 31], 10 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + QUAD $0x1c167c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r10 + 28], 11 + QUAD $0x1d164c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r10 + 29], 11 + QUAD $0x1e1654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r10 + 30], 11 + QUAD $0x1f1674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r10 + 31], 11 + QUAD $0x1c067c203a0f4466; BYTE $0x0c // pinsrb xmm15, byte [rsi + rax + 28], 12 + QUAD $0x1d064c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rsi + rax + 29], 12 + QUAD $0x1e0654203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rsi + rax + 30], 12 + QUAD $0x0c1f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 31], 12 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x1c267c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r12 + 28], 13 + QUAD $0x1d264c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r12 + 29], 13 + QUAD $0x1e2654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r12 + 30], 13 + QUAD $0x1f2674203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r12 + 31], 13 + QUAD $0x1c2e7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r13 + 28], 14 + QUAD $0x1d2e4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r13 + 29], 14 + QUAD $0x1e2e54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r13 + 30], 14 + QUAD $0x1f2e74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r13 + 31], 14 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + QUAD $0x1c3e7c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rsi + rdi + 28], 15 + QUAD $0x1d3e4c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rsi + rdi + 29], 15 + QUAD $0x1e3e54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rdi + 30], 15 + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000130bddf0f4466; BYTE $0x00 // pandn xmm15, oword 304[rbp] /* [rip + .LCPI4_19] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + QUAD $0x0f1f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 31], 15 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + LONG $0xdf0f4466; BYTE $0xcd // pandn xmm9, xmm5 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0xdf0f4466; BYTE $0xd7 // pandn xmm10, xmm7 + LONG $0xeb0f4566; BYTE $0xd1 // por xmm10, xmm9 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0xf4df0f66 // pandn xmm6, xmm4 + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc6600f66 // punpcklbw xmm0, xmm6 + QUAD $0x0000d0249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 208] + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + QUAD $0x0000c024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 192] + LONG $0xcc600f66 // punpcklbw xmm1, xmm4 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xd0610f66 // punpcklwd xmm2, xmm0 + LONG $0xc8690f66 // punpckhwd xmm1, xmm0 + LONG $0x680f4466; BYTE $0xc6 // punpckhbw xmm8, xmm6 + LONG $0xdc680f66 // punpckhbw xmm3, xmm4 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xd8 // punpckhwd xmm3, xmm8 + QUAD $0x00000098248c8b48 // mov rcx, qword [rsp + 152] + LONG $0x7f0f41f3; WORD $0x8e5c; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm3 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm1 + LONG $0x7f0f41f3; WORD $0x8e14 // movdqu oword [r14 + 4*rcx], xmm2 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000f0248c3b48 // cmp rcx, qword [rsp + 240] + JNE LBB4_184 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + QUAD $0x000000f024943b4c // cmp r10, qword [rsp + 240] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x000000f824b48b48 // mov rsi, qword [rsp + 248] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + JNE LBB4_69 + JMP LBB4_135 + +LBB4_186: + LONG $0xf8e28349 // and r10, -8 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x2454894c; BYTE $0x18 // mov qword [rsp + 24], r10 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x40 // mov dword [rsp + 64], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00d8 // pshufd xmm11, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + LONG $0xef0f4566; BYTE $0xff // pxor xmm15, xmm15 + +LBB4_187: + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + LONG $0x04b70f42; BYTE $0x3e // movzx eax, word [rsi + r15] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x023e // movzx eax, word [rsi + r15 + 2] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44b70f42; WORD $0x043e // movzx eax, word [rsi + r15 + 4] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x063e // movzx eax, word [rsi + r15 + 6] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b70f42; WORD $0x083e // movzx eax, word [rsi + r15 + 8] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b70f42; WORD $0x0a3e // movzx eax, word [rsi + r15 + 10] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b70f42; WORD $0x0c3e // movzx eax, word [rsi + r15 + 12] + LONG $0x54b70f46; WORD $0x0e3e // movzx r10d, word [rsi + r15 + 14] + LONG $0x5cb70f46; WORD $0x103e // movzx r11d, word [rsi + r15 + 16] + LONG $0x54b70f42; WORD $0x123e // movzx edx, word [rsi + r15 + 18] + LONG $0x74b70f46; WORD $0x143e // movzx r14d, word [rsi + r15 + 20] + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + LONG $0x40c98348 // or rcx, 64 + LONG $0x80c88149; WORD $0x0000; BYTE $0x00 // or r8, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0x2cc40f66; WORD $0x010e // pinsrw xmm5, word [rsi + rcx], 1 + LONG $0xc40f4266; WORD $0x062c; BYTE $0x02 // pinsrw xmm5, word [rsi + r8], 2 + LONG $0xc40f4266; WORD $0x262c; BYTE $0x03 // pinsrw xmm5, word [rsi + r12], 3 + LONG $0xc40f4266; WORD $0x2e2c; BYTE $0x04 // pinsrw xmm5, word [rsi + r13], 4 + LONG $0x2cc40f66; WORD $0x051e // pinsrw xmm5, word [rsi + rbx], 5 + LONG $0x2cc40f66; WORD $0x063e // pinsrw xmm5, word [rsi + rdi], 6 + LONG $0x44c40f66; WORD $0x020e; BYTE $0x01 // pinsrw xmm0, word [rsi + rcx + 2], 1 + QUAD $0x02020644c40f4266 // pinsrw xmm0, word [rsi + r8 + 2], 2 + QUAD $0x03022644c40f4266 // pinsrw xmm0, word [rsi + r12 + 2], 3 + QUAD $0x04022e44c40f4266 // pinsrw xmm0, word [rsi + r13 + 2], 4 + LONG $0x44c40f66; WORD $0x021e; BYTE $0x05 // pinsrw xmm0, word [rsi + rbx + 2], 5 + LONG $0x44c40f66; WORD $0x023e; BYTE $0x06 // pinsrw xmm0, word [rsi + rdi + 2], 6 + LONG $0xc0c98149; WORD $0x0001; BYTE $0x00 // or r9, 448 + QUAD $0x07020e44c40f4266 // pinsrw xmm0, word [rsi + r9 + 2], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x163e // movzx eax, word [rsi + r15 + 22] + LONG $0x10244489 // mov dword [rsp + 16], eax + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0x4cc40f66; WORD $0x040e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 4], 1 + QUAD $0x0204064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 4], 2 + QUAD $0x0304264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 4], 3 + QUAD $0x04042e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 4], 4 + LONG $0x4cc40f66; WORD $0x041e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 4], 5 + LONG $0x4cc40f66; WORD $0x043e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 4], 6 + QUAD $0x07040e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 4], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x0000808d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0x6f0f4166; BYTE $0xd9 // movdqa xmm3, xmm9 + LONG $0x380f4166; WORD $0xdf10 // pblendvb xmm3, xmm15, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x00000090856f0f66 // movdqa xmm0, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0x6f0f4466; BYTE $0xf0 // movdqa xmm14, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xca // movd xmm1, r10d + LONG $0x54b70f46; WORD $0x183e // movzx r10d, word [rsi + r15 + 24] + LONG $0xc40f4266; WORD $0x0e2c; BYTE $0x07 // pinsrw xmm5, word [rsi + r9], 7 + LONG $0x750f4166; BYTE $0xeb // pcmpeqw xmm5, xmm11 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8ef0f66 // pxor xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x7cc40f66; WORD $0x060e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 6], 1 + QUAD $0x0206067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 6], 2 + QUAD $0x0306267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 6], 3 + QUAD $0x04062e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 6], 4 + LONG $0x7cc40f66; WORD $0x061e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 6], 5 + LONG $0x7cc40f66; WORD $0x063e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 6], 6 + QUAD $0x07060e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 6], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01080e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 8], 1 + QUAD $0x02080644c40f4666 // pinsrw xmm8, word [rsi + r8 + 8], 2 + QUAD $0x03082644c40f4666 // pinsrw xmm8, word [rsi + r12 + 8], 3 + QUAD $0x04082e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 8], 4 + QUAD $0x05081e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 8], 5 + QUAD $0x06083e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 8], 6 + QUAD $0x07080e44c40f4666 // pinsrw xmm8, word [rsi + r9 + 8], 7 + LONG $0xddf80f66 // psubb xmm3, xmm5 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x44b70f42; WORD $0x1a3e // movzx eax, word [rsi + r15 + 26] + LONG $0x750f4566; BYTE $0xc3 // pcmpeqw xmm8, xmm11 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x5cb70f46; WORD $0x1c3e // movzx r11d, word [rsi + r15 + 28] + LONG $0x64c40f66; WORD $0x0a0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 10], 1 + QUAD $0x020a0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 10], 2 + QUAD $0x030a2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 10], 3 + QUAD $0x040a2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 10], 4 + LONG $0x64c40f66; WORD $0x0a1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 10], 5 + LONG $0x64c40f66; WORD $0x0a3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 10], 6 + QUAD $0x070a0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 10], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0x54c40f66; WORD $0x0c0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 12], 1 + QUAD $0x020c0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 12], 2 + QUAD $0x030c2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 12], 3 + QUAD $0x040c2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 12], 4 + LONG $0x54c40f66; WORD $0x0c1e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 12], 5 + LONG $0x54c40f66; WORD $0x0c3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 12], 6 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x54b70f42; WORD $0x1e3e // movzx edx, word [rsi + r15 + 30] + LONG $0x30245489 // mov dword [rsp + 48], edx + QUAD $0x070c0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 12], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x1024 // movd xmm3, dword [rsp + 16] + LONG $0x54b70f42; WORD $0x203e // movzx edx, word [rsi + r15 + 32] + LONG $0x20245489 // mov dword [rsp + 32], edx + LONG $0x4cc40f66; WORD $0x0e0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 14], 1 + QUAD $0x020e064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 14], 2 + QUAD $0x030e264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 14], 3 + QUAD $0x040e2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 14], 4 + LONG $0x4cc40f66; WORD $0x0e1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 14], 5 + LONG $0x4cc40f66; WORD $0x0e3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 14], 6 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x54b70f42; WORD $0x223e // movzx edx, word [rsi + r15 + 34] + LONG $0x10245489 // mov dword [rsp + 16], edx + QUAD $0x070e0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 14], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0x74c40f66; WORD $0x120e; BYTE $0x01 // pinsrw xmm6, word [rsi + rcx + 18], 1 + QUAD $0x02120674c40f4266 // pinsrw xmm6, word [rsi + r8 + 18], 2 + QUAD $0x03122674c40f4266 // pinsrw xmm6, word [rsi + r12 + 18], 3 + QUAD $0x04122e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 18], 4 + LONG $0x74c40f66; WORD $0x121e; BYTE $0x05 // pinsrw xmm6, word [rsi + rbx + 18], 5 + LONG $0x74c40f66; WORD $0x123e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 18], 6 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x07120e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 18], 7 + LONG $0x750f4166; BYTE $0xf3 // pcmpeqw xmm6, xmm11 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + QUAD $0x0000e0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 224[rbp] /* [rip + .LCPI4_14] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x6f0f4566; BYTE $0xc1 // movdqa xmm8, xmm9 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x74b70f46; WORD $0x243e // movzx r14d, word [rsi + r15 + 36] + LONG $0x7cc40f66; WORD $0x100e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 16], 1 + QUAD $0x0210067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 16], 2 + QUAD $0x0310267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 16], 3 + QUAD $0x04102e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 16], 4 + LONG $0x7cc40f66; WORD $0x101e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 16], 5 + LONG $0x7cc40f66; WORD $0x103e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 16], 6 + LONG $0x64c40f66; WORD $0x140e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 20], 1 + QUAD $0x02140664c40f4266 // pinsrw xmm4, word [rsi + r8 + 20], 2 + QUAD $0x03142664c40f4266 // pinsrw xmm4, word [rsi + r12 + 20], 3 + QUAD $0x04142e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 20], 4 + LONG $0x64c40f66; WORD $0x141e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 20], 5 + LONG $0x64c40f66; WORD $0x143e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 20], 6 + QUAD $0x07140e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 20], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x6f0f4166; BYTE $0xee // movdqa xmm5, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f46; WORD $0x263e // movzx r11d, word [rsi + r15 + 38] + QUAD $0x07100e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 16], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x5cc40f66; WORD $0x160e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 22], 1 + QUAD $0x0216065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 22], 2 + QUAD $0x0316265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 22], 3 + QUAD $0x04162e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 22], 4 + LONG $0x5cc40f66; WORD $0x161e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 22], 5 + LONG $0x5cc40f66; WORD $0x163e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 22], 6 + QUAD $0x07160e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 22], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x54c40f66; WORD $0x180e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 24], 1 + QUAD $0x02180654c40f4266 // pinsrw xmm2, word [rsi + r8 + 24], 2 + QUAD $0x03182654c40f4266 // pinsrw xmm2, word [rsi + r12 + 24], 3 + QUAD $0x04182e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 24], 4 + LONG $0x54c40f66; WORD $0x181e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 24], 5 + LONG $0x54c40f66; WORD $0x183e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 24], 6 + QUAD $0x07180e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 24], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x0000a0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0x6f0f4566; BYTE $0xf2 // movdqa xmm14, xmm10 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x3024 // movd xmm3, dword [rsp + 48] + LONG $0x44b70f42; WORD $0x283e // movzx eax, word [rsi + r15 + 40] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4466; BYTE $0xf5 // por xmm14, xmm5 + QUAD $0x0000b08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0x6f0f4566; BYTE $0xe9 // movdqa xmm13, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x54b70f46; WORD $0x2a3e // movzx r10d, word [rsi + r15 + 42] + LONG $0x4cc40f66; WORD $0x1a0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 26], 1 + QUAD $0x021a064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 26], 2 + QUAD $0x031a264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 26], 3 + QUAD $0x041a2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 26], 4 + LONG $0x4cc40f66; WORD $0x1a1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 26], 5 + LONG $0x4cc40f66; WORD $0x1a3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 26], 6 + QUAD $0x071a0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 26], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x64c40f66; WORD $0x1c0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 28], 1 + QUAD $0x021c0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 28], 2 + QUAD $0x031c2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 28], 3 + QUAD $0x041c2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 28], 4 + LONG $0x64c40f66; WORD $0x1c1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 28], 5 + LONG $0x64c40f66; WORD $0x1c3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 28], 6 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x546e0f66; WORD $0x1024 // movd xmm2, dword [rsp + 16] + LONG $0x54b70f42; WORD $0x2c3e // movzx edx, word [rsi + r15 + 44] + LONG $0x20245489 // mov dword [rsp + 32], edx + QUAD $0x071c0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 28], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x54b70f42; WORD $0x2e3e // movzx edx, word [rsi + r15 + 46] + LONG $0x10245489 // mov dword [rsp + 16], edx + LONG $0x5cc40f66; WORD $0x1e0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 30], 1 + QUAD $0x021e065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 30], 2 + QUAD $0x031e265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 30], 3 + QUAD $0x041e2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 30], 4 + LONG $0x5cc40f66; WORD $0x1e1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 30], 5 + LONG $0x5cc40f66; WORD $0x1e3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 30], 6 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x5cb70f46; WORD $0x303e // movzx r11d, word [rsi + r15 + 48] + QUAD $0x071e0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 30], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0x54c40f66; WORD $0x220e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 34], 1 + QUAD $0x02220654c40f4266 // pinsrw xmm2, word [rsi + r8 + 34], 2 + QUAD $0x03222654c40f4266 // pinsrw xmm2, word [rsi + r12 + 34], 3 + QUAD $0x04222e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 34], 4 + LONG $0x54c40f66; WORD $0x221e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 34], 5 + LONG $0x54c40f66; WORD $0x223e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 34], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07220e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 34], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xf6 // por xmm6, xmm14 + QUAD $0x0000e0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 224[rbp] /* [rip + .LCPI4_14] */ + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x74b70f46; WORD $0x323e // movzx r14d, word [rsi + r15 + 50] + LONG $0x7cc40f66; WORD $0x200e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 32], 1 + QUAD $0x0220067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 32], 2 + QUAD $0x0320267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 32], 3 + QUAD $0x04202e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 32], 4 + LONG $0x7cc40f66; WORD $0x201e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 32], 5 + LONG $0x7cc40f66; WORD $0x203e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 32], 6 + LONG $0x64c40f66; WORD $0x240e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 36], 1 + QUAD $0x02240664c40f4266 // pinsrw xmm4, word [rsi + r8 + 36], 2 + QUAD $0x03242664c40f4266 // pinsrw xmm4, word [rsi + r12 + 36], 3 + QUAD $0x04242e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 36], 4 + LONG $0x64c40f66; WORD $0x241e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 36], 5 + LONG $0x64c40f66; WORD $0x243e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 36], 6 + QUAD $0x07240e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 36], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4466; BYTE $0xee // por xmm13, xmm6 + QUAD $0x00000090b56f0f66 // movdqa xmm6, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x54b70f42; WORD $0x343e // movzx edx, word [rsi + r15 + 52] + QUAD $0x07200e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 32], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x4cc40f66; WORD $0x260e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 38], 1 + QUAD $0x0226064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 38], 2 + QUAD $0x0326264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 38], 3 + QUAD $0x04262e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 38], 4 + LONG $0x4cc40f66; WORD $0x261e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 38], 5 + LONG $0x4cc40f66; WORD $0x263e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 38], 6 + QUAD $0x07260e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 38], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x54c40f66; WORD $0x280e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 40], 1 + QUAD $0x02280654c40f4266 // pinsrw xmm2, word [rsi + r8 + 40], 2 + QUAD $0x03282654c40f4266 // pinsrw xmm2, word [rsi + r12 + 40], 3 + QUAD $0x04282e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 40], 4 + LONG $0x54c40f66; WORD $0x281e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 40], 5 + LONG $0x54c40f66; WORD $0x283e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 40], 6 + QUAD $0x07280e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 40], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + LONG $0x6f0f4166; BYTE $0xea // movdqa xmm5, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x54b70f46; WORD $0x363e // movzx r10d, word [rsi + r15 + 54] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6f0f4166; BYTE $0xf1 // movdqa xmm6, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x646e0f66; WORD $0x1024 // movd xmm4, dword [rsp + 16] + LONG $0x44b70f42; WORD $0x383e // movzx eax, word [rsi + r15 + 56] + LONG $0x5cc40f66; WORD $0x2a0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 42], 1 + QUAD $0x022a065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 42], 2 + QUAD $0x032a265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 42], 3 + QUAD $0x042a2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 42], 4 + LONG $0x5cc40f66; WORD $0x2a1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 42], 5 + LONG $0x5cc40f66; WORD $0x2a3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 42], 6 + QUAD $0x072a0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 42], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x4cc40f66; WORD $0x2c0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 44], 1 + QUAD $0x022c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 44], 2 + QUAD $0x032c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 44], 3 + QUAD $0x042c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 44], 4 + LONG $0x4cc40f66; WORD $0x2c1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 44], 5 + LONG $0x4cc40f66; WORD $0x2c3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 44], 6 + LONG $0xeb0f4166; BYTE $0xe8 // por xmm5, xmm8 + QUAD $0x0000c08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0x6f0f4166; BYTE $0xd1 // movdqa xmm2, xmm9 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd710 // pblendvb xmm2, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x5cb70f46; WORD $0x3a3e // movzx r11d, word [rsi + r15 + 58] + QUAD $0x072c0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 44], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0x0000d0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0x6f0f4166; BYTE $0xf2 // movdqa xmm6, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + LONG $0x74b70f46; WORD $0x3c3e // movzx r14d, word [rsi + r15 + 60] + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x64c40f66; WORD $0x2e0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 46], 1 + QUAD $0x022e0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 46], 2 + QUAD $0x032e2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 46], 3 + QUAD $0x042e2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 46], 4 + LONG $0x64c40f66; WORD $0x2e1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 46], 5 + LONG $0x64c40f66; WORD $0x2e3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 46], 6 + QUAD $0x072e0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 46], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6f0f4566; BYTE $0xc6 // movdqa xmm8, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x4cc40f66; WORD $0x320e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 50], 1 + QUAD $0x0232064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 50], 2 + QUAD $0x0332264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 50], 3 + QUAD $0x04322e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x321e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 50], 5 + LONG $0x4cc40f66; WORD $0x323e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 50], 6 + QUAD $0x07320e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 50], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x7cc40f66; WORD $0x300e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 48], 1 + QUAD $0x0230067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 48], 2 + QUAD $0x0330267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 48], 3 + QUAD $0x04302e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 48], 4 + LONG $0x7cc40f66; WORD $0x301e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 48], 5 + LONG $0x7cc40f66; WORD $0x303e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 48], 6 + QUAD $0x07300e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 48], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0x54c40f66; WORD $0x340e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 52], 1 + QUAD $0x02340654c40f4266 // pinsrw xmm2, word [rsi + r8 + 52], 2 + QUAD $0x03342654c40f4266 // pinsrw xmm2, word [rsi + r12 + 52], 3 + QUAD $0x04342e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 52], 4 + LONG $0x54c40f66; WORD $0x341e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 52], 5 + LONG $0x54c40f66; WORD $0x343e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 52], 6 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x07340e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 52], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0x5cc40f66; WORD $0x360e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 54], 1 + QUAD $0x0236065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 54], 2 + QUAD $0x0336265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 54], 3 + QUAD $0x04362e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 54], 4 + LONG $0x5cc40f66; WORD $0x361e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 54], 5 + LONG $0x5cc40f66; WORD $0x363e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 54], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x07360e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 54], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0x4cc40f66; WORD $0x380e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 56], 1 + QUAD $0x0238064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 56], 2 + QUAD $0x0338264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 56], 3 + QUAD $0x04382e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 56], 4 + LONG $0x4cc40f66; WORD $0x381e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 56], 5 + LONG $0x4cc40f66; WORD $0x383e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 56], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07380e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 56], 7 + LONG $0xe7f80f66 // psubb xmm4, xmm7 + QUAD $0x00000090ad6f0f66 // movdqa xmm5, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + QUAD $0x000000a0b56f0f66 // movdqa xmm6, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0x54c40f66; WORD $0x3a0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 58], 1 + QUAD $0x023a0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 58], 2 + QUAD $0x033a2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 58], 3 + QUAD $0x043a2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 58], 4 + LONG $0x54c40f66; WORD $0x3a1e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 58], 5 + LONG $0x54c40f66; WORD $0x3a3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 58], 6 + QUAD $0x073a0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 58], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xde // movd xmm3, r14d + LONG $0x5cc40f66; WORD $0x3c0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 60], 1 + QUAD $0x023c065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 60], 2 + QUAD $0x033c265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 60], 3 + QUAD $0x043c2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 60], 4 + LONG $0x5cc40f66; WORD $0x3c1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 60], 5 + LONG $0x5cc40f66; WORD $0x3c3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 60], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x073c0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 60], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0x6f0f4166; BYTE $0xc9 // movdqa xmm1, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xcf10 // pblendvb xmm1, xmm15, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xd710 // pblendvb xmm10, xmm15, xmm0 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x44b70f42; WORD $0x3e3e // movzx eax, word [rsi + r15 + 62] + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44c40f66; WORD $0x3e0e; BYTE $0x01 // pinsrw xmm0, word [rsi + rcx + 62], 1 + QUAD $0x023e0644c40f4266 // pinsrw xmm0, word [rsi + r8 + 62], 2 + QUAD $0x033e2644c40f4266 // pinsrw xmm0, word [rsi + r12 + 62], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x043e2e44c40f4266 // pinsrw xmm0, word [rsi + r13 + 62], 4 + LONG $0x44c40f66; WORD $0x3e1e; BYTE $0x05 // pinsrw xmm0, word [rsi + rbx + 62], 5 + LONG $0x44c40f66; WORD $0x3e3e; BYTE $0x06 // pinsrw xmm0, word [rsi + rdi + 62], 6 + QUAD $0x073e0e44c40f4266 // pinsrw xmm0, word [rsi + r9 + 62], 7 + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xeb0f4466; BYTE $0xd6 // por xmm10, xmm6 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0xeb0f4566; BYTE $0xf2 // por xmm14, xmm10 + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x6c0f4166; BYTE $0xc5 // punpcklqdq xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x6c0f4166; BYTE $0xd6 // punpcklqdq xmm2, xmm14 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI4_15] */ + LONG $0x00380f66; BYTE $0xd3 // pshufb xmm2, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0x600f4566; BYTE $0xc6 // punpcklbw xmm8, xmm14 + LONG $0x600f4566; BYTE $0xe5 // punpcklbw xmm12, xmm13 + LONG $0x610f4566; BYTE $0xe0 // punpcklwd xmm12, xmm8 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x7f0f45f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm12 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm0 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x18 // cmp rcx, qword [rsp + 24] + JNE LBB4_187 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + LONG $0x24543b4c; BYTE $0x18 // cmp r10, qword [rsp + 24] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x40 // mov r13d, dword [rsp + 64] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + JNE LBB4_92 + JMP LBB4_139 + +LBB4_189: + LONG $0xf8e28349 // and r10, -8 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x2454894c; BYTE $0x18 // mov qword [rsp + 24], r10 + LONG $0x96048d4b // lea rax, [r14 + 4*r10] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + LONG $0x246c8944; BYTE $0x40 // mov dword [rsp + 64], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00d8 // pshufd xmm11, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + LONG $0xef0f4566; BYTE $0xff // pxor xmm15, xmm15 + +LBB4_190: + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + LONG $0x04b70f42; BYTE $0x3e // movzx eax, word [rsi + r15] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x023e // movzx eax, word [rsi + r15 + 2] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44b70f42; WORD $0x043e // movzx eax, word [rsi + r15 + 4] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x063e // movzx eax, word [rsi + r15 + 6] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b70f42; WORD $0x083e // movzx eax, word [rsi + r15 + 8] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b70f42; WORD $0x0a3e // movzx eax, word [rsi + r15 + 10] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b70f42; WORD $0x0c3e // movzx eax, word [rsi + r15 + 12] + LONG $0x54b70f46; WORD $0x0e3e // movzx r10d, word [rsi + r15 + 14] + LONG $0x5cb70f46; WORD $0x103e // movzx r11d, word [rsi + r15 + 16] + LONG $0x54b70f42; WORD $0x123e // movzx edx, word [rsi + r15 + 18] + LONG $0x74b70f46; WORD $0x143e // movzx r14d, word [rsi + r15 + 20] + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + LONG $0x40c98348 // or rcx, 64 + LONG $0x80c88149; WORD $0x0000; BYTE $0x00 // or r8, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0x2cc40f66; WORD $0x010e // pinsrw xmm5, word [rsi + rcx], 1 + LONG $0xc40f4266; WORD $0x062c; BYTE $0x02 // pinsrw xmm5, word [rsi + r8], 2 + LONG $0xc40f4266; WORD $0x262c; BYTE $0x03 // pinsrw xmm5, word [rsi + r12], 3 + LONG $0xc40f4266; WORD $0x2e2c; BYTE $0x04 // pinsrw xmm5, word [rsi + r13], 4 + LONG $0x2cc40f66; WORD $0x051e // pinsrw xmm5, word [rsi + rbx], 5 + LONG $0x2cc40f66; WORD $0x063e // pinsrw xmm5, word [rsi + rdi], 6 + LONG $0x44c40f66; WORD $0x020e; BYTE $0x01 // pinsrw xmm0, word [rsi + rcx + 2], 1 + QUAD $0x02020644c40f4266 // pinsrw xmm0, word [rsi + r8 + 2], 2 + QUAD $0x03022644c40f4266 // pinsrw xmm0, word [rsi + r12 + 2], 3 + QUAD $0x04022e44c40f4266 // pinsrw xmm0, word [rsi + r13 + 2], 4 + LONG $0x44c40f66; WORD $0x021e; BYTE $0x05 // pinsrw xmm0, word [rsi + rbx + 2], 5 + LONG $0x44c40f66; WORD $0x023e; BYTE $0x06 // pinsrw xmm0, word [rsi + rdi + 2], 6 + LONG $0xc0c98149; WORD $0x0001; BYTE $0x00 // or r9, 448 + QUAD $0x07020e44c40f4266 // pinsrw xmm0, word [rsi + r9 + 2], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x163e // movzx eax, word [rsi + r15 + 22] + LONG $0x10244489 // mov dword [rsp + 16], eax + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0x4cc40f66; WORD $0x040e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 4], 1 + QUAD $0x0204064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 4], 2 + QUAD $0x0304264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 4], 3 + QUAD $0x04042e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 4], 4 + LONG $0x4cc40f66; WORD $0x041e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 4], 5 + LONG $0x4cc40f66; WORD $0x043e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 4], 6 + QUAD $0x07040e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 4], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x0000808d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0x6f0f4166; BYTE $0xd9 // movdqa xmm3, xmm9 + LONG $0x380f4166; WORD $0xdf10 // pblendvb xmm3, xmm15, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x00000090856f0f66 // movdqa xmm0, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0x6f0f4466; BYTE $0xf0 // movdqa xmm14, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xca // movd xmm1, r10d + LONG $0x54b70f46; WORD $0x183e // movzx r10d, word [rsi + r15 + 24] + LONG $0xc40f4266; WORD $0x0e2c; BYTE $0x07 // pinsrw xmm5, word [rsi + r9], 7 + LONG $0x750f4166; BYTE $0xeb // pcmpeqw xmm5, xmm11 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8ef0f66 // pxor xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x7cc40f66; WORD $0x060e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 6], 1 + QUAD $0x0206067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 6], 2 + QUAD $0x0306267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 6], 3 + QUAD $0x04062e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 6], 4 + LONG $0x7cc40f66; WORD $0x061e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 6], 5 + LONG $0x7cc40f66; WORD $0x063e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 6], 6 + QUAD $0x07060e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 6], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01080e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 8], 1 + QUAD $0x02080644c40f4666 // pinsrw xmm8, word [rsi + r8 + 8], 2 + QUAD $0x03082644c40f4666 // pinsrw xmm8, word [rsi + r12 + 8], 3 + QUAD $0x04082e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 8], 4 + QUAD $0x05081e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 8], 5 + QUAD $0x06083e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 8], 6 + QUAD $0x07080e44c40f4666 // pinsrw xmm8, word [rsi + r9 + 8], 7 + LONG $0xddf80f66 // psubb xmm3, xmm5 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x44b70f42; WORD $0x1a3e // movzx eax, word [rsi + r15 + 26] + LONG $0x750f4566; BYTE $0xc3 // pcmpeqw xmm8, xmm11 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x5cb70f46; WORD $0x1c3e // movzx r11d, word [rsi + r15 + 28] + LONG $0x64c40f66; WORD $0x0a0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 10], 1 + QUAD $0x020a0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 10], 2 + QUAD $0x030a2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 10], 3 + QUAD $0x040a2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 10], 4 + LONG $0x64c40f66; WORD $0x0a1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 10], 5 + LONG $0x64c40f66; WORD $0x0a3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 10], 6 + QUAD $0x070a0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 10], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0x54c40f66; WORD $0x0c0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 12], 1 + QUAD $0x020c0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 12], 2 + QUAD $0x030c2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 12], 3 + QUAD $0x040c2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 12], 4 + LONG $0x54c40f66; WORD $0x0c1e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 12], 5 + LONG $0x54c40f66; WORD $0x0c3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 12], 6 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x54b70f42; WORD $0x1e3e // movzx edx, word [rsi + r15 + 30] + LONG $0x30245489 // mov dword [rsp + 48], edx + QUAD $0x070c0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 12], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x1024 // movd xmm3, dword [rsp + 16] + LONG $0x54b70f42; WORD $0x203e // movzx edx, word [rsi + r15 + 32] + LONG $0x20245489 // mov dword [rsp + 32], edx + LONG $0x4cc40f66; WORD $0x0e0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 14], 1 + QUAD $0x020e064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 14], 2 + QUAD $0x030e264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 14], 3 + QUAD $0x040e2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 14], 4 + LONG $0x4cc40f66; WORD $0x0e1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 14], 5 + LONG $0x4cc40f66; WORD $0x0e3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 14], 6 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x54b70f42; WORD $0x223e // movzx edx, word [rsi + r15 + 34] + LONG $0x10245489 // mov dword [rsp + 16], edx + QUAD $0x070e0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 14], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0x74c40f66; WORD $0x120e; BYTE $0x01 // pinsrw xmm6, word [rsi + rcx + 18], 1 + QUAD $0x02120674c40f4266 // pinsrw xmm6, word [rsi + r8 + 18], 2 + QUAD $0x03122674c40f4266 // pinsrw xmm6, word [rsi + r12 + 18], 3 + QUAD $0x04122e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 18], 4 + LONG $0x74c40f66; WORD $0x121e; BYTE $0x05 // pinsrw xmm6, word [rsi + rbx + 18], 5 + LONG $0x74c40f66; WORD $0x123e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 18], 6 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x07120e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 18], 7 + LONG $0x750f4166; BYTE $0xf3 // pcmpeqw xmm6, xmm11 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + QUAD $0x0000e0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 224[rbp] /* [rip + .LCPI4_14] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x6f0f4566; BYTE $0xc1 // movdqa xmm8, xmm9 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x74b70f46; WORD $0x243e // movzx r14d, word [rsi + r15 + 36] + LONG $0x7cc40f66; WORD $0x100e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 16], 1 + QUAD $0x0210067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 16], 2 + QUAD $0x0310267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 16], 3 + QUAD $0x04102e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 16], 4 + LONG $0x7cc40f66; WORD $0x101e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 16], 5 + LONG $0x7cc40f66; WORD $0x103e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 16], 6 + LONG $0x64c40f66; WORD $0x140e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 20], 1 + QUAD $0x02140664c40f4266 // pinsrw xmm4, word [rsi + r8 + 20], 2 + QUAD $0x03142664c40f4266 // pinsrw xmm4, word [rsi + r12 + 20], 3 + QUAD $0x04142e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 20], 4 + LONG $0x64c40f66; WORD $0x141e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 20], 5 + LONG $0x64c40f66; WORD $0x143e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 20], 6 + QUAD $0x07140e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 20], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x6f0f4166; BYTE $0xee // movdqa xmm5, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f46; WORD $0x263e // movzx r11d, word [rsi + r15 + 38] + QUAD $0x07100e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 16], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x5cc40f66; WORD $0x160e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 22], 1 + QUAD $0x0216065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 22], 2 + QUAD $0x0316265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 22], 3 + QUAD $0x04162e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 22], 4 + LONG $0x5cc40f66; WORD $0x161e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 22], 5 + LONG $0x5cc40f66; WORD $0x163e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 22], 6 + QUAD $0x07160e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 22], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x54c40f66; WORD $0x180e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 24], 1 + QUAD $0x02180654c40f4266 // pinsrw xmm2, word [rsi + r8 + 24], 2 + QUAD $0x03182654c40f4266 // pinsrw xmm2, word [rsi + r12 + 24], 3 + QUAD $0x04182e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 24], 4 + LONG $0x54c40f66; WORD $0x181e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 24], 5 + LONG $0x54c40f66; WORD $0x183e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 24], 6 + QUAD $0x07180e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 24], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x0000a0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0x6f0f4566; BYTE $0xf2 // movdqa xmm14, xmm10 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x3024 // movd xmm3, dword [rsp + 48] + LONG $0x44b70f42; WORD $0x283e // movzx eax, word [rsi + r15 + 40] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4466; BYTE $0xf5 // por xmm14, xmm5 + QUAD $0x0000b08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0x6f0f4566; BYTE $0xe9 // movdqa xmm13, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x54b70f46; WORD $0x2a3e // movzx r10d, word [rsi + r15 + 42] + LONG $0x4cc40f66; WORD $0x1a0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 26], 1 + QUAD $0x021a064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 26], 2 + QUAD $0x031a264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 26], 3 + QUAD $0x041a2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 26], 4 + LONG $0x4cc40f66; WORD $0x1a1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 26], 5 + LONG $0x4cc40f66; WORD $0x1a3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 26], 6 + QUAD $0x071a0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 26], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x64c40f66; WORD $0x1c0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 28], 1 + QUAD $0x021c0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 28], 2 + QUAD $0x031c2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 28], 3 + QUAD $0x041c2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 28], 4 + LONG $0x64c40f66; WORD $0x1c1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 28], 5 + LONG $0x64c40f66; WORD $0x1c3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 28], 6 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x546e0f66; WORD $0x1024 // movd xmm2, dword [rsp + 16] + LONG $0x54b70f42; WORD $0x2c3e // movzx edx, word [rsi + r15 + 44] + LONG $0x20245489 // mov dword [rsp + 32], edx + QUAD $0x071c0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 28], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0x54b70f42; WORD $0x2e3e // movzx edx, word [rsi + r15 + 46] + LONG $0x10245489 // mov dword [rsp + 16], edx + LONG $0x5cc40f66; WORD $0x1e0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 30], 1 + QUAD $0x021e065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 30], 2 + QUAD $0x031e265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 30], 3 + QUAD $0x041e2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 30], 4 + LONG $0x5cc40f66; WORD $0x1e1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 30], 5 + LONG $0x5cc40f66; WORD $0x1e3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 30], 6 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x5cb70f46; WORD $0x303e // movzx r11d, word [rsi + r15 + 48] + QUAD $0x071e0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 30], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0x54c40f66; WORD $0x220e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 34], 1 + QUAD $0x02220654c40f4266 // pinsrw xmm2, word [rsi + r8 + 34], 2 + QUAD $0x03222654c40f4266 // pinsrw xmm2, word [rsi + r12 + 34], 3 + QUAD $0x04222e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 34], 4 + LONG $0x54c40f66; WORD $0x221e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 34], 5 + LONG $0x54c40f66; WORD $0x223e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 34], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07220e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 34], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xf6 // por xmm6, xmm14 + QUAD $0x0000e0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 224[rbp] /* [rip + .LCPI4_14] */ + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x74b70f46; WORD $0x323e // movzx r14d, word [rsi + r15 + 50] + LONG $0x7cc40f66; WORD $0x200e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 32], 1 + QUAD $0x0220067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 32], 2 + QUAD $0x0320267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 32], 3 + QUAD $0x04202e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 32], 4 + LONG $0x7cc40f66; WORD $0x201e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 32], 5 + LONG $0x7cc40f66; WORD $0x203e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 32], 6 + LONG $0x64c40f66; WORD $0x240e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 36], 1 + QUAD $0x02240664c40f4266 // pinsrw xmm4, word [rsi + r8 + 36], 2 + QUAD $0x03242664c40f4266 // pinsrw xmm4, word [rsi + r12 + 36], 3 + QUAD $0x04242e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 36], 4 + LONG $0x64c40f66; WORD $0x241e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 36], 5 + LONG $0x64c40f66; WORD $0x243e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 36], 6 + QUAD $0x07240e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 36], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4466; BYTE $0xee // por xmm13, xmm6 + QUAD $0x00000090b56f0f66 // movdqa xmm6, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x54b70f42; WORD $0x343e // movzx edx, word [rsi + r15 + 52] + QUAD $0x07200e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 32], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x4cc40f66; WORD $0x260e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 38], 1 + QUAD $0x0226064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 38], 2 + QUAD $0x0326264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 38], 3 + QUAD $0x04262e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 38], 4 + LONG $0x4cc40f66; WORD $0x261e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 38], 5 + LONG $0x4cc40f66; WORD $0x263e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 38], 6 + QUAD $0x07260e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 38], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x54c40f66; WORD $0x280e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 40], 1 + QUAD $0x02280654c40f4266 // pinsrw xmm2, word [rsi + r8 + 40], 2 + QUAD $0x03282654c40f4266 // pinsrw xmm2, word [rsi + r12 + 40], 3 + QUAD $0x04282e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 40], 4 + LONG $0x54c40f66; WORD $0x281e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 40], 5 + LONG $0x54c40f66; WORD $0x283e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 40], 6 + QUAD $0x07280e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 40], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + LONG $0x6f0f4166; BYTE $0xea // movdqa xmm5, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x54b70f46; WORD $0x363e // movzx r10d, word [rsi + r15 + 54] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6f0f4166; BYTE $0xf1 // movdqa xmm6, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x646e0f66; WORD $0x1024 // movd xmm4, dword [rsp + 16] + LONG $0x44b70f42; WORD $0x383e // movzx eax, word [rsi + r15 + 56] + LONG $0x5cc40f66; WORD $0x2a0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 42], 1 + QUAD $0x022a065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 42], 2 + QUAD $0x032a265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 42], 3 + QUAD $0x042a2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 42], 4 + LONG $0x5cc40f66; WORD $0x2a1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 42], 5 + LONG $0x5cc40f66; WORD $0x2a3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 42], 6 + QUAD $0x072a0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 42], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x4cc40f66; WORD $0x2c0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 44], 1 + QUAD $0x022c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 44], 2 + QUAD $0x032c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 44], 3 + QUAD $0x042c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 44], 4 + LONG $0x4cc40f66; WORD $0x2c1e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 44], 5 + LONG $0x4cc40f66; WORD $0x2c3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 44], 6 + LONG $0xeb0f4166; BYTE $0xe8 // por xmm5, xmm8 + QUAD $0x0000c08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 192[rbp] /* [rip + .LCPI4_12] */ + LONG $0x6f0f4166; BYTE $0xd1 // movdqa xmm2, xmm9 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd710 // pblendvb xmm2, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x5cb70f46; WORD $0x3a3e // movzx r11d, word [rsi + r15 + 58] + QUAD $0x072c0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 44], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0x0000d0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 208[rbp] /* [rip + .LCPI4_13] */ + LONG $0x6f0f4166; BYTE $0xf2 // movdqa xmm6, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + LONG $0x74b70f46; WORD $0x3c3e // movzx r14d, word [rsi + r15 + 60] + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0x64c40f66; WORD $0x2e0e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 46], 1 + QUAD $0x022e0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 46], 2 + QUAD $0x032e2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 46], 3 + QUAD $0x042e2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 46], 4 + LONG $0x64c40f66; WORD $0x2e1e; BYTE $0x05 // pinsrw xmm4, word [rsi + rbx + 46], 5 + LONG $0x64c40f66; WORD $0x2e3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 46], 6 + QUAD $0x072e0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 46], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6f0f4566; BYTE $0xc6 // movdqa xmm8, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x4cc40f66; WORD $0x320e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 50], 1 + QUAD $0x0232064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 50], 2 + QUAD $0x0332264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 50], 3 + QUAD $0x04322e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x321e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 50], 5 + LONG $0x4cc40f66; WORD $0x323e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 50], 6 + QUAD $0x07320e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 50], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI4_8] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x7cc40f66; WORD $0x300e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 48], 1 + QUAD $0x0230067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 48], 2 + QUAD $0x0330267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 48], 3 + QUAD $0x04302e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 48], 4 + LONG $0x7cc40f66; WORD $0x301e; BYTE $0x05 // pinsrw xmm7, word [rsi + rbx + 48], 5 + LONG $0x7cc40f66; WORD $0x303e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 48], 6 + QUAD $0x07300e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 48], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI4_22] */ + LONG $0x54c40f66; WORD $0x340e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 52], 1 + QUAD $0x02340654c40f4266 // pinsrw xmm2, word [rsi + r8 + 52], 2 + QUAD $0x03342654c40f4266 // pinsrw xmm2, word [rsi + r12 + 52], 3 + QUAD $0x04342e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 52], 4 + LONG $0x54c40f66; WORD $0x341e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 52], 5 + LONG $0x54c40f66; WORD $0x343e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 52], 6 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x07340e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 52], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0x5cc40f66; WORD $0x360e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 54], 1 + QUAD $0x0236065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 54], 2 + QUAD $0x0336265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 54], 3 + QUAD $0x04362e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 54], 4 + LONG $0x5cc40f66; WORD $0x361e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 54], 5 + LONG $0x5cc40f66; WORD $0x363e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 54], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x07360e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 54], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0x4cc40f66; WORD $0x380e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 56], 1 + QUAD $0x0238064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 56], 2 + QUAD $0x0338264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 56], 3 + QUAD $0x04382e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 56], 4 + LONG $0x4cc40f66; WORD $0x381e; BYTE $0x05 // pinsrw xmm1, word [rsi + rbx + 56], 5 + LONG $0x4cc40f66; WORD $0x383e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 56], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07380e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 56], 7 + LONG $0xe7f80f66 // psubb xmm4, xmm7 + QUAD $0x00000090ad6f0f66 // movdqa xmm5, oword 144[rbp] /* [rip + .LCPI4_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + QUAD $0x000000a0b56f0f66 // movdqa xmm6, oword 160[rbp] /* [rip + .LCPI4_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0x54c40f66; WORD $0x3a0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 58], 1 + QUAD $0x023a0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 58], 2 + QUAD $0x033a2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 58], 3 + QUAD $0x043a2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 58], 4 + LONG $0x54c40f66; WORD $0x3a1e; BYTE $0x05 // pinsrw xmm2, word [rsi + rbx + 58], 5 + LONG $0x54c40f66; WORD $0x3a3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 58], 6 + QUAD $0x073a0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 58], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xde // movd xmm3, r14d + LONG $0x5cc40f66; WORD $0x3c0e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 60], 1 + QUAD $0x023c065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 60], 2 + QUAD $0x033c265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 60], 3 + QUAD $0x043c2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 60], 4 + LONG $0x5cc40f66; WORD $0x3c1e; BYTE $0x05 // pinsrw xmm3, word [rsi + rbx + 60], 5 + LONG $0x5cc40f66; WORD $0x3c3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 60], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x073c0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 60], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI4_11] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0x6f0f4166; BYTE $0xc9 // movdqa xmm1, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xcf10 // pblendvb xmm1, xmm15, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xd710 // pblendvb xmm10, xmm15, xmm0 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x44b70f42; WORD $0x3e3e // movzx eax, word [rsi + r15 + 62] + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44c40f66; WORD $0x3e0e; BYTE $0x01 // pinsrw xmm0, word [rsi + rcx + 62], 1 + QUAD $0x023e0644c40f4266 // pinsrw xmm0, word [rsi + r8 + 62], 2 + QUAD $0x033e2644c40f4266 // pinsrw xmm0, word [rsi + r12 + 62], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x043e2e44c40f4266 // pinsrw xmm0, word [rsi + r13 + 62], 4 + LONG $0x44c40f66; WORD $0x3e1e; BYTE $0x05 // pinsrw xmm0, word [rsi + rbx + 62], 5 + LONG $0x44c40f66; WORD $0x3e3e; BYTE $0x06 // pinsrw xmm0, word [rsi + rdi + 62], 6 + QUAD $0x073e0e44c40f4266 // pinsrw xmm0, word [rsi + r9 + 62], 7 + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xeb0f4466; BYTE $0xd6 // por xmm10, xmm6 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0xeb0f4566; BYTE $0xf2 // por xmm14, xmm10 + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x6c0f4166; BYTE $0xc5 // punpcklqdq xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x6c0f4166; BYTE $0xd6 // punpcklqdq xmm2, xmm14 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI4_15] */ + LONG $0x00380f66; BYTE $0xd3 // pshufb xmm2, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0x600f4566; BYTE $0xc6 // punpcklbw xmm8, xmm14 + LONG $0x600f4566; BYTE $0xe5 // punpcklbw xmm12, xmm13 + LONG $0x610f4566; BYTE $0xe0 // punpcklwd xmm12, xmm8 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + LONG $0x7f0f45f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm12 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm0 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x18 // cmp rcx, qword [rsp + 24] + JNE LBB4_190 + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + LONG $0x24543b4c; BYTE $0x18 // cmp r10, qword [rsp + 24] + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + LONG $0x246c8b44; BYTE $0x40 // mov r13d, dword [rsp + 64] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + JNE LBB4_104 + JMP LBB4_144 + +LBB4_192: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xf3 // add rbx, rsi + LONG $0x861c8d4f // lea r11, [r14 + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc68148; WORD $0x0001; BYTE $0x00 // add rsi, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI4_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI4_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI4_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI4_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI4_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI4_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI4_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI4_7] */ + +LBB4_193: + QUAD $0xfffffe04b6100ff3 // movss xmm6, dword [rsi - 508] + QUAD $0xfffffe08be100ff3 // movss xmm7, dword [rsi - 504] + QUAD $0xfffffe0cae100ff3 // movss xmm5, dword [rsi - 500] + QUAD $0xfffffe10a6100ff3 // movss xmm4, dword [rsi - 496] + QUAD $0xfffe84b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 380], 16 + QUAD $0xffff04b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 252], 32 + LONG $0x213a0f66; WORD $0x8476; BYTE $0x30 // insertps xmm6, dword [rsi - 124], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfffe88be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 376], 16 + QUAD $0xffff08be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 248], 32 + LONG $0x213a0f66; WORD $0x887e; BYTE $0x30 // insertps xmm7, dword [rsi - 120], 48 + QUAD $0xfffe8cae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 372], 16 + QUAD $0xffff0cae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 244], 32 + LONG $0x213a0f66; WORD $0x8c6e; BYTE $0x30 // insertps xmm5, dword [rsi - 116], 48 + QUAD $0xfffe90a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 368], 16 + QUAD $0xffff10a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 240], 32 + LONG $0x213a0f66; WORD $0x9066; BYTE $0x30 // insertps xmm4, dword [rsi - 112], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffffe14be100ff3 // movss xmm7, dword [rsi - 492] + QUAD $0xfffe94be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 364], 16 + QUAD $0xffff14be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 236], 32 + LONG $0x213a0f66; WORD $0x947e; BYTE $0x30 // insertps xmm7, dword [rsi - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe18b6100ff3 // movss xmm6, dword [rsi - 488] + QUAD $0xfffe98b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 360], 16 + QUAD $0xffff18b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 232], 32 + LONG $0x213a0f66; WORD $0x9876; BYTE $0x30 // insertps xmm6, dword [rsi - 104], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe1c9e100ff3 // movss xmm3, dword [rsi - 484] + QUAD $0xfffe9c9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 356], 16 + QUAD $0xffff1c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 228], 32 + LONG $0x213a0f66; WORD $0x9c5e; BYTE $0x30 // insertps xmm3, dword [rsi - 100], 48 + LONG $0x04e1c20f // cmpneqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffffe20a6100ff3 // movss xmm4, dword [rsi - 480] + QUAD $0xfffea0a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 352], 16 + QUAD $0xffff20a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 224], 32 + LONG $0x213a0f66; WORD $0xa066; BYTE $0x30 // insertps xmm4, dword [rsi - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe24ae100ff3 // movss xmm5, dword [rsi - 476] + QUAD $0xfffea4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 348], 16 + QUAD $0xffff24ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 220], 32 + LONG $0x213a0f66; WORD $0xa46e; BYTE $0x30 // insertps xmm5, dword [rsi - 92], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe2896100ff3 // movss xmm2, dword [rsi - 472] + QUAD $0xfffea896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 344], 16 + QUAD $0xffff2896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 216], 32 + LONG $0x213a0f66; WORD $0xa856; BYTE $0x30 // insertps xmm2, dword [rsi - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x04e1c20f // cmpneqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffffe2c9e100ff3 // movss xmm3, dword [rsi - 468] + QUAD $0xfffeac9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 340], 16 + QUAD $0xffff2c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0x213a0f66; WORD $0xac5e; BYTE $0x30 // insertps xmm3, dword [rsi - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe30be100ff3 // movss xmm7, dword [rsi - 464] + QUAD $0xfffeb0be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 336], 16 + QUAD $0xffff30be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 208], 32 + LONG $0x213a0f66; WORD $0xb07e; BYTE $0x30 // insertps xmm7, dword [rsi - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe34ae100ff3 // movss xmm5, dword [rsi - 460] + QUAD $0xfffeb4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 332], 16 + QUAD $0xffff34ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 204], 32 + LONG $0x213a0f66; WORD $0xb46e; BYTE $0x30 // insertps xmm5, dword [rsi - 76], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe38b6100ff3 // movss xmm6, dword [rsi - 456] + QUAD $0xfffeb8b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 328], 16 + QUAD $0xffff38b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 200], 32 + LONG $0x213a0f66; WORD $0xb876; BYTE $0x30 // insertps xmm6, dword [rsi - 72], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffffe3c96100ff3 // movss xmm2, dword [rsi - 452] + QUAD $0xfffebc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 324], 16 + QUAD $0xffff3c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 196], 32 + LONG $0x213a0f66; WORD $0xbc56; BYTE $0x30 // insertps xmm2, dword [rsi - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffffe40be100ff3 // movss xmm7, dword [rsi - 448] + QUAD $0xfffec0be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 320], 16 + QUAD $0xffff40be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 192], 32 + LONG $0x213a0f66; WORD $0xc07e; BYTE $0x30 // insertps xmm7, dword [rsi - 64], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe44b6100ff3 // movss xmm6, dword [rsi - 444] + QUAD $0xfffec4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 316], 16 + QUAD $0xffff44b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 188], 32 + LONG $0x213a0f66; WORD $0xc476; BYTE $0x30 // insertps xmm6, dword [rsi - 60], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffffe4896100ff3 // movss xmm2, dword [rsi - 440] + QUAD $0xfffec896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 312], 16 + QUAD $0xffff4896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 184], 32 + LONG $0x213a0f66; WORD $0xc856; BYTE $0x30 // insertps xmm2, dword [rsi - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe4c9e100ff3 // movss xmm3, dword [rsi - 436] + QUAD $0xfffecc9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 308], 16 + QUAD $0xffff4c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x213a0f66; WORD $0xcc5e; BYTE $0x30 // insertps xmm3, dword [rsi - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffffe50ae100ff3 // movss xmm5, dword [rsi - 432] + QUAD $0xfffed0ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 304], 16 + QUAD $0xffff50ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 176], 32 + LONG $0x213a0f66; WORD $0xd06e; BYTE $0x30 // insertps xmm5, dword [rsi - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffffe54b6100ff3 // movss xmm6, dword [rsi - 428] + QUAD $0xfffed4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 300], 16 + QUAD $0xffff54b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 172], 32 + LONG $0x213a0f66; WORD $0xd476; BYTE $0x30 // insertps xmm6, dword [rsi - 44], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffffe58be100ff3 // movss xmm7, dword [rsi - 424] + QUAD $0xfffed8be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 296], 16 + QUAD $0xffff58be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 168], 32 + LONG $0x213a0f66; WORD $0xd87e; BYTE $0x30 // insertps xmm7, dword [rsi - 40], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe5c96100ff3 // movss xmm2, dword [rsi - 420] + QUAD $0xfffedc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 292], 16 + QUAD $0xffff5c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 164], 32 + LONG $0x213a0f66; WORD $0xdc56; BYTE $0x30 // insertps xmm2, dword [rsi - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe60ae100ff3 // movss xmm5, dword [rsi - 416] + QUAD $0xfffee0ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 288], 16 + QUAD $0xffff60ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 160], 32 + LONG $0x213a0f66; WORD $0xe06e; BYTE $0x30 // insertps xmm5, dword [rsi - 32], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe64be100ff3 // movss xmm7, dword [rsi - 412] + QUAD $0xfffee4be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 284], 16 + QUAD $0xffff64be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 156], 32 + LONG $0x213a0f66; WORD $0xe47e; BYTE $0x30 // insertps xmm7, dword [rsi - 28], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe6896100ff3 // movss xmm2, dword [rsi - 408] + QUAD $0xfffee896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 280], 16 + QUAD $0xffff6896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0x213a0f66; WORD $0xe856; BYTE $0x30 // insertps xmm2, dword [rsi - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe6c9e100ff3 // movss xmm3, dword [rsi - 404] + QUAD $0xfffeec9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 276], 16 + QUAD $0xffff6c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 148], 32 + LONG $0x213a0f66; WORD $0xec5e; BYTE $0x30 // insertps xmm3, dword [rsi - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffffe7096100ff3 // movss xmm2, dword [rsi - 400] + QUAD $0xfffef096213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 272], 16 + QUAD $0xffff7096213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 144], 32 + LONG $0x213a0f66; WORD $0xf056; BYTE $0x30 // insertps xmm2, dword [rsi - 16], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe74b6100ff3 // movss xmm6, dword [rsi - 396] + QUAD $0xfffef4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 268], 16 + QUAD $0xffff74b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 140], 32 + LONG $0x213a0f66; WORD $0xf476; BYTE $0x30 // insertps xmm6, dword [rsi - 12], 48 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffffe78be100ff3 // movss xmm7, dword [rsi - 392] + QUAD $0xfffef8be213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 264], 16 + QUAD $0xffff78be213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 136], 32 + LONG $0x213a0f66; WORD $0xf87e; BYTE $0x30 // insertps xmm7, dword [rsi - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe7c96100ff3 // movss xmm2, dword [rsi - 388] + QUAD $0xfffefc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 260], 16 + QUAD $0xffff7c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 132], 32 + LONG $0x213a0f66; WORD $0xfc56; BYTE $0x30 // insertps xmm2, dword [rsi - 4], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe809e100ff3 // movss xmm3, dword [rsi - 384] + QUAD $0xffff009e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 256], 16 + LONG $0x213a0f66; WORD $0x805e; BYTE $0x20 // insertps xmm3, dword [rsi - 128], 32 + LONG $0x213a0f66; WORD $0x301e // insertps xmm3, dword [rsi], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c68148; WORD $0x0002; BYTE $0x00 // add rsi, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB4_193 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JNE LBB4_127 + JMP LBB4_148 + +DATA LCDATA4<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA4<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA4<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA4<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA4<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA4<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA4<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA4<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA4<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA4<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA4<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA4<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA4<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA4<>+0x080(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x090(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0a0(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x0a8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0b0(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0c0(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0d0(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x0d8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0e0(SB)/8, $0x8080808080808080 +DATA LCDATA4<>+0x0e8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x0f0(SB)/8, $0x0f070e060d050c04 +DATA LCDATA4<>+0x0f8(SB)/8, $0x0000000000000000 +DATA LCDATA4<>+0x100(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x108(SB)/8, $0x0202020202020202 +DATA LCDATA4<>+0x110(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x118(SB)/8, $0x0404040404040404 +DATA LCDATA4<>+0x120(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x128(SB)/8, $0x0808080808080808 +DATA LCDATA4<>+0x130(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x138(SB)/8, $0x1010101010101010 +DATA LCDATA4<>+0x140(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x148(SB)/8, $0x2020202020202020 +DATA LCDATA4<>+0x150(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x158(SB)/8, $0x4040404040404040 +DATA LCDATA4<>+0x160(SB)/8, $0xffffffffffffffff +DATA LCDATA4<>+0x168(SB)/8, $0xffffffffffffffff +GLOBL LCDATA4<>(SB), 8, $368 + +TEXT ·_comparison_not_equal_scalar_arr_sse4(SB), $312-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 288(SP) + LEAQ LCDATA4<>(SB), BP + + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB5_26 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB5_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB5_99 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB5_122 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB5_199 + WORD $0x8b44; BYTE $0x1e // mov r11d, dword [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + +LBB5_15: + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + LONG $0x04768d4d // lea r14, [r14 + 4] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f44; BYTE $0x32 // movzx r8d, byte [rdx + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x323c8840 // mov byte [rdx + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_15 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_17: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_21 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_19: + LONG $0x7c5e3b45 // cmp r11d, dword [r14 + 124] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x785e3b45 // cmp r11d, dword [r14 + 120] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x745e3b45 // cmp r11d, dword [r14 + 116] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x705e3b45 // cmp r11d, dword [r14 + 112] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6c5e3b45 // cmp r11d, dword [r14 + 108] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x685e3b45 // cmp r11d, dword [r14 + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x645e3b45 // cmp r11d, dword [r14 + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5c5e3b45 // cmp r11d, dword [r14 + 92] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x585e3b45 // cmp r11d, dword [r14 + 88] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x545e3b45 // cmp r11d, dword [r14 + 84] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x505e3b45 // cmp r11d, dword [r14 + 80] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x4c5e3b45 // cmp r11d, dword [r14 + 76] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x485e3b45 // cmp r11d, dword [r14 + 72] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x445e3b45 // cmp r11d, dword [r14 + 68] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x3c5e3b45 // cmp r11d, dword [r14 + 60] + LONG $0xd0950f41 // setne r8b + LONG $0x385e3b45 // cmp r11d, dword [r14 + 56] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x345e3b45 // cmp r11d, dword [r14 + 52] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x305e3b45 // cmp r11d, dword [r14 + 48] + LONG $0xd7950f40 // setne dil + LONG $0x2c5e3b45 // cmp r11d, dword [r14 + 44] + LONG $0xd2950f41 // setne r10b + LONG $0x285e3b45 // cmp r11d, dword [r14 + 40] + LONG $0xd1950f41 // setne r9b + LONG $0x245e3b45 // cmp r11d, dword [r14 + 36] + LONG $0xd6950f40 // setne sil + LONG $0x1c5e3b45 // cmp r11d, dword [r14 + 28] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x185e3b45 // cmp r11d, dword [r14 + 24] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x145e3b45 // cmp r11d, dword [r14 + 20] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x105e3b45 // cmp r11d, dword [r14 + 16] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x0c5e3b45 // cmp r11d, dword [r14 + 12] + LONG $0xd4950f41 // setne r12b + LONG $0x085e3b45 // cmp r11d, dword [r14 + 8] + LONG $0xd7950f41 // setne r15b + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x045e3b45 // cmp r11d, dword [r14 + 4] + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + LONG $0xd6950f41 // setne r14b + LONG $0x205d3b45 // cmp r11d, dword [r13 + 32] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x405d3b45 // cmp r11d, dword [r13 + 64] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x605d3b45 // cmp r11d, dword [r13 + 96] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + QUAD $0x0000009824b40244 // add r14b, byte [rsp + 152] + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0845; BYTE $0xf7 // or r15b, r14b + WORD $0x894d; BYTE $0xee // mov r14, r13 + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xca08 // or dl, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xd008 // or al, dl + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0844; BYTE $0xd7 // or dil, r10b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ee8349 // sub r14, -128 + LONG $0x04c78349 // add r15, 4 + LONG $0x247c894c; BYTE $0x08 // mov qword [rsp + 8], r15 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_19 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + +LBB5_21: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB5_23 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xff31 // xor edi, edi + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + +LBB5_143: + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xd0 // xor al, r10b + WORD $0xc220 // and dl, al + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + LONG $0x37148841 // mov byte [r15 + rsi], dl + LONG $0x02c78348 // add rdi, 2 + LONG $0x045e3b45 // cmp r11d, dword [r14 + 4] + LONG $0x08768d4d // lea r14, [r14 + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd030 // xor al, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0xd330 // xor bl, dl + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB5_143 + JMP LBB5_24 + +LBB5_26: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB5_27 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB5_158 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB5_170 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB5_199 + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_49 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + +LBB5_47: + LONG $0x2e0f4166; BYTE $0x06 // ucomisd xmm0, qword [r14] + LONG $0x08768d4d // lea r14, [r14 + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x1cb60f41; BYTE $0x30 // movzx ebx, byte [r8 + rsi] + WORD $0xda30 // xor dl, bl + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3040; BYTE $0xdf // xor dil, bl + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_47 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_49: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_53 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + QUAD $0x000000982494894c // mov qword [rsp + 152], r10 + +LBB5_51: + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x2e0f4166; BYTE $0x06 // ucomisd xmm0, qword [r14] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x2e0f4166; WORD $0x0846 // ucomisd xmm0, qword [r14 + 8] + LONG $0xd1950f41 // setne r9b + LONG $0x2e0f4166; WORD $0x1046 // ucomisd xmm0, qword [r14 + 16] + LONG $0xd3950f41 // setne r11b + LONG $0x2e0f4166; WORD $0x1846 // ucomisd xmm0, qword [r14 + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x2e0f4166; WORD $0x2046 // ucomisd xmm0, qword [r14 + 32] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x2e0f4166; WORD $0x2846 // ucomisd xmm0, qword [r14 + 40] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x2e0f4166; WORD $0x3046 // ucomisd xmm0, qword [r14 + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x2e0f4166; WORD $0x3846 // ucomisd xmm0, qword [r14 + 56] + LONG $0xd4950f41 // setne r12b + LONG $0x2e0f4166; WORD $0x4046 // ucomisd xmm0, qword [r14 + 64] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x2e0f4166; WORD $0x4846 // ucomisd xmm0, qword [r14 + 72] + LONG $0xd6950f40 // setne sil + LONG $0x2e0f4166; WORD $0x5046 // ucomisd xmm0, qword [r14 + 80] + LONG $0xd7950f40 // setne dil + LONG $0x2e0f4166; WORD $0x5846 // ucomisd xmm0, qword [r14 + 88] + LONG $0xd0950f41 // setne r8b + LONG $0x2e0f4166; WORD $0x6046 // ucomisd xmm0, qword [r14 + 96] + LONG $0xd2950f41 // setne r10b + LONG $0x2e0f4166; WORD $0x6846 // ucomisd xmm0, qword [r14 + 104] + LONG $0xd7950f41 // setne r15b + LONG $0x2e0f4166; WORD $0x7046 // ucomisd xmm0, qword [r14 + 112] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x2e0f4166; WORD $0x7846 // ucomisd xmm0, qword [r14 + 120] + WORD $0x950f; BYTE $0xd1 // setne cl + QUAD $0x000080862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 128] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + QUAD $0x000088862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 136] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + QUAD $0x000090862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 144] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + QUAD $0x000098862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 152] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + QUAD $0x0000a0862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 160] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + QUAD $0x0000a8862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 168] + QUAD $0x000000802494950f // setne byte [rsp + 128] + QUAD $0x0000b0862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 176] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + QUAD $0x0000b8862e0f4166; BYTE $0x00 // ucomisd xmm0, qword [r14 + 184] + LONG $0xd6950f41 // setne r14b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000c0248c0244 // add r9b, byte [rsp + 192] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000009024b40240 // add sil, byte [rsp + 144] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x000000b0249cb60f // movzx ebx, byte [rsp + 176] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0x8941; BYTE $0xd9 // mov r9d, ebx + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xcb // or bl, r9b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x0000008824bcb60f // movzx edi, byte [rsp + 136] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xdb00 // add bl, bl + LONG $0x78245c02 // add bl, byte [rsp + 120] + WORD $0xdf89 // mov edi, ebx + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0xdf89 // mov edi, ebx + LONG $0x245cb60f; BYTE $0x70 // movzx ebx, byte [rsp + 112] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0xdf89 // mov edi, ebx + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0xdf89 // mov edi, ebx + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x8844; BYTE $0x26 // mov byte [rsi], r12b + LONG $0x247cb60f; BYTE $0x58 // movzx edi, byte [rsp + 88] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x4e88; BYTE $0x01 // mov byte [rsi + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x20244c02 // add cl, byte [rsp + 32] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02768844 // mov byte [rsi + 2], r14b + WORD $0x4688; BYTE $0x03 // mov byte [rsi + 3], al + LONG $0x00b28d4c; WORD $0x0001; BYTE $0x00 // lea r14, [rdx + 256] + LONG $0x04c68348 // add rsi, 4 + LONG $0x24748948; BYTE $0x08 // mov qword [rsp + 8], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB5_51 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + +LBB5_53: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_193 + WORD $0xff31 // xor edi, edi + JMP LBB5_195 + +LBB5_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB5_56 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB5_199 + WORD $0x068a // mov al, byte [rsi] + LONG $0x40244488 // mov byte [rsp + 64], al + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + +LBB5_6: + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0x3a41; BYTE $0x0e // cmp cl, byte [r14] + LONG $0x01768d4d // lea r14, [r14 + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f44; BYTE $0x32 // movzx r9d, byte [rdx + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x323c8840 // mov byte [rdx + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_6 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_8: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_9 + LONG $0x10fa8349 // cmp r10, 16 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + JB LBB5_82 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24443948; BYTE $0x08 // cmp qword [rsp + 8], rax + JAE LBB5_85 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB5_85 + +LBB5_82: + WORD $0xc031 // xor eax, eax + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + +LBB5_88: + QUAD $0x000000d824942b4c // sub r10, qword [rsp + 216] + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB5_89: + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + LONG $0x1f463a41 // cmp al, byte [r14 + 31] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1e463a41 // cmp al, byte [r14 + 30] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d463a41 // cmp al, byte [r14 + 29] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x1c463a41 // cmp al, byte [r14 + 28] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x1b463a41 // cmp al, byte [r14 + 27] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x1a463a41 // cmp al, byte [r14 + 26] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x19463a41 // cmp al, byte [r14 + 25] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x17463a41 // cmp al, byte [r14 + 23] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x16463a41 // cmp al, byte [r14 + 22] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x15463a41 // cmp al, byte [r14 + 21] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x14463a41 // cmp al, byte [r14 + 20] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x13463a41 // cmp al, byte [r14 + 19] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x12463a41 // cmp al, byte [r14 + 18] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x11463a41 // cmp al, byte [r14 + 17] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x0f463a41 // cmp al, byte [r14 + 15] + LONG $0xd2950f41 // setne r10b + LONG $0x0e463a41 // cmp al, byte [r14 + 14] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x0d463a41 // cmp al, byte [r14 + 13] + LONG $0xd5950f41 // setne r13b + LONG $0x0c463a41 // cmp al, byte [r14 + 12] + LONG $0xd4950f41 // setne r12b + LONG $0x0b463a41 // cmp al, byte [r14 + 11] + LONG $0xd7950f41 // setne r15b + LONG $0x0a463a41 // cmp al, byte [r14 + 10] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x09463a41 // cmp al, byte [r14 + 9] + LONG $0xd3950f41 // setne r11b + LONG $0x07463a41 // cmp al, byte [r14 + 7] + LONG $0xd6950f40 // setne sil + LONG $0x06463a41 // cmp al, byte [r14 + 6] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x05463a41 // cmp al, byte [r14 + 5] + LONG $0xd1950f41 // setne r9b + LONG $0x04463a41 // cmp al, byte [r14 + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x03463a41 // cmp al, byte [r14 + 3] + LONG $0xd7950f40 // setne dil + LONG $0x02463a41 // cmp al, byte [r14 + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0x3a41; BYTE $0x06 // cmp al, byte [r14] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x01463a41 // cmp al, byte [r14 + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x08463a41 // cmp al, byte [r14 + 8] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x10463a41 // cmp al, byte [r14 + 16] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x18463a41 // cmp al, byte [r14 + 24] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0xc900 // add cl, cl + LONG $0xa8248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 168] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xca08 // or dl, cl + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + WORD $0x8840; BYTE $0x30 // mov byte [rax], sil + WORD $0x0045; BYTE $0xdb // add r11b, r11b + QUAD $0x00000098249c0244 // add r11b, byte [rsp + 152] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xdb // or bl, r11b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0845; BYTE $0xea // or r10b, r13b + LONG $0x01508844 // mov byte [rax + 1], r10b + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xc900 // add cl, cl + LONG $0xb0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 176] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + WORD $0x4888; BYTE $0x02 // mov byte [rax + 2], cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x88248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 136] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + WORD $0x4888; BYTE $0x03 // mov byte [rax + 3], cl + LONG $0x20c68349 // add r14, 32 + LONG $0x04c08348 // add rax, 4 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB5_89 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + JMP LBB5_91 + +LBB5_27: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB5_144 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB5_199 + WORD $0x8b4c; BYTE $0x1e // mov r11, qword [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_33 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + +LBB5_31: + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + LONG $0x08768d4d // lea r14, [r14 + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x1cb60f41; BYTE $0x30 // movzx ebx, byte [r8 + rsi] + WORD $0xda30 // xor dl, bl + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3040; BYTE $0xdf // xor dil, bl + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_31 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_33: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_37 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_35: + LONG $0xf89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 248] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xf09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 240] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xe89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 232] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xe09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 224] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xd89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 216] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0xd09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xc89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xb89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 184] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xb09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 176] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0xa89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 168] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0xa09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 160] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x989e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 152] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x909e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 144] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x889e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 136] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x785e3b4d // cmp r11, qword [r14 + 120] + LONG $0xd0950f41 // setne r8b + LONG $0x705e3b4d // cmp r11, qword [r14 + 112] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x685e3b4d // cmp r11, qword [r14 + 104] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x605e3b4d // cmp r11, qword [r14 + 96] + LONG $0xd7950f40 // setne dil + LONG $0x585e3b4d // cmp r11, qword [r14 + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x505e3b4d // cmp r11, qword [r14 + 80] + LONG $0xd1950f41 // setne r9b + LONG $0x485e3b4d // cmp r11, qword [r14 + 72] + LONG $0xd6950f40 // setne sil + LONG $0x385e3b4d // cmp r11, qword [r14 + 56] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x305e3b4d // cmp r11, qword [r14 + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x285e3b4d // cmp r11, qword [r14 + 40] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x205e3b4d // cmp r11, qword [r14 + 32] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x185e3b4d // cmp r11, qword [r14 + 24] + LONG $0xd7950f41 // setne r15b + LONG $0x105e3b4d // cmp r11, qword [r14 + 16] + LONG $0xd5950f41 // setne r13b + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x085e3b4d // cmp r11, qword [r14 + 8] + LONG $0xd4950f41 // setne r12b + LONG $0x405e3b4d // cmp r11, qword [r14 + 64] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x809e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 128] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0xc09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 192] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + QUAD $0x0000009824a40244 // add r12b, byte [rsp + 152] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xef // or r15b, r13b + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xfa // or dl, r15b + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x24048841 // mov byte [r12], al + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0844; BYTE $0xd7 // or dil, r10b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x24448845; BYTE $0x01 // mov byte [r12 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x02 // mov byte [r12 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x03 // mov byte [r12 + 3], al + LONG $0x00c68149; WORD $0x0001; BYTE $0x00 // add r14, 256 + LONG $0x04c48349 // add r12, 4 + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_35 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + +LBB5_37: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB5_39 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xff31 // xor edi, edi + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + +LBB5_157: + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xd0 // xor al, r10b + WORD $0xc220 // and dl, al + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + LONG $0x37148841 // mov byte [r15 + rsi], dl + LONG $0x02c78348 // add rdi, 2 + LONG $0x085e3b4d // cmp r11, qword [r14 + 8] + LONG $0x10768d4d // lea r14, [r14 + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd030 // xor al, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0xd330 // xor bl, dl + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB5_157 + JMP LBB5_40 + +LBB5_56: + WORD $0x068a // mov al, byte [rsi] + LONG $0x28244488 // mov byte [rsp + 40], al + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + +LBB5_58: + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0x3a41; BYTE $0x0e // cmp cl, byte [r14] + LONG $0x01768d4d // lea r14, [r14 + 1] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f44; BYTE $0x32 // movzx r9d, byte [rdx + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x323c8840 // mov byte [rdx + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_58 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_60: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_61 + LONG $0x10fa8349 // cmp r10, 16 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + JB LBB5_63 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24443948; BYTE $0x08 // cmp qword [rsp + 8], rax + JAE LBB5_66 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB5_66 + +LBB5_63: + WORD $0xc031 // xor eax, eax + QUAD $0x000000d824848948 // mov qword [rsp + 216], rax + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + +LBB5_69: + QUAD $0x000000d824942b4c // sub r10, qword [rsp + 216] + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB5_70: + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + LONG $0x1f463a41 // cmp al, byte [r14 + 31] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x1e463a41 // cmp al, byte [r14 + 30] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x1d463a41 // cmp al, byte [r14 + 29] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x1c463a41 // cmp al, byte [r14 + 28] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x1b463a41 // cmp al, byte [r14 + 27] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x1a463a41 // cmp al, byte [r14 + 26] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x19463a41 // cmp al, byte [r14 + 25] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x17463a41 // cmp al, byte [r14 + 23] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x16463a41 // cmp al, byte [r14 + 22] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x15463a41 // cmp al, byte [r14 + 21] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x14463a41 // cmp al, byte [r14 + 20] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x13463a41 // cmp al, byte [r14 + 19] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x12463a41 // cmp al, byte [r14 + 18] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x11463a41 // cmp al, byte [r14 + 17] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x0f463a41 // cmp al, byte [r14 + 15] + LONG $0xd2950f41 // setne r10b + LONG $0x0e463a41 // cmp al, byte [r14 + 14] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x0d463a41 // cmp al, byte [r14 + 13] + LONG $0xd5950f41 // setne r13b + LONG $0x0c463a41 // cmp al, byte [r14 + 12] + LONG $0xd4950f41 // setne r12b + LONG $0x0b463a41 // cmp al, byte [r14 + 11] + LONG $0xd7950f41 // setne r15b + LONG $0x0a463a41 // cmp al, byte [r14 + 10] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x09463a41 // cmp al, byte [r14 + 9] + LONG $0xd3950f41 // setne r11b + LONG $0x07463a41 // cmp al, byte [r14 + 7] + LONG $0xd6950f40 // setne sil + LONG $0x06463a41 // cmp al, byte [r14 + 6] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x05463a41 // cmp al, byte [r14 + 5] + LONG $0xd1950f41 // setne r9b + LONG $0x04463a41 // cmp al, byte [r14 + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x03463a41 // cmp al, byte [r14 + 3] + LONG $0xd7950f40 // setne dil + LONG $0x02463a41 // cmp al, byte [r14 + 2] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0x3a41; BYTE $0x06 // cmp al, byte [r14] + QUAD $0x000000a82494950f // setne byte [rsp + 168] + LONG $0x01463a41 // cmp al, byte [r14 + 1] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x08463a41 // cmp al, byte [r14 + 8] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x10463a41 // cmp al, byte [r14 + 16] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x18463a41 // cmp al, byte [r14 + 24] + QUAD $0x000000882494950f // setne byte [rsp + 136] + WORD $0xc900 // add cl, cl + LONG $0xa8248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 168] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xca08 // or dl, cl + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + WORD $0x8840; BYTE $0x30 // mov byte [rax], sil + WORD $0x0045; BYTE $0xdb // add r11b, r11b + QUAD $0x00000098249c0244 // add r11b, byte [rsp + 152] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xdb // or bl, r11b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0845; BYTE $0xea // or r10b, r13b + LONG $0x01508844 // mov byte [rax + 1], r10b + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xc900 // add cl, cl + LONG $0xb0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 176] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + QUAD $0x00000080248cb60f // movzx ecx, byte [rsp + 128] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + WORD $0x4888; BYTE $0x02 // mov byte [rax + 2], cl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x88248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 136] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + WORD $0x4888; BYTE $0x03 // mov byte [rax + 3], cl + LONG $0x20c68349 // add r14, 32 + LONG $0x04c08348 // add rax, 4 + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB5_70 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + JMP LBB5_72 + +LBB5_144: + WORD $0x8b44; BYTE $0x1e // mov r11d, dword [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_148 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + +LBB5_146: + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + LONG $0x04768d4d // lea r14, [r14 + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x1cb60f41; BYTE $0x30 // movzx ebx, byte [r8 + rsi] + WORD $0xda30 // xor dl, bl + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3040; BYTE $0xdf // xor dil, bl + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_146 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_148: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_152 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_150: + LONG $0x7c5e3b45 // cmp r11d, dword [r14 + 124] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x785e3b45 // cmp r11d, dword [r14 + 120] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x745e3b45 // cmp r11d, dword [r14 + 116] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x705e3b45 // cmp r11d, dword [r14 + 112] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x6c5e3b45 // cmp r11d, dword [r14 + 108] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x685e3b45 // cmp r11d, dword [r14 + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x645e3b45 // cmp r11d, dword [r14 + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5c5e3b45 // cmp r11d, dword [r14 + 92] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x585e3b45 // cmp r11d, dword [r14 + 88] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x545e3b45 // cmp r11d, dword [r14 + 84] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x505e3b45 // cmp r11d, dword [r14 + 80] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x4c5e3b45 // cmp r11d, dword [r14 + 76] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x485e3b45 // cmp r11d, dword [r14 + 72] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x445e3b45 // cmp r11d, dword [r14 + 68] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x3c5e3b45 // cmp r11d, dword [r14 + 60] + LONG $0xd0950f41 // setne r8b + LONG $0x385e3b45 // cmp r11d, dword [r14 + 56] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x345e3b45 // cmp r11d, dword [r14 + 52] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x305e3b45 // cmp r11d, dword [r14 + 48] + LONG $0xd7950f40 // setne dil + LONG $0x2c5e3b45 // cmp r11d, dword [r14 + 44] + LONG $0xd2950f41 // setne r10b + LONG $0x285e3b45 // cmp r11d, dword [r14 + 40] + LONG $0xd1950f41 // setne r9b + LONG $0x245e3b45 // cmp r11d, dword [r14 + 36] + LONG $0xd6950f40 // setne sil + LONG $0x1c5e3b45 // cmp r11d, dword [r14 + 28] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x185e3b45 // cmp r11d, dword [r14 + 24] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x145e3b45 // cmp r11d, dword [r14 + 20] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x105e3b45 // cmp r11d, dword [r14 + 16] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x0c5e3b45 // cmp r11d, dword [r14 + 12] + LONG $0xd7950f41 // setne r15b + LONG $0x085e3b45 // cmp r11d, dword [r14 + 8] + LONG $0xd5950f41 // setne r13b + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x045e3b45 // cmp r11d, dword [r14 + 4] + LONG $0xd4950f41 // setne r12b + LONG $0x205e3b45 // cmp r11d, dword [r14 + 32] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x405e3b45 // cmp r11d, dword [r14 + 64] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x605e3b45 // cmp r11d, dword [r14 + 96] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + QUAD $0x0000009824a40244 // add r12b, byte [rsp + 152] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xef // or r15b, r13b + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xfa // or dl, r15b + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x24048841 // mov byte [r12], al + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0844; BYTE $0xd7 // or dil, r10b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x24448845; BYTE $0x01 // mov byte [r12 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x02 // mov byte [r12 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x03 // mov byte [r12 + 3], al + LONG $0x80ee8349 // sub r14, -128 + LONG $0x04c48349 // add r12, 4 + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_150 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + +LBB5_152: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_154 + +LBB5_23: + WORD $0xff31 // xor edi, edi + JMP LBB5_24 + +LBB5_99: + LONG $0x1eb70f44 // movzx r11d, word [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_103 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + +LBB5_101: + LONG $0x1e3b4566 // cmp r11w, word [r14] + LONG $0x02768d4d // lea r14, [r14 + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f44; BYTE $0x32 // movzx r9d, byte [rdx + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x323c8840 // mov byte [rdx + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_101 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_103: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_104 + LONG $0x08fa8349 // cmp r10, 8 + LONG $0x245c8944; BYTE $0x10 // mov dword [rsp + 16], r11d + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + JB LBB5_106 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24443948; BYTE $0x08 // cmp qword [rsp + 8], rax + JAE LBB5_109 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + WORD $0x394c; BYTE $0xf0 // cmp rax, r14 + JBE LBB5_109 + +LBB5_106: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + +LBB5_112: + LONG $0x24542b4c; BYTE $0x18 // sub r10, qword [rsp + 24] + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_113: + LONG $0x5e3b4566; BYTE $0x3e // cmp r11w, word [r14 + 62] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x5e3b4566; BYTE $0x3c // cmp r11w, word [r14 + 60] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x5e3b4566; BYTE $0x3a // cmp r11w, word [r14 + 58] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x5e3b4566; BYTE $0x38 // cmp r11w, word [r14 + 56] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x5e3b4566; BYTE $0x36 // cmp r11w, word [r14 + 54] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x5e3b4566; BYTE $0x34 // cmp r11w, word [r14 + 52] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x5e3b4566; BYTE $0x32 // cmp r11w, word [r14 + 50] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5e3b4566; BYTE $0x2e // cmp r11w, word [r14 + 46] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x5e3b4566; BYTE $0x2c // cmp r11w, word [r14 + 44] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x5e3b4566; BYTE $0x2a // cmp r11w, word [r14 + 42] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x5e3b4566; BYTE $0x28 // cmp r11w, word [r14 + 40] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x5e3b4566; BYTE $0x26 // cmp r11w, word [r14 + 38] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x5e3b4566; BYTE $0x24 // cmp r11w, word [r14 + 36] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x5e3b4566; BYTE $0x22 // cmp r11w, word [r14 + 34] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x5e3b4566; BYTE $0x1e // cmp r11w, word [r14 + 30] + LONG $0xd1950f41 // setne r9b + LONG $0x5e3b4566; BYTE $0x1c // cmp r11w, word [r14 + 28] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x5e3b4566; BYTE $0x1a // cmp r11w, word [r14 + 26] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x5e3b4566; BYTE $0x18 // cmp r11w, word [r14 + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x5e3b4566; BYTE $0x16 // cmp r11w, word [r14 + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x5e3b4566; BYTE $0x14 // cmp r11w, word [r14 + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x12 // cmp ax, word [r14 + 18] + LONG $0xd2950f41 // setne r10b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0e // cmp ax, word [r14 + 14] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0c // cmp ax, word [r14 + 12] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0a // cmp ax, word [r14 + 10] + LONG $0xd0950f41 // setne r8b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x08 // cmp ax, word [r14 + 8] + LONG $0xd7950f40 // setne dil + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x06 // cmp ax, word [r14 + 6] + LONG $0xd6950f40 // setne sil + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x04 // cmp ax, word [r14 + 4] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x063b4166 // cmp ax, word [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x02 // cmp ax, word [r14 + 2] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + LONG $0x24648b44; BYTE $0x10 // mov r12d, dword [rsp + 16] + LONG $0x663b4566; BYTE $0x10 // cmp r12w, word [r14 + 16] + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x10245c8b // mov ebx, dword [rsp + 16] + LONG $0x5e3b4166; BYTE $0x20 // cmp bx, word [r14 + 32] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x10245c8b // mov ebx, dword [rsp + 16] + LONG $0x5e3b4166; BYTE $0x30 // cmp bx, word [r14 + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xc000 // add al, al + LONG $0x98248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 152] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x05e0c041 // shl r8b, 5 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xc208 // or dl, al + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x24148841 // mov byte [r12], dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x000000c024940244 // add r10b, byte [rsp + 192] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x10 // mov r11d, dword [rsp + 16] + LONG $0x04e5c041 // shl r13b, 4 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe8 // or al, r13b + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x244c8845; BYTE $0x01 // mov byte [r12 + 1], r9b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x02 // mov byte [r12 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + WORD $0xd808 // or al, bl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x03 // mov byte [r12 + 3], al + LONG $0x40c68349 // add r14, 64 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_113 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + JMP LBB5_115 + +LBB5_122: + LONG $0x1eb70f44 // movzx r11d, word [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_126 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + +LBB5_124: + LONG $0x1e3b4566 // cmp r11w, word [r14] + LONG $0x02768d4d // lea r14, [r14 + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f44; BYTE $0x32 // movzx r9d, byte [rdx + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x323c8840 // mov byte [rdx + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_124 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_126: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_127 + LONG $0x08fa8349 // cmp r10, 8 + LONG $0x245c8944; BYTE $0x10 // mov dword [rsp + 16], r11d + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + JB LBB5_129 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24443948; BYTE $0x08 // cmp qword [rsp + 8], rax + JAE LBB5_132 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + WORD $0x394c; BYTE $0xf0 // cmp rax, r14 + JBE LBB5_132 + +LBB5_129: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + +LBB5_135: + LONG $0x24542b4c; BYTE $0x18 // sub r10, qword [rsp + 24] + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_136: + LONG $0x5e3b4566; BYTE $0x3e // cmp r11w, word [r14 + 62] + LONG $0x2454950f; BYTE $0x08 // setne byte [rsp + 8] + LONG $0x5e3b4566; BYTE $0x3c // cmp r11w, word [r14 + 60] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x5e3b4566; BYTE $0x3a // cmp r11w, word [r14 + 58] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x5e3b4566; BYTE $0x38 // cmp r11w, word [r14 + 56] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x5e3b4566; BYTE $0x36 // cmp r11w, word [r14 + 54] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x5e3b4566; BYTE $0x34 // cmp r11w, word [r14 + 52] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x5e3b4566; BYTE $0x32 // cmp r11w, word [r14 + 50] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x5e3b4566; BYTE $0x2e // cmp r11w, word [r14 + 46] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x5e3b4566; BYTE $0x2c // cmp r11w, word [r14 + 44] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x5e3b4566; BYTE $0x2a // cmp r11w, word [r14 + 42] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x5e3b4566; BYTE $0x28 // cmp r11w, word [r14 + 40] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x5e3b4566; BYTE $0x26 // cmp r11w, word [r14 + 38] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x5e3b4566; BYTE $0x24 // cmp r11w, word [r14 + 36] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x5e3b4566; BYTE $0x22 // cmp r11w, word [r14 + 34] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x5e3b4566; BYTE $0x1e // cmp r11w, word [r14 + 30] + LONG $0xd1950f41 // setne r9b + LONG $0x5e3b4566; BYTE $0x1c // cmp r11w, word [r14 + 28] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x5e3b4566; BYTE $0x1a // cmp r11w, word [r14 + 26] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x5e3b4566; BYTE $0x18 // cmp r11w, word [r14 + 24] + LONG $0xd5950f41 // setne r13b + LONG $0x5e3b4566; BYTE $0x16 // cmp r11w, word [r14 + 22] + LONG $0xd7950f41 // setne r15b + LONG $0x5e3b4566; BYTE $0x14 // cmp r11w, word [r14 + 20] + LONG $0xd3950f41 // setne r11b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x12 // cmp ax, word [r14 + 18] + LONG $0xd2950f41 // setne r10b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0e // cmp ax, word [r14 + 14] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0c // cmp ax, word [r14 + 12] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x0a // cmp ax, word [r14 + 10] + LONG $0xd0950f41 // setne r8b + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x08 // cmp ax, word [r14 + 8] + LONG $0xd7950f40 // setne dil + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x06 // cmp ax, word [r14 + 6] + LONG $0xd6950f40 // setne sil + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x04 // cmp ax, word [r14 + 4] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x063b4166 // cmp ax, word [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x1024448b // mov eax, dword [rsp + 16] + LONG $0x463b4166; BYTE $0x02 // cmp ax, word [r14 + 2] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + LONG $0x24648b44; BYTE $0x10 // mov r12d, dword [rsp + 16] + LONG $0x663b4566; BYTE $0x10 // cmp r12w, word [r14 + 16] + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x10245c8b // mov ebx, dword [rsp + 16] + LONG $0x5e3b4166; BYTE $0x20 // cmp bx, word [r14 + 32] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x10245c8b // mov ebx, dword [rsp + 16] + LONG $0x5e3b4166; BYTE $0x30 // cmp bx, word [r14 + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xc000 // add al, al + LONG $0x98248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 152] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x05e0c041 // shl r8b, 5 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xc208 // or dl, al + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x24148841 // mov byte [r12], dl + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + QUAD $0x000000c024940244 // add r10b, byte [rsp + 192] + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x245c8b44; BYTE $0x10 // mov r11d, dword [rsp + 16] + LONG $0x04e5c041 // shl r13b, 4 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe8 // or al, r13b + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x244c8845; BYTE $0x01 // mov byte [r12 + 1], r9b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x02 // mov byte [r12 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + WORD $0xd808 // or al, bl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x03 // mov byte [r12 + 3], al + LONG $0x40c68349 // add r14, 64 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_136 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + JMP LBB5_138 + +LBB5_158: + WORD $0x8b4c; BYTE $0x1e // mov r11, qword [rsi] + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_162 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + +LBB5_160: + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + LONG $0x08768d4d // lea r14, [r14 + 8] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x1cb60f41; BYTE $0x30 // movzx ebx, byte [r8 + rsi] + WORD $0xda30 // xor dl, bl + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3040; BYTE $0xdf // xor dil, bl + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_160 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_162: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_166 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + +LBB5_164: + LONG $0xf89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 248] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0xf09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 240] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0xe89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 232] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0xe09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 224] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0xd89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 216] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0xd09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 208] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0xc89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 200] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0xb89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 184] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0xb09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 176] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0xa89e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 168] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0xa09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 160] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x989e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 152] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x909e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 144] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x889e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 136] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x785e3b4d // cmp r11, qword [r14 + 120] + LONG $0xd0950f41 // setne r8b + LONG $0x705e3b4d // cmp r11, qword [r14 + 112] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x685e3b4d // cmp r11, qword [r14 + 104] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x605e3b4d // cmp r11, qword [r14 + 96] + LONG $0xd7950f40 // setne dil + LONG $0x585e3b4d // cmp r11, qword [r14 + 88] + LONG $0xd2950f41 // setne r10b + LONG $0x505e3b4d // cmp r11, qword [r14 + 80] + LONG $0xd1950f41 // setne r9b + LONG $0x485e3b4d // cmp r11, qword [r14 + 72] + LONG $0xd6950f40 // setne sil + LONG $0x385e3b4d // cmp r11, qword [r14 + 56] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x305e3b4d // cmp r11, qword [r14 + 48] + WORD $0x950f; BYTE $0xd3 // setne bl + LONG $0x285e3b4d // cmp r11, qword [r14 + 40] + WORD $0x950f; BYTE $0xd1 // setne cl + LONG $0x205e3b4d // cmp r11, qword [r14 + 32] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x185e3b4d // cmp r11, qword [r14 + 24] + LONG $0xd7950f41 // setne r15b + LONG $0x105e3b4d // cmp r11, qword [r14 + 16] + LONG $0xd5950f41 // setne r13b + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + QUAD $0x000000982494950f // setne byte [rsp + 152] + LONG $0x085e3b4d // cmp r11, qword [r14 + 8] + LONG $0xd4950f41 // setne r12b + LONG $0x405e3b4d // cmp r11, qword [r14 + 64] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x809e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 128] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0xc09e3b4d; WORD $0x0000; BYTE $0x00 // cmp r11, qword [r14 + 192] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + QUAD $0x0000009824a40244 // add r12b, byte [rsp + 152] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xef // or r15b, r13b + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xfa // or dl, r15b + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x24048841 // mov byte [r12], al + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e7c040 // shl dil, 4 + WORD $0x0844; BYTE $0xd7 // or dil, r10b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + QUAD $0x00000088248cb60f // movzx ecx, byte [rsp + 136] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x24448845; BYTE $0x01 // mov byte [r12 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x02 // mov byte [r12 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd008 // or al, dl + WORD $0xc808 // or al, cl + LONG $0x24448841; BYTE $0x03 // mov byte [r12 + 3], al + LONG $0x00c68149; WORD $0x0001; BYTE $0x00 // add r14, 256 + LONG $0x04c48349 // add r12, 4 + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + QUAD $0x000000a824848348; BYTE $0xff // add qword [rsp + 168], -1 + JNE LBB5_164 + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + +LBB5_166: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_168 + +LBB5_39: + WORD $0xff31 // xor edi, edi + JMP LBB5_40 + +LBB5_170: + LONG $0x1f578d4d // lea r10, [r15 + 31] + WORD $0x854d; BYTE $0xff // test r15, r15 + LONG $0xd7490f4d // cmovns r10, r15 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB5_174 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + +LBB5_172: + LONG $0x062e0f41 // ucomiss xmm0, dword [r14] + LONG $0x04768d4d // lea r14, [r14 + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x1cb60f41; BYTE $0x30 // movzx ebx, byte [r8 + rsi] + WORD $0xda30 // xor dl, bl + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3040; BYTE $0xdf // xor dil, bl + LONG $0x303c8841 // mov byte [r8 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB5_172 + LONG $0x24448348; WORD $0x0108 // add qword [rsp + 8], 1 + +LBB5_174: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20ff8349 // cmp r15, 32 + JL LBB5_175 + LONG $0x04fa8349 // cmp r10, 4 + JB LBB5_177 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24443948; BYTE $0x08 // cmp qword [rsp + 8], rax + JAE LBB5_180 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + WORD $0x394c; BYTE $0xf0 // cmp rax, r14 + JBE LBB5_180 + +LBB5_177: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + +LBB5_183: + LONG $0x245c894c; BYTE $0x08 // mov qword [rsp + 8], r11 + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + QUAD $0x000000a82494894c // mov qword [rsp + 168], r10 + WORD $0x294d; BYTE $0xc2 // sub r10, r8 + QUAD $0x000000982494894c // mov qword [rsp + 152], r10 + +LBB5_184: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + QUAD $0x000000c02494950f // setne byte [rsp + 192] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0950f41 // setne r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6950f41 // setne r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5950f41 // setne r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + LONG $0x2454950f; BYTE $0x68 // setne byte [rsp + 104] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454950f; BYTE $0x50 // setne byte [rsp + 80] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x950f; BYTE $0xd0 // setne al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3950f41 // setne r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + QUAD $0x000000902494950f // setne byte [rsp + 144] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x950f; BYTE $0xd2 // setne dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6950f40 // setne sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd7950f40 // setne dil + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2950f41 // setne r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4950f41 // setne r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + QUAD $0x000000882494950f // setne byte [rsp + 136] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd1950f41 // setne r9b + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454950f; BYTE $0x78 // setne byte [rsp + 120] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + QUAD $0x000000b02494950f // setne byte [rsp + 176] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + LONG $0x2454950f; BYTE $0x60 // setne byte [rsp + 96] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + LONG $0x2454950f; BYTE $0x70 // setne byte [rsp + 112] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454950f; BYTE $0x48 // setne byte [rsp + 72] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + QUAD $0x000000802494950f // setne byte [rsp + 128] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454950f; BYTE $0x58 // setne byte [rsp + 88] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7950f41 // setne r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454950f; BYTE $0x20 // setne byte [rsp + 32] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454950f; BYTE $0x30 // setne byte [rsp + 48] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454950f; BYTE $0x38 // setne byte [rsp + 56] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454950f; BYTE $0x18 // setne byte [rsp + 24] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454950f; BYTE $0x28 // setne byte [rsp + 40] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454950f; BYTE $0x40 // setne byte [rsp + 64] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + LONG $0x2454950f; BYTE $0x10 // setne byte [rsp + 16] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x950f; BYTE $0xd1 // setne cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000c024840244 // add r8b, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000008824b4b60f // movzx esi, byte [rsp + 136] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x78244402 // add al, byte [rsp + 120] + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x58 // movzx edi, byte [rsp + 88] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x10 // movzx edx, byte [rsp + 16] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24748948; BYTE $0x08 // mov qword [rsp + 8], rsi + QUAD $0x0000009824848348; BYTE $0xff // add qword [rsp + 152], -1 + JNE LBB5_184 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + QUAD $0x000000a824948b4c // mov r10, qword [rsp + 168] + JMP LBB5_186 + +LBB5_9: + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + +LBB5_91: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_94 + WORD $0xf631 // xor esi, esi + JMP LBB5_97 + +LBB5_61: + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + +LBB5_72: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_75 + WORD $0xf631 // xor esi, esi + JMP LBB5_78 + +LBB5_104: + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + +LBB5_115: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JE LBB5_117 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xf631 // xor esi, esi + +LBB5_121: + LONG $0x1e3b4566 // cmp r11w, word [r14] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68348 // add rsi, 2 + LONG $0x5e3b4566; BYTE $0x02 // cmp r11w, word [r14 + 2] + LONG $0x04768d4d // lea r14, [r14 + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB5_121 + JMP LBB5_118 + +LBB5_127: + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + +LBB5_138: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_140 + +LBB5_117: + WORD $0xf631 // xor esi, esi + JMP LBB5_118 + +LBB5_175: + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + +LBB5_186: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xfa // cmp r10, r15 + JGE LBB5_199 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xfa // add r10, r15 + JNE LBB5_191 + WORD $0xf631 // xor esi, esi + JMP LBB5_189 + +LBB5_154: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xff31 // xor edi, edi + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + +LBB5_155: + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xd0 // xor al, r10b + WORD $0xc220 // and dl, al + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + LONG $0x37148841 // mov byte [r15 + rsi], dl + LONG $0x02c78348 // add rdi, 2 + LONG $0x045e3b45 // cmp r11d, dword [r14 + 4] + LONG $0x08768d4d // lea r14, [r14 + 8] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd030 // xor al, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0xd330 // xor bl, dl + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB5_155 + +LBB5_24: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + WORD $0x3b45; BYTE $0x1e // cmp r11d, dword [r14] + JMP LBB5_197 + +LBB5_94: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x00000080249c8b4c // mov r11, qword [rsp + 128] + +LBB5_95: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06343a41 // cmp sil, byte [r14 + rax] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06743a41; BYTE $0x01 // cmp sil, byte [r14 + rax + 1] + LONG $0x02708d48 // lea rsi, [rax + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB5_95 + WORD $0x0149; BYTE $0xf6 // add r14, rsi + +LBB5_97: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + LONG $0x4024448a // mov al, byte [rsp + 64] + WORD $0x3a41; BYTE $0x06 // cmp al, byte [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + JMP LBB5_80 + +LBB5_75: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + +LBB5_76: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2474b60f; BYTE $0x28 // movzx esi, byte [rsp + 40] + LONG $0x06343a41 // cmp sil, byte [r14 + rax] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06743a41; BYTE $0x01 // cmp sil, byte [r14 + rax + 1] + LONG $0x02708d48 // lea rsi, [rax + 2] + WORD $0x950f; BYTE $0xd3 // setne bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB5_76 + WORD $0x0149; BYTE $0xf6 // add r14, rsi + +LBB5_78: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + LONG $0x2824448a // mov al, byte [rsp + 40] + WORD $0x3a41; BYTE $0x06 // cmp al, byte [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + +LBB5_80: + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + JMP LBB5_198 + +LBB5_193: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xff31 // xor edi, edi + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + +LBB5_194: + LONG $0x2e0f4166; BYTE $0x06 // ucomisd xmm0, qword [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x33 // movzx r10d, byte [r11 + rsi] + WORD $0x3044; BYTE $0xd0 // xor al, r10b + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + LONG $0x33148841 // mov byte [r11 + rsi], dl + LONG $0x02c78348 // add rdi, 2 + LONG $0x2e0f4166; WORD $0x0846 // ucomisd xmm0, qword [r14 + 8] + LONG $0x10768d4d // lea r14, [r14 + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd030 // xor al, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0xd330 // xor bl, dl + LONG $0x331c8841 // mov byte [r11 + rsi], bl + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB5_194 + +LBB5_195: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + LONG $0x2e0f4166; BYTE $0x06 // ucomisd xmm0, qword [r14] + JMP LBB5_197 + +LBB5_168: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xff31 // xor edi, edi + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + +LBB5_169: + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xd0 // xor al, r10b + WORD $0xc220 // and dl, al + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + LONG $0x37148841 // mov byte [r15 + rsi], dl + LONG $0x02c78348 // add rdi, 2 + LONG $0x085e3b4d // cmp r11, qword [r14 + 8] + LONG $0x10768d4d // lea r14, [r14 + 16] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0xd030 // xor al, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0xd330 // xor bl, dl + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x3949; BYTE $0xf9 // cmp r9, rdi + JNE LBB5_169 + +LBB5_40: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + WORD $0x3b4d; BYTE $0x1e // cmp r11, qword [r14] + +LBB5_197: + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + LONG $0x10348a41 // mov sil, byte [r8 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + +LBB5_198: + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB5_199 + +LBB5_140: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xf631 // xor esi, esi + +LBB5_141: + LONG $0x1e3b4566 // cmp r11w, word [r14] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68348 // add rsi, 2 + LONG $0x5e3b4566; BYTE $0x02 // cmp r11w, word [r14 + 2] + LONG $0x04768d4d // lea r14, [r14 + 4] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB5_141 + +LBB5_118: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + LONG $0x1e3b4566 // cmp r11w, word [r14] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB5_199 + +LBB5_191: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xde // mov r14, r11 + +LBB5_192: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x950f; BYTE $0xd2 // setne dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + LONG $0xd1950f41 // setne r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB5_192 + +LBB5_189: + LONG $0x01c0f641 // test r8b, 1 + JE LBB5_199 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x950f; BYTE $0xd0 // setne al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x133c8a41 // mov dil, byte [r11 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x131c8841 // mov byte [r11 + rdx], bl + +LBB5_199: + MOVQ 288(SP), SP + RET + +LBB5_85: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + QUAD $0x0000011024848948 // mov qword [rsp + 272], rax + QUAD $0x000000d82494894c // mov qword [rsp + 216], r10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + WORD $0xc031 // xor eax, eax + +LBB5_86: + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + LONG $0x05e0c148 // shl rax, 5 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x8949; BYTE $0xc5 // mov r13, rax + WORD $0x8949; BYTE $0xc0 // mov r8, rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x0cb60f41; BYTE $0x06 // movzx ecx, byte [r14 + rax] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x4cb60f41; WORD $0x0106 // movzx ecx, byte [r14 + rax + 1] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x4cb60f41; WORD $0x0206 // movzx ecx, byte [r14 + rax + 2] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x4cb60f41; WORD $0x0306 // movzx ecx, byte [r14 + rax + 3] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x4cb60f41; WORD $0x0406 // movzx ecx, byte [r14 + rax + 4] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x4cb60f41; WORD $0x0506 // movzx ecx, byte [r14 + rax + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x4cb60f41; WORD $0x0606 // movzx ecx, byte [r14 + rax + 6] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x4cb60f41; WORD $0x0706 // movzx ecx, byte [r14 + rax + 7] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x4cb60f41; WORD $0x0806 // movzx ecx, byte [r14 + rax + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00010024847f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm0 + LONG $0x4cb60f41; WORD $0x0906 // movzx ecx, byte [r14 + rax + 9] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x4cb60f41; WORD $0x0a06 // movzx ecx, byte [r14 + rax + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x4cb60f41; WORD $0x0b06 // movzx ecx, byte [r14 + rax + 11] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x4cb60f41; WORD $0x0c06 // movzx ecx, byte [r14 + rax + 12] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x4cb60f41; WORD $0x0d06 // movzx ecx, byte [r14 + rax + 13] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x4cb60f41; WORD $0x0e06 // movzx ecx, byte [r14 + rax + 14] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x4cb60f41; WORD $0x0f06 // movzx ecx, byte [r14 + rax + 15] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x20cf8348 // or rdi, 32 + LONG $0x247c8948; BYTE $0x18 // mov qword [rsp + 24], rdi + LONG $0x40c98349 // or r9, 64 + LONG $0x244c894c; BYTE $0x48 // mov qword [rsp + 72], r9 + LONG $0x60cb8348 // or rbx, 96 + LONG $0x245c8948; BYTE $0x20 // mov qword [rsp + 32], rbx + LONG $0x80cf8149; WORD $0x0000; BYTE $0x00 // or r15, 128 + LONG $0x247c894c; BYTE $0x30 // mov qword [rsp + 48], r15 + LONG $0xa0ca8148; WORD $0x0000; BYTE $0x00 // or rdx, 160 + LONG $0xc0cd8149; WORD $0x0000; BYTE $0x00 // or r13, 192 + LONG $0xe0c88149; WORD $0x0000; BYTE $0x00 // or r8, 224 + LONG $0x00cc8149; WORD $0x0001; BYTE $0x00 // or r12, 256 + LONG $0x20ca8149; WORD $0x0001; BYTE $0x00 // or r10, 288 + LONG $0x40cb8149; WORD $0x0001; BYTE $0x00 // or r11, 320 + LONG $0x60ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 352 + LONG $0x24748948; BYTE $0x58 // mov qword [rsp + 88], rsi + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + LONG $0x80ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 384 + LONG $0x24748948; BYTE $0x38 // mov qword [rsp + 56], rsi + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + LONG $0xe0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 480 + LONG $0x244c8948; BYTE $0x10 // mov qword [rsp + 16], rcx + QUAD $0x013e24203a0f4166 // pinsrb xmm4, byte [r14 + rdi], 1 + QUAD $0x020e24203a0f4366 // pinsrb xmm4, byte [r14 + r9], 2 + QUAD $0x031e24203a0f4166 // pinsrb xmm4, byte [r14 + rbx], 3 + QUAD $0x043e24203a0f4366 // pinsrb xmm4, byte [r14 + r15], 4 + WORD $0x8948; BYTE $0xd7 // mov rdi, rdx + QUAD $0x051624203a0f4166 // pinsrb xmm4, byte [r14 + rdx], 5 + WORD $0x894c; BYTE $0xea // mov rdx, r13 + QUAD $0x0000009824ac894c // mov qword [rsp + 152], r13 + QUAD $0x062e24203a0f4366 // pinsrb xmm4, byte [r14 + r13], 6 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + QUAD $0x070624203a0f4366 // pinsrb xmm4, byte [r14 + r8], 7 + WORD $0x894d; BYTE $0xe0 // mov r8, r12 + QUAD $0x082624203a0f4366 // pinsrb xmm4, byte [r14 + r12], 8 + QUAD $0x091624203a0f4366 // pinsrb xmm4, byte [r14 + r10], 9 + LONG $0x245c894c; BYTE $0x70 // mov qword [rsp + 112], r11 + QUAD $0x0a1e24203a0f4366 // pinsrb xmm4, byte [r14 + r11], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0b0624203a0f4166 // pinsrb xmm4, byte [r14 + rax], 11 + QUAD $0x0c3624203a0f4166 // pinsrb xmm4, byte [r14 + rsi], 12 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0d0e24203a0f4166 // pinsrb xmm4, byte [r14 + rcx], 13 + LONG $0x24648b4c; BYTE $0x28 // mov r12, qword [rsp + 40] + QUAD $0x0e2624203a0f4366 // pinsrb xmm4, byte [r14 + r12], 14 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0f1e24203a0f4166 // pinsrb xmm4, byte [r14 + rbx], 15 + LONG $0x247c8b4c; BYTE $0x18 // mov r15, qword [rsp + 24] + QUAD $0x013e5c203a0f4366; BYTE $0x01 // pinsrb xmm3, byte [r14 + r15 + 1], 1 + QUAD $0x010e5c203a0f4366; BYTE $0x02 // pinsrb xmm3, byte [r14 + r9 + 1], 2 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x011e5c203a0f4166; BYTE $0x03 // pinsrb xmm3, byte [r14 + rbx + 1], 3 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x010e5c203a0f4366; BYTE $0x04 // pinsrb xmm3, byte [r14 + r9 + 1], 4 + QUAD $0x013e5c203a0f4166; BYTE $0x05 // pinsrb xmm3, byte [r14 + rdi + 1], 5 + LONG $0x247c8948; BYTE $0x60 // mov qword [rsp + 96], rdi + QUAD $0x01165c203a0f4166; BYTE $0x06 // pinsrb xmm3, byte [r14 + rdx + 1], 6 + QUAD $0x012e5c203a0f4366; BYTE $0x07 // pinsrb xmm3, byte [r14 + r13 + 1], 7 + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + QUAD $0x01065c203a0f4366; BYTE $0x08 // pinsrb xmm3, byte [r14 + r8 + 1], 8 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + QUAD $0x01165c203a0f4366; BYTE $0x09 // pinsrb xmm3, byte [r14 + r10 + 1], 9 + WORD $0x894c; BYTE $0xd2 // mov rdx, r10 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x011e5c203a0f4366; BYTE $0x0a // pinsrb xmm3, byte [r14 + r11 + 1], 10 + QUAD $0x01065c203a0f4166; BYTE $0x0b // pinsrb xmm3, byte [r14 + rax + 1], 11 + QUAD $0x01365c203a0f4166; BYTE $0x0c // pinsrb xmm3, byte [r14 + rsi + 1], 12 + QUAD $0x010e5c203a0f4166; BYTE $0x0d // pinsrb xmm3, byte [r14 + rcx + 1], 13 + QUAD $0x01265c203a0f4366; BYTE $0x0e // pinsrb xmm3, byte [r14 + r12 + 1], 14 + QUAD $0x0000b0248c6f0f66; BYTE $0x00 // movdqa xmm1, oword [rsp + 176] + LONG $0xe1740f66 // pcmpeqb xmm4, xmm1 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x01065c203a0f4166; BYTE $0x0f // pinsrb xmm3, byte [r14 + rax + 1], 15 + LONG $0xd9740f66 // pcmpeqb xmm3, xmm1 + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xdcfc0f66 // paddb xmm3, xmm4 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x74b60f41; WORD $0x1006 // movzx esi, byte [r14 + rax + 16] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x02266c203a0f4366; BYTE $0x01 // pinsrb xmm5, byte [r14 + r12 + 2], 1 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x020e6c203a0f4166; BYTE $0x02 // pinsrb xmm5, byte [r14 + rcx + 2], 2 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x023e6c203a0f4366; BYTE $0x03 // pinsrb xmm5, byte [r14 + r15 + 2], 3 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x020e6c203a0f4366; BYTE $0x04 // pinsrb xmm5, byte [r14 + r9 + 2], 4 + QUAD $0x023e6c203a0f4166; BYTE $0x05 // pinsrb xmm5, byte [r14 + rdi + 2], 5 + QUAD $0x0000009824948b4c // mov r10, qword [rsp + 152] + QUAD $0x02166c203a0f4366; BYTE $0x06 // pinsrb xmm5, byte [r14 + r10 + 2], 6 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + QUAD $0x021e6c203a0f4166; BYTE $0x07 // pinsrb xmm5, byte [r14 + rbx + 2], 7 + LONG $0x246c894c; BYTE $0x68 // mov qword [rsp + 104], r13 + QUAD $0x022e6c203a0f4366; BYTE $0x08 // pinsrb xmm5, byte [r14 + r13 + 2], 8 + QUAD $0x02166c203a0f4166; BYTE $0x09 // pinsrb xmm5, byte [r14 + rdx + 2], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x023e6c203a0f4166; BYTE $0x0a // pinsrb xmm5, byte [r14 + rdi + 2], 10 + LONG $0x24748b48; BYTE $0x58 // mov rsi, qword [rsp + 88] + QUAD $0x02366c203a0f4166; BYTE $0x0b // pinsrb xmm5, byte [r14 + rsi + 2], 11 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x02066c203a0f4166; BYTE $0x0c // pinsrb xmm5, byte [r14 + rax + 2], 12 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x021e6c203a0f4166; BYTE $0x0d // pinsrb xmm5, byte [r14 + rbx + 2], 13 + LONG $0x244c8b4c; BYTE $0x28 // mov r9, qword [rsp + 40] + QUAD $0x020e6c203a0f4366; BYTE $0x0e // pinsrb xmm5, byte [r14 + r9 + 2], 14 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x02166c203a0f4166; BYTE $0x0f // pinsrb xmm5, byte [r14 + rdx + 2], 15 + QUAD $0x03267c203a0f4366; BYTE $0x01 // pinsrb xmm7, byte [r14 + r12 + 3], 1 + QUAD $0x030e7c203a0f4166; BYTE $0x02 // pinsrb xmm7, byte [r14 + rcx + 3], 2 + QUAD $0x033e7c203a0f4366; BYTE $0x03 // pinsrb xmm7, byte [r14 + r15 + 3], 3 + QUAD $0x031e7c203a0f4366; BYTE $0x04 // pinsrb xmm7, byte [r14 + r11 + 3], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x03067c203a0f4166; BYTE $0x05 // pinsrb xmm7, byte [r14 + rax + 3], 5 + QUAD $0x03167c203a0f4366; BYTE $0x06 // pinsrb xmm7, byte [r14 + r10 + 3], 6 + QUAD $0x03067c203a0f4366; BYTE $0x07 // pinsrb xmm7, byte [r14 + r8 + 3], 7 + QUAD $0x032e7c203a0f4366; BYTE $0x08 // pinsrb xmm7, byte [r14 + r13 + 3], 8 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x03067c203a0f4166; BYTE $0x09 // pinsrb xmm7, byte [r14 + rax + 3], 9 + QUAD $0x033e7c203a0f4166; BYTE $0x0a // pinsrb xmm7, byte [r14 + rdi + 3], 10 + QUAD $0x03367c203a0f4166; BYTE $0x0b // pinsrb xmm7, byte [r14 + rsi + 3], 11 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x03067c203a0f4166; BYTE $0x0c // pinsrb xmm7, byte [r14 + rax + 3], 12 + QUAD $0x031e7c203a0f4166; BYTE $0x0d // pinsrb xmm7, byte [r14 + rbx + 3], 13 + QUAD $0x030e7c203a0f4366; BYTE $0x0e // pinsrb xmm7, byte [r14 + r9 + 3], 14 + QUAD $0x03167c203a0f4166; BYTE $0x0f // pinsrb xmm7, byte [r14 + rdx + 3], 15 + QUAD $0x04264c203a0f4766; BYTE $0x01 // pinsrb xmm9, byte [r14 + r12 + 4], 1 + QUAD $0x040e4c203a0f4566; BYTE $0x02 // pinsrb xmm9, byte [r14 + rcx + 4], 2 + QUAD $0x043e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 4], 3 + QUAD $0x041e4c203a0f4766; BYTE $0x04 // pinsrb xmm9, byte [r14 + r11 + 4], 4 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x04264c203a0f4766; BYTE $0x05 // pinsrb xmm9, byte [r14 + r12 + 4], 5 + QUAD $0x04164c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r10 + 4], 6 + QUAD $0x04064c203a0f4766; BYTE $0x07 // pinsrb xmm9, byte [r14 + r8 + 4], 7 + QUAD $0x042e4c203a0f4766; BYTE $0x08 // pinsrb xmm9, byte [r14 + r13 + 4], 8 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x040e4c203a0f4566; BYTE $0x09 // pinsrb xmm9, byte [r14 + rcx + 4], 9 + QUAD $0x043e4c203a0f4566; BYTE $0x0a // pinsrb xmm9, byte [r14 + rdi + 4], 10 + QUAD $0x04364c203a0f4566; BYTE $0x0b // pinsrb xmm9, byte [r14 + rsi + 4], 11 + QUAD $0x04064c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rax + 4], 12 + QUAD $0x041e4c203a0f4566; BYTE $0x0d // pinsrb xmm9, byte [r14 + rbx + 4], 13 + QUAD $0x040e4c203a0f4766; BYTE $0x0e // pinsrb xmm9, byte [r14 + r9 + 4], 14 + QUAD $0x04164c203a0f4566; BYTE $0x0f // pinsrb xmm9, byte [r14 + rdx + 4], 15 + LONG $0xe9740f66 // pcmpeqb xmm5, xmm1 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xf9740f66 // pcmpeqb xmm7, xmm1 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xf8df0f66 // pandn xmm7, xmm0 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + LONG $0x74b60f41; WORD $0x1116 // movzx esi, byte [r14 + rdx + 17] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x740f4466; BYTE $0xc9 // pcmpeqb xmm9, xmm1 + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xdf0f4466; BYTE $0xc8 // pandn xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0x74b60f41; WORD $0x1216 // movzx esi, byte [r14 + rdx + 18] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xeb0f4466; BYTE $0xcb // por xmm9, xmm3 + LONG $0x74b60f41; WORD $0x1316 // movzx esi, byte [r14 + rdx + 19] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x051654203a0f4166; BYTE $0x01 // pinsrb xmm2, byte [r14 + rdx + 5], 1 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x053e54203a0f4166; BYTE $0x02 // pinsrb xmm2, byte [r14 + rdi + 5], 2 + QUAD $0x053e54203a0f4366; BYTE $0x03 // pinsrb xmm2, byte [r14 + r15 + 5], 3 + QUAD $0x051e54203a0f4366; BYTE $0x04 // pinsrb xmm2, byte [r14 + r11 + 5], 4 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x052654203a0f4366; BYTE $0x05 // pinsrb xmm2, byte [r14 + r12 + 5], 5 + QUAD $0x051654203a0f4366; BYTE $0x06 // pinsrb xmm2, byte [r14 + r10 + 5], 6 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + QUAD $0x050654203a0f4366; BYTE $0x07 // pinsrb xmm2, byte [r14 + r8 + 5], 7 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x051e54203a0f4366; BYTE $0x08 // pinsrb xmm2, byte [r14 + r11 + 5], 8 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x052654203a0f4366; BYTE $0x09 // pinsrb xmm2, byte [r14 + r12 + 5], 9 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x053654203a0f4166; BYTE $0x0a // pinsrb xmm2, byte [r14 + rsi + 5], 10 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x050654203a0f4366; BYTE $0x0b // pinsrb xmm2, byte [r14 + r8 + 5], 11 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + QUAD $0x050654203a0f4166; BYTE $0x0c // pinsrb xmm2, byte [r14 + rax + 5], 12 + QUAD $0x051e54203a0f4166; BYTE $0x0d // pinsrb xmm2, byte [r14 + rbx + 5], 13 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x053e54203a0f4366; BYTE $0x0e // pinsrb xmm2, byte [r14 + r15 + 5], 14 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x053e54203a0f4366; BYTE $0x0f // pinsrb xmm2, byte [r14 + r15 + 5], 15 + QUAD $0x061644203a0f4566; BYTE $0x01 // pinsrb xmm8, byte [r14 + rdx + 6], 1 + QUAD $0x063e44203a0f4566; BYTE $0x02 // pinsrb xmm8, byte [r14 + rdi + 6], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x060644203a0f4566; BYTE $0x03 // pinsrb xmm8, byte [r14 + rax + 6], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x060644203a0f4566; BYTE $0x04 // pinsrb xmm8, byte [r14 + rax + 6], 4 + QUAD $0x060e44203a0f4766; BYTE $0x05 // pinsrb xmm8, byte [r14 + r9 + 6], 5 + QUAD $0x061644203a0f4766; BYTE $0x06 // pinsrb xmm8, byte [r14 + r10 + 6], 6 + QUAD $0x062e44203a0f4766; BYTE $0x07 // pinsrb xmm8, byte [r14 + r13 + 6], 7 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x0000008824ac894c // mov qword [rsp + 136], r13 + QUAD $0x061e44203a0f4766; BYTE $0x08 // pinsrb xmm8, byte [r14 + r11 + 6], 8 + QUAD $0x062644203a0f4766; BYTE $0x09 // pinsrb xmm8, byte [r14 + r12 + 6], 9 + QUAD $0x063644203a0f4566; BYTE $0x0a // pinsrb xmm8, byte [r14 + rsi + 6], 10 + QUAD $0x060644203a0f4766; BYTE $0x0b // pinsrb xmm8, byte [r14 + r8 + 6], 11 + QUAD $0x060e44203a0f4566; BYTE $0x0c // pinsrb xmm8, byte [r14 + rcx + 6], 12 + QUAD $0x061e44203a0f4566; BYTE $0x0d // pinsrb xmm8, byte [r14 + rbx + 6], 13 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x062e44203a0f4766; BYTE $0x0e // pinsrb xmm8, byte [r14 + r13 + 6], 14 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + QUAD $0x063e44203a0f4766; BYTE $0x0f // pinsrb xmm8, byte [r14 + r15 + 6], 15 + QUAD $0x071674203a0f4566; BYTE $0x01 // pinsrb xmm14, byte [r14 + rdx + 7], 1 + QUAD $0x073e74203a0f4566; BYTE $0x02 // pinsrb xmm14, byte [r14 + rdi + 7], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x070674203a0f4566; BYTE $0x03 // pinsrb xmm14, byte [r14 + rax + 7], 3 + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x071e74203a0f4766; BYTE $0x04 // pinsrb xmm14, byte [r14 + r11 + 7], 4 + QUAD $0x070e74203a0f4766; BYTE $0x05 // pinsrb xmm14, byte [r14 + r9 + 7], 5 + QUAD $0x00000098248c8b4c // mov r9, qword [rsp + 152] + QUAD $0x070e74203a0f4766; BYTE $0x06 // pinsrb xmm14, byte [r14 + r9 + 7], 6 + QUAD $0x071674203a0f4766; BYTE $0x07 // pinsrb xmm14, byte [r14 + r10 + 7], 7 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x070674203a0f4566; BYTE $0x08 // pinsrb xmm14, byte [r14 + rax + 7], 8 + QUAD $0x072674203a0f4766; BYTE $0x09 // pinsrb xmm14, byte [r14 + r12 + 7], 9 + QUAD $0x073674203a0f4566; BYTE $0x0a // pinsrb xmm14, byte [r14 + rsi + 7], 10 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x070674203a0f4566; BYTE $0x0b // pinsrb xmm14, byte [r14 + rax + 7], 11 + QUAD $0x070e74203a0f4566; BYTE $0x0c // pinsrb xmm14, byte [r14 + rcx + 7], 12 + QUAD $0x071e74203a0f4566; BYTE $0x0d // pinsrb xmm14, byte [r14 + rbx + 7], 13 + QUAD $0x072e74203a0f4766; BYTE $0x0e // pinsrb xmm14, byte [r14 + r13 + 7], 14 + LONG $0x6f0f4166; BYTE $0xce // movdqa xmm1, xmm14 + QUAD $0x00b024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0xd0df0f66 // pandn xmm2, xmm0 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xdf0f4466; BYTE $0xc0 // pandn xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + LONG $0x74b60f43; WORD $0x1416 // movzx esi, byte [r14 + r10 + 20] + LONG $0xde6e0f66 // movd xmm3, esi + QUAD $0x073e4c203a0f4366; BYTE $0x0f // pinsrb xmm1, byte [r14 + r15 + 7], 15 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xc8df0f66 // pandn xmm1, xmm0 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + LONG $0x74b60f43; WORD $0x1516 // movzx esi, byte [r14 + r10 + 21] + LONG $0xd66e0f66 // movd xmm2, esi + QUAD $0x00010024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 256] + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x080e44203a0f4166; BYTE $0x01 // pinsrb xmm0, byte [r14 + rcx + 8], 1 + QUAD $0x083e44203a0f4166; BYTE $0x02 // pinsrb xmm0, byte [r14 + rdi + 8], 2 + WORD $0x8949; BYTE $0xd5 // mov r13, rdx + QUAD $0x081644203a0f4166; BYTE $0x03 // pinsrb xmm0, byte [r14 + rdx + 8], 3 + QUAD $0x081e44203a0f4366; BYTE $0x04 // pinsrb xmm0, byte [r14 + r11 + 8], 4 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x080644203a0f4366; BYTE $0x05 // pinsrb xmm0, byte [r14 + r8 + 8], 5 + QUAD $0x080e44203a0f4366; BYTE $0x06 // pinsrb xmm0, byte [r14 + r9 + 8], 6 + WORD $0x894d; BYTE $0xcf // mov r15, r9 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x083e44203a0f4166; BYTE $0x07 // pinsrb xmm0, byte [r14 + rdi + 8], 7 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x081e44203a0f4166; BYTE $0x08 // pinsrb xmm0, byte [r14 + rbx + 8], 8 + QUAD $0x082644203a0f4366; BYTE $0x09 // pinsrb xmm0, byte [r14 + r12 + 8], 9 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x083644203a0f4166; BYTE $0x0a // pinsrb xmm0, byte [r14 + rsi + 8], 10 + QUAD $0x080644203a0f4166; BYTE $0x0b // pinsrb xmm0, byte [r14 + rax + 8], 11 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x080644203a0f4166; BYTE $0x0c // pinsrb xmm0, byte [r14 + rax + 8], 12 + LONG $0x244c8b4c; BYTE $0x78 // mov r9, qword [rsp + 120] + QUAD $0x080e44203a0f4366; BYTE $0x0d // pinsrb xmm0, byte [r14 + r9 + 8], 13 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x081e44203a0f4366; BYTE $0x0e // pinsrb xmm0, byte [r14 + r11 + 8], 14 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x083644203a0f4166; BYTE $0x0f // pinsrb xmm0, byte [r14 + rsi + 8], 15 + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + QUAD $0x000100248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm1 + LONG $0x74b60f43; WORD $0x1616 // movzx esi, byte [r14 + r10 + 22] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x090e5c203a0f4566; BYTE $0x01 // pinsrb xmm11, byte [r14 + rcx + 9], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x09065c203a0f4566; BYTE $0x02 // pinsrb xmm11, byte [r14 + rax + 9], 2 + QUAD $0x092e5c203a0f4766; BYTE $0x03 // pinsrb xmm11, byte [r14 + r13 + 9], 3 + QUAD $0x09165c203a0f4566; BYTE $0x04 // pinsrb xmm11, byte [r14 + rdx + 9], 4 + QUAD $0x09065c203a0f4766; BYTE $0x05 // pinsrb xmm11, byte [r14 + r8 + 9], 5 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + QUAD $0x093e5c203a0f4766; BYTE $0x06 // pinsrb xmm11, byte [r14 + r15 + 9], 6 + QUAD $0x093e5c203a0f4566; BYTE $0x07 // pinsrb xmm11, byte [r14 + rdi + 9], 7 + WORD $0x8949; BYTE $0xff // mov r15, rdi + QUAD $0x091e5c203a0f4566; BYTE $0x08 // pinsrb xmm11, byte [r14 + rbx + 9], 8 + QUAD $0x09265c203a0f4766; BYTE $0x09 // pinsrb xmm11, byte [r14 + r12 + 9], 9 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x09365c203a0f4566; BYTE $0x0a // pinsrb xmm11, byte [r14 + rsi + 9], 10 + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + QUAD $0x09165c203a0f4566; BYTE $0x0b // pinsrb xmm11, byte [r14 + rdx + 9], 11 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x093e5c203a0f4566; BYTE $0x0c // pinsrb xmm11, byte [r14 + rdi + 9], 12 + QUAD $0x090e5c203a0f4766; BYTE $0x0d // pinsrb xmm11, byte [r14 + r9 + 9], 13 + QUAD $0x091e5c203a0f4766; BYTE $0x0e // pinsrb xmm11, byte [r14 + r11 + 9], 14 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x09065c203a0f4766; BYTE $0x0f // pinsrb xmm11, byte [r14 + r8 + 9], 15 + QUAD $0x0a0e64203a0f4566; BYTE $0x01 // pinsrb xmm12, byte [r14 + rcx + 10], 1 + QUAD $0x0a0664203a0f4566; BYTE $0x02 // pinsrb xmm12, byte [r14 + rax + 10], 2 + QUAD $0x0a2e64203a0f4766; BYTE $0x03 // pinsrb xmm12, byte [r14 + r13 + 10], 3 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0a1e64203a0f4566; BYTE $0x04 // pinsrb xmm12, byte [r14 + rbx + 10], 4 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0a2e64203a0f4766; BYTE $0x05 // pinsrb xmm12, byte [r14 + r13 + 10], 5 + QUAD $0x0a1664203a0f4766; BYTE $0x06 // pinsrb xmm12, byte [r14 + r10 + 10], 6 + QUAD $0x0a3e64203a0f4766; BYTE $0x07 // pinsrb xmm12, byte [r14 + r15 + 10], 7 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0a1e64203a0f4566; BYTE $0x08 // pinsrb xmm12, byte [r14 + rbx + 10], 8 + QUAD $0x0a2664203a0f4766; BYTE $0x09 // pinsrb xmm12, byte [r14 + r12 + 10], 9 + QUAD $0x0a3664203a0f4566; BYTE $0x0a // pinsrb xmm12, byte [r14 + rsi + 10], 10 + QUAD $0x0a1664203a0f4566; BYTE $0x0b // pinsrb xmm12, byte [r14 + rdx + 10], 11 + QUAD $0x0a3e64203a0f4566; BYTE $0x0c // pinsrb xmm12, byte [r14 + rdi + 10], 12 + QUAD $0x0a0e64203a0f4766; BYTE $0x0d // pinsrb xmm12, byte [r14 + r9 + 10], 13 + QUAD $0x0a1e64203a0f4766; BYTE $0x0e // pinsrb xmm12, byte [r14 + r11 + 10], 14 + QUAD $0x0a0664203a0f4766; BYTE $0x0f // pinsrb xmm12, byte [r14 + r8 + 10], 15 + QUAD $0x0b0e6c203a0f4566; BYTE $0x01 // pinsrb xmm13, byte [r14 + rcx + 11], 1 + QUAD $0x0b066c203a0f4566; BYTE $0x02 // pinsrb xmm13, byte [r14 + rax + 11], 2 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0b066c203a0f4566; BYTE $0x03 // pinsrb xmm13, byte [r14 + rax + 11], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0b066c203a0f4566; BYTE $0x04 // pinsrb xmm13, byte [r14 + rax + 11], 4 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0b066c203a0f4566; BYTE $0x05 // pinsrb xmm13, byte [r14 + rax + 11], 5 + QUAD $0x0b166c203a0f4766; BYTE $0x06 // pinsrb xmm13, byte [r14 + r10 + 11], 6 + QUAD $0x0b3e6c203a0f4766; BYTE $0x07 // pinsrb xmm13, byte [r14 + r15 + 11], 7 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0b2e6c203a0f4766; BYTE $0x08 // pinsrb xmm13, byte [r14 + r13 + 11], 8 + QUAD $0x0b266c203a0f4766; BYTE $0x09 // pinsrb xmm13, byte [r14 + r12 + 11], 9 + QUAD $0x0b366c203a0f4566; BYTE $0x0a // pinsrb xmm13, byte [r14 + rsi + 11], 10 + QUAD $0x0b166c203a0f4566; BYTE $0x0b // pinsrb xmm13, byte [r14 + rdx + 11], 11 + QUAD $0x0b3e6c203a0f4566; BYTE $0x0c // pinsrb xmm13, byte [r14 + rdi + 11], 12 + QUAD $0x0b0e6c203a0f4766; BYTE $0x0d // pinsrb xmm13, byte [r14 + r9 + 11], 13 + QUAD $0x0b1e6c203a0f4766; BYTE $0x0e // pinsrb xmm13, byte [r14 + r11 + 11], 14 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x0b066c203a0f4766; BYTE $0x0f // pinsrb xmm13, byte [r14 + r8 + 11], 15 + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001009ddf0f4466; BYTE $0x00 // pandn xmm11, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xfc0f4466; BYTE $0xd8 // paddb xmm11, xmm0 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + LONG $0x74b60f41; WORD $0x171e // movzx esi, byte [r14 + rbx + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x000110a5df0f4466; BYTE $0x00 // pandn xmm12, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x74b60f41; WORD $0x181e // movzx esi, byte [r14 + rbx + 24] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x00e0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 224] + QUAD $0x0c0e4c203a0f4566; BYTE $0x01 // pinsrb xmm9, byte [r14 + rcx + 12], 1 + LONG $0x24648b4c; BYTE $0x48 // mov r12, qword [rsp + 72] + QUAD $0x0c264c203a0f4766; BYTE $0x02 // pinsrb xmm9, byte [r14 + r12 + 12], 2 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0c3e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 12], 3 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0c1e4c203a0f4566; BYTE $0x04 // pinsrb xmm9, byte [r14 + rbx + 12], 4 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x0c0e4c203a0f4766; BYTE $0x05 // pinsrb xmm9, byte [r14 + r9 + 12], 5 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + QUAD $0x0c164c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r10 + 12], 6 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0c1e4c203a0f4766; BYTE $0x07 // pinsrb xmm9, byte [r14 + r11 + 12], 7 + QUAD $0x0c2e4c203a0f4766; BYTE $0x08 // pinsrb xmm9, byte [r14 + r13 + 12], 8 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0c0e4c203a0f4566; BYTE $0x09 // pinsrb xmm9, byte [r14 + rcx + 12], 9 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x0c164c203a0f4766; BYTE $0x0a // pinsrb xmm9, byte [r14 + r10 + 12], 10 + QUAD $0x0c164c203a0f4566; BYTE $0x0b // pinsrb xmm9, byte [r14 + rdx + 12], 11 + QUAD $0x0c3e4c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rdi + 12], 12 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0c364c203a0f4566; BYTE $0x0d // pinsrb xmm9, byte [r14 + rsi + 12], 13 + QUAD $0x0c064c203a0f4566; BYTE $0x0e // pinsrb xmm9, byte [r14 + rax + 12], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0c064c203a0f4566; BYTE $0x0f // pinsrb xmm9, byte [r14 + rax + 12], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0d0674203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rax + 13], 1 + QUAD $0x0d2674203a0f4366; BYTE $0x02 // pinsrb xmm6, byte [r14 + r12 + 13], 2 + QUAD $0x0d3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 13], 3 + QUAD $0x0d1e74203a0f4166; BYTE $0x04 // pinsrb xmm6, byte [r14 + rbx + 13], 4 + QUAD $0x0d0e74203a0f4366; BYTE $0x05 // pinsrb xmm6, byte [r14 + r9 + 13], 5 + QUAD $0x0d0674203a0f4366; BYTE $0x06 // pinsrb xmm6, byte [r14 + r8 + 13], 6 + QUAD $0x0d1e74203a0f4366; BYTE $0x07 // pinsrb xmm6, byte [r14 + r11 + 13], 7 + QUAD $0x0d2e74203a0f4366; BYTE $0x08 // pinsrb xmm6, byte [r14 + r13 + 13], 8 + QUAD $0x0d0e74203a0f4166; BYTE $0x09 // pinsrb xmm6, byte [r14 + rcx + 13], 9 + QUAD $0x0d1674203a0f4366; BYTE $0x0a // pinsrb xmm6, byte [r14 + r10 + 13], 10 + QUAD $0x0d1674203a0f4166; BYTE $0x0b // pinsrb xmm6, byte [r14 + rdx + 13], 11 + QUAD $0x0d3e74203a0f4166; BYTE $0x0c // pinsrb xmm6, byte [r14 + rdi + 13], 12 + QUAD $0x0d3674203a0f4166; BYTE $0x0d // pinsrb xmm6, byte [r14 + rsi + 13], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0d0674203a0f4166; BYTE $0x0e // pinsrb xmm6, byte [r14 + rax + 13], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d0674203a0f4166; BYTE $0x0f // pinsrb xmm6, byte [r14 + rax + 13], 15 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e067c203a0f4566; BYTE $0x01 // pinsrb xmm15, byte [r14 + rax + 14], 1 + QUAD $0x0e267c203a0f4766; BYTE $0x02 // pinsrb xmm15, byte [r14 + r12 + 14], 2 + QUAD $0x0e3e7c203a0f4766; BYTE $0x03 // pinsrb xmm15, byte [r14 + r15 + 14], 3 + QUAD $0x0e1e7c203a0f4566; BYTE $0x04 // pinsrb xmm15, byte [r14 + rbx + 14], 4 + QUAD $0x0e0e7c203a0f4766; BYTE $0x05 // pinsrb xmm15, byte [r14 + r9 + 14], 5 + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + QUAD $0x0e067c203a0f4766; BYTE $0x06 // pinsrb xmm15, byte [r14 + r8 + 14], 6 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x0e1e7c203a0f4766; BYTE $0x07 // pinsrb xmm15, byte [r14 + r11 + 14], 7 + QUAD $0x0e2e7c203a0f4766; BYTE $0x08 // pinsrb xmm15, byte [r14 + r13 + 14], 8 + QUAD $0x0e0e7c203a0f4566; BYTE $0x09 // pinsrb xmm15, byte [r14 + rcx + 14], 9 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + QUAD $0x0e167c203a0f4766; BYTE $0x0a // pinsrb xmm15, byte [r14 + r10 + 14], 10 + QUAD $0x0e167c203a0f4566; BYTE $0x0b // pinsrb xmm15, byte [r14 + rdx + 14], 11 + QUAD $0x0e3e7c203a0f4566; BYTE $0x0c // pinsrb xmm15, byte [r14 + rdi + 14], 12 + QUAD $0x0e367c203a0f4566; BYTE $0x0d // pinsrb xmm15, byte [r14 + rsi + 14], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e067c203a0f4566; BYTE $0x0e // pinsrb xmm15, byte [r14 + rax + 14], 14 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + QUAD $0x0001308ddf0f4466; BYTE $0x00 // pandn xmm9, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xeb0f4566; BYTE $0xcd // por xmm9, xmm13 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x74b60f41; WORD $0x1906 // movzx esi, byte [r14 + rax + 25] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + QUAD $0x0001609df80f4466; BYTE $0x00 // psubb xmm11, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xeb0f4566; BYTE $0xcb // por xmm9, xmm11 + LONG $0x74b60f41; WORD $0x1a06 // movzx esi, byte [r14 + rax + 26] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e0e7c203a0f4566; BYTE $0x0f // pinsrb xmm15, byte [r14 + rcx + 14], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + QUAD $0x00000140b5df0f66 // pandn xmm6, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000150bddf0f4466; BYTE $0x00 // pandn xmm15, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xeb0f4466; BYTE $0xfe // por xmm15, xmm6 + LONG $0x74b60f41; WORD $0x1b06 // movzx esi, byte [r14 + rax + 27] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x0000c024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 192] + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x0f3e74203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rdi + 15], 1 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x0f0e74203a0f4366; BYTE $0x02 // pinsrb xmm6, byte [r14 + r9 + 15], 2 + QUAD $0x0f3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 15], 3 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x0f0674203a0f4366; BYTE $0x04 // pinsrb xmm6, byte [r14 + r8 + 15], 4 + QUAD $0x0f1e74203a0f4166; BYTE $0x05 // pinsrb xmm6, byte [r14 + rbx + 15], 5 + QUAD $0x0f2674203a0f4366; BYTE $0x06 // pinsrb xmm6, byte [r14 + r12 + 15], 6 + QUAD $0x0000008824b48b48 // mov rsi, qword [rsp + 136] + QUAD $0x0f3674203a0f4166; BYTE $0x07 // pinsrb xmm6, byte [r14 + rsi + 15], 7 + WORD $0x894d; BYTE $0xef // mov r15, r13 + QUAD $0x0f2e74203a0f4366; BYTE $0x08 // pinsrb xmm6, byte [r14 + r13 + 15], 8 + QUAD $0x0f1e74203a0f4366; BYTE $0x09 // pinsrb xmm6, byte [r14 + r11 + 15], 9 + QUAD $0x0f1674203a0f4366; BYTE $0x0a // pinsrb xmm6, byte [r14 + r10 + 15], 10 + QUAD $0x0f1674203a0f4166; BYTE $0x0b // pinsrb xmm6, byte [r14 + rdx + 15], 11 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0f1674203a0f4366; BYTE $0x0c // pinsrb xmm6, byte [r14 + r10 + 15], 12 + LONG $0x246c8b4c; BYTE $0x78 // mov r13, qword [rsp + 120] + QUAD $0x0f2e74203a0f4366; BYTE $0x0d // pinsrb xmm6, byte [r14 + r13 + 15], 13 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0f1674203a0f4166; BYTE $0x0e // pinsrb xmm6, byte [r14 + rdx + 15], 14 + QUAD $0x0f0e74203a0f4166; BYTE $0x0f // pinsrb xmm6, byte [r14 + rcx + 15], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0x75df0f66; BYTE $0x60 // pandn xmm6, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x74b60f41; WORD $0x1c06 // movzx esi, byte [r14 + rax + 28] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + LONG $0xeb0f4166; BYTE $0xf1 // por xmm6, xmm9 + QUAD $0x0000c024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm6 + LONG $0x74b60f41; WORD $0x1d06 // movzx esi, byte [r14 + rax + 29] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + QUAD $0x103e54203a0f4566; BYTE $0x01 // pinsrb xmm10, byte [r14 + rdi + 16], 1 + QUAD $0x100e54203a0f4766; BYTE $0x02 // pinsrb xmm10, byte [r14 + r9 + 16], 2 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x101654203a0f4566; BYTE $0x03 // pinsrb xmm10, byte [r14 + rdx + 16], 3 + QUAD $0x100654203a0f4766; BYTE $0x04 // pinsrb xmm10, byte [r14 + r8 + 16], 4 + QUAD $0x101e54203a0f4566; BYTE $0x05 // pinsrb xmm10, byte [r14 + rbx + 16], 5 + QUAD $0x102654203a0f4766; BYTE $0x06 // pinsrb xmm10, byte [r14 + r12 + 16], 6 + QUAD $0x0000008824bc8b48 // mov rdi, qword [rsp + 136] + QUAD $0x103e54203a0f4566; BYTE $0x07 // pinsrb xmm10, byte [r14 + rdi + 16], 7 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + QUAD $0x103e54203a0f4766; BYTE $0x08 // pinsrb xmm10, byte [r14 + r15 + 16], 8 + QUAD $0x101e54203a0f4766; BYTE $0x09 // pinsrb xmm10, byte [r14 + r11 + 16], 9 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x103e54203a0f4766; BYTE $0x0a // pinsrb xmm10, byte [r14 + r15 + 16], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x100e54203a0f4566; BYTE $0x0b // pinsrb xmm10, byte [r14 + rcx + 16], 11 + QUAD $0x101654203a0f4766; BYTE $0x0c // pinsrb xmm10, byte [r14 + r10 + 16], 12 + QUAD $0x102e54203a0f4766; BYTE $0x0d // pinsrb xmm10, byte [r14 + r13 + 16], 13 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x100e54203a0f4566; BYTE $0x0e // pinsrb xmm10, byte [r14 + rcx + 16], 14 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x102e54203a0f4766; BYTE $0x0f // pinsrb xmm10, byte [r14 + r13 + 16], 15 + QUAD $0x113664203a0f4166; BYTE $0x01 // pinsrb xmm4, byte [r14 + rsi + 17], 1 + QUAD $0x110e64203a0f4366; BYTE $0x02 // pinsrb xmm4, byte [r14 + r9 + 17], 2 + QUAD $0x111664203a0f4166; BYTE $0x03 // pinsrb xmm4, byte [r14 + rdx + 17], 3 + QUAD $0x110664203a0f4366; BYTE $0x04 // pinsrb xmm4, byte [r14 + r8 + 17], 4 + QUAD $0x111e64203a0f4166; BYTE $0x05 // pinsrb xmm4, byte [r14 + rbx + 17], 5 + QUAD $0x112664203a0f4366; BYTE $0x06 // pinsrb xmm4, byte [r14 + r12 + 17], 6 + QUAD $0x113e64203a0f4166; BYTE $0x07 // pinsrb xmm4, byte [r14 + rdi + 17], 7 + QUAD $0x110664203a0f4166; BYTE $0x08 // pinsrb xmm4, byte [r14 + rax + 17], 8 + WORD $0x894d; BYTE $0xd9 // mov r9, r11 + QUAD $0x111e64203a0f4366; BYTE $0x09 // pinsrb xmm4, byte [r14 + r11 + 17], 9 + WORD $0x894d; BYTE $0xfa // mov r10, r15 + QUAD $0x113e64203a0f4366; BYTE $0x0a // pinsrb xmm4, byte [r14 + r15 + 17], 10 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x110664203a0f4366; BYTE $0x0b // pinsrb xmm4, byte [r14 + r8 + 17], 11 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x113e64203a0f4166; BYTE $0x0c // pinsrb xmm4, byte [r14 + rdi + 17], 12 + LONG $0x24548b48; BYTE $0x78 // mov rdx, qword [rsp + 120] + QUAD $0x111664203a0f4166; BYTE $0x0d // pinsrb xmm4, byte [r14 + rdx + 17], 13 + QUAD $0x110e64203a0f4166; BYTE $0x0e // pinsrb xmm4, byte [r14 + rcx + 17], 14 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + QUAD $0x112e64203a0f4366; BYTE $0x0f // pinsrb xmm4, byte [r14 + r13 + 17], 15 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0x740f4166; BYTE $0xe6 // pcmpeqb xmm4, xmm14 + QUAD $0x00000100b56f0f66 // movdqa xmm6, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xe6df0f66 // pandn xmm4, xmm6 + LONG $0xfc0f4166; BYTE $0xe2 // paddb xmm4, xmm10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x74b60f41; WORD $0x1e06 // movzx esi, byte [r14 + rax + 30] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x12367c203a0f4166; BYTE $0x01 // pinsrb xmm7, byte [r14 + rsi + 18], 1 + QUAD $0x13366c203a0f4166; BYTE $0x01 // pinsrb xmm5, byte [r14 + rsi + 19], 1 + QUAD $0x14365c203a0f4166; BYTE $0x01 // pinsrb xmm3, byte [r14 + rsi + 20], 1 + QUAD $0x153654203a0f4166; BYTE $0x01 // pinsrb xmm2, byte [r14 + rsi + 21], 1 + QUAD $0x16364c203a0f4166; BYTE $0x01 // pinsrb xmm1, byte [r14 + rsi + 22], 1 + QUAD $0x173644203a0f4566; BYTE $0x01 // pinsrb xmm8, byte [r14 + rsi + 23], 1 + QUAD $0x183664203a0f4566; BYTE $0x01 // pinsrb xmm12, byte [r14 + rsi + 24], 1 + QUAD $0x19366c203a0f4566; BYTE $0x01 // pinsrb xmm13, byte [r14 + rsi + 25], 1 + QUAD $0x1a3644203a0f4166; BYTE $0x01 // pinsrb xmm0, byte [r14 + rsi + 26], 1 + QUAD $0x1b365c203a0f4566; BYTE $0x01 // pinsrb xmm11, byte [r14 + rsi + 27], 1 + QUAD $0x1c367c203a0f4566; BYTE $0x01 // pinsrb xmm15, byte [r14 + rsi + 28], 1 + QUAD $0x1d364c203a0f4566; BYTE $0x01 // pinsrb xmm9, byte [r14 + rsi + 29], 1 + QUAD $0x1e3654203a0f4566; BYTE $0x01 // pinsrb xmm10, byte [r14 + rsi + 30], 1 + LONG $0x44b60f41; WORD $0x1f06 // movzx eax, byte [r14 + rax + 31] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x1f3674203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rsi + 31], 1 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x12067c203a0f4166; BYTE $0x02 // pinsrb xmm7, byte [r14 + rax + 18], 2 + QUAD $0x13066c203a0f4166; BYTE $0x02 // pinsrb xmm5, byte [r14 + rax + 19], 2 + QUAD $0x14065c203a0f4166; BYTE $0x02 // pinsrb xmm3, byte [r14 + rax + 20], 2 + QUAD $0x150654203a0f4166; BYTE $0x02 // pinsrb xmm2, byte [r14 + rax + 21], 2 + QUAD $0x16064c203a0f4166; BYTE $0x02 // pinsrb xmm1, byte [r14 + rax + 22], 2 + QUAD $0x170644203a0f4566; BYTE $0x02 // pinsrb xmm8, byte [r14 + rax + 23], 2 + QUAD $0x180664203a0f4566; BYTE $0x02 // pinsrb xmm12, byte [r14 + rax + 24], 2 + QUAD $0x19066c203a0f4566; BYTE $0x02 // pinsrb xmm13, byte [r14 + rax + 25], 2 + QUAD $0x1a0644203a0f4166; BYTE $0x02 // pinsrb xmm0, byte [r14 + rax + 26], 2 + QUAD $0x1b065c203a0f4566; BYTE $0x02 // pinsrb xmm11, byte [r14 + rax + 27], 2 + QUAD $0x1c067c203a0f4566; BYTE $0x02 // pinsrb xmm15, byte [r14 + rax + 28], 2 + QUAD $0x1d064c203a0f4566; BYTE $0x02 // pinsrb xmm9, byte [r14 + rax + 29], 2 + QUAD $0x1e0654203a0f4566; BYTE $0x02 // pinsrb xmm10, byte [r14 + rax + 30], 2 + QUAD $0x1f0674203a0f4166; BYTE $0x02 // pinsrb xmm6, byte [r14 + rax + 31], 2 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x123e7c203a0f4366; BYTE $0x03 // pinsrb xmm7, byte [r14 + r15 + 18], 3 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x12067c203a0f4166; BYTE $0x04 // pinsrb xmm7, byte [r14 + rax + 18], 4 + QUAD $0x121e7c203a0f4166; BYTE $0x05 // pinsrb xmm7, byte [r14 + rbx + 18], 5 + QUAD $0x12267c203a0f4366; BYTE $0x06 // pinsrb xmm7, byte [r14 + r12 + 18], 6 + QUAD $0x00000088248c8b48 // mov rcx, qword [rsp + 136] + QUAD $0x120e7c203a0f4166; BYTE $0x07 // pinsrb xmm7, byte [r14 + rcx + 18], 7 + LONG $0x24748b48; BYTE $0x68 // mov rsi, qword [rsp + 104] + QUAD $0x12367c203a0f4166; BYTE $0x08 // pinsrb xmm7, byte [r14 + rsi + 18], 8 + QUAD $0x120e7c203a0f4366; BYTE $0x09 // pinsrb xmm7, byte [r14 + r9 + 18], 9 + QUAD $0x12167c203a0f4366; BYTE $0x0a // pinsrb xmm7, byte [r14 + r10 + 18], 10 + QUAD $0x12067c203a0f4366; BYTE $0x0b // pinsrb xmm7, byte [r14 + r8 + 18], 11 + QUAD $0x123e7c203a0f4166; BYTE $0x0c // pinsrb xmm7, byte [r14 + rdi + 18], 12 + QUAD $0x12167c203a0f4166; BYTE $0x0d // pinsrb xmm7, byte [r14 + rdx + 18], 13 + QUAD $0x121e7c203a0f4366; BYTE $0x0e // pinsrb xmm7, byte [r14 + r11 + 18], 14 + QUAD $0x122e7c203a0f4366; BYTE $0x0f // pinsrb xmm7, byte [r14 + r13 + 18], 15 + QUAD $0x133e6c203a0f4366; BYTE $0x03 // pinsrb xmm5, byte [r14 + r15 + 19], 3 + QUAD $0x13066c203a0f4166; BYTE $0x04 // pinsrb xmm5, byte [r14 + rax + 19], 4 + QUAD $0x131e6c203a0f4166; BYTE $0x05 // pinsrb xmm5, byte [r14 + rbx + 19], 5 + QUAD $0x13266c203a0f4366; BYTE $0x06 // pinsrb xmm5, byte [r14 + r12 + 19], 6 + QUAD $0x130e6c203a0f4166; BYTE $0x07 // pinsrb xmm5, byte [r14 + rcx + 19], 7 + QUAD $0x13366c203a0f4166; BYTE $0x08 // pinsrb xmm5, byte [r14 + rsi + 19], 8 + QUAD $0x130e6c203a0f4366; BYTE $0x09 // pinsrb xmm5, byte [r14 + r9 + 19], 9 + QUAD $0x13166c203a0f4366; BYTE $0x0a // pinsrb xmm5, byte [r14 + r10 + 19], 10 + QUAD $0x13066c203a0f4366; BYTE $0x0b // pinsrb xmm5, byte [r14 + r8 + 19], 11 + QUAD $0x133e6c203a0f4166; BYTE $0x0c // pinsrb xmm5, byte [r14 + rdi + 19], 12 + QUAD $0x13166c203a0f4166; BYTE $0x0d // pinsrb xmm5, byte [r14 + rdx + 19], 13 + QUAD $0x131e6c203a0f4366; BYTE $0x0e // pinsrb xmm5, byte [r14 + r11 + 19], 14 + QUAD $0x132e6c203a0f4366; BYTE $0x0f // pinsrb xmm5, byte [r14 + r13 + 19], 15 + QUAD $0x143e5c203a0f4366; BYTE $0x03 // pinsrb xmm3, byte [r14 + r15 + 20], 3 + QUAD $0x14065c203a0f4166; BYTE $0x04 // pinsrb xmm3, byte [r14 + rax + 20], 4 + QUAD $0x141e5c203a0f4166; BYTE $0x05 // pinsrb xmm3, byte [r14 + rbx + 20], 5 + QUAD $0x14265c203a0f4366; BYTE $0x06 // pinsrb xmm3, byte [r14 + r12 + 20], 6 + QUAD $0x140e5c203a0f4166; BYTE $0x07 // pinsrb xmm3, byte [r14 + rcx + 20], 7 + QUAD $0x14365c203a0f4166; BYTE $0x08 // pinsrb xmm3, byte [r14 + rsi + 20], 8 + QUAD $0x140e5c203a0f4366; BYTE $0x09 // pinsrb xmm3, byte [r14 + r9 + 20], 9 + QUAD $0x14165c203a0f4366; BYTE $0x0a // pinsrb xmm3, byte [r14 + r10 + 20], 10 + QUAD $0x14065c203a0f4366; BYTE $0x0b // pinsrb xmm3, byte [r14 + r8 + 20], 11 + QUAD $0x143e5c203a0f4166; BYTE $0x0c // pinsrb xmm3, byte [r14 + rdi + 20], 12 + QUAD $0x14165c203a0f4166; BYTE $0x0d // pinsrb xmm3, byte [r14 + rdx + 20], 13 + QUAD $0x141e5c203a0f4366; BYTE $0x0e // pinsrb xmm3, byte [r14 + r11 + 20], 14 + LONG $0x740f4166; BYTE $0xfe // pcmpeqb xmm7, xmm14 + QUAD $0x000110b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0xdf0f4166; BYTE $0xfe // pandn xmm7, xmm14 + QUAD $0x0000b024ac740f66; BYTE $0x00 // pcmpeqb xmm5, oword [rsp + 176] + QUAD $0x000120b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xdf0f4166; BYTE $0xee // pandn xmm5, xmm14 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0x142e5c203a0f4366; BYTE $0x0f // pinsrb xmm3, byte [r14 + r13 + 20], 15 + QUAD $0x00b024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xde // pcmpeqb xmm3, xmm14 + QUAD $0x00000130bd6f0f66 // movdqa xmm7, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xdfdf0f66 // pandn xmm3, xmm7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xe5f80f66 // psubb xmm4, xmm5 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x153e54203a0f4366; BYTE $0x03 // pinsrb xmm2, byte [r14 + r15 + 21], 3 + QUAD $0x150654203a0f4166; BYTE $0x04 // pinsrb xmm2, byte [r14 + rax + 21], 4 + QUAD $0x151e54203a0f4166; BYTE $0x05 // pinsrb xmm2, byte [r14 + rbx + 21], 5 + QUAD $0x152654203a0f4366; BYTE $0x06 // pinsrb xmm2, byte [r14 + r12 + 21], 6 + QUAD $0x150e54203a0f4166; BYTE $0x07 // pinsrb xmm2, byte [r14 + rcx + 21], 7 + QUAD $0x153654203a0f4166; BYTE $0x08 // pinsrb xmm2, byte [r14 + rsi + 21], 8 + QUAD $0x150e54203a0f4366; BYTE $0x09 // pinsrb xmm2, byte [r14 + r9 + 21], 9 + QUAD $0x151654203a0f4366; BYTE $0x0a // pinsrb xmm2, byte [r14 + r10 + 21], 10 + QUAD $0x150654203a0f4366; BYTE $0x0b // pinsrb xmm2, byte [r14 + r8 + 21], 11 + QUAD $0x153e54203a0f4166; BYTE $0x0c // pinsrb xmm2, byte [r14 + rdi + 21], 12 + QUAD $0x151654203a0f4166; BYTE $0x0d // pinsrb xmm2, byte [r14 + rdx + 21], 13 + QUAD $0x151e54203a0f4366; BYTE $0x0e // pinsrb xmm2, byte [r14 + r11 + 21], 14 + QUAD $0x152e54203a0f4366; BYTE $0x0f // pinsrb xmm2, byte [r14 + r13 + 21], 15 + QUAD $0x163e4c203a0f4366; BYTE $0x03 // pinsrb xmm1, byte [r14 + r15 + 22], 3 + QUAD $0x16064c203a0f4166; BYTE $0x04 // pinsrb xmm1, byte [r14 + rax + 22], 4 + QUAD $0x161e4c203a0f4166; BYTE $0x05 // pinsrb xmm1, byte [r14 + rbx + 22], 5 + QUAD $0x16264c203a0f4366; BYTE $0x06 // pinsrb xmm1, byte [r14 + r12 + 22], 6 + QUAD $0x160e4c203a0f4166; BYTE $0x07 // pinsrb xmm1, byte [r14 + rcx + 22], 7 + QUAD $0x16364c203a0f4166; BYTE $0x08 // pinsrb xmm1, byte [r14 + rsi + 22], 8 + QUAD $0x160e4c203a0f4366; BYTE $0x09 // pinsrb xmm1, byte [r14 + r9 + 22], 9 + QUAD $0x16164c203a0f4366; BYTE $0x0a // pinsrb xmm1, byte [r14 + r10 + 22], 10 + QUAD $0x16064c203a0f4366; BYTE $0x0b // pinsrb xmm1, byte [r14 + r8 + 22], 11 + QUAD $0x163e4c203a0f4166; BYTE $0x0c // pinsrb xmm1, byte [r14 + rdi + 22], 12 + QUAD $0x16164c203a0f4166; BYTE $0x0d // pinsrb xmm1, byte [r14 + rdx + 22], 13 + QUAD $0x161e4c203a0f4366; BYTE $0x0e // pinsrb xmm1, byte [r14 + r11 + 22], 14 + QUAD $0x162e4c203a0f4366; BYTE $0x0f // pinsrb xmm1, byte [r14 + r13 + 22], 15 + QUAD $0x173e44203a0f4766; BYTE $0x03 // pinsrb xmm8, byte [r14 + r15 + 23], 3 + QUAD $0x170644203a0f4566; BYTE $0x04 // pinsrb xmm8, byte [r14 + rax + 23], 4 + QUAD $0x171e44203a0f4566; BYTE $0x05 // pinsrb xmm8, byte [r14 + rbx + 23], 5 + QUAD $0x172644203a0f4766; BYTE $0x06 // pinsrb xmm8, byte [r14 + r12 + 23], 6 + QUAD $0x170e44203a0f4566; BYTE $0x07 // pinsrb xmm8, byte [r14 + rcx + 23], 7 + QUAD $0x173644203a0f4566; BYTE $0x08 // pinsrb xmm8, byte [r14 + rsi + 23], 8 + QUAD $0x170e44203a0f4766; BYTE $0x09 // pinsrb xmm8, byte [r14 + r9 + 23], 9 + QUAD $0x171644203a0f4766; BYTE $0x0a // pinsrb xmm8, byte [r14 + r10 + 23], 10 + QUAD $0x170644203a0f4766; BYTE $0x0b // pinsrb xmm8, byte [r14 + r8 + 23], 11 + QUAD $0x173e44203a0f4566; BYTE $0x0c // pinsrb xmm8, byte [r14 + rdi + 23], 12 + QUAD $0x171644203a0f4566; BYTE $0x0d // pinsrb xmm8, byte [r14 + rdx + 23], 13 + QUAD $0x171e44203a0f4766; BYTE $0x0e // pinsrb xmm8, byte [r14 + r11 + 23], 14 + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140ad6f0f66 // movdqa xmm5, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0xd5df0f66 // pandn xmm2, xmm5 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xcfdf0f66 // pandn xmm1, xmm7 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x172e44203a0f4766; BYTE $0x0f // pinsrb xmm8, byte [r14 + r13 + 23], 15 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + LONG $0x656f0f66; BYTE $0x60 // movdqa xmm4, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + QUAD $0x183e64203a0f4766; BYTE $0x03 // pinsrb xmm12, byte [r14 + r15 + 24], 3 + QUAD $0x180664203a0f4566; BYTE $0x04 // pinsrb xmm12, byte [r14 + rax + 24], 4 + QUAD $0x181e64203a0f4566; BYTE $0x05 // pinsrb xmm12, byte [r14 + rbx + 24], 5 + QUAD $0x182664203a0f4766; BYTE $0x06 // pinsrb xmm12, byte [r14 + r12 + 24], 6 + QUAD $0x180e64203a0f4566; BYTE $0x07 // pinsrb xmm12, byte [r14 + rcx + 24], 7 + QUAD $0x183664203a0f4566; BYTE $0x08 // pinsrb xmm12, byte [r14 + rsi + 24], 8 + QUAD $0x180e64203a0f4766; BYTE $0x09 // pinsrb xmm12, byte [r14 + r9 + 24], 9 + QUAD $0x181664203a0f4766; BYTE $0x0a // pinsrb xmm12, byte [r14 + r10 + 24], 10 + QUAD $0x180664203a0f4766; BYTE $0x0b // pinsrb xmm12, byte [r14 + r8 + 24], 11 + QUAD $0x183e64203a0f4566; BYTE $0x0c // pinsrb xmm12, byte [r14 + rdi + 24], 12 + QUAD $0x181664203a0f4566; BYTE $0x0d // pinsrb xmm12, byte [r14 + rdx + 24], 13 + QUAD $0x181e64203a0f4766; BYTE $0x0e // pinsrb xmm12, byte [r14 + r11 + 24], 14 + QUAD $0x182e64203a0f4766; BYTE $0x0f // pinsrb xmm12, byte [r14 + r13 + 24], 15 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x193e6c203a0f4766; BYTE $0x03 // pinsrb xmm13, byte [r14 + r15 + 25], 3 + QUAD $0x19066c203a0f4566; BYTE $0x04 // pinsrb xmm13, byte [r14 + rax + 25], 4 + QUAD $0x191e6c203a0f4566; BYTE $0x05 // pinsrb xmm13, byte [r14 + rbx + 25], 5 + QUAD $0x19266c203a0f4766; BYTE $0x06 // pinsrb xmm13, byte [r14 + r12 + 25], 6 + QUAD $0x190e6c203a0f4566; BYTE $0x07 // pinsrb xmm13, byte [r14 + rcx + 25], 7 + QUAD $0x19366c203a0f4566; BYTE $0x08 // pinsrb xmm13, byte [r14 + rsi + 25], 8 + QUAD $0x190e6c203a0f4766; BYTE $0x09 // pinsrb xmm13, byte [r14 + r9 + 25], 9 + QUAD $0x19166c203a0f4766; BYTE $0x0a // pinsrb xmm13, byte [r14 + r10 + 25], 10 + QUAD $0x19066c203a0f4766; BYTE $0x0b // pinsrb xmm13, byte [r14 + r8 + 25], 11 + QUAD $0x193e6c203a0f4566; BYTE $0x0c // pinsrb xmm13, byte [r14 + rdi + 25], 12 + QUAD $0x19166c203a0f4566; BYTE $0x0d // pinsrb xmm13, byte [r14 + rdx + 25], 13 + QUAD $0x191e6c203a0f4766; BYTE $0x0e // pinsrb xmm13, byte [r14 + r11 + 25], 14 + QUAD $0x192e6c203a0f4766; BYTE $0x0f // pinsrb xmm13, byte [r14 + r13 + 25], 15 + QUAD $0x1a3e44203a0f4366; BYTE $0x03 // pinsrb xmm0, byte [r14 + r15 + 26], 3 + QUAD $0x1a0644203a0f4166; BYTE $0x04 // pinsrb xmm0, byte [r14 + rax + 26], 4 + QUAD $0x1a1e44203a0f4166; BYTE $0x05 // pinsrb xmm0, byte [r14 + rbx + 26], 5 + QUAD $0x1a2644203a0f4366; BYTE $0x06 // pinsrb xmm0, byte [r14 + r12 + 26], 6 + QUAD $0x1a0e44203a0f4166; BYTE $0x07 // pinsrb xmm0, byte [r14 + rcx + 26], 7 + QUAD $0x1a3644203a0f4166; BYTE $0x08 // pinsrb xmm0, byte [r14 + rsi + 26], 8 + QUAD $0x1a0e44203a0f4366; BYTE $0x09 // pinsrb xmm0, byte [r14 + r9 + 26], 9 + QUAD $0x1a1644203a0f4366; BYTE $0x0a // pinsrb xmm0, byte [r14 + r10 + 26], 10 + QUAD $0x1a0644203a0f4366; BYTE $0x0b // pinsrb xmm0, byte [r14 + r8 + 26], 11 + QUAD $0x1a3e44203a0f4166; BYTE $0x0c // pinsrb xmm0, byte [r14 + rdi + 26], 12 + QUAD $0x1a1644203a0f4166; BYTE $0x0d // pinsrb xmm0, byte [r14 + rdx + 26], 13 + QUAD $0x1a1e44203a0f4366; BYTE $0x0e // pinsrb xmm0, byte [r14 + r11 + 26], 14 + QUAD $0x1a2e44203a0f4366; BYTE $0x0f // pinsrb xmm0, byte [r14 + r13 + 26], 15 + QUAD $0x1b3e5c203a0f4766; BYTE $0x03 // pinsrb xmm11, byte [r14 + r15 + 27], 3 + QUAD $0x1b065c203a0f4566; BYTE $0x04 // pinsrb xmm11, byte [r14 + rax + 27], 4 + QUAD $0x1b1e5c203a0f4566; BYTE $0x05 // pinsrb xmm11, byte [r14 + rbx + 27], 5 + QUAD $0x1b265c203a0f4766; BYTE $0x06 // pinsrb xmm11, byte [r14 + r12 + 27], 6 + QUAD $0x1b0e5c203a0f4566; BYTE $0x07 // pinsrb xmm11, byte [r14 + rcx + 27], 7 + QUAD $0x1b365c203a0f4566; BYTE $0x08 // pinsrb xmm11, byte [r14 + rsi + 27], 8 + QUAD $0x1b0e5c203a0f4766; BYTE $0x09 // pinsrb xmm11, byte [r14 + r9 + 27], 9 + QUAD $0x1b165c203a0f4766; BYTE $0x0a // pinsrb xmm11, byte [r14 + r10 + 27], 10 + QUAD $0x1b065c203a0f4766; BYTE $0x0b // pinsrb xmm11, byte [r14 + r8 + 27], 11 + QUAD $0x1b3e5c203a0f4566; BYTE $0x0c // pinsrb xmm11, byte [r14 + rdi + 27], 12 + QUAD $0x1b165c203a0f4566; BYTE $0x0d // pinsrb xmm11, byte [r14 + rdx + 27], 13 + QUAD $0x1b1e5c203a0f4766; BYTE $0x0e // pinsrb xmm11, byte [r14 + r11 + 27], 14 + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xfc0f4566; BYTE $0xec // paddb xmm13, xmm12 + QUAD $0x1b2e5c203a0f4766; BYTE $0x0f // pinsrb xmm11, byte [r14 + r13 + 27], 15 + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x0000011085df0f66 // pandn xmm0, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001209ddf0f4466; BYTE $0x00 // pandn xmm11, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xeb0f4466; BYTE $0xd8 // por xmm11, xmm0 + QUAD $0x1c3e7c203a0f4766; BYTE $0x03 // pinsrb xmm15, byte [r14 + r15 + 28], 3 + QUAD $0x1d3e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 29], 3 + QUAD $0x1e3e54203a0f4766; BYTE $0x03 // pinsrb xmm10, byte [r14 + r15 + 30], 3 + QUAD $0x1f3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 31], 3 + QUAD $0x1c067c203a0f4566; BYTE $0x04 // pinsrb xmm15, byte [r14 + rax + 28], 4 + QUAD $0x1d064c203a0f4566; BYTE $0x04 // pinsrb xmm9, byte [r14 + rax + 29], 4 + QUAD $0x1e0654203a0f4566; BYTE $0x04 // pinsrb xmm10, byte [r14 + rax + 30], 4 + QUAD $0x1f0674203a0f4166; BYTE $0x04 // pinsrb xmm6, byte [r14 + rax + 31], 4 + QUAD $0x1c1e7c203a0f4566; BYTE $0x05 // pinsrb xmm15, byte [r14 + rbx + 28], 5 + QUAD $0x1d1e4c203a0f4566; BYTE $0x05 // pinsrb xmm9, byte [r14 + rbx + 29], 5 + QUAD $0x1e1e54203a0f4566; BYTE $0x05 // pinsrb xmm10, byte [r14 + rbx + 30], 5 + QUAD $0x1f1e74203a0f4166; BYTE $0x05 // pinsrb xmm6, byte [r14 + rbx + 31], 5 + QUAD $0x1c267c203a0f4766; BYTE $0x06 // pinsrb xmm15, byte [r14 + r12 + 28], 6 + QUAD $0x1d264c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r12 + 29], 6 + QUAD $0x1e2654203a0f4766; BYTE $0x06 // pinsrb xmm10, byte [r14 + r12 + 30], 6 + QUAD $0x1f2674203a0f4366; BYTE $0x06 // pinsrb xmm6, byte [r14 + r12 + 31], 6 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x1c0e7c203a0f4566; BYTE $0x07 // pinsrb xmm15, byte [r14 + rcx + 28], 7 + QUAD $0x1d0e4c203a0f4566; BYTE $0x07 // pinsrb xmm9, byte [r14 + rcx + 29], 7 + QUAD $0x1e0e54203a0f4566; BYTE $0x07 // pinsrb xmm10, byte [r14 + rcx + 30], 7 + QUAD $0x1f0e74203a0f4166; BYTE $0x07 // pinsrb xmm6, byte [r14 + rcx + 31], 7 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + QUAD $0x1c367c203a0f4566; BYTE $0x08 // pinsrb xmm15, byte [r14 + rsi + 28], 8 + QUAD $0x1d364c203a0f4566; BYTE $0x08 // pinsrb xmm9, byte [r14 + rsi + 29], 8 + QUAD $0x1e3654203a0f4566; BYTE $0x08 // pinsrb xmm10, byte [r14 + rsi + 30], 8 + QUAD $0x1f3674203a0f4166; BYTE $0x08 // pinsrb xmm6, byte [r14 + rsi + 31], 8 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x1c0e7c203a0f4766; BYTE $0x09 // pinsrb xmm15, byte [r14 + r9 + 28], 9 + QUAD $0x1d0e4c203a0f4766; BYTE $0x09 // pinsrb xmm9, byte [r14 + r9 + 29], 9 + QUAD $0x1e0e54203a0f4766; BYTE $0x09 // pinsrb xmm10, byte [r14 + r9 + 30], 9 + QUAD $0x1f0e74203a0f4366; BYTE $0x09 // pinsrb xmm6, byte [r14 + r9 + 31], 9 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x1c167c203a0f4766; BYTE $0x0a // pinsrb xmm15, byte [r14 + r10 + 28], 10 + QUAD $0x1d164c203a0f4766; BYTE $0x0a // pinsrb xmm9, byte [r14 + r10 + 29], 10 + QUAD $0x1e1654203a0f4766; BYTE $0x0a // pinsrb xmm10, byte [r14 + r10 + 30], 10 + QUAD $0x1f1674203a0f4366; BYTE $0x0a // pinsrb xmm6, byte [r14 + r10 + 31], 10 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x1c067c203a0f4766; BYTE $0x0b // pinsrb xmm15, byte [r14 + r8 + 28], 11 + QUAD $0x1d064c203a0f4766; BYTE $0x0b // pinsrb xmm9, byte [r14 + r8 + 29], 11 + QUAD $0x1e0654203a0f4766; BYTE $0x0b // pinsrb xmm10, byte [r14 + r8 + 30], 11 + QUAD $0x1f0674203a0f4366; BYTE $0x0b // pinsrb xmm6, byte [r14 + r8 + 31], 11 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + QUAD $0x1c3e7c203a0f4566; BYTE $0x0c // pinsrb xmm15, byte [r14 + rdi + 28], 12 + QUAD $0x1d3e4c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rdi + 29], 12 + QUAD $0x1e3e54203a0f4566; BYTE $0x0c // pinsrb xmm10, byte [r14 + rdi + 30], 12 + QUAD $0x1f3e74203a0f4166; BYTE $0x0c // pinsrb xmm6, byte [r14 + rdi + 31], 12 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x1c167c203a0f4566; BYTE $0x0d // pinsrb xmm15, byte [r14 + rdx + 28], 13 + QUAD $0x1d164c203a0f4566; BYTE $0x0d // pinsrb xmm9, byte [r14 + rdx + 29], 13 + QUAD $0x1e1654203a0f4566; BYTE $0x0d // pinsrb xmm10, byte [r14 + rdx + 30], 13 + QUAD $0x1f1674203a0f4166; BYTE $0x0d // pinsrb xmm6, byte [r14 + rdx + 31], 13 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x1c1e7c203a0f4766; BYTE $0x0e // pinsrb xmm15, byte [r14 + r11 + 28], 14 + QUAD $0x1d1e4c203a0f4766; BYTE $0x0e // pinsrb xmm9, byte [r14 + r11 + 29], 14 + QUAD $0x1e1e54203a0f4766; BYTE $0x0e // pinsrb xmm10, byte [r14 + r11 + 30], 14 + QUAD $0x1f1e74203a0f4366; BYTE $0x0e // pinsrb xmm6, byte [r14 + r11 + 31], 14 + QUAD $0x1c2e7c203a0f4766; BYTE $0x0f // pinsrb xmm15, byte [r14 + r13 + 28], 15 + QUAD $0x1d2e4c203a0f4766; BYTE $0x0f // pinsrb xmm9, byte [r14 + r13 + 29], 15 + QUAD $0x1e2e54203a0f4766; BYTE $0x0f // pinsrb xmm10, byte [r14 + r13 + 30], 15 + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000130bddf0f4466; BYTE $0x00 // pandn xmm15, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + QUAD $0x1f2e74203a0f4366; BYTE $0x0f // pinsrb xmm6, byte [r14 + r13 + 31], 15 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + LONG $0xdf0f4466; BYTE $0xcd // pandn xmm9, xmm5 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0xdf0f4466; BYTE $0xd7 // pandn xmm10, xmm7 + LONG $0xeb0f4566; BYTE $0xd1 // por xmm10, xmm9 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0xf4df0f66 // pandn xmm6, xmm4 + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc6600f66 // punpcklbw xmm0, xmm6 + QUAD $0x000100249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 256] + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + QUAD $0x0000c024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 192] + LONG $0xcc600f66 // punpcklbw xmm1, xmm4 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xd0610f66 // punpcklwd xmm2, xmm0 + LONG $0xc8690f66 // punpckhwd xmm1, xmm0 + LONG $0x680f4466; BYTE $0xc6 // punpckhbw xmm8, xmm6 + LONG $0xdc680f66 // punpckhbw xmm3, xmm4 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xd8 // punpckhwd xmm3, xmm8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x5c7f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm3 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm1 + LONG $0x147f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm2 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000d8248c3b48 // cmp rcx, qword [rsp + 216] + JNE LBB5_86 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x000000d824943b4c // cmp r10, qword [rsp + 216] + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + JNE LBB5_88 + JMP LBB5_91 + +LBB5_66: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + QUAD $0x0000011024848948 // mov qword [rsp + 272], rax + QUAD $0x000000d82494894c // mov qword [rsp + 216], r10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x90048d4a // lea rax, [rax + 4*r10] + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + WORD $0xc031 // xor eax, eax + +LBB5_67: + QUAD $0x000000a824848948 // mov qword [rsp + 168], rax + LONG $0x05e0c148 // shl rax, 5 + WORD $0x8949; BYTE $0xc0 // mov r8, rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8949; BYTE $0xc5 // mov r13, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x0cb60f41; BYTE $0x06 // movzx ecx, byte [r14 + rax] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x4cb60f41; WORD $0x0106 // movzx ecx, byte [r14 + rax + 1] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x4cb60f41; WORD $0x0206 // movzx ecx, byte [r14 + rax + 2] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x4cb60f41; WORD $0x0306 // movzx ecx, byte [r14 + rax + 3] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x4cb60f41; WORD $0x0406 // movzx ecx, byte [r14 + rax + 4] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x4cb60f41; WORD $0x0506 // movzx ecx, byte [r14 + rax + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x4cb60f41; WORD $0x0606 // movzx ecx, byte [r14 + rax + 6] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x4cb60f41; WORD $0x0706 // movzx ecx, byte [r14 + rax + 7] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x4cb60f41; WORD $0x0806 // movzx ecx, byte [r14 + rax + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00010024847f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm0 + LONG $0x4cb60f41; WORD $0x0906 // movzx ecx, byte [r14 + rax + 9] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x4cb60f41; WORD $0x0a06 // movzx ecx, byte [r14 + rax + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x4cb60f41; WORD $0x0b06 // movzx ecx, byte [r14 + rax + 11] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x4cb60f41; WORD $0x0c06 // movzx ecx, byte [r14 + rax + 12] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x4cb60f41; WORD $0x0d06 // movzx ecx, byte [r14 + rax + 13] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x4cb60f41; WORD $0x0e06 // movzx ecx, byte [r14 + rax + 14] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x4cb60f41; WORD $0x0f06 // movzx ecx, byte [r14 + rax + 15] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x20c98348 // or rcx, 32 + LONG $0x244c8948; BYTE $0x10 // mov qword [rsp + 16], rcx + LONG $0x40c88349 // or r8, 64 + LONG $0x2444894c; BYTE $0x20 // mov qword [rsp + 32], r8 + LONG $0x60cb8349 // or r11, 96 + LONG $0x245c894c; BYTE $0x50 // mov qword [rsp + 80], r11 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0x244c894c; BYTE $0x18 // mov qword [rsp + 24], r9 + LONG $0xa0cd8149; WORD $0x0000; BYTE $0x00 // or r13, 160 + LONG $0xc0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 192 + LONG $0xe0cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 224 + LONG $0x247c8948; BYTE $0x68 // mov qword [rsp + 104], rdi + LONG $0x00ca8149; WORD $0x0001; BYTE $0x00 // or r10, 256 + QUAD $0x000000982494894c // mov qword [rsp + 152], r10 + LONG $0x20cc8149; WORD $0x0001; BYTE $0x00 // or r12, 288 + LONG $0x40cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 320 + QUAD $0x00000090249c8948 // mov qword [rsp + 144], rbx + LONG $0x60ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 352 + LONG $0x24548948; BYTE $0x70 // mov qword [rsp + 112], rdx + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0x80cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 384 + LONG $0x245c8948; BYTE $0x78 // mov qword [rsp + 120], rbx + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + LONG $0xa0ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 416 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0xc0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 448 + LONG $0x244c8948; BYTE $0x40 // mov qword [rsp + 64], rcx + LONG $0xe0ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 480 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x010624203a0f4166 // pinsrb xmm4, byte [r14 + rax], 1 + QUAD $0x020624203a0f4366 // pinsrb xmm4, byte [r14 + r8], 2 + QUAD $0x031e24203a0f4366 // pinsrb xmm4, byte [r14 + r11], 3 + QUAD $0x040e24203a0f4366 // pinsrb xmm4, byte [r14 + r9], 4 + QUAD $0x052e24203a0f4366 // pinsrb xmm4, byte [r14 + r13], 5 + QUAD $0x063e24203a0f4366 // pinsrb xmm4, byte [r14 + r15], 6 + QUAD $0x073e24203a0f4166 // pinsrb xmm4, byte [r14 + rdi], 7 + QUAD $0x081624203a0f4366 // pinsrb xmm4, byte [r14 + r10], 8 + QUAD $0x092624203a0f4366 // pinsrb xmm4, byte [r14 + r12], 9 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x0a0624203a0f4166 // pinsrb xmm4, byte [r14 + rax], 10 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0b0624203a0f4166 // pinsrb xmm4, byte [r14 + rax], 11 + QUAD $0x0c1e24203a0f4166 // pinsrb xmm4, byte [r14 + rbx], 12 + QUAD $0x0d1624203a0f4166 // pinsrb xmm4, byte [r14 + rdx], 13 + QUAD $0x0e0e24203a0f4166 // pinsrb xmm4, byte [r14 + rcx], 14 + QUAD $0x0f3624203a0f4166 // pinsrb xmm4, byte [r14 + rsi], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x01065c203a0f4166; BYTE $0x01 // pinsrb xmm3, byte [r14 + rax + 1], 1 + QUAD $0x01065c203a0f4366; BYTE $0x02 // pinsrb xmm3, byte [r14 + r8 + 1], 2 + QUAD $0x011e5c203a0f4366; BYTE $0x03 // pinsrb xmm3, byte [r14 + r11 + 1], 3 + QUAD $0x010e5c203a0f4366; BYTE $0x04 // pinsrb xmm3, byte [r14 + r9 + 1], 4 + QUAD $0x012e5c203a0f4366; BYTE $0x05 // pinsrb xmm3, byte [r14 + r13 + 1], 5 + WORD $0x894d; BYTE $0xe9 // mov r9, r13 + QUAD $0x013e5c203a0f4366; BYTE $0x06 // pinsrb xmm3, byte [r14 + r15 + 1], 6 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + QUAD $0x013e5c203a0f4166; BYTE $0x07 // pinsrb xmm3, byte [r14 + rdi + 1], 7 + QUAD $0x01165c203a0f4366; BYTE $0x08 // pinsrb xmm3, byte [r14 + r10 + 1], 8 + QUAD $0x01265c203a0f4366; BYTE $0x09 // pinsrb xmm3, byte [r14 + r12 + 1], 9 + WORD $0x894c; BYTE $0xe7 // mov rdi, r12 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x01265c203a0f4366; BYTE $0x0a // pinsrb xmm3, byte [r14 + r12 + 1], 10 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x01065c203a0f4166; BYTE $0x0b // pinsrb xmm3, byte [r14 + rax + 1], 11 + QUAD $0x011e5c203a0f4166; BYTE $0x0c // pinsrb xmm3, byte [r14 + rbx + 1], 12 + QUAD $0x01165c203a0f4166; BYTE $0x0d // pinsrb xmm3, byte [r14 + rdx + 1], 13 + LONG $0x24548948; BYTE $0x30 // mov qword [rsp + 48], rdx + QUAD $0x010e5c203a0f4166; BYTE $0x0e // pinsrb xmm3, byte [r14 + rcx + 1], 14 + QUAD $0x0000b0248c6f0f66; BYTE $0x00 // movdqa xmm1, oword [rsp + 176] + LONG $0xe1740f66 // pcmpeqb xmm4, xmm1 + QUAD $0x01365c203a0f4166; BYTE $0x0f // pinsrb xmm3, byte [r14 + rsi + 1], 15 + WORD $0x8949; BYTE $0xf0 // mov r8, rsi + LONG $0xd9740f66 // pcmpeqb xmm3, xmm1 + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xdcfc0f66 // paddb xmm3, xmm4 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + LONG $0x74b60f41; WORD $0x1006 // movzx esi, byte [r14 + rax + 16] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x02066c203a0f4166; BYTE $0x01 // pinsrb xmm5, byte [r14 + rax + 2], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x022e6c203a0f4366; BYTE $0x02 // pinsrb xmm5, byte [r14 + r13 + 2], 2 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x023e6c203a0f4366; BYTE $0x03 // pinsrb xmm5, byte [r14 + r15 + 2], 3 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x021e6c203a0f4166; BYTE $0x04 // pinsrb xmm5, byte [r14 + rbx + 2], 4 + QUAD $0x020e6c203a0f4366; BYTE $0x05 // pinsrb xmm5, byte [r14 + r9 + 2], 5 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x021e6c203a0f4366; BYTE $0x06 // pinsrb xmm5, byte [r14 + r11 + 2], 6 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x02166c203a0f4366; BYTE $0x07 // pinsrb xmm5, byte [r14 + r10 + 2], 7 + QUAD $0x0000009824848b48 // mov rax, qword [rsp + 152] + QUAD $0x02066c203a0f4166; BYTE $0x08 // pinsrb xmm5, byte [r14 + rax + 2], 8 + LONG $0x247c8948; BYTE $0x60 // mov qword [rsp + 96], rdi + QUAD $0x023e6c203a0f4166; BYTE $0x09 // pinsrb xmm5, byte [r14 + rdi + 2], 9 + QUAD $0x02266c203a0f4366; BYTE $0x0a // pinsrb xmm5, byte [r14 + r12 + 2], 10 + LONG $0x24748b48; BYTE $0x70 // mov rsi, qword [rsp + 112] + QUAD $0x02366c203a0f4166; BYTE $0x0b // pinsrb xmm5, byte [r14 + rsi + 2], 11 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x020e6c203a0f4166; BYTE $0x0c // pinsrb xmm5, byte [r14 + rcx + 2], 12 + QUAD $0x02166c203a0f4166; BYTE $0x0d // pinsrb xmm5, byte [r14 + rdx + 2], 13 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x02166c203a0f4166; BYTE $0x0e // pinsrb xmm5, byte [r14 + rdx + 2], 14 + QUAD $0x02066c203a0f4366; BYTE $0x0f // pinsrb xmm5, byte [r14 + r8 + 2], 15 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x03167c203a0f4166; BYTE $0x01 // pinsrb xmm7, byte [r14 + rdx + 3], 1 + QUAD $0x032e7c203a0f4366; BYTE $0x02 // pinsrb xmm7, byte [r14 + r13 + 3], 2 + QUAD $0x033e7c203a0f4366; BYTE $0x03 // pinsrb xmm7, byte [r14 + r15 + 3], 3 + QUAD $0x031e7c203a0f4166; BYTE $0x04 // pinsrb xmm7, byte [r14 + rbx + 3], 4 + QUAD $0x030e7c203a0f4366; BYTE $0x05 // pinsrb xmm7, byte [r14 + r9 + 3], 5 + QUAD $0x031e7c203a0f4366; BYTE $0x06 // pinsrb xmm7, byte [r14 + r11 + 3], 6 + QUAD $0x03167c203a0f4366; BYTE $0x07 // pinsrb xmm7, byte [r14 + r10 + 3], 7 + QUAD $0x03067c203a0f4166; BYTE $0x08 // pinsrb xmm7, byte [r14 + rax + 3], 8 + QUAD $0x033e7c203a0f4166; BYTE $0x09 // pinsrb xmm7, byte [r14 + rdi + 3], 9 + QUAD $0x03267c203a0f4366; BYTE $0x0a // pinsrb xmm7, byte [r14 + r12 + 3], 10 + QUAD $0x03367c203a0f4166; BYTE $0x0b // pinsrb xmm7, byte [r14 + rsi + 3], 11 + QUAD $0x030e7c203a0f4166; BYTE $0x0c // pinsrb xmm7, byte [r14 + rcx + 3], 12 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x03167c203a0f4166; BYTE $0x0d // pinsrb xmm7, byte [r14 + rdx + 3], 13 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x03167c203a0f4166; BYTE $0x0e // pinsrb xmm7, byte [r14 + rdx + 3], 14 + QUAD $0x03067c203a0f4366; BYTE $0x0f // pinsrb xmm7, byte [r14 + r8 + 3], 15 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x04164c203a0f4566; BYTE $0x01 // pinsrb xmm9, byte [r14 + rdx + 4], 1 + QUAD $0x042e4c203a0f4766; BYTE $0x02 // pinsrb xmm9, byte [r14 + r13 + 4], 2 + QUAD $0x043e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 4], 3 + QUAD $0x041e4c203a0f4566; BYTE $0x04 // pinsrb xmm9, byte [r14 + rbx + 4], 4 + QUAD $0x040e4c203a0f4766; BYTE $0x05 // pinsrb xmm9, byte [r14 + r9 + 4], 5 + WORD $0x894d; BYTE $0xcf // mov r15, r9 + LONG $0x244c894c; BYTE $0x38 // mov qword [rsp + 56], r9 + QUAD $0x041e4c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r11 + 4], 6 + QUAD $0x04164c203a0f4766; BYTE $0x07 // pinsrb xmm9, byte [r14 + r10 + 4], 7 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x04064c203a0f4566; BYTE $0x08 // pinsrb xmm9, byte [r14 + rax + 4], 8 + QUAD $0x043e4c203a0f4566; BYTE $0x09 // pinsrb xmm9, byte [r14 + rdi + 4], 9 + QUAD $0x04264c203a0f4766; BYTE $0x0a // pinsrb xmm9, byte [r14 + r12 + 4], 10 + QUAD $0x04364c203a0f4566; BYTE $0x0b // pinsrb xmm9, byte [r14 + rsi + 4], 11 + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + QUAD $0x040e4c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rcx + 4], 12 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x04264c203a0f4766; BYTE $0x0d // pinsrb xmm9, byte [r14 + r12 + 4], 13 + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x04164c203a0f4566; BYTE $0x0e // pinsrb xmm9, byte [r14 + rdx + 4], 14 + QUAD $0x04064c203a0f4766; BYTE $0x0f // pinsrb xmm9, byte [r14 + r8 + 4], 15 + LONG $0xe9740f66 // pcmpeqb xmm5, xmm1 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xf9740f66 // pcmpeqb xmm7, xmm1 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xf8df0f66 // pandn xmm7, xmm0 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + LONG $0x74b60f41; WORD $0x1116 // movzx esi, byte [r14 + rdx + 17] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x740f4466; BYTE $0xc9 // pcmpeqb xmm9, xmm1 + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xdf0f4466; BYTE $0xc8 // pandn xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0x74b60f41; WORD $0x1216 // movzx esi, byte [r14 + rdx + 18] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xeb0f4466; BYTE $0xcb // por xmm9, xmm3 + LONG $0x74b60f41; WORD $0x1316 // movzx esi, byte [r14 + rdx + 19] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x051654203a0f4166; BYTE $0x01 // pinsrb xmm2, byte [r14 + rdx + 5], 1 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x051e54203a0f4366; BYTE $0x02 // pinsrb xmm2, byte [r14 + r11 + 5], 2 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x052e54203a0f4366; BYTE $0x03 // pinsrb xmm2, byte [r14 + r13 + 5], 3 + QUAD $0x051e54203a0f4166; BYTE $0x04 // pinsrb xmm2, byte [r14 + rbx + 5], 4 + QUAD $0x053e54203a0f4366; BYTE $0x05 // pinsrb xmm2, byte [r14 + r15 + 5], 5 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x051654203a0f4366; BYTE $0x06 // pinsrb xmm2, byte [r14 + r10 + 5], 6 + QUAD $0x050e54203a0f4366; BYTE $0x07 // pinsrb xmm2, byte [r14 + r9 + 5], 7 + QUAD $0x050654203a0f4166; BYTE $0x08 // pinsrb xmm2, byte [r14 + rax + 5], 8 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x053654203a0f4166; BYTE $0x09 // pinsrb xmm2, byte [r14 + rsi + 5], 9 + QUAD $0x0000009024bc8b4c // mov r15, qword [rsp + 144] + QUAD $0x053e54203a0f4366; BYTE $0x0a // pinsrb xmm2, byte [r14 + r15 + 5], 10 + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + QUAD $0x053e54203a0f4166; BYTE $0x0b // pinsrb xmm2, byte [r14 + rdi + 5], 11 + QUAD $0x050e54203a0f4166; BYTE $0x0c // pinsrb xmm2, byte [r14 + rcx + 5], 12 + QUAD $0x052654203a0f4366; BYTE $0x0d // pinsrb xmm2, byte [r14 + r12 + 5], 13 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x053e54203a0f4166; BYTE $0x0e // pinsrb xmm2, byte [r14 + rdi + 5], 14 + LONG $0x2444894c; BYTE $0x48 // mov qword [rsp + 72], r8 + QUAD $0x050654203a0f4366; BYTE $0x0f // pinsrb xmm2, byte [r14 + r8 + 5], 15 + QUAD $0x061644203a0f4566; BYTE $0x01 // pinsrb xmm8, byte [r14 + rdx + 6], 1 + QUAD $0x061e44203a0f4766; BYTE $0x02 // pinsrb xmm8, byte [r14 + r11 + 6], 2 + WORD $0x894d; BYTE $0xeb // mov r11, r13 + QUAD $0x062e44203a0f4766; BYTE $0x03 // pinsrb xmm8, byte [r14 + r13 + 6], 3 + QUAD $0x061e44203a0f4566; BYTE $0x04 // pinsrb xmm8, byte [r14 + rbx + 6], 4 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x062e44203a0f4766; BYTE $0x05 // pinsrb xmm8, byte [r14 + r13 + 6], 5 + QUAD $0x061644203a0f4766; BYTE $0x06 // pinsrb xmm8, byte [r14 + r10 + 6], 6 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x061e44203a0f4566; BYTE $0x07 // pinsrb xmm8, byte [r14 + rbx + 6], 7 + QUAD $0x060644203a0f4566; BYTE $0x08 // pinsrb xmm8, byte [r14 + rax + 6], 8 + QUAD $0x063644203a0f4566; BYTE $0x09 // pinsrb xmm8, byte [r14 + rsi + 6], 9 + QUAD $0x063e44203a0f4766; BYTE $0x0a // pinsrb xmm8, byte [r14 + r15 + 6], 10 + QUAD $0x060e44203a0f4766; BYTE $0x0b // pinsrb xmm8, byte [r14 + r9 + 6], 11 + QUAD $0x060e44203a0f4566; BYTE $0x0c // pinsrb xmm8, byte [r14 + rcx + 6], 12 + QUAD $0x062644203a0f4766; BYTE $0x0d // pinsrb xmm8, byte [r14 + r12 + 6], 13 + QUAD $0x063e44203a0f4566; BYTE $0x0e // pinsrb xmm8, byte [r14 + rdi + 6], 14 + QUAD $0x060644203a0f4766; BYTE $0x0f // pinsrb xmm8, byte [r14 + r8 + 6], 15 + QUAD $0x071674203a0f4566; BYTE $0x01 // pinsrb xmm14, byte [r14 + rdx + 7], 1 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x071e74203a0f4566; BYTE $0x02 // pinsrb xmm14, byte [r14 + rbx + 7], 2 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x071e74203a0f4766; BYTE $0x03 // pinsrb xmm14, byte [r14 + r11 + 7], 3 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x071674203a0f4566; BYTE $0x04 // pinsrb xmm14, byte [r14 + rdx + 7], 4 + QUAD $0x072e74203a0f4766; BYTE $0x05 // pinsrb xmm14, byte [r14 + r13 + 7], 5 + QUAD $0x0000008824948b48 // mov rdx, qword [rsp + 136] + QUAD $0x071674203a0f4566; BYTE $0x06 // pinsrb xmm14, byte [r14 + rdx + 7], 6 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x070e74203a0f4766; BYTE $0x07 // pinsrb xmm14, byte [r14 + r9 + 7], 7 + QUAD $0x070674203a0f4566; BYTE $0x08 // pinsrb xmm14, byte [r14 + rax + 7], 8 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x073674203a0f4566; BYTE $0x09 // pinsrb xmm14, byte [r14 + rsi + 7], 9 + QUAD $0x073e74203a0f4766; BYTE $0x0a // pinsrb xmm14, byte [r14 + r15 + 7], 10 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x071674203a0f4766; BYTE $0x0b // pinsrb xmm14, byte [r14 + r10 + 7], 11 + QUAD $0x070e74203a0f4566; BYTE $0x0c // pinsrb xmm14, byte [r14 + rcx + 7], 12 + QUAD $0x072674203a0f4766; BYTE $0x0d // pinsrb xmm14, byte [r14 + r12 + 7], 13 + QUAD $0x073e74203a0f4566; BYTE $0x0e // pinsrb xmm14, byte [r14 + rdi + 7], 14 + LONG $0x6f0f4166; BYTE $0xce // movdqa xmm1, xmm14 + QUAD $0x00b024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0xd0df0f66 // pandn xmm2, xmm0 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xdf0f4466; BYTE $0xc0 // pandn xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + LONG $0x74b60f43; WORD $0x143e // movzx esi, byte [r14 + r15 + 20] + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x07064c203a0f4166; BYTE $0x0f // pinsrb xmm1, byte [r14 + rax + 7], 15 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xc8df0f66 // pandn xmm1, xmm0 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + LONG $0x74b60f43; WORD $0x153e // movzx esi, byte [r14 + r15 + 21] + LONG $0xd66e0f66 // movd xmm2, esi + QUAD $0x00010024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 256] + LONG $0x245c8b4c; BYTE $0x10 // mov r11, qword [rsp + 16] + QUAD $0x081e44203a0f4366; BYTE $0x01 // pinsrb xmm0, byte [r14 + r11 + 8], 1 + QUAD $0x081e44203a0f4166; BYTE $0x02 // pinsrb xmm0, byte [r14 + rbx + 8], 2 + QUAD $0x080644203a0f4366; BYTE $0x03 // pinsrb xmm0, byte [r14 + r8 + 8], 3 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x080e44203a0f4166; BYTE $0x04 // pinsrb xmm0, byte [r14 + rcx + 8], 4 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x083644203a0f4166; BYTE $0x05 // pinsrb xmm0, byte [r14 + rsi + 8], 5 + QUAD $0x081644203a0f4166; BYTE $0x06 // pinsrb xmm0, byte [r14 + rdx + 8], 6 + QUAD $0x080e44203a0f4366; BYTE $0x07 // pinsrb xmm0, byte [r14 + r9 + 8], 7 + QUAD $0x082e44203a0f4366; BYTE $0x08 // pinsrb xmm0, byte [r14 + r13 + 8], 8 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x083644203a0f4166; BYTE $0x09 // pinsrb xmm0, byte [r14 + rsi + 8], 9 + QUAD $0x0000009024a48b4c // mov r12, qword [rsp + 144] + QUAD $0x082644203a0f4366; BYTE $0x0a // pinsrb xmm0, byte [r14 + r12 + 8], 10 + QUAD $0x081644203a0f4366; BYTE $0x0b // pinsrb xmm0, byte [r14 + r10 + 8], 11 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x083644203a0f4166; BYTE $0x0c // pinsrb xmm0, byte [r14 + rsi + 8], 12 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x081e44203a0f4166; BYTE $0x0d // pinsrb xmm0, byte [r14 + rbx + 8], 13 + QUAD $0x083e44203a0f4166; BYTE $0x0e // pinsrb xmm0, byte [r14 + rdi + 8], 14 + QUAD $0x080644203a0f4166; BYTE $0x0f // pinsrb xmm0, byte [r14 + rax + 8], 15 + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + QUAD $0x000100248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm1 + LONG $0x74b60f43; WORD $0x163e // movzx esi, byte [r14 + r15 + 22] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x091e5c203a0f4766; BYTE $0x01 // pinsrb xmm11, byte [r14 + r11 + 9], 1 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x09165c203a0f4766; BYTE $0x02 // pinsrb xmm11, byte [r14 + r10 + 9], 2 + QUAD $0x09065c203a0f4766; BYTE $0x03 // pinsrb xmm11, byte [r14 + r8 + 9], 3 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + QUAD $0x090e5c203a0f4566; BYTE $0x04 // pinsrb xmm11, byte [r14 + rcx + 9], 4 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x090e5c203a0f4766; BYTE $0x05 // pinsrb xmm11, byte [r14 + r9 + 9], 5 + QUAD $0x09165c203a0f4566; BYTE $0x06 // pinsrb xmm11, byte [r14 + rdx + 9], 6 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x091e5c203a0f4766; BYTE $0x07 // pinsrb xmm11, byte [r14 + r11 + 9], 7 + QUAD $0x0000009824b48b48 // mov rsi, qword [rsp + 152] + QUAD $0x09365c203a0f4566; BYTE $0x08 // pinsrb xmm11, byte [r14 + rsi + 9], 8 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x09065c203a0f4766; BYTE $0x09 // pinsrb xmm11, byte [r14 + r8 + 9], 9 + QUAD $0x09265c203a0f4766; BYTE $0x0a // pinsrb xmm11, byte [r14 + r12 + 9], 10 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x09165c203a0f4566; BYTE $0x0b // pinsrb xmm11, byte [r14 + rdx + 9], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x093e5c203a0f4566; BYTE $0x0c // pinsrb xmm11, byte [r14 + rdi + 9], 12 + QUAD $0x091e5c203a0f4566; BYTE $0x0d // pinsrb xmm11, byte [r14 + rbx + 9], 13 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x09065c203a0f4566; BYTE $0x0e // pinsrb xmm11, byte [r14 + rax + 9], 14 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x090e5c203a0f4566; BYTE $0x0f // pinsrb xmm11, byte [r14 + rcx + 9], 15 + QUAD $0x0a3e64203a0f4766; BYTE $0x01 // pinsrb xmm12, byte [r14 + r15 + 10], 1 + QUAD $0x0a1664203a0f4766; BYTE $0x02 // pinsrb xmm12, byte [r14 + r10 + 10], 2 + QUAD $0x0a2e64203a0f4766; BYTE $0x03 // pinsrb xmm12, byte [r14 + r13 + 10], 3 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x0a1664203a0f4766; BYTE $0x04 // pinsrb xmm12, byte [r14 + r10 + 10], 4 + QUAD $0x0a0e64203a0f4766; BYTE $0x05 // pinsrb xmm12, byte [r14 + r9 + 10], 5 + QUAD $0x00000088248c8b4c // mov r9, qword [rsp + 136] + QUAD $0x0a0e64203a0f4766; BYTE $0x06 // pinsrb xmm12, byte [r14 + r9 + 10], 6 + QUAD $0x0a1e64203a0f4766; BYTE $0x07 // pinsrb xmm12, byte [r14 + r11 + 10], 7 + QUAD $0x0a3664203a0f4566; BYTE $0x08 // pinsrb xmm12, byte [r14 + rsi + 10], 8 + QUAD $0x0a0664203a0f4766; BYTE $0x09 // pinsrb xmm12, byte [r14 + r8 + 10], 9 + QUAD $0x0a2664203a0f4766; BYTE $0x0a // pinsrb xmm12, byte [r14 + r12 + 10], 10 + QUAD $0x0a1664203a0f4566; BYTE $0x0b // pinsrb xmm12, byte [r14 + rdx + 10], 11 + QUAD $0x0a3e64203a0f4566; BYTE $0x0c // pinsrb xmm12, byte [r14 + rdi + 10], 12 + QUAD $0x0a1e64203a0f4566; BYTE $0x0d // pinsrb xmm12, byte [r14 + rbx + 10], 13 + QUAD $0x0a0664203a0f4566; BYTE $0x0e // pinsrb xmm12, byte [r14 + rax + 10], 14 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + QUAD $0x0a0e64203a0f4566; BYTE $0x0f // pinsrb xmm12, byte [r14 + rcx + 10], 15 + QUAD $0x0b3e6c203a0f4766; BYTE $0x01 // pinsrb xmm13, byte [r14 + r15 + 11], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0b2e6c203a0f4766; BYTE $0x02 // pinsrb xmm13, byte [r14 + r13 + 11], 2 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b066c203a0f4566; BYTE $0x03 // pinsrb xmm13, byte [r14 + rax + 11], 3 + QUAD $0x0b166c203a0f4766; BYTE $0x04 // pinsrb xmm13, byte [r14 + r10 + 11], 4 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0b066c203a0f4566; BYTE $0x05 // pinsrb xmm13, byte [r14 + rax + 11], 5 + QUAD $0x0b0e6c203a0f4766; BYTE $0x06 // pinsrb xmm13, byte [r14 + r9 + 11], 6 + QUAD $0x0b1e6c203a0f4766; BYTE $0x07 // pinsrb xmm13, byte [r14 + r11 + 11], 7 + QUAD $0x0b366c203a0f4566; BYTE $0x08 // pinsrb xmm13, byte [r14 + rsi + 11], 8 + QUAD $0x0b066c203a0f4766; BYTE $0x09 // pinsrb xmm13, byte [r14 + r8 + 11], 9 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x0b266c203a0f4766; BYTE $0x0a // pinsrb xmm13, byte [r14 + r12 + 11], 10 + QUAD $0x0b166c203a0f4566; BYTE $0x0b // pinsrb xmm13, byte [r14 + rdx + 11], 11 + QUAD $0x0b3e6c203a0f4566; BYTE $0x0c // pinsrb xmm13, byte [r14 + rdi + 11], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0b366c203a0f4566; BYTE $0x0d // pinsrb xmm13, byte [r14 + rsi + 11], 13 + QUAD $0x0b1e6c203a0f4566; BYTE $0x0e // pinsrb xmm13, byte [r14 + rbx + 11], 14 + QUAD $0x0b0e6c203a0f4566; BYTE $0x0f // pinsrb xmm13, byte [r14 + rcx + 11], 15 + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001009ddf0f4466; BYTE $0x00 // pandn xmm11, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xfc0f4466; BYTE $0xd8 // paddb xmm11, xmm0 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + LONG $0x74b60f41; WORD $0x170e // movzx esi, byte [r14 + rcx + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x000110a5df0f4466; BYTE $0x00 // pandn xmm12, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x74b60f41; WORD $0x180e // movzx esi, byte [r14 + rcx + 24] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x00e0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 224] + QUAD $0x0c3e4c203a0f4766; BYTE $0x01 // pinsrb xmm9, byte [r14 + r15 + 12], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0c2e4c203a0f4766; BYTE $0x02 // pinsrb xmm9, byte [r14 + r13 + 12], 2 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x0c3e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 12], 3 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x0c1e4c203a0f4566; BYTE $0x04 // pinsrb xmm9, byte [r14 + rbx + 12], 4 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x0c164c203a0f4766; BYTE $0x05 // pinsrb xmm9, byte [r14 + r10 + 12], 5 + QUAD $0x0c0e4c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r9 + 12], 6 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x0c1e4c203a0f4766; BYTE $0x07 // pinsrb xmm9, byte [r14 + r11 + 12], 7 + QUAD $0x00000098249c8b4c // mov r11, qword [rsp + 152] + QUAD $0x0c1e4c203a0f4766; BYTE $0x08 // pinsrb xmm9, byte [r14 + r11 + 12], 8 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x0c064c203a0f4566; BYTE $0x09 // pinsrb xmm9, byte [r14 + rax + 12], 9 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x0c0e4c203a0f4566; BYTE $0x0a // pinsrb xmm9, byte [r14 + rcx + 12], 10 + QUAD $0x0c164c203a0f4566; BYTE $0x0b // pinsrb xmm9, byte [r14 + rdx + 12], 11 + QUAD $0x0c3e4c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rdi + 12], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0c364c203a0f4566; BYTE $0x0d // pinsrb xmm9, byte [r14 + rsi + 12], 13 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0c064c203a0f4566; BYTE $0x0e // pinsrb xmm9, byte [r14 + rax + 12], 14 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0c064c203a0f4566; BYTE $0x0f // pinsrb xmm9, byte [r14 + rax + 12], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d0674203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rax + 13], 1 + QUAD $0x0d2e74203a0f4366; BYTE $0x02 // pinsrb xmm6, byte [r14 + r13 + 13], 2 + QUAD $0x0d3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 13], 3 + QUAD $0x0d1e74203a0f4166; BYTE $0x04 // pinsrb xmm6, byte [r14 + rbx + 13], 4 + QUAD $0x0d1674203a0f4366; BYTE $0x05 // pinsrb xmm6, byte [r14 + r10 + 13], 5 + QUAD $0x0d0e74203a0f4366; BYTE $0x06 // pinsrb xmm6, byte [r14 + r9 + 13], 6 + QUAD $0x0d0674203a0f4366; BYTE $0x07 // pinsrb xmm6, byte [r14 + r8 + 13], 7 + QUAD $0x0d1e74203a0f4366; BYTE $0x08 // pinsrb xmm6, byte [r14 + r11 + 13], 8 + QUAD $0x0d2674203a0f4366; BYTE $0x09 // pinsrb xmm6, byte [r14 + r12 + 13], 9 + QUAD $0x0d0e74203a0f4166; BYTE $0x0a // pinsrb xmm6, byte [r14 + rcx + 13], 10 + QUAD $0x0d1674203a0f4166; BYTE $0x0b // pinsrb xmm6, byte [r14 + rdx + 13], 11 + QUAD $0x0d3e74203a0f4166; BYTE $0x0c // pinsrb xmm6, byte [r14 + rdi + 13], 12 + QUAD $0x0d3674203a0f4166; BYTE $0x0d // pinsrb xmm6, byte [r14 + rsi + 13], 13 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0d0674203a0f4166; BYTE $0x0e // pinsrb xmm6, byte [r14 + rax + 13], 14 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0d0674203a0f4166; BYTE $0x0f // pinsrb xmm6, byte [r14 + rax + 13], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e067c203a0f4566; BYTE $0x01 // pinsrb xmm15, byte [r14 + rax + 14], 1 + QUAD $0x0e2e7c203a0f4766; BYTE $0x02 // pinsrb xmm15, byte [r14 + r13 + 14], 2 + QUAD $0x0e3e7c203a0f4766; BYTE $0x03 // pinsrb xmm15, byte [r14 + r15 + 14], 3 + QUAD $0x0e1e7c203a0f4566; BYTE $0x04 // pinsrb xmm15, byte [r14 + rbx + 14], 4 + QUAD $0x0e167c203a0f4766; BYTE $0x05 // pinsrb xmm15, byte [r14 + r10 + 14], 5 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0e0e7c203a0f4766; BYTE $0x06 // pinsrb xmm15, byte [r14 + r9 + 14], 6 + QUAD $0x0e067c203a0f4766; BYTE $0x07 // pinsrb xmm15, byte [r14 + r8 + 14], 7 + QUAD $0x0e1e7c203a0f4766; BYTE $0x08 // pinsrb xmm15, byte [r14 + r11 + 14], 8 + QUAD $0x0e267c203a0f4766; BYTE $0x09 // pinsrb xmm15, byte [r14 + r12 + 14], 9 + QUAD $0x0e0e7c203a0f4566; BYTE $0x0a // pinsrb xmm15, byte [r14 + rcx + 14], 10 + WORD $0x8949; BYTE $0xcc // mov r12, rcx + QUAD $0x0e167c203a0f4566; BYTE $0x0b // pinsrb xmm15, byte [r14 + rdx + 14], 11 + WORD $0x8949; BYTE $0xd2 // mov r10, rdx + QUAD $0x0e3e7c203a0f4566; BYTE $0x0c // pinsrb xmm15, byte [r14 + rdi + 14], 12 + QUAD $0x0e367c203a0f4566; BYTE $0x0d // pinsrb xmm15, byte [r14 + rsi + 14], 13 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0e067c203a0f4566; BYTE $0x0e // pinsrb xmm15, byte [r14 + rax + 14], 14 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + QUAD $0x0001308ddf0f4466; BYTE $0x00 // pandn xmm9, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xeb0f4566; BYTE $0xcd // por xmm9, xmm13 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + LONG $0x74b60f41; WORD $0x1906 // movzx esi, byte [r14 + rax + 25] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + QUAD $0x0001609df80f4466; BYTE $0x00 // psubb xmm11, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xeb0f4566; BYTE $0xcb // por xmm9, xmm11 + LONG $0x74b60f41; WORD $0x1a06 // movzx esi, byte [r14 + rax + 26] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x0e0e7c203a0f4566; BYTE $0x0f // pinsrb xmm15, byte [r14 + rcx + 14], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + QUAD $0x00000140b5df0f66 // pandn xmm6, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000150bddf0f4466; BYTE $0x00 // pandn xmm15, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xeb0f4466; BYTE $0xfe // por xmm15, xmm6 + LONG $0x74b60f41; WORD $0x1b06 // movzx esi, byte [r14 + rax + 27] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x0000c024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 192] + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f3e74203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rdi + 15], 1 + WORD $0x894c; BYTE $0xea // mov rdx, r13 + QUAD $0x0f2e74203a0f4366; BYTE $0x02 // pinsrb xmm6, byte [r14 + r13 + 15], 2 + QUAD $0x0f3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 15], 3 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x0f0e74203a0f4366; BYTE $0x04 // pinsrb xmm6, byte [r14 + r9 + 15], 4 + QUAD $0x0f1e74203a0f4166; BYTE $0x05 // pinsrb xmm6, byte [r14 + rbx + 15], 5 + QUAD $0x00000088249c8b48 // mov rbx, qword [rsp + 136] + QUAD $0x0f1e74203a0f4166; BYTE $0x06 // pinsrb xmm6, byte [r14 + rbx + 15], 6 + QUAD $0x0f0674203a0f4366; BYTE $0x07 // pinsrb xmm6, byte [r14 + r8 + 15], 7 + QUAD $0x0f1e74203a0f4366; BYTE $0x08 // pinsrb xmm6, byte [r14 + r11 + 15], 8 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x0f0674203a0f4366; BYTE $0x09 // pinsrb xmm6, byte [r14 + r8 + 15], 9 + QUAD $0x0f2674203a0f4366; BYTE $0x0a // pinsrb xmm6, byte [r14 + r12 + 15], 10 + QUAD $0x0f1674203a0f4366; BYTE $0x0b // pinsrb xmm6, byte [r14 + r10 + 15], 11 + WORD $0x894d; BYTE $0xd7 // mov r15, r10 + LONG $0x24548b4c; BYTE $0x78 // mov r10, qword [rsp + 120] + QUAD $0x0f1674203a0f4366; BYTE $0x0c // pinsrb xmm6, byte [r14 + r10 + 15], 12 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x0f2e74203a0f4366; BYTE $0x0d // pinsrb xmm6, byte [r14 + r13 + 15], 13 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x0f3674203a0f4166; BYTE $0x0e // pinsrb xmm6, byte [r14 + rsi + 15], 14 + QUAD $0x0f0e74203a0f4166; BYTE $0x0f // pinsrb xmm6, byte [r14 + rcx + 15], 15 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0x75df0f66; BYTE $0x60 // pandn xmm6, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x74b60f41; WORD $0x1c06 // movzx esi, byte [r14 + rax + 28] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + LONG $0xeb0f4166; BYTE $0xf1 // por xmm6, xmm9 + QUAD $0x0000c024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm6 + LONG $0x74b60f41; WORD $0x1d06 // movzx esi, byte [r14 + rax + 29] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + QUAD $0x103e54203a0f4566; BYTE $0x01 // pinsrb xmm10, byte [r14 + rdi + 16], 1 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x101654203a0f4566; BYTE $0x02 // pinsrb xmm10, byte [r14 + rdx + 16], 2 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x101654203a0f4566; BYTE $0x03 // pinsrb xmm10, byte [r14 + rdx + 16], 3 + QUAD $0x100e54203a0f4766; BYTE $0x04 // pinsrb xmm10, byte [r14 + r9 + 16], 4 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x103e54203a0f4566; BYTE $0x05 // pinsrb xmm10, byte [r14 + rdi + 16], 5 + QUAD $0x101e54203a0f4566; BYTE $0x06 // pinsrb xmm10, byte [r14 + rbx + 16], 6 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x101e54203a0f4566; BYTE $0x07 // pinsrb xmm10, byte [r14 + rbx + 16], 7 + QUAD $0x101e54203a0f4766; BYTE $0x08 // pinsrb xmm10, byte [r14 + r11 + 16], 8 + QUAD $0x100654203a0f4766; BYTE $0x09 // pinsrb xmm10, byte [r14 + r8 + 16], 9 + QUAD $0x102654203a0f4766; BYTE $0x0a // pinsrb xmm10, byte [r14 + r12 + 16], 10 + QUAD $0x103e54203a0f4766; BYTE $0x0b // pinsrb xmm10, byte [r14 + r15 + 16], 11 + QUAD $0x101654203a0f4766; BYTE $0x0c // pinsrb xmm10, byte [r14 + r10 + 16], 12 + QUAD $0x102e54203a0f4766; BYTE $0x0d // pinsrb xmm10, byte [r14 + r13 + 16], 13 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x100e54203a0f4566; BYTE $0x0e // pinsrb xmm10, byte [r14 + rcx + 16], 14 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x102e54203a0f4766; BYTE $0x0f // pinsrb xmm10, byte [r14 + r13 + 16], 15 + QUAD $0x113664203a0f4166; BYTE $0x01 // pinsrb xmm4, byte [r14 + rsi + 17], 1 + QUAD $0x110664203a0f4166; BYTE $0x02 // pinsrb xmm4, byte [r14 + rax + 17], 2 + QUAD $0x111664203a0f4166; BYTE $0x03 // pinsrb xmm4, byte [r14 + rdx + 17], 3 + QUAD $0x110e64203a0f4366; BYTE $0x04 // pinsrb xmm4, byte [r14 + r9 + 17], 4 + QUAD $0x113e64203a0f4166; BYTE $0x05 // pinsrb xmm4, byte [r14 + rdi + 17], 5 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x111664203a0f4366; BYTE $0x06 // pinsrb xmm4, byte [r14 + r10 + 17], 6 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + QUAD $0x111e64203a0f4166; BYTE $0x07 // pinsrb xmm4, byte [r14 + rbx + 17], 7 + QUAD $0x111e64203a0f4366; BYTE $0x08 // pinsrb xmm4, byte [r14 + r11 + 17], 8 + QUAD $0x110664203a0f4366; BYTE $0x09 // pinsrb xmm4, byte [r14 + r8 + 17], 9 + QUAD $0x112664203a0f4366; BYTE $0x0a // pinsrb xmm4, byte [r14 + r12 + 17], 10 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + QUAD $0x113e64203a0f4366; BYTE $0x0b // pinsrb xmm4, byte [r14 + r15 + 17], 11 + LONG $0x247c8b48; BYTE $0x78 // mov rdi, qword [rsp + 120] + QUAD $0x113e64203a0f4166; BYTE $0x0c // pinsrb xmm4, byte [r14 + rdi + 17], 12 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x111664203a0f4166; BYTE $0x0d // pinsrb xmm4, byte [r14 + rdx + 17], 13 + QUAD $0x110e64203a0f4166; BYTE $0x0e // pinsrb xmm4, byte [r14 + rcx + 17], 14 + QUAD $0x112e64203a0f4366; BYTE $0x0f // pinsrb xmm4, byte [r14 + r13 + 17], 15 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0x740f4166; BYTE $0xe6 // pcmpeqb xmm4, xmm14 + QUAD $0x00000100b56f0f66 // movdqa xmm6, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xe6df0f66 // pandn xmm4, xmm6 + LONG $0xfc0f4166; BYTE $0xe2 // paddb xmm4, xmm10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + LONG $0x74b60f41; WORD $0x1e06 // movzx esi, byte [r14 + rax + 30] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x12367c203a0f4166; BYTE $0x01 // pinsrb xmm7, byte [r14 + rsi + 18], 1 + QUAD $0x13366c203a0f4166; BYTE $0x01 // pinsrb xmm5, byte [r14 + rsi + 19], 1 + QUAD $0x14365c203a0f4166; BYTE $0x01 // pinsrb xmm3, byte [r14 + rsi + 20], 1 + QUAD $0x153654203a0f4166; BYTE $0x01 // pinsrb xmm2, byte [r14 + rsi + 21], 1 + QUAD $0x16364c203a0f4166; BYTE $0x01 // pinsrb xmm1, byte [r14 + rsi + 22], 1 + QUAD $0x173644203a0f4566; BYTE $0x01 // pinsrb xmm8, byte [r14 + rsi + 23], 1 + QUAD $0x183664203a0f4566; BYTE $0x01 // pinsrb xmm12, byte [r14 + rsi + 24], 1 + QUAD $0x19366c203a0f4566; BYTE $0x01 // pinsrb xmm13, byte [r14 + rsi + 25], 1 + QUAD $0x1a3644203a0f4166; BYTE $0x01 // pinsrb xmm0, byte [r14 + rsi + 26], 1 + QUAD $0x1b365c203a0f4566; BYTE $0x01 // pinsrb xmm11, byte [r14 + rsi + 27], 1 + QUAD $0x1c367c203a0f4566; BYTE $0x01 // pinsrb xmm15, byte [r14 + rsi + 28], 1 + QUAD $0x1d364c203a0f4566; BYTE $0x01 // pinsrb xmm9, byte [r14 + rsi + 29], 1 + QUAD $0x1e3654203a0f4566; BYTE $0x01 // pinsrb xmm10, byte [r14 + rsi + 30], 1 + LONG $0x44b60f41; WORD $0x1f06 // movzx eax, byte [r14 + rax + 31] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x1f3674203a0f4166; BYTE $0x01 // pinsrb xmm6, byte [r14 + rsi + 31], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x12067c203a0f4166; BYTE $0x02 // pinsrb xmm7, byte [r14 + rax + 18], 2 + QUAD $0x13066c203a0f4166; BYTE $0x02 // pinsrb xmm5, byte [r14 + rax + 19], 2 + QUAD $0x14065c203a0f4166; BYTE $0x02 // pinsrb xmm3, byte [r14 + rax + 20], 2 + QUAD $0x150654203a0f4166; BYTE $0x02 // pinsrb xmm2, byte [r14 + rax + 21], 2 + QUAD $0x16064c203a0f4166; BYTE $0x02 // pinsrb xmm1, byte [r14 + rax + 22], 2 + QUAD $0x170644203a0f4566; BYTE $0x02 // pinsrb xmm8, byte [r14 + rax + 23], 2 + QUAD $0x180664203a0f4566; BYTE $0x02 // pinsrb xmm12, byte [r14 + rax + 24], 2 + QUAD $0x19066c203a0f4566; BYTE $0x02 // pinsrb xmm13, byte [r14 + rax + 25], 2 + QUAD $0x1a0644203a0f4166; BYTE $0x02 // pinsrb xmm0, byte [r14 + rax + 26], 2 + QUAD $0x1b065c203a0f4566; BYTE $0x02 // pinsrb xmm11, byte [r14 + rax + 27], 2 + QUAD $0x1c067c203a0f4566; BYTE $0x02 // pinsrb xmm15, byte [r14 + rax + 28], 2 + QUAD $0x1d064c203a0f4566; BYTE $0x02 // pinsrb xmm9, byte [r14 + rax + 29], 2 + QUAD $0x1e0654203a0f4566; BYTE $0x02 // pinsrb xmm10, byte [r14 + rax + 30], 2 + QUAD $0x1f0674203a0f4166; BYTE $0x02 // pinsrb xmm6, byte [r14 + rax + 31], 2 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x123e7c203a0f4366; BYTE $0x03 // pinsrb xmm7, byte [r14 + r15 + 18], 3 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x12067c203a0f4166; BYTE $0x04 // pinsrb xmm7, byte [r14 + rax + 18], 4 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x121e7c203a0f4166; BYTE $0x05 // pinsrb xmm7, byte [r14 + rbx + 18], 5 + QUAD $0x12167c203a0f4366; BYTE $0x06 // pinsrb xmm7, byte [r14 + r10 + 18], 6 + QUAD $0x120e7c203a0f4366; BYTE $0x07 // pinsrb xmm7, byte [r14 + r9 + 18], 7 + QUAD $0x121e7c203a0f4366; BYTE $0x08 // pinsrb xmm7, byte [r14 + r11 + 18], 8 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x12367c203a0f4166; BYTE $0x09 // pinsrb xmm7, byte [r14 + rsi + 18], 9 + QUAD $0x12267c203a0f4366; BYTE $0x0a // pinsrb xmm7, byte [r14 + r12 + 18], 10 + QUAD $0x12067c203a0f4366; BYTE $0x0b // pinsrb xmm7, byte [r14 + r8 + 18], 11 + QUAD $0x123e7c203a0f4166; BYTE $0x0c // pinsrb xmm7, byte [r14 + rdi + 18], 12 + QUAD $0x12167c203a0f4166; BYTE $0x0d // pinsrb xmm7, byte [r14 + rdx + 18], 13 + QUAD $0x120e7c203a0f4166; BYTE $0x0e // pinsrb xmm7, byte [r14 + rcx + 18], 14 + QUAD $0x122e7c203a0f4366; BYTE $0x0f // pinsrb xmm7, byte [r14 + r13 + 18], 15 + QUAD $0x133e6c203a0f4366; BYTE $0x03 // pinsrb xmm5, byte [r14 + r15 + 19], 3 + QUAD $0x13066c203a0f4166; BYTE $0x04 // pinsrb xmm5, byte [r14 + rax + 19], 4 + QUAD $0x131e6c203a0f4166; BYTE $0x05 // pinsrb xmm5, byte [r14 + rbx + 19], 5 + QUAD $0x13166c203a0f4366; BYTE $0x06 // pinsrb xmm5, byte [r14 + r10 + 19], 6 + QUAD $0x130e6c203a0f4366; BYTE $0x07 // pinsrb xmm5, byte [r14 + r9 + 19], 7 + QUAD $0x131e6c203a0f4366; BYTE $0x08 // pinsrb xmm5, byte [r14 + r11 + 19], 8 + QUAD $0x13366c203a0f4166; BYTE $0x09 // pinsrb xmm5, byte [r14 + rsi + 19], 9 + QUAD $0x13266c203a0f4366; BYTE $0x0a // pinsrb xmm5, byte [r14 + r12 + 19], 10 + QUAD $0x13066c203a0f4366; BYTE $0x0b // pinsrb xmm5, byte [r14 + r8 + 19], 11 + QUAD $0x133e6c203a0f4166; BYTE $0x0c // pinsrb xmm5, byte [r14 + rdi + 19], 12 + QUAD $0x13166c203a0f4166; BYTE $0x0d // pinsrb xmm5, byte [r14 + rdx + 19], 13 + QUAD $0x130e6c203a0f4166; BYTE $0x0e // pinsrb xmm5, byte [r14 + rcx + 19], 14 + QUAD $0x132e6c203a0f4366; BYTE $0x0f // pinsrb xmm5, byte [r14 + r13 + 19], 15 + QUAD $0x143e5c203a0f4366; BYTE $0x03 // pinsrb xmm3, byte [r14 + r15 + 20], 3 + QUAD $0x14065c203a0f4166; BYTE $0x04 // pinsrb xmm3, byte [r14 + rax + 20], 4 + QUAD $0x141e5c203a0f4166; BYTE $0x05 // pinsrb xmm3, byte [r14 + rbx + 20], 5 + QUAD $0x14165c203a0f4366; BYTE $0x06 // pinsrb xmm3, byte [r14 + r10 + 20], 6 + QUAD $0x140e5c203a0f4366; BYTE $0x07 // pinsrb xmm3, byte [r14 + r9 + 20], 7 + QUAD $0x141e5c203a0f4366; BYTE $0x08 // pinsrb xmm3, byte [r14 + r11 + 20], 8 + QUAD $0x14365c203a0f4166; BYTE $0x09 // pinsrb xmm3, byte [r14 + rsi + 20], 9 + QUAD $0x14265c203a0f4366; BYTE $0x0a // pinsrb xmm3, byte [r14 + r12 + 20], 10 + QUAD $0x14065c203a0f4366; BYTE $0x0b // pinsrb xmm3, byte [r14 + r8 + 20], 11 + QUAD $0x143e5c203a0f4166; BYTE $0x0c // pinsrb xmm3, byte [r14 + rdi + 20], 12 + QUAD $0x14165c203a0f4166; BYTE $0x0d // pinsrb xmm3, byte [r14 + rdx + 20], 13 + QUAD $0x140e5c203a0f4166; BYTE $0x0e // pinsrb xmm3, byte [r14 + rcx + 20], 14 + LONG $0x740f4166; BYTE $0xfe // pcmpeqb xmm7, xmm14 + QUAD $0x000110b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0xdf0f4166; BYTE $0xfe // pandn xmm7, xmm14 + QUAD $0x0000b024ac740f66; BYTE $0x00 // pcmpeqb xmm5, oword [rsp + 176] + QUAD $0x000120b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xdf0f4166; BYTE $0xee // pandn xmm5, xmm14 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0x142e5c203a0f4366; BYTE $0x0f // pinsrb xmm3, byte [r14 + r13 + 20], 15 + QUAD $0x00b024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 176] + LONG $0x740f4166; BYTE $0xde // pcmpeqb xmm3, xmm14 + QUAD $0x00000130bd6f0f66 // movdqa xmm7, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xdfdf0f66 // pandn xmm3, xmm7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xe5f80f66 // psubb xmm4, xmm5 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x153e54203a0f4366; BYTE $0x03 // pinsrb xmm2, byte [r14 + r15 + 21], 3 + QUAD $0x150654203a0f4166; BYTE $0x04 // pinsrb xmm2, byte [r14 + rax + 21], 4 + QUAD $0x151e54203a0f4166; BYTE $0x05 // pinsrb xmm2, byte [r14 + rbx + 21], 5 + QUAD $0x151654203a0f4366; BYTE $0x06 // pinsrb xmm2, byte [r14 + r10 + 21], 6 + QUAD $0x150e54203a0f4366; BYTE $0x07 // pinsrb xmm2, byte [r14 + r9 + 21], 7 + QUAD $0x151e54203a0f4366; BYTE $0x08 // pinsrb xmm2, byte [r14 + r11 + 21], 8 + QUAD $0x153654203a0f4166; BYTE $0x09 // pinsrb xmm2, byte [r14 + rsi + 21], 9 + QUAD $0x152654203a0f4366; BYTE $0x0a // pinsrb xmm2, byte [r14 + r12 + 21], 10 + QUAD $0x150654203a0f4366; BYTE $0x0b // pinsrb xmm2, byte [r14 + r8 + 21], 11 + QUAD $0x153e54203a0f4166; BYTE $0x0c // pinsrb xmm2, byte [r14 + rdi + 21], 12 + QUAD $0x151654203a0f4166; BYTE $0x0d // pinsrb xmm2, byte [r14 + rdx + 21], 13 + QUAD $0x150e54203a0f4166; BYTE $0x0e // pinsrb xmm2, byte [r14 + rcx + 21], 14 + QUAD $0x152e54203a0f4366; BYTE $0x0f // pinsrb xmm2, byte [r14 + r13 + 21], 15 + QUAD $0x163e4c203a0f4366; BYTE $0x03 // pinsrb xmm1, byte [r14 + r15 + 22], 3 + QUAD $0x16064c203a0f4166; BYTE $0x04 // pinsrb xmm1, byte [r14 + rax + 22], 4 + QUAD $0x161e4c203a0f4166; BYTE $0x05 // pinsrb xmm1, byte [r14 + rbx + 22], 5 + QUAD $0x16164c203a0f4366; BYTE $0x06 // pinsrb xmm1, byte [r14 + r10 + 22], 6 + QUAD $0x160e4c203a0f4366; BYTE $0x07 // pinsrb xmm1, byte [r14 + r9 + 22], 7 + QUAD $0x161e4c203a0f4366; BYTE $0x08 // pinsrb xmm1, byte [r14 + r11 + 22], 8 + QUAD $0x16364c203a0f4166; BYTE $0x09 // pinsrb xmm1, byte [r14 + rsi + 22], 9 + QUAD $0x16264c203a0f4366; BYTE $0x0a // pinsrb xmm1, byte [r14 + r12 + 22], 10 + QUAD $0x16064c203a0f4366; BYTE $0x0b // pinsrb xmm1, byte [r14 + r8 + 22], 11 + QUAD $0x163e4c203a0f4166; BYTE $0x0c // pinsrb xmm1, byte [r14 + rdi + 22], 12 + QUAD $0x16164c203a0f4166; BYTE $0x0d // pinsrb xmm1, byte [r14 + rdx + 22], 13 + QUAD $0x160e4c203a0f4166; BYTE $0x0e // pinsrb xmm1, byte [r14 + rcx + 22], 14 + QUAD $0x162e4c203a0f4366; BYTE $0x0f // pinsrb xmm1, byte [r14 + r13 + 22], 15 + QUAD $0x173e44203a0f4766; BYTE $0x03 // pinsrb xmm8, byte [r14 + r15 + 23], 3 + QUAD $0x170644203a0f4566; BYTE $0x04 // pinsrb xmm8, byte [r14 + rax + 23], 4 + QUAD $0x171e44203a0f4566; BYTE $0x05 // pinsrb xmm8, byte [r14 + rbx + 23], 5 + QUAD $0x171644203a0f4766; BYTE $0x06 // pinsrb xmm8, byte [r14 + r10 + 23], 6 + QUAD $0x170e44203a0f4766; BYTE $0x07 // pinsrb xmm8, byte [r14 + r9 + 23], 7 + QUAD $0x171e44203a0f4766; BYTE $0x08 // pinsrb xmm8, byte [r14 + r11 + 23], 8 + QUAD $0x173644203a0f4566; BYTE $0x09 // pinsrb xmm8, byte [r14 + rsi + 23], 9 + QUAD $0x172644203a0f4766; BYTE $0x0a // pinsrb xmm8, byte [r14 + r12 + 23], 10 + QUAD $0x170644203a0f4766; BYTE $0x0b // pinsrb xmm8, byte [r14 + r8 + 23], 11 + QUAD $0x173e44203a0f4566; BYTE $0x0c // pinsrb xmm8, byte [r14 + rdi + 23], 12 + QUAD $0x171644203a0f4566; BYTE $0x0d // pinsrb xmm8, byte [r14 + rdx + 23], 13 + QUAD $0x170e44203a0f4566; BYTE $0x0e // pinsrb xmm8, byte [r14 + rcx + 23], 14 + LONG $0x740f4166; BYTE $0xd6 // pcmpeqb xmm2, xmm14 + QUAD $0x00000140ad6f0f66 // movdqa xmm5, oword 320[rbp] /* [rip + .LCPI5_20] */ + LONG $0xd5df0f66 // pandn xmm2, xmm5 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI5_21] */ + LONG $0xcfdf0f66 // pandn xmm1, xmm7 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x172e44203a0f4766; BYTE $0x0f // pinsrb xmm8, byte [r14 + r13 + 23], 15 + LONG $0x740f4566; BYTE $0xc6 // pcmpeqb xmm8, xmm14 + LONG $0x656f0f66; BYTE $0x60 // movdqa xmm4, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + QUAD $0x183e64203a0f4766; BYTE $0x03 // pinsrb xmm12, byte [r14 + r15 + 24], 3 + QUAD $0x180664203a0f4566; BYTE $0x04 // pinsrb xmm12, byte [r14 + rax + 24], 4 + QUAD $0x181e64203a0f4566; BYTE $0x05 // pinsrb xmm12, byte [r14 + rbx + 24], 5 + QUAD $0x181664203a0f4766; BYTE $0x06 // pinsrb xmm12, byte [r14 + r10 + 24], 6 + QUAD $0x180e64203a0f4766; BYTE $0x07 // pinsrb xmm12, byte [r14 + r9 + 24], 7 + QUAD $0x181e64203a0f4766; BYTE $0x08 // pinsrb xmm12, byte [r14 + r11 + 24], 8 + QUAD $0x183664203a0f4566; BYTE $0x09 // pinsrb xmm12, byte [r14 + rsi + 24], 9 + QUAD $0x182664203a0f4766; BYTE $0x0a // pinsrb xmm12, byte [r14 + r12 + 24], 10 + QUAD $0x180664203a0f4766; BYTE $0x0b // pinsrb xmm12, byte [r14 + r8 + 24], 11 + QUAD $0x183e64203a0f4566; BYTE $0x0c // pinsrb xmm12, byte [r14 + rdi + 24], 12 + QUAD $0x181664203a0f4566; BYTE $0x0d // pinsrb xmm12, byte [r14 + rdx + 24], 13 + QUAD $0x180e64203a0f4566; BYTE $0x0e // pinsrb xmm12, byte [r14 + rcx + 24], 14 + QUAD $0x182e64203a0f4766; BYTE $0x0f // pinsrb xmm12, byte [r14 + r13 + 24], 15 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + LONG $0x740f4566; BYTE $0xe6 // pcmpeqb xmm12, xmm14 + QUAD $0x193e6c203a0f4766; BYTE $0x03 // pinsrb xmm13, byte [r14 + r15 + 25], 3 + QUAD $0x19066c203a0f4566; BYTE $0x04 // pinsrb xmm13, byte [r14 + rax + 25], 4 + QUAD $0x191e6c203a0f4566; BYTE $0x05 // pinsrb xmm13, byte [r14 + rbx + 25], 5 + QUAD $0x19166c203a0f4766; BYTE $0x06 // pinsrb xmm13, byte [r14 + r10 + 25], 6 + QUAD $0x190e6c203a0f4766; BYTE $0x07 // pinsrb xmm13, byte [r14 + r9 + 25], 7 + QUAD $0x191e6c203a0f4766; BYTE $0x08 // pinsrb xmm13, byte [r14 + r11 + 25], 8 + QUAD $0x19366c203a0f4566; BYTE $0x09 // pinsrb xmm13, byte [r14 + rsi + 25], 9 + QUAD $0x19266c203a0f4766; BYTE $0x0a // pinsrb xmm13, byte [r14 + r12 + 25], 10 + QUAD $0x19066c203a0f4766; BYTE $0x0b // pinsrb xmm13, byte [r14 + r8 + 25], 11 + QUAD $0x193e6c203a0f4566; BYTE $0x0c // pinsrb xmm13, byte [r14 + rdi + 25], 12 + QUAD $0x19166c203a0f4566; BYTE $0x0d // pinsrb xmm13, byte [r14 + rdx + 25], 13 + QUAD $0x190e6c203a0f4566; BYTE $0x0e // pinsrb xmm13, byte [r14 + rcx + 25], 14 + QUAD $0x192e6c203a0f4766; BYTE $0x0f // pinsrb xmm13, byte [r14 + r13 + 25], 15 + QUAD $0x1a3e44203a0f4366; BYTE $0x03 // pinsrb xmm0, byte [r14 + r15 + 26], 3 + QUAD $0x1a0644203a0f4166; BYTE $0x04 // pinsrb xmm0, byte [r14 + rax + 26], 4 + QUAD $0x1a1e44203a0f4166; BYTE $0x05 // pinsrb xmm0, byte [r14 + rbx + 26], 5 + QUAD $0x1a1644203a0f4366; BYTE $0x06 // pinsrb xmm0, byte [r14 + r10 + 26], 6 + QUAD $0x1a0e44203a0f4366; BYTE $0x07 // pinsrb xmm0, byte [r14 + r9 + 26], 7 + QUAD $0x1a1e44203a0f4366; BYTE $0x08 // pinsrb xmm0, byte [r14 + r11 + 26], 8 + QUAD $0x1a3644203a0f4166; BYTE $0x09 // pinsrb xmm0, byte [r14 + rsi + 26], 9 + QUAD $0x1a2644203a0f4366; BYTE $0x0a // pinsrb xmm0, byte [r14 + r12 + 26], 10 + QUAD $0x1a0644203a0f4366; BYTE $0x0b // pinsrb xmm0, byte [r14 + r8 + 26], 11 + QUAD $0x1a3e44203a0f4166; BYTE $0x0c // pinsrb xmm0, byte [r14 + rdi + 26], 12 + QUAD $0x1a1644203a0f4166; BYTE $0x0d // pinsrb xmm0, byte [r14 + rdx + 26], 13 + QUAD $0x1a0e44203a0f4166; BYTE $0x0e // pinsrb xmm0, byte [r14 + rcx + 26], 14 + QUAD $0x1a2e44203a0f4366; BYTE $0x0f // pinsrb xmm0, byte [r14 + r13 + 26], 15 + QUAD $0x1b3e5c203a0f4766; BYTE $0x03 // pinsrb xmm11, byte [r14 + r15 + 27], 3 + QUAD $0x1b065c203a0f4566; BYTE $0x04 // pinsrb xmm11, byte [r14 + rax + 27], 4 + QUAD $0x1b1e5c203a0f4566; BYTE $0x05 // pinsrb xmm11, byte [r14 + rbx + 27], 5 + QUAD $0x1b165c203a0f4766; BYTE $0x06 // pinsrb xmm11, byte [r14 + r10 + 27], 6 + QUAD $0x1b0e5c203a0f4766; BYTE $0x07 // pinsrb xmm11, byte [r14 + r9 + 27], 7 + QUAD $0x1b1e5c203a0f4766; BYTE $0x08 // pinsrb xmm11, byte [r14 + r11 + 27], 8 + QUAD $0x1b365c203a0f4566; BYTE $0x09 // pinsrb xmm11, byte [r14 + rsi + 27], 9 + QUAD $0x1b265c203a0f4766; BYTE $0x0a // pinsrb xmm11, byte [r14 + r12 + 27], 10 + QUAD $0x1b065c203a0f4766; BYTE $0x0b // pinsrb xmm11, byte [r14 + r8 + 27], 11 + QUAD $0x1b3e5c203a0f4566; BYTE $0x0c // pinsrb xmm11, byte [r14 + rdi + 27], 12 + QUAD $0x1b165c203a0f4566; BYTE $0x0d // pinsrb xmm11, byte [r14 + rdx + 27], 13 + QUAD $0x1b0e5c203a0f4566; BYTE $0x0e // pinsrb xmm11, byte [r14 + rcx + 27], 14 + LONG $0x740f4566; BYTE $0xee // pcmpeqb xmm13, xmm14 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI5_16] */ + LONG $0xfc0f4566; BYTE $0xec // paddb xmm13, xmm12 + QUAD $0x1b2e5c203a0f4766; BYTE $0x0f // pinsrb xmm11, byte [r14 + r13 + 27], 15 + LONG $0x740f4166; BYTE $0xc6 // pcmpeqb xmm0, xmm14 + QUAD $0x0000011085df0f66 // pandn xmm0, oword 272[rbp] /* [rip + .LCPI5_17] */ + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + QUAD $0x0001209ddf0f4466; BYTE $0x00 // pandn xmm11, oword 288[rbp] /* [rip + .LCPI5_18] */ + LONG $0xeb0f4466; BYTE $0xd8 // por xmm11, xmm0 + QUAD $0x1c3e7c203a0f4766; BYTE $0x03 // pinsrb xmm15, byte [r14 + r15 + 28], 3 + QUAD $0x1d3e4c203a0f4766; BYTE $0x03 // pinsrb xmm9, byte [r14 + r15 + 29], 3 + QUAD $0x1e3e54203a0f4766; BYTE $0x03 // pinsrb xmm10, byte [r14 + r15 + 30], 3 + QUAD $0x1f3e74203a0f4366; BYTE $0x03 // pinsrb xmm6, byte [r14 + r15 + 31], 3 + QUAD $0x1c067c203a0f4566; BYTE $0x04 // pinsrb xmm15, byte [r14 + rax + 28], 4 + QUAD $0x1d064c203a0f4566; BYTE $0x04 // pinsrb xmm9, byte [r14 + rax + 29], 4 + QUAD $0x1e0654203a0f4566; BYTE $0x04 // pinsrb xmm10, byte [r14 + rax + 30], 4 + QUAD $0x1f0674203a0f4166; BYTE $0x04 // pinsrb xmm6, byte [r14 + rax + 31], 4 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x1c1e7c203a0f4566; BYTE $0x05 // pinsrb xmm15, byte [r14 + rbx + 28], 5 + QUAD $0x1d1e4c203a0f4566; BYTE $0x05 // pinsrb xmm9, byte [r14 + rbx + 29], 5 + QUAD $0x1e1e54203a0f4566; BYTE $0x05 // pinsrb xmm10, byte [r14 + rbx + 30], 5 + QUAD $0x1f1e74203a0f4166; BYTE $0x05 // pinsrb xmm6, byte [r14 + rbx + 31], 5 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x1c167c203a0f4766; BYTE $0x06 // pinsrb xmm15, byte [r14 + r10 + 28], 6 + QUAD $0x1d164c203a0f4766; BYTE $0x06 // pinsrb xmm9, byte [r14 + r10 + 29], 6 + QUAD $0x1e1654203a0f4766; BYTE $0x06 // pinsrb xmm10, byte [r14 + r10 + 30], 6 + QUAD $0x1f1674203a0f4366; BYTE $0x06 // pinsrb xmm6, byte [r14 + r10 + 31], 6 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x1c0e7c203a0f4766; BYTE $0x07 // pinsrb xmm15, byte [r14 + r9 + 28], 7 + QUAD $0x1d0e4c203a0f4766; BYTE $0x07 // pinsrb xmm9, byte [r14 + r9 + 29], 7 + QUAD $0x1e0e54203a0f4766; BYTE $0x07 // pinsrb xmm10, byte [r14 + r9 + 30], 7 + QUAD $0x1f0e74203a0f4366; BYTE $0x07 // pinsrb xmm6, byte [r14 + r9 + 31], 7 + QUAD $0x1c1e7c203a0f4766; BYTE $0x08 // pinsrb xmm15, byte [r14 + r11 + 28], 8 + QUAD $0x1d1e4c203a0f4766; BYTE $0x08 // pinsrb xmm9, byte [r14 + r11 + 29], 8 + QUAD $0x1e1e54203a0f4766; BYTE $0x08 // pinsrb xmm10, byte [r14 + r11 + 30], 8 + QUAD $0x1f1e74203a0f4366; BYTE $0x08 // pinsrb xmm6, byte [r14 + r11 + 31], 8 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + QUAD $0x1c367c203a0f4566; BYTE $0x09 // pinsrb xmm15, byte [r14 + rsi + 28], 9 + QUAD $0x1d364c203a0f4566; BYTE $0x09 // pinsrb xmm9, byte [r14 + rsi + 29], 9 + QUAD $0x1e3654203a0f4566; BYTE $0x09 // pinsrb xmm10, byte [r14 + rsi + 30], 9 + QUAD $0x1f3674203a0f4166; BYTE $0x09 // pinsrb xmm6, byte [r14 + rsi + 31], 9 + QUAD $0x1c267c203a0f4766; BYTE $0x0a // pinsrb xmm15, byte [r14 + r12 + 28], 10 + QUAD $0x1d264c203a0f4766; BYTE $0x0a // pinsrb xmm9, byte [r14 + r12 + 29], 10 + QUAD $0x1e2654203a0f4766; BYTE $0x0a // pinsrb xmm10, byte [r14 + r12 + 30], 10 + QUAD $0x1f2674203a0f4366; BYTE $0x0a // pinsrb xmm6, byte [r14 + r12 + 31], 10 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x1c067c203a0f4766; BYTE $0x0b // pinsrb xmm15, byte [r14 + r8 + 28], 11 + QUAD $0x1d064c203a0f4766; BYTE $0x0b // pinsrb xmm9, byte [r14 + r8 + 29], 11 + QUAD $0x1e0654203a0f4766; BYTE $0x0b // pinsrb xmm10, byte [r14 + r8 + 30], 11 + QUAD $0x1f0674203a0f4366; BYTE $0x0b // pinsrb xmm6, byte [r14 + r8 + 31], 11 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + QUAD $0x1c3e7c203a0f4566; BYTE $0x0c // pinsrb xmm15, byte [r14 + rdi + 28], 12 + QUAD $0x1d3e4c203a0f4566; BYTE $0x0c // pinsrb xmm9, byte [r14 + rdi + 29], 12 + QUAD $0x1e3e54203a0f4566; BYTE $0x0c // pinsrb xmm10, byte [r14 + rdi + 30], 12 + QUAD $0x1f3e74203a0f4166; BYTE $0x0c // pinsrb xmm6, byte [r14 + rdi + 31], 12 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x1c167c203a0f4566; BYTE $0x0d // pinsrb xmm15, byte [r14 + rdx + 28], 13 + QUAD $0x1d164c203a0f4566; BYTE $0x0d // pinsrb xmm9, byte [r14 + rdx + 29], 13 + QUAD $0x1e1654203a0f4566; BYTE $0x0d // pinsrb xmm10, byte [r14 + rdx + 30], 13 + QUAD $0x1f1674203a0f4166; BYTE $0x0d // pinsrb xmm6, byte [r14 + rdx + 31], 13 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x1c0e7c203a0f4566; BYTE $0x0e // pinsrb xmm15, byte [r14 + rcx + 28], 14 + QUAD $0x1d0e4c203a0f4566; BYTE $0x0e // pinsrb xmm9, byte [r14 + rcx + 29], 14 + QUAD $0x1e0e54203a0f4566; BYTE $0x0e // pinsrb xmm10, byte [r14 + rcx + 30], 14 + QUAD $0x1f0e74203a0f4166; BYTE $0x0e // pinsrb xmm6, byte [r14 + rcx + 31], 14 + QUAD $0x1c2e7c203a0f4766; BYTE $0x0f // pinsrb xmm15, byte [r14 + r13 + 28], 15 + QUAD $0x1d2e4c203a0f4766; BYTE $0x0f // pinsrb xmm9, byte [r14 + r13 + 29], 15 + QUAD $0x1e2e54203a0f4766; BYTE $0x0f // pinsrb xmm10, byte [r14 + r13 + 30], 15 + LONG $0x740f4566; BYTE $0xfe // pcmpeqb xmm15, xmm14 + QUAD $0x000130bddf0f4466; BYTE $0x00 // pandn xmm15, oword 304[rbp] /* [rip + .LCPI5_19] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + QUAD $0x1f2e74203a0f4366; BYTE $0x0f // pinsrb xmm6, byte [r14 + r13 + 31], 15 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x740f4566; BYTE $0xce // pcmpeqb xmm9, xmm14 + LONG $0xdf0f4466; BYTE $0xcd // pandn xmm9, xmm5 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + LONG $0xdf0f4466; BYTE $0xd7 // pandn xmm10, xmm7 + LONG $0xeb0f4566; BYTE $0xd1 // por xmm10, xmm9 + LONG $0x740f4166; BYTE $0xf6 // pcmpeqb xmm6, xmm14 + LONG $0xf4df0f66 // pandn xmm6, xmm4 + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc6600f66 // punpcklbw xmm0, xmm6 + QUAD $0x000100249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 256] + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + QUAD $0x0000c024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 192] + LONG $0xcc600f66 // punpcklbw xmm1, xmm4 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xd0610f66 // punpcklwd xmm2, xmm0 + LONG $0xc8690f66 // punpckhwd xmm1, xmm0 + LONG $0x680f4466; BYTE $0xc6 // punpckhbw xmm8, xmm6 + LONG $0xdc680f66 // punpckhbw xmm3, xmm4 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xd8 // punpckhwd xmm3, xmm8 + QUAD $0x000000a8248c8b48 // mov rcx, qword [rsp + 168] + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x5c7f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm3 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x4c7f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm1 + LONG $0x147f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm2 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000d8248c3b48 // cmp rcx, qword [rsp + 216] + JNE LBB5_67 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x000000d824943b4c // cmp r10, qword [rsp + 216] + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + JNE LBB5_69 + JMP LBB5_72 + +LBB5_109: + LONG $0xf8e28349 // and r10, -8 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x2454894c; BYTE $0x18 // mov qword [rsp + 24], r10 + LONG $0x90048d4a // lea rax, [rax + 4*r10] + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00d8 // pshufd xmm11, xmm0, 0 + WORD $0xff31 // xor edi, edi + LONG $0xef0f4566; BYTE $0xc9 // pxor xmm9, xmm9 + +LBB5_110: + LONG $0x247c8948; BYTE $0x40 // mov qword [rsp + 64], rdi + LONG $0x06e7c148 // shl rdi, 6 + WORD $0x8949; BYTE $0xff // mov r15, rdi + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + WORD $0x8949; BYTE $0xfd // mov r13, rdi + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + LONG $0x04b70f41; BYTE $0x3e // movzx eax, word [r14 + rdi] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f41; WORD $0x023e // movzx eax, word [r14 + rdi + 2] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44b70f41; WORD $0x043e // movzx eax, word [r14 + rdi + 4] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f41; WORD $0x063e // movzx eax, word [r14 + rdi + 6] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b70f41; WORD $0x083e // movzx eax, word [r14 + rdi + 8] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b70f41; WORD $0x0a3e // movzx eax, word [r14 + rdi + 10] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b70f41; WORD $0x0c3e // movzx eax, word [r14 + rdi + 12] + LONG $0x44b70f45; WORD $0x0e3e // movzx r8d, word [r14 + rdi + 14] + LONG $0x54b70f45; WORD $0x103e // movzx r10d, word [r14 + rdi + 16] + LONG $0x64b70f45; WORD $0x123e // movzx r12d, word [r14 + rdi + 18] + LONG $0x4cb70f41; WORD $0x143e // movzx ecx, word [r14 + rdi + 20] + LONG $0x28244c89 // mov dword [rsp + 40], ecx + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0x40c98348 // or rcx, 64 + LONG $0x80cf8149; WORD $0x0000; BYTE $0x00 // or r15, 128 + LONG $0xc0ce8148; WORD $0x0000; BYTE $0x00 // or rsi, 192 + LONG $0x00ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 256 + LONG $0x40cd8149; WORD $0x0001; BYTE $0x00 // or r13, 320 + LONG $0x80cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 384 + LONG $0xc40f4166; WORD $0x0e2c; BYTE $0x01 // pinsrw xmm5, word [r14 + rcx], 1 + LONG $0xc40f4366; WORD $0x3e2c; BYTE $0x02 // pinsrw xmm5, word [r14 + r15], 2 + LONG $0xc40f4166; WORD $0x362c; BYTE $0x03 // pinsrw xmm5, word [r14 + rsi], 3 + LONG $0xc40f4166; WORD $0x162c; BYTE $0x04 // pinsrw xmm5, word [r14 + rdx], 4 + LONG $0xc40f4366; WORD $0x2e2c; BYTE $0x05 // pinsrw xmm5, word [r14 + r13], 5 + LONG $0xc40f4166; WORD $0x1e2c; BYTE $0x06 // pinsrw xmm5, word [r14 + rbx], 6 + QUAD $0x01020e44c40f4166 // pinsrw xmm0, word [r14 + rcx + 2], 1 + QUAD $0x02023e44c40f4366 // pinsrw xmm0, word [r14 + r15 + 2], 2 + QUAD $0x03023644c40f4166 // pinsrw xmm0, word [r14 + rsi + 2], 3 + QUAD $0x04021644c40f4166 // pinsrw xmm0, word [r14 + rdx + 2], 4 + QUAD $0x05022e44c40f4366 // pinsrw xmm0, word [r14 + r13 + 2], 5 + QUAD $0x06021e44c40f4166 // pinsrw xmm0, word [r14 + rbx + 2], 6 + LONG $0xc0c98149; WORD $0x0001; BYTE $0x00 // or r9, 448 + QUAD $0x07020e44c40f4366 // pinsrw xmm0, word [r14 + r9 + 2], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f41; WORD $0x163e // movzx eax, word [r14 + rdi + 22] + LONG $0x20244489 // mov dword [rsp + 32], eax + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + QUAD $0x01040e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 4], 1 + QUAD $0x02043e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 4], 2 + QUAD $0x0304364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 4], 3 + QUAD $0x0404164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 4], 4 + QUAD $0x05042e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 4], 5 + QUAD $0x06041e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 4], 6 + QUAD $0x07040e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 4], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x000080b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0x6f0f4166; BYTE $0xde // movdqa xmm3, xmm14 + LONG $0x380f4166; WORD $0xd910 // pblendvb xmm3, xmm9, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x000090bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xc8 // movd xmm1, r8d + LONG $0x5cb70f45; WORD $0x183e // movzx r11d, word [r14 + rdi + 24] + LONG $0xc40f4366; WORD $0x0e2c; BYTE $0x07 // pinsrw xmm5, word [r14 + r9], 7 + LONG $0x750f4166; BYTE $0xeb // pcmpeqw xmm5, xmm11 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8ef0f66 // pxor xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + QUAD $0x01060e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 6], 1 + QUAD $0x02063e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 6], 2 + QUAD $0x0306367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 6], 3 + QUAD $0x0406167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 6], 4 + QUAD $0x05062e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 6], 5 + QUAD $0x06061e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 6], 6 + QUAD $0x07060e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 6], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01080e44c40f4566 // pinsrw xmm8, word [r14 + rcx + 8], 1 + QUAD $0x02083e44c40f4766 // pinsrw xmm8, word [r14 + r15 + 8], 2 + QUAD $0x03083644c40f4566 // pinsrw xmm8, word [r14 + rsi + 8], 3 + QUAD $0x04081644c40f4566 // pinsrw xmm8, word [r14 + rdx + 8], 4 + QUAD $0x05082e44c40f4766 // pinsrw xmm8, word [r14 + r13 + 8], 5 + QUAD $0x06081e44c40f4566 // pinsrw xmm8, word [r14 + rbx + 8], 6 + QUAD $0x07080e44c40f4766 // pinsrw xmm8, word [r14 + r9 + 8], 7 + LONG $0xddf80f66 // psubb xmm3, xmm5 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x380f4566; WORD $0xe110 // pblendvb xmm12, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xfa // movd xmm7, r10d + LONG $0x44b70f45; WORD $0x1a3e // movzx r8d, word [r14 + rdi + 26] + LONG $0x750f4566; BYTE $0xc3 // pcmpeqw xmm8, xmm11 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xf4 // movd xmm6, r12d + LONG $0x64b70f45; WORD $0x1c3e // movzx r12d, word [r14 + rdi + 28] + QUAD $0x010a0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 10], 1 + QUAD $0x020a3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 10], 2 + QUAD $0x030a3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 10], 3 + QUAD $0x040a1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 10], 4 + QUAD $0x050a2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 10], 5 + QUAD $0x060a1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 10], 6 + QUAD $0x070a0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 10], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x010c0e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 12], 1 + QUAD $0x020c3e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 12], 2 + QUAD $0x030c3654c40f4166 // pinsrw xmm2, word [r14 + rsi + 12], 3 + QUAD $0x040c1654c40f4166 // pinsrw xmm2, word [r14 + rdx + 12], 4 + QUAD $0x050c2e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 12], 5 + QUAD $0x060c1e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 12], 6 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x646e0f66; WORD $0x2824 // movd xmm4, dword [rsp + 40] + LONG $0x54b70f45; WORD $0x1e3e // movzx r10d, word [r14 + rdi + 30] + QUAD $0x070c0e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 12], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x5c6e0f66; WORD $0x2024 // movd xmm3, dword [rsp + 32] + LONG $0x44b70f41; WORD $0x203e // movzx eax, word [r14 + rdi + 32] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x010e0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 14], 1 + QUAD $0x020e3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 14], 2 + QUAD $0x030e364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 14], 3 + QUAD $0x040e164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 14], 4 + QUAD $0x050e2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 14], 5 + QUAD $0x060e1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 14], 6 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x44b70f41; WORD $0x223e // movzx eax, word [r14 + rdi + 34] + LONG $0x28244489 // mov dword [rsp + 40], eax + QUAD $0x070e0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 14], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x01120e74c40f4166 // pinsrw xmm6, word [r14 + rcx + 18], 1 + QUAD $0x02123e74c40f4366 // pinsrw xmm6, word [r14 + r15 + 18], 2 + QUAD $0x03123674c40f4166 // pinsrw xmm6, word [r14 + rsi + 18], 3 + QUAD $0x04121674c40f4166 // pinsrw xmm6, word [r14 + rdx + 18], 4 + QUAD $0x05122e74c40f4366 // pinsrw xmm6, word [r14 + r13 + 18], 5 + QUAD $0x06121e74c40f4166 // pinsrw xmm6, word [r14 + rbx + 18], 6 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x07120e74c40f4366 // pinsrw xmm6, word [r14 + r9 + 18], 7 + LONG $0x750f4166; BYTE $0xf3 // pcmpeqw xmm6, xmm11 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + QUAD $0x0000e0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 224[rbp] /* [rip + .LCPI5_14] */ + LONG $0x6f0f4566; BYTE $0xe2 // movdqa xmm12, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4566; WORD $0xe110 // pblendvb xmm12, xmm9, xmm0 + LONG $0x6f0f4566; BYTE $0xc6 // movdqa xmm8, xmm14 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xc8 // movd xmm1, r8d + LONG $0x5cb70f45; WORD $0x243e // movzx r11d, word [r14 + rdi + 36] + QUAD $0x01100e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 16], 1 + QUAD $0x02103e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 16], 2 + QUAD $0x0310367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 16], 3 + QUAD $0x0410167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 16], 4 + QUAD $0x05102e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 16], 5 + QUAD $0x06101e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 16], 6 + QUAD $0x01140e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 20], 1 + QUAD $0x02143e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 20], 2 + QUAD $0x03143664c40f4166 // pinsrw xmm4, word [r14 + rsi + 20], 3 + QUAD $0x04141664c40f4166 // pinsrw xmm4, word [r14 + rdx + 20], 4 + QUAD $0x05142e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 20], 5 + QUAD $0x06141e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 20], 6 + QUAD $0x07140e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 20], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xf910 // pblendvb xmm15, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe4 // movd xmm4, r12d + LONG $0x64b70f45; WORD $0x263e // movzx r12d, word [r14 + rdi + 38] + QUAD $0x07100e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 16], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01160e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 22], 1 + QUAD $0x02163e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 22], 2 + QUAD $0x0316365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 22], 3 + QUAD $0x0416165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 22], 4 + QUAD $0x05162e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 22], 5 + QUAD $0x06161e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 22], 6 + QUAD $0x07160e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 22], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x01180e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 24], 1 + QUAD $0x02183e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 24], 2 + QUAD $0x03183654c40f4166 // pinsrw xmm2, word [r14 + rsi + 24], 3 + QUAD $0x04181654c40f4166 // pinsrw xmm2, word [r14 + rdx + 24], 4 + QUAD $0x05182e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 24], 5 + QUAD $0x06181e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 24], 6 + QUAD $0x07180e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 24], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x0000a0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xf110 // pblendvb xmm14, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x44b70f45; WORD $0x283e // movzx r8d, word [r14 + rdi + 40] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4566; BYTE $0xf7 // por xmm14, xmm15 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x54b70f45; WORD $0x2a3e // movzx r10d, word [r14 + rdi + 42] + QUAD $0x011a0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 26], 1 + QUAD $0x021a3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 26], 2 + QUAD $0x031a364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 26], 3 + QUAD $0x041a164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 26], 4 + QUAD $0x051a2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 26], 5 + QUAD $0x061a1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 26], 6 + QUAD $0x071a0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 26], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x011c0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 28], 1 + QUAD $0x021c3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 28], 2 + QUAD $0x031c3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 28], 3 + QUAD $0x041c1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 28], 4 + QUAD $0x051c2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 28], 5 + QUAD $0x061c1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 28], 6 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + QUAD $0x0000c0bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x546e0f66; WORD $0x2824 // movd xmm2, dword [rsp + 40] + LONG $0x44b70f41; WORD $0x2c3e // movzx eax, word [r14 + rdi + 44] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x071c0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 28], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f45; WORD $0x2e3e // movzx r11d, word [r14 + rdi + 46] + QUAD $0x011e0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 30], 1 + QUAD $0x021e3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 30], 2 + QUAD $0x031e365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 30], 3 + QUAD $0x041e165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 30], 4 + QUAD $0x051e2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 30], 5 + QUAD $0x061e1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 30], 6 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xcc // movd xmm1, r12d + LONG $0x44b70f41; WORD $0x303e // movzx eax, word [r14 + rdi + 48] + LONG $0x28244489 // mov dword [rsp + 40], eax + QUAD $0x071e0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 30], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + QUAD $0x01220e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 34], 1 + QUAD $0x02223e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 34], 2 + QUAD $0x03223654c40f4166 // pinsrw xmm2, word [r14 + rsi + 34], 3 + QUAD $0x04221654c40f4166 // pinsrw xmm2, word [r14 + rdx + 34], 4 + QUAD $0x05222e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 34], 5 + QUAD $0x06221e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 34], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07220e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 34], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xf6 // por xmm6, xmm14 + LONG $0x6f0f4566; BYTE $0xea // movdqa xmm13, xmm10 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd0 // movd xmm2, r8d + LONG $0x64b70f45; WORD $0x323e // movzx r12d, word [r14 + rdi + 50] + QUAD $0x01200e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 32], 1 + QUAD $0x02203e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 32], 2 + QUAD $0x0320367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 32], 3 + QUAD $0x0420167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 32], 4 + QUAD $0x05202e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 32], 5 + QUAD $0x06201e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 32], 6 + QUAD $0x01240e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 36], 1 + QUAD $0x02243e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 36], 2 + QUAD $0x03243664c40f4166 // pinsrw xmm4, word [r14 + rsi + 36], 3 + QUAD $0x04241664c40f4166 // pinsrw xmm4, word [r14 + rdx + 36], 4 + QUAD $0x05242e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 36], 5 + QUAD $0x06241e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 36], 6 + QUAD $0x07240e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 36], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4466; BYTE $0xee // por xmm13, xmm6 + QUAD $0x00000090b56f0f66 // movdqa xmm6, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x54b70f45; WORD $0x343e // movzx r10d, word [r14 + rdi + 52] + QUAD $0x07200e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 32], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0x760f4566; BYTE $0xf6 // pcmpeqd xmm14, xmm14 + LONG $0xef0f4166; BYTE $0xfe // pxor xmm7, xmm14 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01260e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 38], 1 + QUAD $0x02263e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 38], 2 + QUAD $0x0326364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 38], 3 + QUAD $0x0426164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 38], 4 + QUAD $0x05262e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 38], 5 + QUAD $0x06261e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 38], 6 + QUAD $0x07260e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 38], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x01280e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 40], 1 + QUAD $0x02283e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 40], 2 + QUAD $0x03283654c40f4166 // pinsrw xmm2, word [r14 + rsi + 40], 3 + QUAD $0x04281654c40f4166 // pinsrw xmm2, word [r14 + rdx + 40], 4 + QUAD $0x05282e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 40], 5 + QUAD $0x06281e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 40], 6 + QUAD $0x07280e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 40], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x000000a0ad6f0f66 // movdqa xmm5, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x44b70f45; WORD $0x363e // movzx r8d, word [r14 + rdi + 54] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeeeb0f66 // por xmm5, xmm6 + QUAD $0x000000b0b56f0f66 // movdqa xmm6, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x44b70f41; WORD $0x383e // movzx eax, word [r14 + rdi + 56] + QUAD $0x012a0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 42], 1 + QUAD $0x022a3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 42], 2 + QUAD $0x032a365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 42], 3 + QUAD $0x042a165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 42], 4 + QUAD $0x052a2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 42], 5 + QUAD $0x062a1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 42], 6 + QUAD $0x072a0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 42], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x012c0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 44], 1 + QUAD $0x022c3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 44], 2 + QUAD $0x032c364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 44], 3 + QUAD $0x042c164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 44], 4 + QUAD $0x052c2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 44], 5 + QUAD $0x062c1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 44], 6 + LONG $0xeb0f4166; BYTE $0xe8 // por xmm5, xmm8 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd110 // pblendvb xmm2, xmm9, xmm0 + LONG $0x7c6e0f66; WORD $0x2824 // movd xmm7, dword [rsp + 40] + LONG $0x5cb70f45; WORD $0x3a3e // movzx r11d, word [r14 + rdi + 58] + QUAD $0x072c0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 44], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0x0000d0bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xcc // movd xmm1, r12d + LONG $0x64b70f45; WORD $0x3c3e // movzx r12d, word [r14 + rdi + 60] + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + QUAD $0x012e0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 46], 1 + QUAD $0x022e3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 46], 2 + QUAD $0x032e3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 46], 3 + QUAD $0x042e1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 46], 4 + QUAD $0x052e2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 46], 5 + QUAD $0x062e1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 46], 6 + QUAD $0x072e0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 46], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6f0f4566; BYTE $0xc2 // movdqa xmm8, xmm10 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd8 // movd xmm3, r8d + QUAD $0x01320e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 50], 1 + QUAD $0x02323e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 50], 2 + QUAD $0x0332364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 50], 3 + QUAD $0x0432164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 50], 4 + QUAD $0x05322e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 50], 5 + QUAD $0x06321e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 50], 6 + QUAD $0x07320e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 50], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe110 // pblendvb xmm4, xmm9, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + QUAD $0x01300e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 48], 1 + QUAD $0x02303e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 48], 2 + QUAD $0x0330367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 48], 3 + QUAD $0x0430167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 48], 4 + QUAD $0x05302e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 48], 5 + QUAD $0x06301e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 48], 6 + QUAD $0x07300e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 48], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xef0f4166; BYTE $0xfe // pxor xmm7, xmm14 + QUAD $0x01340e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 52], 1 + QUAD $0x02343e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 52], 2 + QUAD $0x03343654c40f4166 // pinsrw xmm2, word [r14 + rsi + 52], 3 + QUAD $0x04341654c40f4166 // pinsrw xmm2, word [r14 + rdx + 52], 4 + QUAD $0x05342e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 52], 5 + QUAD $0x06341e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 52], 6 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x07340e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 52], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + QUAD $0x01360e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 54], 1 + QUAD $0x02363e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 54], 2 + QUAD $0x0336365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 54], 3 + QUAD $0x0436165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 54], 4 + QUAD $0x05362e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 54], 5 + QUAD $0x06361e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 54], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x07360e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 54], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + QUAD $0x01380e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 56], 1 + QUAD $0x02383e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 56], 2 + QUAD $0x0338364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 56], 3 + QUAD $0x0438164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 56], 4 + QUAD $0x05382e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 56], 5 + QUAD $0x06381e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 56], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07380e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 56], 7 + LONG $0xe7f80f66 // psubb xmm4, xmm7 + QUAD $0x00000090ad6f0f66 // movdqa xmm5, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + QUAD $0x000000a0b56f0f66 // movdqa xmm6, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x013a0e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 58], 1 + QUAD $0x023a3e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 58], 2 + QUAD $0x033a3654c40f4166 // pinsrw xmm2, word [r14 + rsi + 58], 3 + QUAD $0x043a1654c40f4166 // pinsrw xmm2, word [r14 + rdx + 58], 4 + QUAD $0x053a2e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 58], 5 + QUAD $0x063a1e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 58], 6 + QUAD $0x073a0e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 58], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xdc // movd xmm3, r12d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x013c0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 60], 1 + QUAD $0x023c3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 60], 2 + QUAD $0x033c365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 60], 3 + QUAD $0x043c165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 60], 4 + QUAD $0x053c2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 60], 5 + QUAD $0x063c1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 60], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x073c0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 60], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe110 // pblendvb xmm4, xmm9, xmm0 + QUAD $0x000000c08d6f0f66 // movdqa xmm1, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xc910 // pblendvb xmm1, xmm9, xmm0 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd110 // pblendvb xmm2, xmm9, xmm0 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x44b70f41; WORD $0x3e3e // movzx eax, word [r14 + rdi + 62] + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x013e0e44c40f4166 // pinsrw xmm0, word [r14 + rcx + 62], 1 + QUAD $0x023e3e44c40f4366 // pinsrw xmm0, word [r14 + r15 + 62], 2 + QUAD $0x033e3644c40f4166 // pinsrw xmm0, word [r14 + rsi + 62], 3 + QUAD $0x043e1644c40f4166 // pinsrw xmm0, word [r14 + rdx + 62], 4 + QUAD $0x053e2e44c40f4366 // pinsrw xmm0, word [r14 + r13 + 62], 5 + QUAD $0x063e1e44c40f4166 // pinsrw xmm0, word [r14 + rbx + 62], 6 + QUAD $0x073e0e44c40f4366 // pinsrw xmm0, word [r14 + r9 + 62], 7 + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0x380f4566; WORD $0xd110 // pblendvb xmm10, xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xd2 // por xmm10, xmm2 + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x6c0f4166; BYTE $0xc5 // punpcklqdq xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x6c0f4166; BYTE $0xd2 // punpcklqdq xmm2, xmm10 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI5_15] */ + LONG $0x00380f66; BYTE $0xd3 // pshufb xmm2, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0x600f4566; BYTE $0xc2 // punpcklbw xmm8, xmm10 + LONG $0x600f4566; BYTE $0xe5 // punpcklbw xmm12, xmm13 + LONG $0x610f4566; BYTE $0xe0 // punpcklwd xmm12, xmm8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + LONG $0x7f0f45f3; WORD $0x8824 // movdqu oword [r8 + 4*rcx], xmm12 + LONG $0x2444894c; BYTE $0x08 // mov qword [rsp + 8], r8 + LONG $0x7f0f41f3; WORD $0x8844; BYTE $0x10 // movdqu oword [r8 + 4*rcx + 16], xmm0 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x244c3b48; BYTE $0x18 // cmp rcx, qword [rsp + 24] + JNE LBB5_110 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + LONG $0x24543b4c; BYTE $0x18 // cmp r10, qword [rsp + 24] + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + LONG $0x245c8b44; BYTE $0x10 // mov r11d, dword [rsp + 16] + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + JNE LBB5_112 + JMP LBB5_115 + +LBB5_132: + LONG $0xf8e28349 // and r10, -8 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x014c; BYTE $0xf0 // add rax, r14 + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x2454894c; BYTE $0x18 // mov qword [rsp + 24], r10 + LONG $0x90048d4a // lea rax, [rax + 4*r10] + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x6e0f4166; BYTE $0xc3 // movd xmm0, r11d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00d8 // pshufd xmm11, xmm0, 0 + WORD $0xff31 // xor edi, edi + LONG $0xef0f4566; BYTE $0xc9 // pxor xmm9, xmm9 + +LBB5_133: + LONG $0x247c8948; BYTE $0x40 // mov qword [rsp + 64], rdi + LONG $0x06e7c148 // shl rdi, 6 + WORD $0x8949; BYTE $0xff // mov r15, rdi + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + WORD $0x8949; BYTE $0xfd // mov r13, rdi + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + LONG $0x04b70f41; BYTE $0x3e // movzx eax, word [r14 + rdi] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f41; WORD $0x023e // movzx eax, word [r14 + rdi + 2] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44b70f41; WORD $0x043e // movzx eax, word [r14 + rdi + 4] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f41; WORD $0x063e // movzx eax, word [r14 + rdi + 6] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b70f41; WORD $0x083e // movzx eax, word [r14 + rdi + 8] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b70f41; WORD $0x0a3e // movzx eax, word [r14 + rdi + 10] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b70f41; WORD $0x0c3e // movzx eax, word [r14 + rdi + 12] + LONG $0x44b70f45; WORD $0x0e3e // movzx r8d, word [r14 + rdi + 14] + LONG $0x54b70f45; WORD $0x103e // movzx r10d, word [r14 + rdi + 16] + LONG $0x64b70f45; WORD $0x123e // movzx r12d, word [r14 + rdi + 18] + LONG $0x4cb70f41; WORD $0x143e // movzx ecx, word [r14 + rdi + 20] + LONG $0x28244c89 // mov dword [rsp + 40], ecx + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0x40c98348 // or rcx, 64 + LONG $0x80cf8149; WORD $0x0000; BYTE $0x00 // or r15, 128 + LONG $0xc0ce8148; WORD $0x0000; BYTE $0x00 // or rsi, 192 + LONG $0x00ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 256 + LONG $0x40cd8149; WORD $0x0001; BYTE $0x00 // or r13, 320 + LONG $0x80cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 384 + LONG $0xc40f4166; WORD $0x0e2c; BYTE $0x01 // pinsrw xmm5, word [r14 + rcx], 1 + LONG $0xc40f4366; WORD $0x3e2c; BYTE $0x02 // pinsrw xmm5, word [r14 + r15], 2 + LONG $0xc40f4166; WORD $0x362c; BYTE $0x03 // pinsrw xmm5, word [r14 + rsi], 3 + LONG $0xc40f4166; WORD $0x162c; BYTE $0x04 // pinsrw xmm5, word [r14 + rdx], 4 + LONG $0xc40f4366; WORD $0x2e2c; BYTE $0x05 // pinsrw xmm5, word [r14 + r13], 5 + LONG $0xc40f4166; WORD $0x1e2c; BYTE $0x06 // pinsrw xmm5, word [r14 + rbx], 6 + QUAD $0x01020e44c40f4166 // pinsrw xmm0, word [r14 + rcx + 2], 1 + QUAD $0x02023e44c40f4366 // pinsrw xmm0, word [r14 + r15 + 2], 2 + QUAD $0x03023644c40f4166 // pinsrw xmm0, word [r14 + rsi + 2], 3 + QUAD $0x04021644c40f4166 // pinsrw xmm0, word [r14 + rdx + 2], 4 + QUAD $0x05022e44c40f4366 // pinsrw xmm0, word [r14 + r13 + 2], 5 + QUAD $0x06021e44c40f4166 // pinsrw xmm0, word [r14 + rbx + 2], 6 + LONG $0xc0c98149; WORD $0x0001; BYTE $0x00 // or r9, 448 + QUAD $0x07020e44c40f4366 // pinsrw xmm0, word [r14 + r9 + 2], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f41; WORD $0x163e // movzx eax, word [r14 + rdi + 22] + LONG $0x20244489 // mov dword [rsp + 32], eax + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + QUAD $0x01040e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 4], 1 + QUAD $0x02043e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 4], 2 + QUAD $0x0304364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 4], 3 + QUAD $0x0404164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 4], 4 + QUAD $0x05042e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 4], 5 + QUAD $0x06041e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 4], 6 + QUAD $0x07040e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 4], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x000080b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0x6f0f4166; BYTE $0xde // movdqa xmm3, xmm14 + LONG $0x380f4166; WORD $0xd910 // pblendvb xmm3, xmm9, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x000090bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xc8 // movd xmm1, r8d + LONG $0x5cb70f45; WORD $0x183e // movzx r11d, word [r14 + rdi + 24] + LONG $0xc40f4366; WORD $0x0e2c; BYTE $0x07 // pinsrw xmm5, word [r14 + r9], 7 + LONG $0x750f4166; BYTE $0xeb // pcmpeqw xmm5, xmm11 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8ef0f66 // pxor xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + QUAD $0x01060e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 6], 1 + QUAD $0x02063e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 6], 2 + QUAD $0x0306367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 6], 3 + QUAD $0x0406167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 6], 4 + QUAD $0x05062e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 6], 5 + QUAD $0x06061e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 6], 6 + QUAD $0x07060e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 6], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01080e44c40f4566 // pinsrw xmm8, word [r14 + rcx + 8], 1 + QUAD $0x02083e44c40f4766 // pinsrw xmm8, word [r14 + r15 + 8], 2 + QUAD $0x03083644c40f4566 // pinsrw xmm8, word [r14 + rsi + 8], 3 + QUAD $0x04081644c40f4566 // pinsrw xmm8, word [r14 + rdx + 8], 4 + QUAD $0x05082e44c40f4766 // pinsrw xmm8, word [r14 + r13 + 8], 5 + QUAD $0x06081e44c40f4566 // pinsrw xmm8, word [r14 + rbx + 8], 6 + QUAD $0x07080e44c40f4766 // pinsrw xmm8, word [r14 + r9 + 8], 7 + LONG $0xddf80f66 // psubb xmm3, xmm5 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x380f4566; WORD $0xe110 // pblendvb xmm12, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xfa // movd xmm7, r10d + LONG $0x44b70f45; WORD $0x1a3e // movzx r8d, word [r14 + rdi + 26] + LONG $0x750f4566; BYTE $0xc3 // pcmpeqw xmm8, xmm11 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xf4 // movd xmm6, r12d + LONG $0x64b70f45; WORD $0x1c3e // movzx r12d, word [r14 + rdi + 28] + QUAD $0x010a0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 10], 1 + QUAD $0x020a3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 10], 2 + QUAD $0x030a3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 10], 3 + QUAD $0x040a1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 10], 4 + QUAD $0x050a2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 10], 5 + QUAD $0x060a1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 10], 6 + QUAD $0x070a0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 10], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + QUAD $0x010c0e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 12], 1 + QUAD $0x020c3e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 12], 2 + QUAD $0x030c3654c40f4166 // pinsrw xmm2, word [r14 + rsi + 12], 3 + QUAD $0x040c1654c40f4166 // pinsrw xmm2, word [r14 + rdx + 12], 4 + QUAD $0x050c2e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 12], 5 + QUAD $0x060c1e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 12], 6 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x646e0f66; WORD $0x2824 // movd xmm4, dword [rsp + 40] + LONG $0x54b70f45; WORD $0x1e3e // movzx r10d, word [r14 + rdi + 30] + QUAD $0x070c0e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 12], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x5c6e0f66; WORD $0x2024 // movd xmm3, dword [rsp + 32] + LONG $0x44b70f41; WORD $0x203e // movzx eax, word [r14 + rdi + 32] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x010e0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 14], 1 + QUAD $0x020e3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 14], 2 + QUAD $0x030e364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 14], 3 + QUAD $0x040e164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 14], 4 + QUAD $0x050e2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 14], 5 + QUAD $0x060e1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 14], 6 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x44b70f41; WORD $0x223e // movzx eax, word [r14 + rdi + 34] + LONG $0x28244489 // mov dword [rsp + 40], eax + QUAD $0x070e0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 14], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x01120e74c40f4166 // pinsrw xmm6, word [r14 + rcx + 18], 1 + QUAD $0x02123e74c40f4366 // pinsrw xmm6, word [r14 + r15 + 18], 2 + QUAD $0x03123674c40f4166 // pinsrw xmm6, word [r14 + rsi + 18], 3 + QUAD $0x04121674c40f4166 // pinsrw xmm6, word [r14 + rdx + 18], 4 + QUAD $0x05122e74c40f4366 // pinsrw xmm6, word [r14 + r13 + 18], 5 + QUAD $0x06121e74c40f4166 // pinsrw xmm6, word [r14 + rbx + 18], 6 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x07120e74c40f4366 // pinsrw xmm6, word [r14 + r9 + 18], 7 + LONG $0x750f4166; BYTE $0xf3 // pcmpeqw xmm6, xmm11 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + QUAD $0x0000e0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 224[rbp] /* [rip + .LCPI5_14] */ + LONG $0x6f0f4566; BYTE $0xe2 // movdqa xmm12, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4566; WORD $0xe110 // pblendvb xmm12, xmm9, xmm0 + LONG $0x6f0f4566; BYTE $0xc6 // movdqa xmm8, xmm14 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xc8 // movd xmm1, r8d + LONG $0x5cb70f45; WORD $0x243e // movzx r11d, word [r14 + rdi + 36] + QUAD $0x01100e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 16], 1 + QUAD $0x02103e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 16], 2 + QUAD $0x0310367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 16], 3 + QUAD $0x0410167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 16], 4 + QUAD $0x05102e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 16], 5 + QUAD $0x06101e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 16], 6 + QUAD $0x01140e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 20], 1 + QUAD $0x02143e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 20], 2 + QUAD $0x03143664c40f4166 // pinsrw xmm4, word [r14 + rsi + 20], 3 + QUAD $0x04141664c40f4166 // pinsrw xmm4, word [r14 + rdx + 20], 4 + QUAD $0x05142e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 20], 5 + QUAD $0x06141e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 20], 6 + QUAD $0x07140e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 20], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xf910 // pblendvb xmm15, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe4 // movd xmm4, r12d + LONG $0x64b70f45; WORD $0x263e // movzx r12d, word [r14 + rdi + 38] + QUAD $0x07100e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 16], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI5_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01160e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 22], 1 + QUAD $0x02163e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 22], 2 + QUAD $0x0316365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 22], 3 + QUAD $0x0416165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 22], 4 + QUAD $0x05162e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 22], 5 + QUAD $0x06161e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 22], 6 + QUAD $0x07160e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 22], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x01180e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 24], 1 + QUAD $0x02183e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 24], 2 + QUAD $0x03183654c40f4166 // pinsrw xmm2, word [r14 + rsi + 24], 3 + QUAD $0x04181654c40f4166 // pinsrw xmm2, word [r14 + rdx + 24], 4 + QUAD $0x05182e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 24], 5 + QUAD $0x06181e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 24], 6 + QUAD $0x07180e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 24], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x0000a0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xf110 // pblendvb xmm14, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x44b70f45; WORD $0x283e // movzx r8d, word [r14 + rdi + 40] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4566; BYTE $0xf7 // por xmm14, xmm15 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + LONG $0x7c6e0f66; WORD $0x2024 // movd xmm7, dword [rsp + 32] + LONG $0x54b70f45; WORD $0x2a3e // movzx r10d, word [r14 + rdi + 42] + QUAD $0x011a0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 26], 1 + QUAD $0x021a3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 26], 2 + QUAD $0x031a364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 26], 3 + QUAD $0x041a164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 26], 4 + QUAD $0x051a2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 26], 5 + QUAD $0x061a1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 26], 6 + QUAD $0x071a0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 26], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x011c0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 28], 1 + QUAD $0x021c3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 28], 2 + QUAD $0x031c3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 28], 3 + QUAD $0x041c1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 28], 4 + QUAD $0x051c2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 28], 5 + QUAD $0x061c1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 28], 6 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + QUAD $0x0000c0bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x546e0f66; WORD $0x2824 // movd xmm2, dword [rsp + 40] + LONG $0x44b70f41; WORD $0x2c3e // movzx eax, word [r14 + rdi + 44] + LONG $0x20244489 // mov dword [rsp + 32], eax + QUAD $0x071c0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 28], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f45; WORD $0x2e3e // movzx r11d, word [r14 + rdi + 46] + QUAD $0x011e0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 30], 1 + QUAD $0x021e3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 30], 2 + QUAD $0x031e365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 30], 3 + QUAD $0x041e165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 30], 4 + QUAD $0x051e2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 30], 5 + QUAD $0x061e1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 30], 6 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xcc // movd xmm1, r12d + LONG $0x44b70f41; WORD $0x303e // movzx eax, word [r14 + rdi + 48] + LONG $0x28244489 // mov dword [rsp + 40], eax + QUAD $0x071e0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 30], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + QUAD $0x01220e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 34], 1 + QUAD $0x02223e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 34], 2 + QUAD $0x03223654c40f4166 // pinsrw xmm2, word [r14 + rsi + 34], 3 + QUAD $0x04221654c40f4166 // pinsrw xmm2, word [r14 + rdx + 34], 4 + QUAD $0x05222e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 34], 5 + QUAD $0x06221e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 34], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07220e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 34], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xf6 // por xmm6, xmm14 + LONG $0x6f0f4566; BYTE $0xea // movdqa xmm13, xmm10 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xe910 // pblendvb xmm13, xmm9, xmm0 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd0 // movd xmm2, r8d + LONG $0x64b70f45; WORD $0x323e // movzx r12d, word [r14 + rdi + 50] + QUAD $0x01200e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 32], 1 + QUAD $0x02203e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 32], 2 + QUAD $0x0320367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 32], 3 + QUAD $0x0420167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 32], 4 + QUAD $0x05202e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 32], 5 + QUAD $0x06201e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 32], 6 + QUAD $0x01240e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 36], 1 + QUAD $0x02243e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 36], 2 + QUAD $0x03243664c40f4166 // pinsrw xmm4, word [r14 + rsi + 36], 3 + QUAD $0x04241664c40f4166 // pinsrw xmm4, word [r14 + rdx + 36], 4 + QUAD $0x05242e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 36], 5 + QUAD $0x06241e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 36], 6 + QUAD $0x07240e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 36], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4466; BYTE $0xee // por xmm13, xmm6 + QUAD $0x00000090b56f0f66 // movdqa xmm6, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x54b70f45; WORD $0x343e // movzx r10d, word [r14 + rdi + 52] + QUAD $0x07200e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 32], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0x760f4566; BYTE $0xf6 // pcmpeqd xmm14, xmm14 + LONG $0xef0f4166; BYTE $0xfe // pxor xmm7, xmm14 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01260e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 38], 1 + QUAD $0x02263e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 38], 2 + QUAD $0x0326364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 38], 3 + QUAD $0x0426164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 38], 4 + QUAD $0x05262e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 38], 5 + QUAD $0x06261e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 38], 6 + QUAD $0x07260e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 38], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x01280e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 40], 1 + QUAD $0x02283e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 40], 2 + QUAD $0x03283654c40f4166 // pinsrw xmm2, word [r14 + rsi + 40], 3 + QUAD $0x04281654c40f4166 // pinsrw xmm2, word [r14 + rdx + 40], 4 + QUAD $0x05282e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 40], 5 + QUAD $0x06281e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 40], 6 + QUAD $0x07280e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 40], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x000000a0ad6f0f66 // movdqa xmm5, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + LONG $0x4c6e0f66; WORD $0x2024 // movd xmm1, dword [rsp + 32] + LONG $0x44b70f45; WORD $0x363e // movzx r8d, word [r14 + rdi + 54] + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeeeb0f66 // por xmm5, xmm6 + QUAD $0x000000b0b56f0f66 // movdqa xmm6, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x44b70f41; WORD $0x383e // movzx eax, word [r14 + rdi + 56] + QUAD $0x012a0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 42], 1 + QUAD $0x022a3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 42], 2 + QUAD $0x032a365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 42], 3 + QUAD $0x042a165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 42], 4 + QUAD $0x052a2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 42], 5 + QUAD $0x062a1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 42], 6 + QUAD $0x072a0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 42], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x012c0e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 44], 1 + QUAD $0x022c3e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 44], 2 + QUAD $0x032c364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 44], 3 + QUAD $0x042c164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 44], 4 + QUAD $0x052c2e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 44], 5 + QUAD $0x062c1e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 44], 6 + LONG $0xeb0f4166; BYTE $0xe8 // por xmm5, xmm8 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd110 // pblendvb xmm2, xmm9, xmm0 + LONG $0x7c6e0f66; WORD $0x2824 // movd xmm7, dword [rsp + 40] + LONG $0x5cb70f45; WORD $0x3a3e // movzx r11d, word [r14 + rdi + 58] + QUAD $0x072c0e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 44], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0x0000d0bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 208[rbp] /* [rip + .LCPI5_13] */ + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xcc // movd xmm1, r12d + LONG $0x64b70f45; WORD $0x3c3e // movzx r12d, word [r14 + rdi + 60] + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + QUAD $0x012e0e64c40f4166 // pinsrw xmm4, word [r14 + rcx + 46], 1 + QUAD $0x022e3e64c40f4366 // pinsrw xmm4, word [r14 + r15 + 46], 2 + QUAD $0x032e3664c40f4166 // pinsrw xmm4, word [r14 + rsi + 46], 3 + QUAD $0x042e1664c40f4166 // pinsrw xmm4, word [r14 + rdx + 46], 4 + QUAD $0x052e2e64c40f4366 // pinsrw xmm4, word [r14 + r13 + 46], 5 + QUAD $0x062e1e64c40f4166 // pinsrw xmm4, word [r14 + rbx + 46], 6 + QUAD $0x072e0e64c40f4366 // pinsrw xmm4, word [r14 + r9 + 46], 7 + LONG $0x750f4166; BYTE $0xe3 // pcmpeqw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6f0f4566; BYTE $0xc2 // movdqa xmm8, xmm10 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xc110 // pblendvb xmm8, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd8 // movd xmm3, r8d + QUAD $0x01320e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 50], 1 + QUAD $0x02323e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 50], 2 + QUAD $0x0332364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 50], 3 + QUAD $0x0432164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 50], 4 + QUAD $0x05322e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 50], 5 + QUAD $0x06321e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 50], 6 + QUAD $0x07320e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 50], 7 + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI5_8] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe110 // pblendvb xmm4, xmm9, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + QUAD $0x01300e7cc40f4166 // pinsrw xmm7, word [r14 + rcx + 48], 1 + QUAD $0x02303e7cc40f4366 // pinsrw xmm7, word [r14 + r15 + 48], 2 + QUAD $0x0330367cc40f4166 // pinsrw xmm7, word [r14 + rsi + 48], 3 + QUAD $0x0430167cc40f4166 // pinsrw xmm7, word [r14 + rdx + 48], 4 + QUAD $0x05302e7cc40f4366 // pinsrw xmm7, word [r14 + r13 + 48], 5 + QUAD $0x06301e7cc40f4166 // pinsrw xmm7, word [r14 + rbx + 48], 6 + QUAD $0x07300e7cc40f4366 // pinsrw xmm7, word [r14 + r9 + 48], 7 + LONG $0x750f4166; BYTE $0xfb // pcmpeqw xmm7, xmm11 + LONG $0xef0f4166; BYTE $0xfe // pxor xmm7, xmm14 + QUAD $0x01340e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 52], 1 + QUAD $0x02343e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 52], 2 + QUAD $0x03343654c40f4166 // pinsrw xmm2, word [r14 + rsi + 52], 3 + QUAD $0x04341654c40f4166 // pinsrw xmm2, word [r14 + rdx + 52], 4 + QUAD $0x05342e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 52], 5 + QUAD $0x06341e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 52], 6 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x07340e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 52], 7 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + QUAD $0x01360e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 54], 1 + QUAD $0x02363e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 54], 2 + QUAD $0x0336365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 54], 3 + QUAD $0x0436165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 54], 4 + QUAD $0x05362e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 54], 5 + QUAD $0x06361e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 54], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x07360e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 54], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + QUAD $0x01380e4cc40f4166 // pinsrw xmm1, word [r14 + rcx + 56], 1 + QUAD $0x02383e4cc40f4366 // pinsrw xmm1, word [r14 + r15 + 56], 2 + QUAD $0x0338364cc40f4166 // pinsrw xmm1, word [r14 + rsi + 56], 3 + QUAD $0x0438164cc40f4166 // pinsrw xmm1, word [r14 + rdx + 56], 4 + QUAD $0x05382e4cc40f4366 // pinsrw xmm1, word [r14 + r13 + 56], 5 + QUAD $0x06381e4cc40f4166 // pinsrw xmm1, word [r14 + rbx + 56], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07380e4cc40f4366 // pinsrw xmm1, word [r14 + r9 + 56], 7 + LONG $0xe7f80f66 // psubb xmm4, xmm7 + QUAD $0x00000090ad6f0f66 // movdqa xmm5, oword 144[rbp] /* [rip + .LCPI5_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xe910 // pblendvb xmm5, xmm9, xmm0 + QUAD $0x000000a0b56f0f66 // movdqa xmm6, oword 160[rbp] /* [rip + .LCPI5_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xf110 // pblendvb xmm6, xmm9, xmm0 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x750f4166; BYTE $0xcb // pcmpeqw xmm1, xmm11 + QUAD $0x013a0e54c40f4166 // pinsrw xmm2, word [r14 + rcx + 58], 1 + QUAD $0x023a3e54c40f4366 // pinsrw xmm2, word [r14 + r15 + 58], 2 + QUAD $0x033a3654c40f4166 // pinsrw xmm2, word [r14 + rsi + 58], 3 + QUAD $0x043a1654c40f4166 // pinsrw xmm2, word [r14 + rdx + 58], 4 + QUAD $0x053a2e54c40f4366 // pinsrw xmm2, word [r14 + r13 + 58], 5 + QUAD $0x063a1e54c40f4166 // pinsrw xmm2, word [r14 + rbx + 58], 6 + QUAD $0x073a0e54c40f4366 // pinsrw xmm2, word [r14 + r9 + 58], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x750f4166; BYTE $0xd3 // pcmpeqw xmm2, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6e0f4166; BYTE $0xdc // movd xmm3, r12d + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x013c0e5cc40f4166 // pinsrw xmm3, word [r14 + rcx + 60], 1 + QUAD $0x023c3e5cc40f4366 // pinsrw xmm3, word [r14 + r15 + 60], 2 + QUAD $0x033c365cc40f4166 // pinsrw xmm3, word [r14 + rsi + 60], 3 + QUAD $0x043c165cc40f4166 // pinsrw xmm3, word [r14 + rdx + 60], 4 + QUAD $0x053c2e5cc40f4366 // pinsrw xmm3, word [r14 + r13 + 60], 5 + QUAD $0x063c1e5cc40f4166 // pinsrw xmm3, word [r14 + rbx + 60], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x073c0e5cc40f4366 // pinsrw xmm3, word [r14 + r9 + 60], 7 + LONG $0x750f4166; BYTE $0xdb // pcmpeqw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI5_11] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe110 // pblendvb xmm4, xmm9, xmm0 + QUAD $0x000000c08d6f0f66 // movdqa xmm1, oword 192[rbp] /* [rip + .LCPI5_12] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xc910 // pblendvb xmm1, xmm9, xmm0 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd110 // pblendvb xmm2, xmm9, xmm0 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x44b70f41; WORD $0x3e3e // movzx eax, word [r14 + rdi + 62] + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x013e0e44c40f4166 // pinsrw xmm0, word [r14 + rcx + 62], 1 + QUAD $0x023e3e44c40f4366 // pinsrw xmm0, word [r14 + r15 + 62], 2 + QUAD $0x033e3644c40f4166 // pinsrw xmm0, word [r14 + rsi + 62], 3 + QUAD $0x043e1644c40f4166 // pinsrw xmm0, word [r14 + rdx + 62], 4 + QUAD $0x053e2e44c40f4366 // pinsrw xmm0, word [r14 + r13 + 62], 5 + QUAD $0x063e1e44c40f4166 // pinsrw xmm0, word [r14 + rbx + 62], 6 + QUAD $0x073e0e44c40f4366 // pinsrw xmm0, word [r14 + r9 + 62], 7 + LONG $0x750f4166; BYTE $0xc3 // pcmpeqw xmm0, xmm11 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0x380f4566; WORD $0xd110 // pblendvb xmm10, xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xd2 // por xmm10, xmm2 + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x6c0f4166; BYTE $0xc5 // punpcklqdq xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x6c0f4166; BYTE $0xd2 // punpcklqdq xmm2, xmm10 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI5_15] */ + LONG $0x00380f66; BYTE $0xd3 // pshufb xmm2, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0x600f4566; BYTE $0xc2 // punpcklbw xmm8, xmm10 + LONG $0x600f4566; BYTE $0xe5 // punpcklbw xmm12, xmm13 + LONG $0x610f4566; BYTE $0xe0 // punpcklwd xmm12, xmm8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + LONG $0x7f0f45f3; WORD $0x8824 // movdqu oword [r8 + 4*rcx], xmm12 + LONG $0x2444894c; BYTE $0x08 // mov qword [rsp + 8], r8 + LONG $0x7f0f41f3; WORD $0x8844; BYTE $0x10 // movdqu oword [r8 + 4*rcx + 16], xmm0 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x244c3b48; BYTE $0x18 // cmp rcx, qword [rsp + 24] + JNE LBB5_133 + QUAD $0x000000e024948b4c // mov r10, qword [rsp + 224] + LONG $0x24543b4c; BYTE $0x18 // cmp r10, qword [rsp + 24] + QUAD $0x000000a024bc8b4c // mov r15, qword [rsp + 160] + LONG $0x245c8b44; BYTE $0x10 // mov r11d, dword [rsp + 16] + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + JNE LBB5_135 + JMP LBB5_138 + +LBB5_180: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x014c; BYTE $0xf3 // add rbx, r14 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + LONG $0x801c8d4e // lea r11, [rax + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc68149; WORD $0x0001; BYTE $0x00 // add r14, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI5_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI5_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI5_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI5_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI5_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI5_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI5_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI5_7] */ + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + +LBB5_181: + QUAD $0xfffe04b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 508] + QUAD $0xfffe08be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 504] + QUAD $0xfffe0cae100f41f3; BYTE $0xff // movss xmm5, dword [r14 - 500] + QUAD $0xfffe10a6100f41f3; BYTE $0xff // movss xmm4, dword [r14 - 496] + QUAD $0xfe84b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 380], 16 + QUAD $0xff04b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 252], 32 + QUAD $0x308476213a0f4166 // insertps xmm6, dword [r14 - 124], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfe88be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 376], 16 + QUAD $0xff08be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 248], 32 + QUAD $0x30887e213a0f4166 // insertps xmm7, dword [r14 - 120], 48 + QUAD $0xfe8cae213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm5, dword [r14 - 372], 16 + QUAD $0xff0cae213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm5, dword [r14 - 244], 32 + QUAD $0x308c6e213a0f4166 // insertps xmm5, dword [r14 - 116], 48 + QUAD $0xfe90a6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm4, dword [r14 - 368], 16 + QUAD $0xff10a6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm4, dword [r14 - 240], 32 + QUAD $0x309066213a0f4166 // insertps xmm4, dword [r14 - 112], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffe14be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 492] + QUAD $0xfe94be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 364], 16 + QUAD $0xff14be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 236], 32 + QUAD $0x30947e213a0f4166 // insertps xmm7, dword [r14 - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffe18b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 488] + QUAD $0xfe98b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 360], 16 + QUAD $0xff18b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 232], 32 + QUAD $0x309876213a0f4166 // insertps xmm6, dword [r14 - 104], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffe1c9e100f41f3; BYTE $0xff // movss xmm3, dword [r14 - 484] + QUAD $0xfe9c9e213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm3, dword [r14 - 356], 16 + QUAD $0xff1c9e213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm3, dword [r14 - 228], 32 + QUAD $0x309c5e213a0f4166 // insertps xmm3, dword [r14 - 100], 48 + LONG $0x04e1c20f // cmpneqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffe20a6100f41f3; BYTE $0xff // movss xmm4, dword [r14 - 480] + QUAD $0xfea0a6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm4, dword [r14 - 352], 16 + QUAD $0xff20a6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm4, dword [r14 - 224], 32 + QUAD $0x30a066213a0f4166 // insertps xmm4, dword [r14 - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffe24ae100f41f3; BYTE $0xff // movss xmm5, dword [r14 - 476] + QUAD $0xfea4ae213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm5, dword [r14 - 348], 16 + QUAD $0xff24ae213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm5, dword [r14 - 220], 32 + QUAD $0x30a46e213a0f4166 // insertps xmm5, dword [r14 - 92], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffe2896100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 472] + QUAD $0xfea896213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 344], 16 + QUAD $0xff2896213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 216], 32 + QUAD $0x30a856213a0f4166 // insertps xmm2, dword [r14 - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x04e1c20f // cmpneqps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffe2c9e100f41f3; BYTE $0xff // movss xmm3, dword [r14 - 468] + QUAD $0xfeac9e213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm3, dword [r14 - 340], 16 + QUAD $0xff2c9e213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm3, dword [r14 - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x30ac5e213a0f4166 // insertps xmm3, dword [r14 - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffe30be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 464] + QUAD $0xfeb0be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 336], 16 + QUAD $0xff30be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 208], 32 + QUAD $0x30b07e213a0f4166 // insertps xmm7, dword [r14 - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffe34ae100f41f3; BYTE $0xff // movss xmm5, dword [r14 - 460] + QUAD $0xfeb4ae213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm5, dword [r14 - 332], 16 + QUAD $0xff34ae213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm5, dword [r14 - 204], 32 + QUAD $0x30b46e213a0f4166 // insertps xmm5, dword [r14 - 76], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffe38b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 456] + QUAD $0xfeb8b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 328], 16 + QUAD $0xff38b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 200], 32 + QUAD $0x30b876213a0f4166 // insertps xmm6, dword [r14 - 72], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffe3c96100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 452] + QUAD $0xfebc96213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 324], 16 + QUAD $0xff3c96213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 196], 32 + QUAD $0x30bc56213a0f4166 // insertps xmm2, dword [r14 - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffe40be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 448] + QUAD $0xfec0be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 320], 16 + QUAD $0xff40be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 192], 32 + QUAD $0x30c07e213a0f4166 // insertps xmm7, dword [r14 - 64], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffe44b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 444] + QUAD $0xfec4b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 316], 16 + QUAD $0xff44b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 188], 32 + QUAD $0x30c476213a0f4166 // insertps xmm6, dword [r14 - 60], 48 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffe4896100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 440] + QUAD $0xfec896213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 312], 16 + QUAD $0xff4896213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 184], 32 + QUAD $0x30c856213a0f4166 // insertps xmm2, dword [r14 - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffe4c9e100f41f3; BYTE $0xff // movss xmm3, dword [r14 - 436] + QUAD $0xfecc9e213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm3, dword [r14 - 308], 16 + QUAD $0xff4c9e213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm3, dword [r14 - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0x30cc5e213a0f4166 // insertps xmm3, dword [r14 - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffe50ae100f41f3; BYTE $0xff // movss xmm5, dword [r14 - 432] + QUAD $0xfed0ae213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm5, dword [r14 - 304], 16 + QUAD $0xff50ae213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm5, dword [r14 - 176], 32 + QUAD $0x30d06e213a0f4166 // insertps xmm5, dword [r14 - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffe54b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 428] + QUAD $0xfed4b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 300], 16 + QUAD $0xff54b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 172], 32 + QUAD $0x30d476213a0f4166 // insertps xmm6, dword [r14 - 44], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffe58be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 424] + QUAD $0xfed8be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 296], 16 + QUAD $0xff58be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 168], 32 + QUAD $0x30d87e213a0f4166 // insertps xmm7, dword [r14 - 40], 48 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffe5c96100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 420] + QUAD $0xfedc96213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 292], 16 + QUAD $0xff5c96213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 164], 32 + QUAD $0x30dc56213a0f4166 // insertps xmm2, dword [r14 - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffe60ae100f41f3; BYTE $0xff // movss xmm5, dword [r14 - 416] + QUAD $0xfee0ae213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm5, dword [r14 - 288], 16 + QUAD $0xff60ae213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm5, dword [r14 - 160], 32 + QUAD $0x30e06e213a0f4166 // insertps xmm5, dword [r14 - 32], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffe64be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 412] + QUAD $0xfee4be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 284], 16 + QUAD $0xff64be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 156], 32 + QUAD $0x30e47e213a0f4166 // insertps xmm7, dword [r14 - 28], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x04e9c20f // cmpneqps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffe6896100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 408] + QUAD $0xfee896213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 280], 16 + QUAD $0xff6896213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + QUAD $0x30e856213a0f4166 // insertps xmm2, dword [r14 - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffe6c9e100f41f3; BYTE $0xff // movss xmm3, dword [r14 - 404] + QUAD $0xfeec9e213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm3, dword [r14 - 276], 16 + QUAD $0xff6c9e213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm3, dword [r14 - 148], 32 + QUAD $0x30ec5e213a0f4166 // insertps xmm3, dword [r14 - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffe7096100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 400] + QUAD $0xfef096213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 272], 16 + QUAD $0xff7096213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 144], 32 + QUAD $0x30f056213a0f4166 // insertps xmm2, dword [r14 - 16], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffe74b6100f41f3; BYTE $0xff // movss xmm6, dword [r14 - 396] + QUAD $0xfef4b6213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm6, dword [r14 - 268], 16 + QUAD $0xff74b6213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm6, dword [r14 - 140], 32 + QUAD $0x30f476213a0f4166 // insertps xmm6, dword [r14 - 12], 48 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x04f1c20f // cmpneqps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffe78be100f41f3; BYTE $0xff // movss xmm7, dword [r14 - 392] + QUAD $0xfef8be213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm7, dword [r14 - 264], 16 + QUAD $0xff78be213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm7, dword [r14 - 136], 32 + QUAD $0x30f87e213a0f4166 // insertps xmm7, dword [r14 - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffe7c96100f41f3; BYTE $0xff // movss xmm2, dword [r14 - 388] + QUAD $0xfefc96213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm2, dword [r14 - 260], 16 + QUAD $0xff7c96213a0f4166; WORD $0xffff; BYTE $0x20 // insertps xmm2, dword [r14 - 132], 32 + QUAD $0x30fc56213a0f4166 // insertps xmm2, dword [r14 - 4], 48 + LONG $0x04f9c20f // cmpneqps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x04d1c20f // cmpneqps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffe809e100f41f3; BYTE $0xff // movss xmm3, dword [r14 - 384] + QUAD $0xff009e213a0f4166; WORD $0xffff; BYTE $0x10 // insertps xmm3, dword [r14 - 256], 16 + QUAD $0x20805e213a0f4166 // insertps xmm3, dword [r14 - 128], 32 + LONG $0x3a0f4166; WORD $0x1e21; BYTE $0x30 // insertps xmm3, dword [r14], 48 + LONG $0x04d9c20f // cmpneqps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x247f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c68149; WORD $0x0002; BYTE $0x00 // add r14, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB5_181 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JNE LBB5_183 + JMP LBB5_186 + +TEXT ·_comparison_greater_arr_arr_sse4(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB6_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB6_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB6_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB6_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_20: + WORD $0x0a8b // mov ecx, dword [rdx] + LONG $0x04c28348 // add rdx, 4 + WORD $0x0e3b // cmp ecx, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_20 + LONG $0x01c68349 // add r14, 1 + +LBB6_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + LONG $0xd5970f41 // seta r13b + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + LONG $0xd7970f41 // seta r15b + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + LONG $0xd0970f41 // seta r8b + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + LONG $0xd1970f41 // seta r9b + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0xd4970f41 // seta r12b + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + LONG $0x405e8b44 // mov r11d, dword [rsi + 64] + LONG $0xd2970f41 // seta r10b + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x405a3b44 // cmp r11d, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + LONG $0xd6970f41 // seta r14b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x4c // mov eax, dword [rsi + 76] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + WORD $0x423b; BYTE $0x4c // cmp eax, dword [rdx + 76] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd3970f41 // seta r11b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd7970f40 // seta dil + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_28: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8a // mov edi, dword [rdx + 4*rcx] + WORD $0x3c3b; BYTE $0x8e // cmp edi, dword [rsi + 4*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_28 + JMP LBB6_123 + +LBB6_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB6_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB6_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB6_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_48: + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0xd2970f41 // seta r10b + LONG $0x08c28348 // add rdx, 8 + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_48 + LONG $0x01c68349 // add r14, 1 + +LBB6_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB6_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x46100ff2; BYTE $0x08 // movsd xmm0, qword [rsi + 8] + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x46100ff2; BYTE $0x10 // movsd xmm0, qword [rsi + 16] + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x46100ff2; BYTE $0x18 // movsd xmm0, qword [rsi + 24] + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x46100ff2; BYTE $0x20 // movsd xmm0, qword [rsi + 32] + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x46100ff2; BYTE $0x28 // movsd xmm0, qword [rsi + 40] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x46100ff2; BYTE $0x30 // movsd xmm0, qword [rsi + 48] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x46100ff2; BYTE $0x38 // movsd xmm0, qword [rsi + 56] + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd7970f41 // seta r15b + LONG $0x46100ff2; BYTE $0x40 // movsd xmm0, qword [rsi + 64] + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x46100ff2; BYTE $0x48 // movsd xmm0, qword [rsi + 72] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + LONG $0xd7970f40 // seta dil + LONG $0x46100ff2; BYTE $0x50 // movsd xmm0, qword [rsi + 80] + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0xd2970f41 // seta r10b + LONG $0x46100ff2; BYTE $0x58 // movsd xmm0, qword [rsi + 88] + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd3970f41 // seta r11b + LONG $0x46100ff2; BYTE $0x60 // movsd xmm0, qword [rsi + 96] + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0xd6970f41 // seta r14b + LONG $0x46100ff2; BYTE $0x68 // movsd xmm0, qword [rsi + 104] + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x46100ff2; BYTE $0x70 // movsd xmm0, qword [rsi + 112] + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x46100ff2; BYTE $0x78 // movsd xmm0, qword [rsi + 120] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x970f; BYTE $0xd3 // seta bl + QUAD $0x0000008086100ff2 // movsd xmm0, qword [rsi + 128] + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + QUAD $0x0000008886100ff2 // movsd xmm0, qword [rsi + 136] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + LONG $0xd4970f41 // seta r12b + QUAD $0x0000009086100ff2 // movsd xmm0, qword [rsi + 144] + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + LONG $0xd5970f41 // seta r13b + QUAD $0x0000009886100ff2 // movsd xmm0, qword [rsi + 152] + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + QUAD $0x000000a086100ff2 // movsd xmm0, qword [rsi + 160] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + QUAD $0x000000a886100ff2 // movsd xmm0, qword [rsi + 168] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + QUAD $0x000000b086100ff2 // movsd xmm0, qword [rsi + 176] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + QUAD $0x000000b886100ff2 // movsd xmm0, qword [rsi + 184] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + LONG $0xd1970f41 // seta r9b + QUAD $0x000000c086100ff2 // movsd xmm0, qword [rsi + 192] + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + QUAD $0x000000c886100ff2 // movsd xmm0, qword [rsi + 200] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + QUAD $0x000000d086100ff2 // movsd xmm0, qword [rsi + 208] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + QUAD $0x000000d886100ff2 // movsd xmm0, qword [rsi + 216] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + QUAD $0x000000e086100ff2 // movsd xmm0, qword [rsi + 224] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + QUAD $0x000000e886100ff2 // movsd xmm0, qword [rsi + 232] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + QUAD $0x000000f086100ff2 // movsd xmm0, qword [rsi + 240] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f886100ff2 // movsd xmm0, qword [rsi + 248] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + LONG $0xd0970f41 // seta r8b + WORD $0xc900 // add cl, cl + LONG $0x04244c02 // add cl, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x08 // add dil, byte [rsp + 8] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x07 // movzx edi, byte [rsp + 7] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0e // add r12b, byte [rsp + 14] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB6_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB6_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_56: + LONG $0x04100ff2; BYTE $0xce // movsd xmm0, qword [rsi + 8*rcx] + LONG $0x042e0f66; BYTE $0xca // ucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_56 + JMP LBB6_123 + +LBB6_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB6_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_6 + LONG $0x01c68349 // add r14, 1 + +LBB6_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd79f0f41 // setg r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd79f0f40 // setg dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd29f0f41 // setg r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd39f0f41 // setg r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd69f0f41 // setg r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd49f0f41 // setg r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd59f0f41 // setg r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd19f0f41 // setg r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd09f0f41 // setg r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_14 + JMP LBB6_123 + +LBB6_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB6_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB6_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_34: + WORD $0x8b48; BYTE $0x0a // mov rcx, qword [rdx] + LONG $0x08c28348 // add rdx, 8 + WORD $0x3b48; BYTE $0x0e // cmp rcx, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_34 + LONG $0x01c68349 // add r14, 1 + +LBB6_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0xd5970f41 // seta r13b + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0xd7970f41 // seta r15b + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0xd0970f41 // seta r8b + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0xd1970f41 // seta r9b + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0xd4970f41 // seta r12b + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + LONG $0x809e8b4c; WORD $0x0000; BYTE $0x00 // mov r11, qword [rsi + 128] + LONG $0xd2970f41 // seta r10b + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x809a3b4c; WORD $0x0000; BYTE $0x00 // cmp r11, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0xd6970f41 // seta r14b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0x98868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 152] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x98823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 152] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd3970f41 // seta r11b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd7970f40 // seta dil + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_42: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xca3c8b48 // mov rdi, qword [rdx + 8*rcx] + LONG $0xce3c3b48 // cmp rdi, qword [rsi + 8*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_42 + JMP LBB6_123 + +LBB6_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_70: + WORD $0xb70f; BYTE $0x0a // movzx ecx, word [rdx] + LONG $0x02c28348 // add rdx, 2 + WORD $0x3b66; BYTE $0x0e // cmp cx, word [rsi] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_70 + LONG $0x01c68349 // add r14, 1 + +LBB6_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0xd5970f41 // seta r13b + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0xd7970f41 // seta r15b + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0xd0970f41 // seta r8b + LONG $0x14423b66 // cmp ax, word [rdx + 20] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0xd1970f41 // seta r9b + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0xd4970f41 // seta r12b + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + LONG $0x5eb70f44; BYTE $0x20 // movzx r11d, word [rsi + 32] + LONG $0xd2970f41 // seta r10b + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x5a3b4466; BYTE $0x20 // cmp r11w, word [rdx + 32] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0xd6970f41 // seta r14b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2646b70f // movzx eax, word [rsi + 38] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x26423b66 // cmp ax, word [rdx + 38] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd3970f41 // seta r11b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd7970f40 // seta dil + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x28 // add r13b, byte [rsp + 40] + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x6cb60f44; WORD $0x1524 // movzx r13d, byte [rsp + 21] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xd9 // or r9b, bl + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x245cb60f; BYTE $0x05 // movzx ebx, byte [rsp + 5] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0844; BYTE $0xe3 // or bl, r12b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0x0841; BYTE $0xda // or r10b, bl + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0a // add r14b, byte [rsp + 10] + LONG $0x244cb60f; BYTE $0x06 // movzx ecx, byte [rsp + 6] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0844; BYTE $0xf1 // or cl, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0841; BYTE $0xcb // or r11b, cl + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xd9 // or cl, r11b + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x44b60f44; WORD $0x0d24 // movzx r8d, byte [rsp + 13] + LONG $0x06e0c041 // shl r8b, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0844; BYTE $0xc7 // or dil, r8b + LONG $0x01568845 // mov byte [r14 + 1], r10b + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x244cb60f; BYTE $0x0e // movzx ecx, byte [rsp + 14] + WORD $0xc900 // add cl, cl + LONG $0x13244c02 // add cl, byte [rsp + 19] + LONG $0x245cb60f; BYTE $0x0c // movzx ebx, byte [rsp + 12] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0xcb08 // or bl, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x027e8841 // mov byte [r14 + 2], dil + LONG $0x03468841 // mov byte [r14 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_78: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4a3cb70f // movzx edi, word [rdx + 2*rcx] + LONG $0x4e3c3b66 // cmp di, word [rsi + 2*rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_78 + JMP LBB6_123 + +LBB6_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_81 + LONG $0x01c68349 // add r14, 1 + +LBB6_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd59f0f41 // setg r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd09f0f41 // setg r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd39f0f41 // setg r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd79f0f41 // setg r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd29f0f41 // setg r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd69f0f41 // setg r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd49f0f41 // setg r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd19f0f41 // setg r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_89 + JMP LBB6_123 + +LBB6_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_103 + LONG $0x01c68349 // add r14, 1 + +LBB6_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd59f0f41 // setg r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd09f0f41 // setg r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd39f0f41 // setg r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd79f0f41 // setg r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd29f0f41 // setg r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd69f0f41 // setg r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd49f0f41 // setg r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd19f0f41 // setg r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_111 + JMP LBB6_123 + +LBB6_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_114: + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0xd2970f41 // seta r10b + LONG $0x04c28348 // add rdx, 4 + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_114 + LONG $0x01c68349 // add r14, 1 + +LBB6_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB6_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + LONG $0x46100ff3; BYTE $0x04 // movss xmm0, dword [rsi + 4] + LONG $0x04422e0f // ucomiss xmm0, dword [rdx + 4] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x46100ff3; BYTE $0x08 // movss xmm0, dword [rsi + 8] + LONG $0x08422e0f // ucomiss xmm0, dword [rdx + 8] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x46100ff3; BYTE $0x0c // movss xmm0, dword [rsi + 12] + LONG $0x0c422e0f // ucomiss xmm0, dword [rdx + 12] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + LONG $0x46100ff3; BYTE $0x10 // movss xmm0, dword [rsi + 16] + LONG $0x10422e0f // ucomiss xmm0, dword [rdx + 16] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x46100ff3; BYTE $0x14 // movss xmm0, dword [rsi + 20] + LONG $0x14422e0f // ucomiss xmm0, dword [rdx + 20] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x46100ff3; BYTE $0x18 // movss xmm0, dword [rsi + 24] + LONG $0x18422e0f // ucomiss xmm0, dword [rdx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x46100ff3; BYTE $0x1c // movss xmm0, dword [rsi + 28] + LONG $0x1c422e0f // ucomiss xmm0, dword [rdx + 28] + LONG $0xd7970f41 // seta r15b + LONG $0x46100ff3; BYTE $0x20 // movss xmm0, dword [rsi + 32] + LONG $0x20422e0f // ucomiss xmm0, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x46100ff3; BYTE $0x24 // movss xmm0, dword [rsi + 36] + LONG $0x24422e0f // ucomiss xmm0, dword [rdx + 36] + LONG $0xd7970f40 // seta dil + LONG $0x46100ff3; BYTE $0x28 // movss xmm0, dword [rsi + 40] + LONG $0x28422e0f // ucomiss xmm0, dword [rdx + 40] + LONG $0xd2970f41 // seta r10b + LONG $0x46100ff3; BYTE $0x2c // movss xmm0, dword [rsi + 44] + LONG $0x2c422e0f // ucomiss xmm0, dword [rdx + 44] + LONG $0xd3970f41 // seta r11b + LONG $0x46100ff3; BYTE $0x30 // movss xmm0, dword [rsi + 48] + LONG $0x30422e0f // ucomiss xmm0, dword [rdx + 48] + LONG $0xd6970f41 // seta r14b + LONG $0x46100ff3; BYTE $0x34 // movss xmm0, dword [rsi + 52] + LONG $0x34422e0f // ucomiss xmm0, dword [rdx + 52] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + LONG $0x46100ff3; BYTE $0x38 // movss xmm0, dword [rsi + 56] + LONG $0x38422e0f // ucomiss xmm0, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + LONG $0x46100ff3; BYTE $0x3c // movss xmm0, dword [rsi + 60] + LONG $0x3c422e0f // ucomiss xmm0, dword [rdx + 60] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x46100ff3; BYTE $0x40 // movss xmm0, dword [rsi + 64] + LONG $0x40422e0f // ucomiss xmm0, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x46100ff3; BYTE $0x44 // movss xmm0, dword [rsi + 68] + LONG $0x44422e0f // ucomiss xmm0, dword [rdx + 68] + LONG $0xd4970f41 // seta r12b + LONG $0x46100ff3; BYTE $0x48 // movss xmm0, dword [rsi + 72] + LONG $0x48422e0f // ucomiss xmm0, dword [rdx + 72] + LONG $0xd5970f41 // seta r13b + LONG $0x46100ff3; BYTE $0x4c // movss xmm0, dword [rsi + 76] + LONG $0x4c422e0f // ucomiss xmm0, dword [rdx + 76] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x46100ff3; BYTE $0x50 // movss xmm0, dword [rsi + 80] + LONG $0x50422e0f // ucomiss xmm0, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + LONG $0x46100ff3; BYTE $0x54 // movss xmm0, dword [rsi + 84] + LONG $0x54422e0f // ucomiss xmm0, dword [rdx + 84] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x46100ff3; BYTE $0x58 // movss xmm0, dword [rsi + 88] + LONG $0x58422e0f // ucomiss xmm0, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + LONG $0x46100ff3; BYTE $0x5c // movss xmm0, dword [rsi + 92] + LONG $0x5c422e0f // ucomiss xmm0, dword [rdx + 92] + LONG $0xd1970f41 // seta r9b + LONG $0x46100ff3; BYTE $0x60 // movss xmm0, dword [rsi + 96] + LONG $0x60422e0f // ucomiss xmm0, dword [rdx + 96] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + LONG $0x46100ff3; BYTE $0x64 // movss xmm0, dword [rsi + 100] + LONG $0x64422e0f // ucomiss xmm0, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + LONG $0x46100ff3; BYTE $0x68 // movss xmm0, dword [rsi + 104] + LONG $0x68422e0f // ucomiss xmm0, dword [rdx + 104] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + LONG $0x46100ff3; BYTE $0x6c // movss xmm0, dword [rsi + 108] + LONG $0x6c422e0f // ucomiss xmm0, dword [rdx + 108] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x46100ff3; BYTE $0x70 // movss xmm0, dword [rsi + 112] + LONG $0x70422e0f // ucomiss xmm0, dword [rdx + 112] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + LONG $0x46100ff3; BYTE $0x74 // movss xmm0, dword [rsi + 116] + LONG $0x74422e0f // ucomiss xmm0, dword [rdx + 116] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x46100ff3; BYTE $0x78 // movss xmm0, dword [rsi + 120] + LONG $0x78422e0f // ucomiss xmm0, dword [rdx + 120] + LONG $0x46100ff3; BYTE $0x7c // movss xmm0, dword [rsi + 124] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x7c422e0f // ucomiss xmm0, dword [rdx + 124] + LONG $0xd0970f41 // seta r8b + WORD $0xc900 // add cl, cl + LONG $0x04244c02 // add cl, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x08 // add dil, byte [rsp + 8] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x07 // movzx edi, byte [rsp + 7] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0e // add r12b, byte [rsp + 14] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB6_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB6_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_122: + LONG $0x04100ff3; BYTE $0x8e // movss xmm0, dword [rsi + 4*rcx] + LONG $0x8a042e0f // ucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_122 + JMP LBB6_123 + +LBB6_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_59: + WORD $0xb60f; BYTE $0x0a // movzx ecx, byte [rdx] + LONG $0x01c28348 // add rdx, 1 + WORD $0x0e3a // cmp cl, byte [rsi] + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x1945; BYTE $0xd2 // sbb r10d, r10d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_59 + LONG $0x01c68349 // add r14, 1 + +LBB6_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB6_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454970f; BYTE $0x04 // seta byte [rsp + 4] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + LONG $0xd5970f41 // seta r13b + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + LONG $0x2454970f; BYTE $0x14 // seta byte [rsp + 20] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454970f; BYTE $0x16 // seta byte [rsp + 22] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + LONG $0x2454970f; BYTE $0x15 // seta byte [rsp + 21] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454970f; BYTE $0x17 // seta byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7970f41 // seta r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + LONG $0x2454970f; BYTE $0x07 // seta byte [rsp + 7] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + LONG $0xd1970f41 // seta r9b + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3970f41 // seta r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + LONG $0xd2970f41 // seta r10b + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454970f; BYTE $0x06 // seta byte [rsp + 6] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + LONG $0x2454970f; BYTE $0x05 // seta byte [rsp + 5] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + LONG $0x2454970f; BYTE $0x0c // seta byte [rsp + 12] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4970f41 // seta r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + LONG $0xd6970f41 // seta r14b + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454970f; BYTE $0x09 // seta byte [rsp + 9] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454970f; BYTE $0x0b // seta byte [rsp + 11] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + LONG $0x2454970f; BYTE $0x0a // seta byte [rsp + 10] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd0970f41 // seta r8b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + LONG $0x2454970f; BYTE $0x12 // seta byte [rsp + 18] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454970f; BYTE $0x0e // seta byte [rsp + 14] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + LONG $0x2454970f; BYTE $0x0d // seta byte [rsp + 13] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + LONG $0x2454970f; BYTE $0x0f // seta byte [rsp + 15] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454970f; BYTE $0x11 // seta byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454970f; BYTE $0x13 // seta byte [rsp + 19] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd7970f40 // seta dil + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x04 // add r13b, byte [rsp + 4] + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + LONG $0x6cb60f44; WORD $0x2824 // movzx r13d, byte [rsp + 40] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x1424 // movzx r13d, byte [rsp + 20] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x07244c02 // add cl, byte [rsp + 7] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0524 // movzx r9d, byte [rsp + 5] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0c // add r12b, byte [rsp + 12] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xe6 // or r14b, r12b + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0a // movzx ecx, byte [rsp + 10] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xc000 // add al, al + LONG $0x12244402 // add al, byte [rsp + 18] + LONG $0x244cb60f; BYTE $0x0d // movzx ecx, byte [rsp + 13] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x0f // movzx ecx, byte [rsp + 15] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x13 // movzx eax, byte [rsp + 19] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB6_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB6_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_67: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0a1cb60f // movzx ebx, byte [rdx + rcx] + WORD $0x1c3a; BYTE $0x0e // cmp bl, byte [rsi + rcx] + WORD $0xff19 // sbb edi, edi + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_67 + JMP LBB6_123 + +LBB6_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB6_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB6_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd29f0f41 // setg r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB6_92 + LONG $0x01c68349 // add r14, 1 + +LBB6_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB6_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB6_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x24549f0f; BYTE $0x14 // setg byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x24549f0f; BYTE $0x15 // setg byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x24549f0f; BYTE $0x16 // setg byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x24549f0f; BYTE $0x17 // setg byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x24549f0f; BYTE $0x04 // setg byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd59f0f41 // setg r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x24549f0f; BYTE $0x09 // setg byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd09f0f41 // setg r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd39f0f41 // setg r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd79f0f41 // setg r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x24549f0f; BYTE $0x05 // setg byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x24549f0f; BYTE $0x06 // setg byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x24549f0f; BYTE $0x07 // setg byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x24549f0f; BYTE $0x0a // setg byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd29f0f41 // setg r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd69f0f41 // setg r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd49f0f41 // setg r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x24549f0f; BYTE $0x0b // setg byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x24549f0f; BYTE $0x0c // setg byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd19f0f41 // setg r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x24549f0f; BYTE $0x13 // setg byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x24549f0f; BYTE $0x0d // setg byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x24549f0f; BYTE $0x0e // setg byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x24549f0f; BYTE $0x0f // setg byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x24549f0f; BYTE $0x12 // setg byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x24549f0f; BYTE $0x11 // setg byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd79f0f40 // setg dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB6_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB6_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB6_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB6_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB6_100 + +LBB6_123: + SUBQ $8, SP + RET + +DATA LCDATA5<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA5<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA5<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA5<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA5<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA5<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA5<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA5<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA5<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA5<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA5<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA5<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA5<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA5<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA5<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA5<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x090(SB)/8, $0x0f070e060d050c04 +DATA LCDATA5<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA5<>+0x0a0(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0a8(SB)/8, $0x0101010101010101 +DATA LCDATA5<>+0x0b0(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x0b8(SB)/8, $0x0404040404040404 +DATA LCDATA5<>+0x0c0(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x0c8(SB)/8, $0x0808080808080808 +DATA LCDATA5<>+0x0d0(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x0d8(SB)/8, $0x1010101010101010 +DATA LCDATA5<>+0x0e0(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x0e8(SB)/8, $0x2020202020202020 +DATA LCDATA5<>+0x0f0(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x0f8(SB)/8, $0x4040404040404040 +DATA LCDATA5<>+0x100(SB)/8, $0xffffffffffffffff +DATA LCDATA5<>+0x108(SB)/8, $0xffffffffffffffff +GLOBL LCDATA5<>(SB), 8, $272 + +TEXT ·_comparison_greater_arr_scalar_sse4(SB), $360-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 336(SP) + LEAQ LCDATA5<>(SB), BP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xcc // mov r12, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB7_26 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB7_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB7_98 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB7_113 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB7_200 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_15: + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xd219 // sbb edx, edx + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + LONG $0x04b60f45; BYTE $0x1c // movzx r8d, byte [r12 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1c3c8841 // mov byte [r12 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_15 + LONG $0x01c48349 // add r12, 1 + +LBB7_17: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_21 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_19: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7970f40 // seta dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6970f41 // seta r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000d02494970f // seta byte [rsp + 208] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1970f41 // seta r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2970f41 // seta r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3970f41 // seta r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4970f41 // seta r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7970f41 // seta r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2414970f // seta byte [rsp] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x241c8841 // mov byte [r12], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x244c8841; BYTE $0x01 // mov byte [r12 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x247c8845; BYTE $0x02 // mov byte [r12 + 2], r15b + LONG $0x24448845; BYTE $0x03 // mov byte [r12 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_19 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + +LBB7_21: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_135 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_24 + +LBB7_26: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB7_27 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB7_155 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB7_170 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB7_200 + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_49 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_47: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_47 + LONG $0x01c48349 // add r12, 1 + +LBB7_49: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_53 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + +LBB7_51: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + QUAD $0x000000d02494920f // setb byte [rsp + 208] + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0xd1920f41 // setb r9b + LONG $0x462e0f66; BYTE $0x10 // ucomisd xmm0, qword [rsi + 16] + LONG $0xd6920f41 // setb r14b + LONG $0x462e0f66; BYTE $0x18 // ucomisd xmm0, qword [rsi + 24] + LONG $0xd5920f41 // setb r13b + LONG $0x462e0f66; BYTE $0x20 // ucomisd xmm0, qword [rsi + 32] + LONG $0x2454920f; BYTE $0x70 // setb byte [rsp + 112] + LONG $0x462e0f66; BYTE $0x28 // ucomisd xmm0, qword [rsi + 40] + LONG $0x2454920f; BYTE $0x58 // setb byte [rsp + 88] + LONG $0x462e0f66; BYTE $0x30 // ucomisd xmm0, qword [rsi + 48] + WORD $0x920f; BYTE $0xd0 // setb al + LONG $0x462e0f66; BYTE $0x38 // ucomisd xmm0, qword [rsi + 56] + WORD $0x920f; BYTE $0xd3 // setb bl + LONG $0x462e0f66; BYTE $0x40 // ucomisd xmm0, qword [rsi + 64] + QUAD $0x000000a02494920f // setb byte [rsp + 160] + LONG $0x462e0f66; BYTE $0x48 // ucomisd xmm0, qword [rsi + 72] + WORD $0x920f; BYTE $0xd2 // setb dl + LONG $0x462e0f66; BYTE $0x50 // ucomisd xmm0, qword [rsi + 80] + LONG $0xd7920f40 // setb dil + LONG $0x462e0f66; BYTE $0x58 // ucomisd xmm0, qword [rsi + 88] + LONG $0xd2920f41 // setb r10b + LONG $0x462e0f66; BYTE $0x60 // ucomisd xmm0, qword [rsi + 96] + LONG $0xd3920f41 // setb r11b + LONG $0x462e0f66; BYTE $0x68 // ucomisd xmm0, qword [rsi + 104] + LONG $0xd4920f41 // setb r12b + LONG $0x462e0f66; BYTE $0x70 // ucomisd xmm0, qword [rsi + 112] + LONG $0x2454920f; BYTE $0x78 // setb byte [rsp + 120] + LONG $0x462e0f66; BYTE $0x78 // ucomisd xmm0, qword [rsi + 120] + WORD $0x920f; BYTE $0xd1 // setb cl + QUAD $0x00000080862e0f66 // ucomisd xmm0, qword [rsi + 128] + LONG $0x2454920f; BYTE $0x50 // setb byte [rsp + 80] + QUAD $0x00000088862e0f66 // ucomisd xmm0, qword [rsi + 136] + QUAD $0x000000902494920f // setb byte [rsp + 144] + QUAD $0x00000090862e0f66 // ucomisd xmm0, qword [rsi + 144] + LONG $0x2454920f; BYTE $0x68 // setb byte [rsp + 104] + QUAD $0x00000098862e0f66 // ucomisd xmm0, qword [rsi + 152] + LONG $0x2454920f; BYTE $0x60 // setb byte [rsp + 96] + QUAD $0x000000a0862e0f66 // ucomisd xmm0, qword [rsi + 160] + LONG $0x2454920f; BYTE $0x40 // setb byte [rsp + 64] + QUAD $0x000000a8862e0f66 // ucomisd xmm0, qword [rsi + 168] + LONG $0x2454920f; BYTE $0x48 // setb byte [rsp + 72] + QUAD $0x000000b0862e0f66 // ucomisd xmm0, qword [rsi + 176] + LONG $0x2454920f; BYTE $0x38 // setb byte [rsp + 56] + QUAD $0x000000b8862e0f66 // ucomisd xmm0, qword [rsi + 184] + LONG $0xd7920f41 // setb r15b + QUAD $0x000000c0862e0f66 // ucomisd xmm0, qword [rsi + 192] + LONG $0x2454920f; BYTE $0x08 // setb byte [rsp + 8] + QUAD $0x000000c8862e0f66 // ucomisd xmm0, qword [rsi + 200] + LONG $0x2454920f; BYTE $0x30 // setb byte [rsp + 48] + QUAD $0x000000d0862e0f66 // ucomisd xmm0, qword [rsi + 208] + LONG $0x2454920f; BYTE $0x18 // setb byte [rsp + 24] + QUAD $0x000000d8862e0f66 // ucomisd xmm0, qword [rsi + 216] + LONG $0x2454920f; BYTE $0x20 // setb byte [rsp + 32] + QUAD $0x000000e0862e0f66 // ucomisd xmm0, qword [rsi + 224] + LONG $0x2454920f; BYTE $0x28 // setb byte [rsp + 40] + QUAD $0x000000e8862e0f66 // ucomisd xmm0, qword [rsi + 232] + LONG $0x2454920f; BYTE $0x10 // setb byte [rsp + 16] + QUAD $0x000000f0862e0f66 // ucomisd xmm0, qword [rsi + 240] + LONG $0x2414920f // setb byte [rsp] + QUAD $0x000000f8862e0f66 // ucomisd xmm0, qword [rsi + 248] + LONG $0xd0920f41 // setb r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x000000d0248c0244 // add r9b, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + LONG $0x247cb60f; BYTE $0x78 // movzx edi, byte [rsp + 120] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x1888 // mov byte [rax], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + WORD $0x4888; BYTE $0x01 // mov byte [rax + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x02788844 // mov byte [rax + 2], r15b + LONG $0x03408844 // mov byte [rax + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c08348 // add rax, 4 + WORD $0x8949; BYTE $0xc4 // mov r12, rax + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB7_51 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + +LBB7_53: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_193 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_195 + +LBB7_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB7_56 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB7_200 + WORD $0x8a44; BYTE $0x32 // mov r14b, byte [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_6: + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_6 + LONG $0x01c48349 // add r12, 1 + +LBB7_8: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_9 + LONG $0x10fa8349 // cmp r10, 16 + LONG $0x24348844 // mov byte [rsp], r14b + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000001202494894c // mov qword [rsp + 288], r10 + JB LBB7_81 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc4 // cmp r12, rax + JAE LBB7_84 + LONG $0x94048d4b // lea rax, [r12 + 4*r10] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB7_84 + +LBB7_81: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + LONG $0x2464894c; BYTE $0x58 // mov qword [rsp + 88], r12 + +LBB7_87: + QUAD $0x000000e824942b4c // sub r10, qword [rsp + 232] + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + +LBB7_88: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + QUAD $0x000000b024949f0f // setg byte [rsp + 176] + LONG $0x01763844 // cmp byte [rsi + 1], r14b + LONG $0xd69f0f40 // setg sil + LONG $0x02713844 // cmp byte [rcx + 2], r14b + LONG $0xd79f0f41 // setg r15b + LONG $0x03713844 // cmp byte [rcx + 3], r14b + LONG $0xd49f0f41 // setg r12b + LONG $0x04713844 // cmp byte [rcx + 4], r14b + QUAD $0x000000d024949f0f // setg byte [rsp + 208] + LONG $0x05713844 // cmp byte [rcx + 5], r14b + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x06713844 // cmp byte [rcx + 6], r14b + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x07713844 // cmp byte [rcx + 7], r14b + LONG $0xd19f0f41 // setg r9b + LONG $0x08713844 // cmp byte [rcx + 8], r14b + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x09713844 // cmp byte [rcx + 9], r14b + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x0a713844 // cmp byte [rcx + 10], r14b + LONG $0xd79f0f40 // setg dil + LONG $0x0b713844 // cmp byte [rcx + 11], r14b + LONG $0xd29f0f41 // setg r10b + LONG $0x0c713844 // cmp byte [rcx + 12], r14b + LONG $0xd69f0f41 // setg r14b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd59f0f41 // setg r13b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd09f0f41 // setg r8b + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd39f0f41 // setg r11b + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000b024b40240 // add sil, byte [rsp + 176] + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x34b60f44; BYTE $0x24 // movzx r14d, byte [rsp] + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xd200 // add dl, dl + LONG $0x78245402 // add dl, byte [rsp + 120] + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x58 // mov rdx, qword [rsp + 88] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xc000 // add al, al + LONG $0x30244402 // add al, byte [rsp + 48] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000008024b4b60f // movzx esi, byte [rsp + 128] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x58 // mov qword [rsp + 88], rdx + QUAD $0x000000f024848348; BYTE $0xff // add qword [rsp + 240], -1 + JNE LBB7_88 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + JMP LBB7_90 + +LBB7_27: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB7_137 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB7_200 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_33 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_31: + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xd219 // sbb edx, edx + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + LONG $0x04b60f45; BYTE $0x1c // movzx r8d, byte [r12 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1c3c8841 // mov byte [r12 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_31 + LONG $0x01c48349 // add r12, 1 + +LBB7_33: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_37 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_35: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7970f40 // seta dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6970f41 // seta r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000d02494970f // seta byte [rsp + 208] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1970f41 // seta r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2970f41 // seta r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3970f41 // seta r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4970f41 // seta r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7970f41 // seta r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2414970f // seta byte [rsp] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x241c8841 // mov byte [r12], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x244c8841; BYTE $0x01 // mov byte [r12 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x247c8845; BYTE $0x02 // mov byte [r12 + 2], r15b + LONG $0x24448845; BYTE $0x03 // mov byte [r12 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_35 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + +LBB7_37: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_153 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_40 + +LBB7_56: + WORD $0x028a // mov al, byte [rdx] + LONG $0x28244488 // mov byte [rsp + 40], al + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_58: + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0x0e3a // cmp cl, byte [rsi] + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_58 + LONG $0x01c48349 // add r12, 1 + +LBB7_60: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_61 + LONG $0x10fa8349 // cmp r10, 16 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000001082494894c // mov qword [rsp + 264], r10 + JB LBB7_63 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc4 // cmp r12, rax + JAE LBB7_66 + LONG $0x94048d4b // lea rax, [r12 + 4*r10] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB7_66 + +LBB7_63: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + LONG $0x2464894c; BYTE $0x48 // mov qword [rsp + 72], r12 + +LBB7_69: + QUAD $0x000000e824942b4c // sub r10, qword [rsp + 232] + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_70: + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + LONG $0x74b60f44; WORD $0x2824 // movzx r14d, byte [rsp + 40] + WORD $0x3844; BYTE $0x31 // cmp byte [rcx], r14b + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x01713844 // cmp byte [rcx + 1], r14b + LONG $0xd6970f40 // seta sil + LONG $0x02713844 // cmp byte [rcx + 2], r14b + LONG $0xd3970f41 // seta r11b + LONG $0x03713844 // cmp byte [rcx + 3], r14b + LONG $0xd7970f41 // seta r15b + LONG $0x04713844 // cmp byte [rcx + 4], r14b + QUAD $0x000000d02494970f // seta byte [rsp + 208] + LONG $0x05713844 // cmp byte [rcx + 5], r14b + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x06713844 // cmp byte [rcx + 6], r14b + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x07713844 // cmp byte [rcx + 7], r14b + LONG $0xd0970f41 // seta r8b + LONG $0x08713844 // cmp byte [rcx + 8], r14b + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x09713844 // cmp byte [rcx + 9], r14b + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x0a713844 // cmp byte [rcx + 10], r14b + LONG $0xd7970f40 // seta dil + LONG $0x0b713844 // cmp byte [rcx + 11], r14b + LONG $0xd1970f41 // seta r9b + LONG $0x0c713844 // cmp byte [rcx + 12], r14b + LONG $0xd2970f41 // seta r10b + LONG $0x0d713844 // cmp byte [rcx + 13], r14b + LONG $0xd4970f41 // seta r12b + LONG $0x0e713844 // cmp byte [rcx + 14], r14b + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x0f713844 // cmp byte [rcx + 15], r14b + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x10713844 // cmp byte [rcx + 16], r14b + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x11713844 // cmp byte [rcx + 17], r14b + LONG $0xd5970f41 // seta r13b + LONG $0x12713844 // cmp byte [rcx + 18], r14b + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x13713844 // cmp byte [rcx + 19], r14b + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x14713844 // cmp byte [rcx + 20], r14b + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x15713844 // cmp byte [rcx + 21], r14b + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x16713844 // cmp byte [rcx + 22], r14b + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x17713844 // cmp byte [rcx + 23], r14b + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x18713844 // cmp byte [rcx + 24], r14b + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x19713844 // cmp byte [rcx + 25], r14b + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x1a713844 // cmp byte [rcx + 26], r14b + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x1b713844 // cmp byte [rcx + 27], r14b + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x1c713844 // cmp byte [rcx + 28], r14b + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x1d713844 // cmp byte [rcx + 29], r14b + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x1e713844 // cmp byte [rcx + 30], r14b + LONG $0x2414970f // seta byte [rsp] + LONG $0x1f713844 // cmp byte [rcx + 31], r14b + LONG $0xd6970f41 // seta r14b + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x000000c024b40240 // add sil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0841; BYTE $0xf3 // or r11b, sil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0xc289 // mov edx, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0x0841; BYTE $0xc0 // or r8b, al + WORD $0x0844; BYTE $0xe3 // or bl, r12b + WORD $0x0045; BYTE $0xed // add r13b, r13b + LONG $0x246c0244; BYTE $0x68 // add r13b, byte [rsp + 104] + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + WORD $0xc689 // mov esi, eax + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + WORD $0x8844; BYTE $0x00 // mov byte [rax], r8b + LONG $0x247cb60f; BYTE $0x38 // movzx edi, byte [rsp + 56] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x5888; BYTE $0x01 // mov byte [rax + 1], bl + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x245cb60f; BYTE $0x30 // movzx ebx, byte [rsp + 48] + WORD $0xdb00 // add bl, bl + LONG $0x18245c02 // add bl, byte [rsp + 24] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x20 // movzx ebx, byte [rsp + 32] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x2434b60f // movzx esi, byte [rsp] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + WORD $0x0841; BYTE $0xde // or r14b, bl + WORD $0x5088; BYTE $0x02 // mov byte [rax + 2], dl + LONG $0x03708844 // mov byte [rax + 3], r14b + LONG $0x20718d4c // lea r14, [rcx + 32] + LONG $0x04c08348 // add rax, 4 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_70 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + JMP LBB7_72 + +LBB7_137: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_141 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_139: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + LONG $0x04b60f45; BYTE $0x1c // movzx r8d, byte [r12 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1c3c8841 // mov byte [r12 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_139 + LONG $0x01c48349 // add r12, 1 + +LBB7_141: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_145 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_143: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd79f0f40 // setg dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd69f0f41 // setg r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000000d024949f0f // setg byte [rsp + 208] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd19f0f41 // setg r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd29f0f41 // setg r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd39f0f41 // setg r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd49f0f41 // setg r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd79f0f41 // setg r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x24149f0f // setg byte [rsp] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd09f0f41 // setg r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x241c8841 // mov byte [r12], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x244c8841; BYTE $0x01 // mov byte [r12 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x247c8845; BYTE $0x02 // mov byte [r12 + 2], r15b + LONG $0x24448845; BYTE $0x03 // mov byte [r12 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_143 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + +LBB7_145: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_151 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_148 + +LBB7_98: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_102 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_100: + LONG $0x2e3b4466 // cmp r13w, word [rsi] + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x1945; BYTE $0xc9 // sbb r9d, r9d + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + WORD $0x894c; BYTE $0xe2 // mov rdx, r12 + LONG $0x04b60f45; BYTE $0x1c // movzx r8d, byte [r12 + rbx] + WORD $0x3045; BYTE $0xc1 // xor r9b, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xcf // and dil, r9b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1c3c8841 // mov byte [r12 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_100 + LONG $0x01c48349 // add r12, 1 + +LBB7_102: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_106 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_104: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7970f40 // seta dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6970f41 // seta r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1970f41 // seta r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2970f41 // seta r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3970f41 // seta r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4970f41 // seta r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + QUAD $0x000000d02494970f // seta byte [rsp + 208] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7970f41 // seta r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2414970f // seta byte [rsp] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0970f41 // seta r8b + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x58 // add dil, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x20245402 // add dl, byte [rsp + 32] + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000d024bcb60f // movzx edi, byte [rsp + 208] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xd200 // add dl, dl + LONG $0x10245402 // add dl, byte [rsp + 16] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x241c8841 // mov byte [r12], bl + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x244c8841; BYTE $0x01 // mov byte [r12 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xc900 // add cl, cl + WORD $0x0c02; BYTE $0x24 // add cl, byte [rsp] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x28 // movzx edx, byte [rsp + 40] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x247c8845; BYTE $0x02 // mov byte [r12 + 2], r15b + LONG $0x24448845; BYTE $0x03 // mov byte [r12 + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_104 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + +LBB7_106: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_111 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_109 + +LBB7_113: + WORD $0xb70f; BYTE $0x02 // movzx eax, word [rdx] + LONG $0xf0248489; WORD $0x0000; BYTE $0x00 // mov dword [rsp + 240], eax + LONG $0x1f738d4d // lea r14, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xf3490f4d // cmovns r14, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_117 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + QUAD $0x000000f024948b44 // mov r10d, dword [rsp + 240] + +LBB7_115: + LONG $0x16394466 // cmp word [rsi], r10w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_115 + LONG $0x01c48349 // add r12, 1 + +LBB7_117: + LONG $0x05fec149 // sar r14, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_128 + LONG $0x08fe8349 // cmp r14, 8 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x0000011024b4894c // mov qword [rsp + 272], r14 + JB LBB7_119 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc4 // cmp r12, rax + JAE LBB7_122 + LONG $0xb4048d4b // lea rax, [r12 + 4*r14] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB7_122 + +LBB7_119: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x18 // mov qword [rsp + 24], rax + +LBB7_125: + LONG $0x2424894c // mov qword [rsp], r12 + LONG $0x24742b4c; BYTE $0x18 // sub r14, qword [rsp + 24] + QUAD $0x000000b024b4894c // mov qword [rsp + 176], r14 + QUAD $0x000000f024ac8b44 // mov r13d, dword [rsp + 240] + +LBB7_126: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd09f0f41 // setg r8b + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd69f0f41 // setg r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000000d024949f0f // setg byte [rsp + 208] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd69f0f40 // setg sil + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd19f0f41 // setg r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd29f0f41 // setg r10b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + LONG $0xd49f0f41 // setg r12b + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd79f0f40 // setg dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd79f0f41 // setg r15b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000c024840244 // add r8b, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xc900 // add cl, cl + LONG $0x90248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 144] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xce // or sil, cl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xc900 // add cl, cl + LONG $0x50244c02 // add cl, byte [rsp + 80] + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x40 // movzx ecx, byte [rsp + 64] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x240c8b48 // mov rcx, qword [rsp] + WORD $0x1988 // mov byte [rcx], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x08244402 // add al, byte [rsp + 8] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x240c8948 // mov qword [rsp], rcx + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_126 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + LONG $0x24248b4c // mov r12, qword [rsp] + +LBB7_128: + LONG $0x05e6c149 // shl r14, 5 + WORD $0x394d; BYTE $0xde // cmp r14, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xf0 // sub r8, r14 + WORD $0xf749; BYTE $0xd6 // not r14 + WORD $0x014d; BYTE $0xde // add r14, r11 + JNE LBB7_133 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB7_131 + +LBB7_155: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_159 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_157: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + LONG $0x04b60f45; BYTE $0x1c // movzx r8d, byte [r12 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1c3c8841 // mov byte [r12 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_157 + LONG $0x01c48349 // add r12, 1 + +LBB7_159: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_163 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f02494894c // mov qword [rsp + 240], r10 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + +LBB7_161: + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd79f0f40 // setg dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd69f0f41 // setg r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000000d024949f0f // setg byte [rsp + 208] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd19f0f41 // setg r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd29f0f41 // setg r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd39f0f41 // setg r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd49f0f41 // setg r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd79f0f41 // setg r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x24149f0f // setg byte [rsp] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd09f0f41 // setg r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x90249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 144] + QUAD $0x000000d02484b60f // movzx eax, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x000000a024bcb60f // movzx edi, byte [rsp + 160] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024a48b4c // mov r12, qword [rsp + 128] + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xd200 // add dl, dl + LONG $0x50245402 // add dl, byte [rsp + 80] + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x241c8841 // mov byte [r12], bl + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x244c8841; BYTE $0x01 // mov byte [r12 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x247c8845; BYTE $0x02 // mov byte [r12 + 2], r15b + LONG $0x24448845; BYTE $0x03 // mov byte [r12 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000b024848348; BYTE $0xff // add qword [rsp + 176], -1 + JNE LBB7_161 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f024948b4c // mov r10, qword [rsp + 240] + +LBB7_163: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_168 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_166 + +LBB7_170: + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x100f44f3; BYTE $0x1a // movss xmm11, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB7_174 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB7_172: + LONG $0x1e2e0f44 // ucomiss xmm11, dword [rsi] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xd219 // sbb edx, edx + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB7_172 + LONG $0x01c48349 // add r12, 1 + +LBB7_174: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB7_175 + LONG $0x04fa8349 // cmp r10, 4 + JB LBB7_177 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc4 // cmp r12, rax + JAE LBB7_180 + LONG $0x94048d4b // lea rax, [r12 + 4*r10] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB7_180 + +LBB7_177: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + +LBB7_183: + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + WORD $0x294d; BYTE $0xc2 // sub r10, r8 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + +LBB7_184: + LONG $0x2434894c // mov qword [rsp], r14 + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + QUAD $0x000000d02494920f // setb byte [rsp + 208] + LONG $0x5b2e0f44; BYTE $0x04 // ucomiss xmm11, dword [rbx + 4] + LONG $0xd0920f41 // setb r8b + LONG $0x5b2e0f44; BYTE $0x08 // ucomiss xmm11, dword [rbx + 8] + LONG $0xd6920f41 // setb r14b + LONG $0x5b2e0f44; BYTE $0x0c // ucomiss xmm11, dword [rbx + 12] + LONG $0xd5920f41 // setb r13b + LONG $0x5b2e0f44; BYTE $0x10 // ucomiss xmm11, dword [rbx + 16] + LONG $0x2454920f; BYTE $0x70 // setb byte [rsp + 112] + LONG $0x5b2e0f44; BYTE $0x14 // ucomiss xmm11, dword [rbx + 20] + LONG $0x2454920f; BYTE $0x58 // setb byte [rsp + 88] + LONG $0x5b2e0f44; BYTE $0x18 // ucomiss xmm11, dword [rbx + 24] + WORD $0x920f; BYTE $0xd0 // setb al + LONG $0x5b2e0f44; BYTE $0x1c // ucomiss xmm11, dword [rbx + 28] + LONG $0xd3920f41 // setb r11b + LONG $0x5b2e0f44; BYTE $0x20 // ucomiss xmm11, dword [rbx + 32] + QUAD $0x000000a02494920f // setb byte [rsp + 160] + LONG $0x5b2e0f44; BYTE $0x24 // ucomiss xmm11, dword [rbx + 36] + WORD $0x920f; BYTE $0xd2 // setb dl + LONG $0x5b2e0f44; BYTE $0x28 // ucomiss xmm11, dword [rbx + 40] + LONG $0xd6920f40 // setb sil + LONG $0x5b2e0f44; BYTE $0x2c // ucomiss xmm11, dword [rbx + 44] + LONG $0xd1920f41 // setb r9b + LONG $0x5b2e0f44; BYTE $0x30 // ucomiss xmm11, dword [rbx + 48] + LONG $0xd2920f41 // setb r10b + LONG $0x5b2e0f44; BYTE $0x34 // ucomiss xmm11, dword [rbx + 52] + LONG $0xd4920f41 // setb r12b + LONG $0x5b2e0f44; BYTE $0x38 // ucomiss xmm11, dword [rbx + 56] + LONG $0x2454920f; BYTE $0x78 // setb byte [rsp + 120] + LONG $0x5b2e0f44; BYTE $0x3c // ucomiss xmm11, dword [rbx + 60] + LONG $0xd7920f40 // setb dil + LONG $0x5b2e0f44; BYTE $0x40 // ucomiss xmm11, dword [rbx + 64] + LONG $0x2454920f; BYTE $0x50 // setb byte [rsp + 80] + LONG $0x5b2e0f44; BYTE $0x44 // ucomiss xmm11, dword [rbx + 68] + QUAD $0x000000902494920f // setb byte [rsp + 144] + LONG $0x5b2e0f44; BYTE $0x48 // ucomiss xmm11, dword [rbx + 72] + LONG $0x2454920f; BYTE $0x68 // setb byte [rsp + 104] + LONG $0x5b2e0f44; BYTE $0x4c // ucomiss xmm11, dword [rbx + 76] + LONG $0x2454920f; BYTE $0x60 // setb byte [rsp + 96] + LONG $0x5b2e0f44; BYTE $0x50 // ucomiss xmm11, dword [rbx + 80] + LONG $0x2454920f; BYTE $0x40 // setb byte [rsp + 64] + LONG $0x5b2e0f44; BYTE $0x54 // ucomiss xmm11, dword [rbx + 84] + LONG $0x2454920f; BYTE $0x48 // setb byte [rsp + 72] + LONG $0x5b2e0f44; BYTE $0x58 // ucomiss xmm11, dword [rbx + 88] + LONG $0x2454920f; BYTE $0x38 // setb byte [rsp + 56] + LONG $0x5b2e0f44; BYTE $0x5c // ucomiss xmm11, dword [rbx + 92] + LONG $0xd7920f41 // setb r15b + LONG $0x5b2e0f44; BYTE $0x60 // ucomiss xmm11, dword [rbx + 96] + LONG $0x2454920f; BYTE $0x08 // setb byte [rsp + 8] + LONG $0x5b2e0f44; BYTE $0x64 // ucomiss xmm11, dword [rbx + 100] + LONG $0x2454920f; BYTE $0x30 // setb byte [rsp + 48] + LONG $0x5b2e0f44; BYTE $0x68 // ucomiss xmm11, dword [rbx + 104] + LONG $0x2454920f; BYTE $0x18 // setb byte [rsp + 24] + LONG $0x5b2e0f44; BYTE $0x6c // ucomiss xmm11, dword [rbx + 108] + LONG $0x2454920f; BYTE $0x20 // setb byte [rsp + 32] + LONG $0x5b2e0f44; BYTE $0x70 // ucomiss xmm11, dword [rbx + 112] + LONG $0x2454920f; BYTE $0x28 // setb byte [rsp + 40] + LONG $0x5b2e0f44; BYTE $0x74 // ucomiss xmm11, dword [rbx + 116] + LONG $0x2454920f; BYTE $0x10 // setb byte [rsp + 16] + LONG $0x5b2e0f44; BYTE $0x78 // ucomiss xmm11, dword [rbx + 120] + QUAD $0x000000802494920f // setb byte [rsp + 128] + LONG $0x5b2e0f44; BYTE $0x7c // ucomiss xmm11, dword [rbx + 124] + WORD $0x920f; BYTE $0xd1 // setb cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000d024840244 // add r8b, byte [rsp + 208] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0xa0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 160] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x78 // movzx esi, byte [rsp + 120] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + LONG $0x24348b4c // mov r14, qword [rsp] + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xc000 // add al, al + LONG $0x50244402 // add al, byte [rsp + 80] + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x38 // movzx esi, byte [rsp + 56] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x017e8841 // mov byte [r14 + 1], dil + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x08244402 // add al, byte [rsp + 8] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x034e8841 // mov byte [r14 + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB7_184 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + JMP LBB7_186 + +LBB7_9: + LONG $0x2464894c; BYTE $0x58 // mov qword [rsp + 88], r12 + +LBB7_90: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_93 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB7_96 + +LBB7_61: + LONG $0x2464894c; BYTE $0x48 // mov qword [rsp + 72], r12 + WORD $0x8949; BYTE $0xf6 // mov r14, rsi + +LBB7_72: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_75 + WORD $0xc031 // xor eax, eax + JMP LBB7_78 + +LBB7_175: + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + +LBB7_186: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB7_200 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB7_191 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB7_189 + +LBB7_153: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_154: + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x14b60f45; BYTE $0x14 // movzx r10d, byte [r12 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x14048841 // mov byte [r12 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086e3b4c // cmp r13, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x141c8841 // mov byte [r12 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_154 + +LBB7_40: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + WORD $0x3b4c; BYTE $0x2e // cmp r13, qword [rsi] + JMP LBB7_197 + +LBB7_151: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_152: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3c148841 // mov byte [r12 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_152 + +LBB7_148: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB7_150 + +LBB7_93: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x245c8b4c; BYTE $0x58 // mov r11, qword [rsp + 88] + +LBB7_94: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e343846 // cmp byte [rsi + r9], r14b + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06743844; BYTE $0x01 // cmp byte [rsi + rax + 1], r14b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3b048841 // mov byte [r11 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB7_94 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB7_96: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + WORD $0x3844; BYTE $0x36 // cmp byte [rsi], r14b + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB7_200 + +LBB7_75: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xc031 // xor eax, eax + LONG $0x245c8b4c; BYTE $0x48 // mov r11, qword [rsp + 72] + LONG $0x24548a44; BYTE $0x28 // mov r10b, byte [rsp + 40] + +LBB7_76: + LONG $0x06143a45 // cmp r10b, byte [r14 + rax] + WORD $0xf619 // sbb esi, esi + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x1cb60f41; BYTE $0x3b // movzx ebx, byte [r11 + rdi] + WORD $0x3040; BYTE $0xde // xor sil, bl + WORD $0x2040; BYTE $0xf2 // and dl, sil + WORD $0xda30 // xor dl, bl + LONG $0x3b148841 // mov byte [r11 + rdi], dl + LONG $0x06543a45; BYTE $0x01 // cmp r10b, byte [r14 + rax + 1] + LONG $0x02408d48 // lea rax, [rax + 2] + WORD $0xf619 // sbb esi, esi + WORD $0x3040; BYTE $0xd6 // xor sil, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0xd330 // xor bl, dl + LONG $0x3b1c8841 // mov byte [r11 + rdi], bl + WORD $0x3949; BYTE $0xc1 // cmp r9, rax + JNE LBB7_76 + WORD $0x0149; BYTE $0xc6 // add r14, rax + +LBB7_78: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + LONG $0x28244c8a // mov cl, byte [rsp + 40] + WORD $0x3a41; BYTE $0x0e // cmp cl, byte [r14] + WORD $0xd219 // sbb edx, edx + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x03eec148 // shr rsi, 3 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + LONG $0x303c8a41 // mov dil, byte [r8 + rsi] + WORD $0x0724 // and al, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xc189 // mov ecx, eax + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xfa // xor dl, dil + WORD $0xd320 // and bl, dl + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x301c8841 // mov byte [r8 + rsi], bl + JMP LBB7_200 + +LBB7_135: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_136: + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x14b60f45; BYTE $0x14 // movzx r10d, byte [r12 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x14048841 // mov byte [r12 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3b44 // cmp r13d, dword [rsi + 4] + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x141c8841 // mov byte [r12 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_136 + +LBB7_24: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + WORD $0x3b44; BYTE $0x2e // cmp r13d, dword [rsi] + JMP LBB7_197 + +LBB7_193: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_194: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0xc019 // sbb eax, eax + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3c148841 // mov byte [r12 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_194 + +LBB7_195: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + JMP LBB7_197 + +LBB7_111: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_112: + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x14b60f45; BYTE $0x14 // movzx r10d, byte [r12 + rdx] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x14048841 // mov byte [r12 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x141c8841 // mov byte [r12 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB7_112 + +LBB7_109: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + LONG $0x2e3b4466 // cmp r13w, word [rsi] + +LBB7_197: + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14348a41 // mov sil, byte [r12 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB7_198 + +LBB7_133: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + QUAD $0x000000f0249c8b44 // mov r11d, dword [rsp + 240] + +LBB7_134: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x1e394466 // cmp word [rsi], r11w + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x5e394466; BYTE $0x02 // cmp word [rsi + 2], r11w + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB7_134 + +LBB7_131: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + LONG $0xf024848b; WORD $0x0000; BYTE $0x00 // mov eax, dword [rsp + 240] + WORD $0x3966; BYTE $0x06 // cmp word [rsi], ax + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + JMP LBB7_199 + +LBB7_168: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_169: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3c148841 // mov byte [r12 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_169 + +LBB7_166: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + +LBB7_150: + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14348a41 // mov sil, byte [r12 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB7_198: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + +LBB7_199: + LONG $0x141c8841 // mov byte [r12 + rdx], bl + +LBB7_200: + MOVQ 336(SP), SP + RET + +LBB7_191: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB7_192: + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + WORD $0xd219 // sbb edx, edx + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x5b2e0f44; BYTE $0x04 // ucomiss xmm11, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + WORD $0xf619 // sbb esi, esi + WORD $0x3040; BYTE $0xc6 // xor sil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2040; BYTE $0xf2 // and dl, sil + WORD $0xc230 // xor dl, al + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB7_192 + +LBB7_189: + LONG $0x01c0f641 // test r8b, 1 + JE LBB7_200 + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB7_200 + +LBB7_84: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + QUAD $0x000000e82494894c // mov qword [rsp + 232], r10 + LONG $0x94048d4b // lea rax, [r12 + 4*r10] + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + LONG $0xc6b60f41 // movzx eax, r14b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x0000a0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + +LBB7_85: + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + LONG $0x05e7c148 // shl rdi, 5 + WORD $0x8949; BYTE $0xf8 // mov r8, rdi + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + WORD $0x8949; BYTE $0xf9 // mov r9, rdi + WORD $0x8949; BYTE $0xfc // mov r12, rdi + WORD $0x8949; BYTE $0xfb // mov r11, rdi + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x247c8948; BYTE $0x20 // mov qword [rsp + 32], rdi + WORD $0x8949; BYTE $0xfe // mov r14, rdi + WORD $0x8949; BYTE $0xfa // mov r10, rdi + WORD $0x8949; BYTE $0xff // mov r15, rdi + WORD $0x8948; BYTE $0xfb // mov rbx, rdi + LONG $0x3e0cb60f // movzx ecx, byte [rsi + rdi] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x3e4cb60f; BYTE $0x01 // movzx ecx, byte [rsi + rdi + 1] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x3e4cb60f; BYTE $0x02 // movzx ecx, byte [rsi + rdi + 2] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x3e4cb60f; BYTE $0x03 // movzx ecx, byte [rsi + rdi + 3] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x3e4cb60f; BYTE $0x04 // movzx ecx, byte [rsi + rdi + 4] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x3e4cb60f; BYTE $0x05 // movzx ecx, byte [rsi + rdi + 5] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x3e4cb60f; BYTE $0x06 // movzx ecx, byte [rsi + rdi + 6] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x3e4cb60f; BYTE $0x07 // movzx ecx, byte [rsi + rdi + 7] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x3e4cb60f; BYTE $0x08 // movzx ecx, byte [rsi + rdi + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x3e4cb60f; BYTE $0x09 // movzx ecx, byte [rsi + rdi + 9] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x3e4cb60f; BYTE $0x0a // movzx ecx, byte [rsi + rdi + 10] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00009024847f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm0 + LONG $0x3e4cb60f; BYTE $0x0b // movzx ecx, byte [rsi + rdi + 11] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x3e4cb60f; BYTE $0x0c // movzx ecx, byte [rsi + rdi + 12] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x3e4cb60f; BYTE $0x0d // movzx ecx, byte [rsi + rdi + 13] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x3e4cb60f; BYTE $0x0e // movzx ecx, byte [rsi + rdi + 14] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00013024847f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm0 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x28 // mov qword [rsp + 40], r13 + LONG $0x40c88349 // or r8, 64 + LONG $0x60ca8348 // or rdx, 96 + LONG $0x24548948; BYTE $0x78 // mov qword [rsp + 120], rdx + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xa0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 160 + LONG $0xc0cb8149; WORD $0x0000; BYTE $0x00 // or r11, 192 + LONG $0x245c894c; BYTE $0x40 // mov qword [rsp + 64], r11 + LONG $0x00e00d48; WORD $0x0000 // or rax, 224 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + LONG $0x00cb8149; WORD $0x0001; BYTE $0x00 // or r11, 256 + LONG $0x20ce8149; WORD $0x0001; BYTE $0x00 // or r14, 288 + LONG $0x40ca8149; WORD $0x0001; BYTE $0x00 // or r10, 320 + LONG $0x60cf8149; WORD $0x0001; BYTE $0x00 // or r15, 352 + LONG $0x247c894c; BYTE $0x50 // mov qword [rsp + 80], r15 + LONG $0x80cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 384 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + WORD $0x8948; BYTE $0xf9 // mov rcx, rdi + LONG $0x247c8948; BYTE $0x18 // mov qword [rsp + 24], rdi + LONG $0x01c00d48; WORD $0x0000 // or rax, 448 + LONG $0x24448948; BYTE $0x10 // mov qword [rsp + 16], rax + LONG $0xe0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 480 + LONG $0x244c8948; BYTE $0x30 // mov qword [rsp + 48], rcx + QUAD $0x012e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 1 + QUAD $0x02063c203a0f4666 // pinsrb xmm15, byte [rsi + r8], 2 + QUAD $0x03163c203a0f4466 // pinsrb xmm15, byte [rsi + rdx], 3 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x244c894c; BYTE $0x38 // mov qword [rsp + 56], r9 + QUAD $0x040e3c203a0f4666 // pinsrb xmm15, byte [rsi + r9], 4 + QUAD $0x05263c203a0f4666 // pinsrb xmm15, byte [rsi + r12], 5 + LONG $0x244c8b4c; BYTE $0x40 // mov r9, qword [rsp + 64] + QUAD $0x060e3c203a0f4666 // pinsrb xmm15, byte [rsi + r9], 6 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x072e3c203a0f4666 // pinsrb xmm15, byte [rsi + r13], 7 + LONG $0x245c894c; BYTE $0x20 // mov qword [rsp + 32], r11 + QUAD $0x081e3c203a0f4666 // pinsrb xmm15, byte [rsi + r11], 8 + QUAD $0x09363c203a0f4666 // pinsrb xmm15, byte [rsi + r14], 9 + QUAD $0x0a163c203a0f4666 // pinsrb xmm15, byte [rsi + r10], 10 + QUAD $0x0b3e3c203a0f4666 // pinsrb xmm15, byte [rsi + r15], 11 + QUAD $0x0c1e3c203a0f4466 // pinsrb xmm15, byte [rsi + rbx], 12 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0d163c203a0f4466 // pinsrb xmm15, byte [rsi + rdx], 13 + QUAD $0x0e063c203a0f4466 // pinsrb xmm15, byte [rsi + rax], 14 + QUAD $0x0f0e3c203a0f4466 // pinsrb xmm15, byte [rsi + rcx], 15 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x011e6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r11 + 1], 1 + QUAD $0x01066c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rsi + r8 + 1], 2 + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x01066c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r8 + 1], 3 + QUAD $0x04013e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 1], 4 + QUAD $0x01266c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r12 + 1], 5 + WORD $0x894c; BYTE $0xe7 // mov rdi, r12 + QUAD $0x010e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r9 + 1], 6 + QUAD $0x012e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r13 + 1], 7 + WORD $0x894d; BYTE $0xec // mov r12, r13 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0801166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 1], 8 + QUAD $0x01366c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r14 + 1], 9 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x01166c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r10 + 1], 10 + QUAD $0x013e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r15 + 1], 11 + QUAD $0x0c011e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 1], 12 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000c0249c8948 // mov qword [rsp + 192], rbx + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + QUAD $0x013e6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r15 + 1], 13 + QUAD $0x0e01066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 1], 14 + QUAD $0x0f010e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 1], 15 + QUAD $0x00a0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 160] + LONG $0x640f4166; BYTE $0xe9 // pcmpgtb xmm5, xmm9 + LONG $0xfd6f0f66 // movdqa xmm7, xmm5 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xfcdb0f66 // pand xmm7, xmm4 + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x065cb60f; BYTE $0x0f // movzx ebx, byte [rsi + rax + 15] + LONG $0x6e0f4466; BYTE $0xf3 // movd xmm14, ebx + LONG $0x640f4566; BYTE $0xf9 // pcmpgtb xmm15, xmm9 + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x01021674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 2], 1 + QUAD $0x021e74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r11 + 2], 2 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x020674203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r8 + 2], 3 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x023674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 2], 4 + QUAD $0x05023e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 2], 5 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x020674203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r8 + 2], 6 + QUAD $0x022674203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r12 + 2], 7 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x08021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 8 + QUAD $0x000000b0248c894c // mov qword [rsp + 176], r9 + QUAD $0x020e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 2], 9 + QUAD $0x021674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r10 + 2], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x022674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r12 + 2], 11 + QUAD $0x022e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r13 + 2], 12 + QUAD $0x023e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r15 + 2], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0e021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 15 + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0x640f4166; BYTE $0xf1 // pcmpgtb xmm6, xmm9 + QUAD $0x000000b0856f0f66 // movdqa xmm0, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x065cb60f; BYTE $0x10 // movzx ebx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xfb // movd xmm15, ebx + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x01031654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 3], 1 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x031e54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r11 + 3], 2 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + QUAD $0x03030e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 3], 3 + QUAD $0x033654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r14 + 3], 4 + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x247c8948; BYTE $0x68 // mov qword [rsp + 104], rdi + QUAD $0x05033e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 3], 5 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x030654203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r8 + 3], 6 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x07033e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 3], 7 + LONG $0x24448b4c; BYTE $0x20 // mov r8, qword [rsp + 32] + QUAD $0x030654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r8 + 3], 8 + QUAD $0x030e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 3], 9 + QUAD $0x031654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r10 + 3], 10 + QUAD $0x032654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r12 + 3], 11 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x032654203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r12 + 3], 12 + QUAD $0x033e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r15 + 3], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0e031e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 3], 14 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f031e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 3], 15 + QUAD $0x0104064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 4], 1 + QUAD $0x042e4c203a0f4266; BYTE $0x02 // pinsrb xmm1, byte [rsi + r13 + 4], 2 + LONG $0x246c894c; BYTE $0x60 // mov qword [rsp + 96], r13 + QUAD $0x041e4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r11 + 4], 3 + QUAD $0x04364c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r14 + 4], 4 + QUAD $0x0504164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 5 + QUAD $0x06040e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 4], 6 + QUAD $0x07043e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 4], 7 + QUAD $0x04064c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r8 + 4], 8 + QUAD $0x040e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r9 + 4], 9 + QUAD $0x04164c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r10 + 4], 10 + LONG $0x2454894c; BYTE $0x70 // mov qword [rsp + 112], r10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b04064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 4], 11 + QUAD $0x04264c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r12 + 4], 12 + QUAD $0x043e4c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r15 + 4], 13 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0e04164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 4], 14 + QUAD $0x0f041e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 4], 15 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x065cb60f; BYTE $0x11 // movzx ebx, byte [rsi + rax + 17] + LONG $0xc36e0f66 // movd xmm0, ebx + LONG $0x640f4166; BYTE $0xd1 // pcmpgtb xmm2, xmm9 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0x640f4166; BYTE $0xc9 // pcmpgtb xmm1, xmm9 + QUAD $0x000000d0ad6f0f66 // movdqa xmm5, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xcddb0f66 // pand xmm1, xmm5 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x065cb60f; BYTE $0x12 // movzx ebx, byte [rsi + rax + 18] + LONG $0xeb6e0f66 // movd xmm5, ebx + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x050e44203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rcx + 5], 1 + QUAD $0x052e44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r13 + 5], 2 + QUAD $0x051e44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r11 + 5], 3 + QUAD $0x053644203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r14 + 5], 4 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x053e44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rdi + 5], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x051e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rbx + 5], 6 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x050e44203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r9 + 5], 7 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x052644203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r12 + 5], 8 + QUAD $0x000000b024ac8b4c // mov r13, qword [rsp + 176] + QUAD $0x052e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r13 + 5], 9 + QUAD $0x051644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r10 + 5], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x053e44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r15 + 5], 11 + QUAD $0x000000c0249c8b48 // mov rbx, qword [rsp + 192] + QUAD $0x051e44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rbx + 5], 12 + QUAD $0x050644203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r8 + 5], 13 + QUAD $0x051644203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rdx + 5], 14 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x053644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r14 + 5], 15 + LONG $0x640f4566; BYTE $0xc1 // pcmpgtb xmm8, xmm9 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xdb0f4466; BYTE $0xc2 // pand xmm8, xmm2 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x065cb60f; BYTE $0x13 // movzx ebx, byte [rsi + rax + 19] + LONG $0xfb6e0f66 // movd xmm7, ebx + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + LONG $0x065cb60f; BYTE $0x14 // movzx ebx, byte [rsi + rax + 20] + LONG $0xf36e0f66 // movd xmm6, ebx + QUAD $0x01060e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 6], 1 + WORD $0x8949; BYTE $0xca // mov r10, rcx + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0206065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 2 + QUAD $0x061e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r11 + 6], 3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0406065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 6], 4 + WORD $0x8949; BYTE $0xf8 // mov r8, rdi + QUAD $0x05063e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 6], 5 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x06060e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 6], 6 + QUAD $0x060e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r9 + 6], 7 + QUAD $0x06265c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r12 + 6], 8 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x062e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r13 + 6], 9 + LONG $0x247c8b48; BYTE $0x70 // mov rdi, qword [rsp + 112] + QUAD $0x0a063e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 6], 10 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x063e5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r15 + 6], 11 + QUAD $0x000000c024a48b4c // mov r12, qword [rsp + 192] + QUAD $0x06265c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r12 + 6], 12 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0d06165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 6], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x063e5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r15 + 6], 14 + QUAD $0x06365c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r14 + 6], 15 + QUAD $0x0000d024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 208] + QUAD $0x071654203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r10 + 7], 1 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x072e54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r13 + 7], 2 + QUAD $0x071e54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r11 + 7], 3 + LONG $0x24548b4c; BYTE $0x38 // mov r10, qword [rsp + 56] + QUAD $0x071654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r10 + 7], 4 + QUAD $0x070654203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r8 + 7], 5 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + QUAD $0x06070e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 7], 6 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x07070e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 7], 7 + QUAD $0x070e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r9 + 7], 8 + QUAD $0x09070654203a0f66 // pinsrb xmm2, byte [rsi + rax + 7], 9 + QUAD $0x0a073e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 7], 10 + QUAD $0x0b071e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 7], 11 + QUAD $0x072654203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r12 + 7], 12 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x071e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r11 + 7], 13 + QUAD $0x073e54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r15 + 7], 14 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x073654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r14 + 7], 15 + LONG $0x640f4166; BYTE $0xd9 // pcmpgtb xmm3, xmm9 + QUAD $0x000000f08d6f0f66 // movdqa xmm1, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0xd9db0f66 // pand xmm3, xmm1 + LONG $0x640f4166; BYTE $0xd1 // pcmpgtb xmm2, xmm9 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0x4d6f0f66; BYTE $0x60 // movdqa xmm1, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xd1db0f66 // pand xmm2, xmm1 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x065cb60f; BYTE $0x15 // movzx ebx, byte [rsi + rax + 21] + LONG $0xd36e0f66 // movd xmm2, ebx + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x090e54203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rcx + 9], 1 + QUAD $0x092e54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r13 + 9], 2 + LONG $0x24448b4c; BYTE $0x78 // mov r8, qword [rsp + 120] + QUAD $0x090654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r8 + 9], 3 + QUAD $0x091654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r10 + 9], 4 + QUAD $0x091654203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rdx + 9], 5 + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + LONG $0x24548b48; BYTE $0x40 // mov rdx, qword [rsp + 64] + QUAD $0x091654203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rdx + 9], 6 + LONG $0x244c8b4c; BYTE $0x48 // mov r9, qword [rsp + 72] + QUAD $0x090e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r9 + 9], 7 + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x091e54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rbx + 9], 8 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x091e54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rbx + 9], 9 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x093e54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r15 + 9], 10 + LONG $0x245c8b48; BYTE $0x50 // mov rbx, qword [rsp + 80] + QUAD $0x091e54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rbx + 9], 11 + QUAD $0x092654203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r12 + 9], 12 + QUAD $0x091e54203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r11 + 9], 13 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x091654203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r10 + 9], 14 + QUAD $0x093e54203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rdi + 9], 15 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + LONG $0x640f4566; BYTE $0xd1 // pcmpgtb xmm10, xmm9 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + LONG $0xccdb0f66 // pand xmm1, xmm4 + LONG $0xf80f4166; BYTE $0xca // psubb xmm1, xmm10 + LONG $0x065cb60f; BYTE $0x16 // movzx ebx, byte [rsi + rax + 22] + LONG $0xdb6e0f66 // movd xmm3, ebx + QUAD $0x00011024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 272] + QUAD $0x01080e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 8], 1 + WORD $0x8949; BYTE $0xcb // mov r11, rcx + QUAD $0x082e64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r13 + 8], 2 + QUAD $0x080664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r8 + 8], 3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x04083e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 8], 4 + QUAD $0x083664203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r14 + 8], 5 + QUAD $0x06081664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 8], 6 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + QUAD $0x080e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r9 + 8], 7 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x083664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r14 + 8], 8 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x09080664203a0f66 // pinsrb xmm4, byte [rsi + rax + 8], 9 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x083e64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r15 + 8], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x083e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r15 + 8], 11 + QUAD $0x082664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r12 + 8], 12 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0d080e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 8], 13 + QUAD $0x081664203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r10 + 8], 14 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x080e64203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r9 + 8], 15 + LONG $0x640f4166; BYTE $0xe1 // pcmpgtb xmm4, xmm9 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + QUAD $0x009024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 144] + QUAD $0x0a1e54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r11 + 10], 1 + QUAD $0x0a2e54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r13 + 10], 2 + QUAD $0x0a0654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r8 + 10], 3 + QUAD $0x0a3e54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rdi + 10], 4 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0a3e54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rdi + 10], 5 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x0a0654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r8 + 10], 6 + QUAD $0x0a1654203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rdx + 10], 7 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x0a3654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r14 + 10], 8 + QUAD $0x0a0654203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rax + 10], 9 + QUAD $0x0a1e54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rbx + 10], 10 + QUAD $0x0a3e54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r15 + 10], 11 + QUAD $0x0a2654203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r12 + 10], 12 + QUAD $0x0a0e54203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rcx + 10], 13 + QUAD $0x0a1654203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r10 + 10], 14 + QUAD $0x0a0e54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r9 + 10], 15 + LONG $0x640f4566; BYTE $0xd1 // pcmpgtb xmm10, xmm9 + QUAD $0x0000b095db0f4466; BYTE $0x00 // pand xmm10, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xeb0f4466; BYTE $0xd4 // por xmm10, xmm4 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + LONG $0x0e5cb60f; BYTE $0x17 // movzx ebx, byte [rsi + rcx + 23] + LONG $0x6e0f4466; BYTE $0xc3 // movd xmm8, ebx + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x009024947f0f4466; WORD $0x0000 // movdqa oword [rsp + 144], xmm10 + LONG $0x0e5cb60f; BYTE $0x18 // movzx ebx, byte [rsi + rcx + 24] + LONG $0x6e0f4466; BYTE $0xd3 // movd xmm10, ebx + LONG $0x24548b48; BYTE $0x28 // mov rdx, qword [rsp + 40] + QUAD $0x0b165c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rdx + 11], 1 + QUAD $0x0b2e5c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rsi + r13 + 11], 2 + WORD $0x894d; BYTE $0xee // mov r14, r13 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + QUAD $0x0b0e5c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rcx + 11], 3 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x0b0e5c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rsi + rcx + 11], 4 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x0b3e5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rsi + rdi + 11], 5 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x0b065c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rsi + r8 + 11], 6 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0b3e5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rdi + 11], 7 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x0b1e5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r11 + 11], 8 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x0b065c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rsi + rax + 11], 9 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x0b165c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r10 + 11], 10 + QUAD $0x0b3e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r15 + 11], 11 + QUAD $0x0b265c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r12 + 11], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0b065c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rax + 11], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0b1e5c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rbx + 11], 14 + LONG $0x245c8b4c; BYTE $0x30 // mov r11, qword [rsp + 48] + QUAD $0x0b1e5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r11 + 11], 15 + QUAD $0x0c166c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rdx + 12], 1 + QUAD $0x0c366c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rsi + r14 + 12], 2 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x0c366c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r14 + 12], 3 + QUAD $0x0c2e6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r13 + 12], 4 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0c2e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r13 + 12], 5 + QUAD $0x0c0e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 12], 6 + QUAD $0x0c3e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdi + 12], 7 + QUAD $0x0c066c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r8 + 12], 8 + QUAD $0x0c0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 12], 9 + QUAD $0x0c166c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r10 + 12], 10 + QUAD $0x0c3e6c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r15 + 12], 11 + QUAD $0x0c266c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r12 + 12], 12 + QUAD $0x0c066c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rax + 12], 13 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x0c1e6c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rbx + 12], 14 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x0c1e6c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r11 + 12], 15 + QUAD $0x0d1664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rdx + 13], 1 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x0d1e64203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rsi + r11 + 13], 2 + QUAD $0x0d3664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r14 + 13], 3 + LONG $0x24548b48; BYTE $0x38 // mov rdx, qword [rsp + 56] + QUAD $0x0d1664203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rdx + 13], 4 + LONG $0x24548b48; BYTE $0x68 // mov rdx, qword [rsp + 104] + QUAD $0x0d1664203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rsi + rdx + 13], 5 + QUAD $0x0d0e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rcx + 13], 6 + QUAD $0x0d3e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdi + 13], 7 + QUAD $0x0d0664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r8 + 13], 8 + QUAD $0x0d0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 13], 9 + QUAD $0x0d1664203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r10 + 13], 10 + QUAD $0x0d3e64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r15 + 13], 11 + QUAD $0x0d2664203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r12 + 13], 12 + WORD $0x894c; BYTE $0xef // mov rdi, r13 + QUAD $0x0d2e64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r13 + 13], 13 + QUAD $0x0d1e64203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rbx + 13], 14 + QUAD $0x0d0664203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rax + 13], 15 + LONG $0x640f4566; BYTE $0xd9 // pcmpgtb xmm11, xmm9 + QUAD $0x0000c09ddb0f4466; BYTE $0x00 // pand xmm11, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0x640f4566; BYTE $0xe9 // pcmpgtb xmm13, xmm9 + QUAD $0x0000d0addb0f4466; BYTE $0x00 // pand xmm13, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x065cb60f; BYTE $0x19 // movzx ebx, byte [rsi + rax + 25] + LONG $0xcb6e0f66 // movd xmm1, ebx + LONG $0x640f4566; BYTE $0xe1 // pcmpgtb xmm12, xmm9 + QUAD $0x0000e0a5db0f4466; BYTE $0x00 // pand xmm12, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x065cb60f; BYTE $0x1a // movzx ebx, byte [rsi + rax + 26] + LONG $0x6e0f4466; BYTE $0xdb // movd xmm11, ebx + QUAD $0x00013024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 304] + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x010e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 14], 1 + WORD $0x894d; BYTE $0xdd // mov r13, r11 + QUAD $0x0e1e64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r11 + 14], 2 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x0e3664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r14 + 14], 3 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x0e3664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r14 + 14], 4 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x050e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 5 + QUAD $0x060e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 14], 6 + LONG $0x24548b48; BYTE $0x48 // mov rdx, qword [rsp + 72] + QUAD $0x070e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 7 + QUAD $0x0e0664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r8 + 14], 8 + QUAD $0x0e0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 14], 9 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0e1664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r10 + 14], 10 + QUAD $0x0e3e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r15 + 14], 11 + QUAD $0x0e2664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r12 + 14], 12 + QUAD $0x0d0e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 14 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x0e1664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r10 + 14], 15 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0f3e74203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rdi + 15], 1 + QUAD $0x0f2e74203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r13 + 15], 2 + QUAD $0x0f1e74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r11 + 15], 3 + QUAD $0x0f3674203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r14 + 15], 4 + QUAD $0x0f0674203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rax + 15], 5 + QUAD $0x0f0e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rcx + 15], 6 + QUAD $0x0f1674203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rdx + 15], 7 + QUAD $0x0f0674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r8 + 15], 8 + QUAD $0x0f0e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r9 + 15], 9 + QUAD $0x0f1e74203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rsi + rbx + 15], 10 + QUAD $0x0f3e74203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r15 + 15], 11 + QUAD $0x0f2674203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r12 + 15], 12 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0f3e74203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rdi + 15], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f3e74203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rsi + rdi + 15], 14 + QUAD $0x0f1674203a0f4666; BYTE $0x0f // pinsrb xmm14, byte [rsi + r10 + 15], 15 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x103e7c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rdi + 16], 1 + QUAD $0x102e7c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r13 + 16], 2 + QUAD $0x101e7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r11 + 16], 3 + QUAD $0x10367c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r14 + 16], 4 + QUAD $0x10067c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rax + 16], 5 + QUAD $0x100e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rcx + 16], 6 + QUAD $0x10167c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rdx + 16], 7 + QUAD $0x10067c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r8 + 16], 8 + QUAD $0x100e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r9 + 16], 9 + QUAD $0x101e7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rsi + rbx + 16], 10 + QUAD $0x103e7c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r15 + 16], 11 + QUAD $0x10267c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r12 + 16], 12 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x103e7c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rdi + 16], 13 + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x10167c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r10 + 16], 14 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x01113e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 17], 1 + QUAD $0x112e44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r13 + 17], 2 + QUAD $0x111e44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r11 + 17], 3 + QUAD $0x113644203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r14 + 17], 4 + QUAD $0x05110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 5 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + QUAD $0x06110e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 17], 6 + QUAD $0x07111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 7 + QUAD $0x110644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r8 + 17], 8 + QUAD $0x110e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 17], 9 + QUAD $0x0a111e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 17], 10 + QUAD $0x113e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r15 + 17], 11 + QUAD $0x112644203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r12 + 17], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e113e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 17], 14 + QUAD $0x009024a4eb0f4466; WORD $0x0000 // por xmm12, oword [rsp + 144] + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + LONG $0x065cb60f; BYTE $0x1b // movzx ebx, byte [rsi + rax + 27] + LONG $0x6e0f4466; BYTE $0xcb // movd xmm9, ebx + QUAD $0x00a024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 160] + LONG $0x640f4166; BYTE $0xe5 // pcmpgtb xmm4, xmm13 + QUAD $0x000000f0a5db0f66 // pand xmm4, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0x640f4566; BYTE $0xf5 // pcmpgtb xmm14, xmm13 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x065cb60f; BYTE $0x1c // movzx ebx, byte [rsi + rax + 28] + LONG $0xe36e0f66 // movd xmm4, ebx + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x111644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r10 + 17], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0x640f4166; BYTE $0xc5 // pcmpgtb xmm0, xmm13 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xdb0f4566; BYTE $0xec // pand xmm13, xmm12 + LONG $0xf80f4466; BYTE $0xe8 // psubb xmm13, xmm0 + QUAD $0x009024ac7f0f4466; WORD $0x0000 // movdqa oword [rsp + 144], xmm13 + LONG $0x065cb60f; BYTE $0x1d // movzx ebx, byte [rsi + rax + 29] + LONG $0x6e0f4466; BYTE $0xeb // movd xmm13, ebx + QUAD $0x10167c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r10 + 16], 15 + QUAD $0x0000a024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 160] + LONG $0x640f4466; BYTE $0xf8 // pcmpgtb xmm15, xmm0 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x01121e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 18], 1 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x02121e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 18], 2 + QUAD $0x121e6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r11 + 18], 3 + QUAD $0x12366c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r14 + 18], 4 + QUAD $0x122e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r13 + 18], 5 + QUAD $0x06120e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 18], 6 + QUAD $0x0712166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 18], 7 + QUAD $0x12066c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r8 + 18], 8 + QUAD $0x120e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r9 + 18], 9 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a12066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 18], 10 + QUAD $0x123e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r15 + 18], 11 + QUAD $0x12266c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r12 + 18], 12 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0d121e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 18], 13 + QUAD $0x0e123e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 18], 14 + LONG $0xdb0f4566; BYTE $0xfc // pand xmm15, xmm12 + QUAD $0x12166c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r10 + 18], 15 + LONG $0xe8640f66 // pcmpgtb xmm5, xmm0 + QUAD $0x000000b0addb0f66 // pand xmm5, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xeb0f4166; BYTE $0xef // por xmm5, xmm15 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + LONG $0x3e5cb60f; BYTE $0x1e // movzx ebx, byte [rsi + rdi + 30] + LONG $0x6e0f4466; BYTE $0xe3 // movd xmm12, ebx + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x01131e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 19], 1 + QUAD $0x01141e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 20], 1 + QUAD $0x01151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 1 + QUAD $0x01161e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 22], 1 + QUAD $0x171e44203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rbx + 23], 1 + QUAD $0x181e54203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rbx + 24], 1 + QUAD $0x01191e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 25], 1 + QUAD $0x1a1e5c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rbx + 26], 1 + QUAD $0x1b1e4c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rbx + 27], 1 + QUAD $0x011c1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 28], 1 + QUAD $0x1d1e6c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rbx + 29], 1 + QUAD $0x1e1e64203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rbx + 30], 1 + LONG $0x3e7cb60f; BYTE $0x1f // movzx edi, byte [rsi + rdi + 31] + LONG $0xc76e0f66 // movd xmm0, edi + QUAD $0x011f1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 31], 1 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x02133e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 19], 2 + QUAD $0x02143e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 20], 2 + QUAD $0x02153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 2 + QUAD $0x02163e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 22], 2 + QUAD $0x173e44203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rdi + 23], 2 + QUAD $0x183e54203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdi + 24], 2 + QUAD $0x02193e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 25], 2 + QUAD $0x1a3e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rdi + 26], 2 + QUAD $0x1b3e4c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rdi + 27], 2 + QUAD $0x021c3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 28], 2 + QUAD $0x1d3e6c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdi + 29], 2 + QUAD $0x1e3e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdi + 30], 2 + QUAD $0x021f3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 31], 2 + QUAD $0x131e7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r11 + 19], 3 + QUAD $0x13367c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r14 + 19], 4 + QUAD $0x132e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r13 + 19], 5 + QUAD $0x06130e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 19], 6 + QUAD $0x0713167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 19], 7 + QUAD $0x13067c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r8 + 19], 8 + QUAD $0x130e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r9 + 19], 9 + QUAD $0x0a13067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 19], 10 + QUAD $0x133e7c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r15 + 19], 11 + QUAD $0x13267c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r12 + 19], 12 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0d133e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 19], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0e131e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 19], 14 + QUAD $0x13167c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r10 + 19], 15 + QUAD $0x141e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r11 + 20], 3 + QUAD $0x143674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 20], 4 + QUAD $0x142e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r13 + 20], 5 + QUAD $0x06140e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 20], 6 + QUAD $0x07141674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 20], 7 + QUAD $0x140674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r8 + 20], 8 + QUAD $0x140e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 20], 9 + QUAD $0x0a140674203a0f66 // pinsrb xmm6, byte [rsi + rax + 20], 10 + QUAD $0x143e74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r15 + 20], 11 + QUAD $0x142674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r12 + 20], 12 + QUAD $0x0d143e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 20], 13 + QUAD $0x0e141e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 20], 14 + QUAD $0x00009024aceb0f66; BYTE $0x00 // por xmm5, oword [rsp + 144] + QUAD $0x141674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r10 + 20], 15 + QUAD $0x00a024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 160] + LONG $0x640f4166; BYTE $0xff // pcmpgtb xmm7, xmm15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0x640f4166; BYTE $0xf7 // pcmpgtb xmm6, xmm15 + QUAD $0x000000d0b5db0f66 // pand xmm6, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0x151e54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r11 + 21], 3 + QUAD $0x153654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r14 + 21], 4 + QUAD $0x152e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r13 + 21], 5 + QUAD $0x06150e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 21], 6 + QUAD $0x07151654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 21], 7 + QUAD $0x150654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r8 + 21], 8 + QUAD $0x150e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r9 + 21], 9 + QUAD $0x0a150654203a0f66 // pinsrb xmm2, byte [rsi + rax + 21], 10 + QUAD $0x153e54203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r15 + 21], 11 + QUAD $0x152654203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r12 + 21], 12 + QUAD $0x0d153e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 21], 13 + QUAD $0x0e151e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 21], 14 + QUAD $0x151654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r10 + 21], 15 + LONG $0x640f4166; BYTE $0xd7 // pcmpgtb xmm2, xmm15 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xd7db0f66 // pand xmm2, xmm7 + LONG $0xd6eb0f66 // por xmm2, xmm6 + LONG $0xd5eb0f66 // por xmm2, xmm5 + QUAD $0x161e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r11 + 22], 3 + QUAD $0x16365c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r14 + 22], 4 + QUAD $0x162e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r13 + 22], 5 + QUAD $0x06160e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 22], 6 + QUAD $0x0716165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 22], 7 + QUAD $0x16065c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r8 + 22], 8 + QUAD $0x160e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r9 + 22], 9 + QUAD $0x0a16065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 22], 10 + QUAD $0x163e5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r15 + 22], 11 + QUAD $0x16265c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r12 + 22], 12 + QUAD $0x0d163e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 22], 13 + QUAD $0x0e161e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 22], 14 + QUAD $0x16165c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r10 + 22], 15 + QUAD $0x171e44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r11 + 23], 3 + QUAD $0x173644203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rsi + r14 + 23], 4 + QUAD $0x172e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r13 + 23], 5 + QUAD $0x170e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rcx + 23], 6 + QUAD $0x171644203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rdx + 23], 7 + QUAD $0x170644203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r8 + 23], 8 + QUAD $0x170e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r9 + 23], 9 + QUAD $0x170644203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rax + 23], 10 + QUAD $0x173e44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r15 + 23], 11 + QUAD $0x172644203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r12 + 23], 12 + QUAD $0x173e44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rdi + 23], 13 + QUAD $0x171e44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rbx + 23], 14 + QUAD $0x171644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r10 + 23], 15 + LONG $0x640f4166; BYTE $0xdf // pcmpgtb xmm3, xmm15 + QUAD $0x000000f0ad6f0f66 // movdqa xmm5, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0xdddb0f66 // pand xmm3, xmm5 + LONG $0x640f4566; BYTE $0xc7 // pcmpgtb xmm8, xmm15 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + QUAD $0x191e4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r11 + 25], 3 + QUAD $0x19364c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r14 + 25], 4 + QUAD $0x192e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r13 + 25], 5 + QUAD $0x06190e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 25], 6 + QUAD $0x0719164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 25], 7 + QUAD $0x19064c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r8 + 25], 8 + QUAD $0x190e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r9 + 25], 9 + QUAD $0x0a19064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 25], 10 + QUAD $0x193e4c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r15 + 25], 11 + QUAD $0x19264c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r12 + 25], 12 + QUAD $0x0d193e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 25], 13 + QUAD $0x0e191e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 25], 14 + QUAD $0x19164c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r10 + 25], 15 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x640f4166; BYTE $0xcf // pcmpgtb xmm1, xmm15 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + QUAD $0x000000a09d6f0f66 // movdqa xmm3, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd1f80f66 // psubb xmm2, xmm1 + QUAD $0x181e54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r11 + 24], 3 + QUAD $0x183654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r14 + 24], 4 + QUAD $0x182e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r13 + 24], 5 + QUAD $0x180e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rcx + 24], 6 + QUAD $0x181654203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rdx + 24], 7 + QUAD $0x180654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r8 + 24], 8 + QUAD $0x180e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r9 + 24], 9 + QUAD $0x180654203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rsi + rax + 24], 10 + QUAD $0x183e54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r15 + 24], 11 + QUAD $0x182654203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r12 + 24], 12 + QUAD $0x183e54203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rdi + 24], 13 + QUAD $0x181e54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rbx + 24], 14 + QUAD $0x181654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r10 + 24], 15 + LONG $0x640f4566; BYTE $0xd7 // pcmpgtb xmm10, xmm15 + LONG $0xdb0f4466; BYTE $0xd3 // pand xmm10, xmm3 + QUAD $0x1a1e5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r11 + 26], 3 + QUAD $0x1a365c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r14 + 26], 4 + QUAD $0x1a2e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r13 + 26], 5 + QUAD $0x1a0e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rcx + 26], 6 + QUAD $0x1a165c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rdx + 26], 7 + QUAD $0x1a065c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r8 + 26], 8 + QUAD $0x1a0e5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r9 + 26], 9 + QUAD $0x1a065c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rsi + rax + 26], 10 + QUAD $0x1a3e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r15 + 26], 11 + QUAD $0x1a265c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r12 + 26], 12 + QUAD $0x1a3e5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rdi + 26], 13 + QUAD $0x1a1e5c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rbx + 26], 14 + QUAD $0x1a165c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r10 + 26], 15 + LONG $0x640f4566; BYTE $0xdf // pcmpgtb xmm11, xmm15 + QUAD $0x0000b09ddb0f4466; BYTE $0x00 // pand xmm11, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0xeb0f4466; BYTE $0xda // por xmm11, xmm2 + QUAD $0x1b1e4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r11 + 27], 3 + QUAD $0x1b364c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rsi + r14 + 27], 4 + QUAD $0x1b2e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r13 + 27], 5 + QUAD $0x1b0e4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rcx + 27], 6 + QUAD $0x1b164c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rdx + 27], 7 + QUAD $0x1b064c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r8 + 27], 8 + QUAD $0x1b0e4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r9 + 27], 9 + QUAD $0x1b064c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rsi + rax + 27], 10 + QUAD $0x1b3e4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r15 + 27], 11 + QUAD $0x1b264c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r12 + 27], 12 + QUAD $0x1b3e4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rdi + 27], 13 + QUAD $0x1b1e4c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rbx + 27], 14 + QUAD $0x1b164c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r10 + 27], 15 + QUAD $0x1c1e64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r11 + 28], 3 + QUAD $0x1c3664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r14 + 28], 4 + QUAD $0x1c2e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r13 + 28], 5 + QUAD $0x061c0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 28], 6 + QUAD $0x071c1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 28], 7 + QUAD $0x1c0664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r8 + 28], 8 + QUAD $0x1c0e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r9 + 28], 9 + QUAD $0x0a1c0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 28], 10 + QUAD $0x1c3e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r15 + 28], 11 + QUAD $0x1c2664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r12 + 28], 12 + QUAD $0x0d1c3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 28], 13 + QUAD $0x0e1c1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 28], 14 + QUAD $0x1c1664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r10 + 28], 15 + QUAD $0x1d1e6c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r11 + 29], 3 + QUAD $0x1d366c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r14 + 29], 4 + QUAD $0x1d2e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r13 + 29], 5 + QUAD $0x1d0e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 29], 6 + QUAD $0x1d166c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rdx + 29], 7 + QUAD $0x1d066c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r8 + 29], 8 + QUAD $0x1d0e6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r9 + 29], 9 + QUAD $0x1d066c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rax + 29], 10 + QUAD $0x1d3e6c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r15 + 29], 11 + QUAD $0x1d266c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r12 + 29], 12 + QUAD $0x1d3e6c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rdi + 29], 13 + QUAD $0x1d1e6c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rbx + 29], 14 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0x640f4566; BYTE $0xcf // pcmpgtb xmm9, xmm15 + QUAD $0x0000c08ddb0f4466; BYTE $0x00 // pand xmm9, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0x640f4166; BYTE $0xe7 // pcmpgtb xmm4, xmm15 + QUAD $0x000000d0a5db0f66 // pand xmm4, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + QUAD $0x1d166c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r10 + 29], 15 + LONG $0x640f4566; BYTE $0xef // pcmpgtb xmm13, xmm15 + LONG $0xdb0f4466; BYTE $0xef // pand xmm13, xmm7 + LONG $0xeb0f4466; BYTE $0xec // por xmm13, xmm4 + QUAD $0x1e1e64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r11 + 30], 3 + QUAD $0x1f1e44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r11 + 31], 3 + QUAD $0x1e3664203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r14 + 30], 4 + QUAD $0x1f3644203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r14 + 31], 4 + QUAD $0x1e2e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r13 + 30], 5 + QUAD $0x1f2e44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r13 + 31], 5 + QUAD $0x1e0e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rcx + 30], 6 + QUAD $0x061f0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 31], 6 + QUAD $0x1e1664203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rdx + 30], 7 + QUAD $0x071f1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 31], 7 + QUAD $0x1e0664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r8 + 30], 8 + QUAD $0x1f0644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r8 + 31], 8 + QUAD $0x1e0e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r9 + 30], 9 + QUAD $0x1f0e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 31], 9 + QUAD $0x1e0664203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rsi + rax + 30], 10 + QUAD $0x0a1f0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 31], 10 + QUAD $0x1e3e64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r15 + 30], 11 + QUAD $0x1f3e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r15 + 31], 11 + QUAD $0x1e2664203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r12 + 30], 12 + QUAD $0x1f2644203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r12 + 31], 12 + QUAD $0x1e3e64203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rdi + 30], 13 + QUAD $0x0d1f3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 31], 13 + QUAD $0x1e1e64203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rbx + 30], 14 + QUAD $0x0e1f1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 31], 14 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x1e1664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r10 + 30], 15 + QUAD $0x1f1644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r10 + 31], 15 + LONG $0xeb0f4566; BYTE $0xeb // por xmm13, xmm11 + LONG $0x640f4566; BYTE $0xe7 // pcmpgtb xmm12, xmm15 + LONG $0xdb0f4466; BYTE $0xe5 // pand xmm12, xmm5 + LONG $0x640f4166; BYTE $0xc7 // pcmpgtb xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xc6db0f66 // pand xmm0, xmm6 + LONG $0xeb0f4166; BYTE $0xc4 // por xmm0, xmm12 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000d024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 208] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd9610f66 // punpcklwd xmm3, xmm1 + LONG $0xd1690f66 // punpckhwd xmm2, xmm1 + LONG $0x680f4466; BYTE $0xc0 // punpckhbw xmm8, xmm0 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x647f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm4 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x547f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm2 + LONG $0x1c7f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB7_85 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x000000e824943b4c // cmp r10, qword [rsp + 232] + LONG $0x24348a44 // mov r14b, byte [rsp] + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + JNE LBB7_87 + JMP LBB7_90 + +LBB7_66: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000014024848948 // mov qword [rsp + 320], rax + QUAD $0x000000e82494894c // mov qword [rsp + 232], r10 + LONG $0x94048d4b // lea rax, [r12 + 4*r10] + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000120248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + +LBB7_67: + QUAD $0x0000009024848948 // mov qword [rsp + 144], rax + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + LONG $0x05e0c148 // shl rax, 5 + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8949; BYTE $0xc6 // mov r14, rax + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x24448948; BYTE $0x68 // mov qword [rsp + 104], rax + LONG $0x060cb60f // movzx ecx, byte [rsi + rax] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x064cb60f; BYTE $0x01 // movzx ecx, byte [rsi + rax + 1] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x064cb60f; BYTE $0x02 // movzx ecx, byte [rsi + rax + 2] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x064cb60f; BYTE $0x03 // movzx ecx, byte [rsi + rax + 3] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x064cb60f; BYTE $0x04 // movzx ecx, byte [rsi + rax + 4] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x064cb60f; BYTE $0x05 // movzx ecx, byte [rsi + rax + 5] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x064cb60f; BYTE $0x06 // movzx ecx, byte [rsi + rax + 6] + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0x064cb60f; BYTE $0x07 // movzx ecx, byte [rsi + rax + 7] + LONG $0xc96e0f66 // movd xmm1, ecx + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + LONG $0x064cb60f; BYTE $0x08 // movzx ecx, byte [rsi + rax + 8] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x064cb60f; BYTE $0x09 // movzx ecx, byte [rsi + rax + 9] + LONG $0xc96e0f66 // movd xmm1, ecx + QUAD $0x0000c0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm1 + LONG $0x064cb60f; BYTE $0x0a // movzx ecx, byte [rsi + rax + 10] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x064cb60f; BYTE $0x0b // movzx ecx, byte [rsi + rax + 11] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x064cb60f; BYTE $0x0c // movzx ecx, byte [rsi + rax + 12] + LONG $0xc96e0f66 // movd xmm1, ecx + QUAD $0x000130248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm1 + LONG $0x064cb60f; BYTE $0x10 // movzx ecx, byte [rsi + rax + 16] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x24448948; BYTE $0x60 // mov qword [rsp + 96], rax + LONG $0x064cb60f; BYTE $0x18 // movzx ecx, byte [rsi + rax + 24] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + WORD $0x8949; BYTE $0xc5 // mov r13, rax + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x38 // mov qword [rsp + 56], r13 + LONG $0x40ca8348 // or rdx, 64 + LONG $0x24548948; BYTE $0x58 // mov qword [rsp + 88], rdx + LONG $0x60cc8349 // or r12, 96 + LONG $0x2464894c; BYTE $0x10 // mov qword [rsp + 16], r12 + LONG $0x80cb8149; WORD $0x0000; BYTE $0x00 // or r11, 128 + LONG $0xa0cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 160 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + LONG $0xc0c98148; WORD $0x0000; BYTE $0x00 // or rcx, 192 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + LONG $0xe0c98149; WORD $0x0000; BYTE $0x00 // or r9, 224 + LONG $0x00cf8149; WORD $0x0001; BYTE $0x00 // or r15, 256 + LONG $0x247c894c; BYTE $0x70 // mov qword [rsp + 112], r15 + LONG $0x20ca8149; WORD $0x0001; BYTE $0x00 // or r10, 288 + LONG $0x2454894c; BYTE $0x78 // mov qword [rsp + 120], r10 + LONG $0x40ce8149; WORD $0x0001; BYTE $0x00 // or r14, 320 + LONG $0x60c88149; WORD $0x0001; BYTE $0x00 // or r8, 352 + QUAD $0x000000d02484894c // mov qword [rsp + 208], r8 + LONG $0x24448b4c; BYTE $0x68 // mov r8, qword [rsp + 104] + LONG $0x80c88149; WORD $0x0001; BYTE $0x00 // or r8, 384 + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0xa0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 416 + LONG $0x241c8948 // mov qword [rsp], rbx + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0x245c8948; BYTE $0x18 // mov qword [rsp + 24], rbx + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0xe0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 480 + LONG $0x245c8948; BYTE $0x20 // mov qword [rsp + 32], rbx + QUAD $0x012e14203a0f4666 // pinsrb xmm10, byte [rsi + r13], 1 + QUAD $0x021614203a0f4466 // pinsrb xmm10, byte [rsi + rdx], 2 + QUAD $0x032614203a0f4666 // pinsrb xmm10, byte [rsi + r12], 3 + WORD $0x894d; BYTE $0xdc // mov r12, r11 + LONG $0x245c894c; BYTE $0x30 // mov qword [rsp + 48], r11 + QUAD $0x041e14203a0f4666 // pinsrb xmm10, byte [rsi + r11], 4 + QUAD $0x053e14203a0f4466 // pinsrb xmm10, byte [rsi + rdi], 5 + LONG $0x247c8948; BYTE $0x40 // mov qword [rsp + 64], rdi + QUAD $0x060e14203a0f4466 // pinsrb xmm10, byte [rsi + rcx], 6 + QUAD $0x070e14203a0f4666 // pinsrb xmm10, byte [rsi + r9], 7 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x083e14203a0f4666 // pinsrb xmm10, byte [rsi + r15], 8 + QUAD $0x091614203a0f4666 // pinsrb xmm10, byte [rsi + r10], 9 + QUAD $0x0a3614203a0f4666 // pinsrb xmm10, byte [rsi + r14], 10 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x0b2e14203a0f4666 // pinsrb xmm10, byte [rsi + r13], 11 + QUAD $0x0c0614203a0f4666 // pinsrb xmm10, byte [rsi + r8], 12 + LONG $0x24048b48 // mov rax, qword [rsp] + QUAD $0x0d0614203a0f4466 // pinsrb xmm10, byte [rsi + rax], 13 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e0614203a0f4466 // pinsrb xmm10, byte [rsi + rax], 14 + QUAD $0x0f1e14203a0f4466 // pinsrb xmm10, byte [rsi + rbx], 15 + LONG $0x6f0f4566; BYTE $0xc2 // movdqa xmm8, xmm10 + QUAD $0x012024a46f0f4466; WORD $0x0000 // movdqa xmm12, oword [rsp + 288] + LONG $0xda0f4566; BYTE $0xc4 // pminub xmm8, xmm12 + LONG $0x740f4566; BYTE $0xc2 // pcmpeqb xmm8, xmm10 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + QUAD $0x010e64203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r9 + 1], 1 + QUAD $0x02011664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 1], 2 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x03011e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 1], 3 + QUAD $0x012664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r12 + 1], 4 + QUAD $0x05013e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 1], 5 + QUAD $0x06010e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 1], 6 + QUAD $0x011e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 1], 7 + LONG $0x24548b4c; BYTE $0x70 // mov r10, qword [rsp + 112] + QUAD $0x011664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r10 + 1], 8 + LONG $0x245c8b48; BYTE $0x78 // mov rbx, qword [rsp + 120] + QUAD $0x09011e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 1], 9 + QUAD $0x013664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r14 + 1], 10 + QUAD $0x012e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r13 + 1], 11 + QUAD $0x010664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r8 + 1], 12 + QUAD $0x013e64203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r15 + 1], 13 + QUAD $0x0e010664203a0f66 // pinsrb xmm4, byte [rsi + rax + 1], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f010664203a0f66 // pinsrb xmm4, byte [rsi + rax + 1], 15 + QUAD $0x020e74203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r9 + 2], 1 + QUAD $0x02021674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 2], 2 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x023e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r15 + 2], 3 + QUAD $0x022674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r12 + 2], 4 + QUAD $0x05023e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 2], 5 + QUAD $0x06020e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 2], 6 + QUAD $0x021e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r11 + 2], 7 + QUAD $0x021674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r10 + 2], 8 + QUAD $0x09021e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 2], 9 + QUAD $0x023674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r14 + 2], 10 + QUAD $0x022e74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r13 + 2], 11 + QUAD $0x020674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r8 + 2], 12 + LONG $0x243c8b48 // mov rdi, qword [rsp] + QUAD $0x0d023e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 2], 13 + LONG $0x247c8b4c; BYTE $0x18 // mov r15, qword [rsp + 24] + QUAD $0x023e74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r15 + 2], 14 + QUAD $0x0f020674203a0f66 // pinsrb xmm6, byte [rsi + rax + 2], 15 + QUAD $0x080e74203a0f4666; BYTE $0x01 // pinsrb xmm14, byte [rsi + r9 + 8], 1 + QUAD $0x081674203a0f4466; BYTE $0x02 // pinsrb xmm14, byte [rsi + rdx + 8], 2 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x083e74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r15 + 8], 3 + QUAD $0x082674203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r12 + 8], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x083e74203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rdi + 8], 5 + QUAD $0x080e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rcx + 8], 6 + QUAD $0x081e74203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rsi + r11 + 8], 7 + QUAD $0x081674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r10 + 8], 8 + QUAD $0x081e74203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rsi + rbx + 8], 9 + QUAD $0x083674203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rsi + r14 + 8], 10 + QUAD $0x082e74203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r13 + 8], 11 + QUAD $0x080674203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r8 + 8], 12 + LONG $0x24048b48 // mov rax, qword [rsp] + QUAD $0x080674203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rax + 8], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x080674203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rsi + rax + 8], 14 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x081674203a0f4666; BYTE $0x0f // pinsrb xmm14, byte [rsi + r10 + 8], 15 + LONG $0x6f0f4566; BYTE $0xd6 // movdqa xmm10, xmm14 + LONG $0xda0f4566; BYTE $0xd4 // pminub xmm10, xmm12 + LONG $0x740f4566; BYTE $0xd6 // pcmpeqb xmm10, xmm14 + QUAD $0x100e6c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rsi + r9 + 16], 1 + QUAD $0x10166c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rdx + 16], 2 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + QUAD $0x103e6c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r15 + 16], 3 + QUAD $0x10266c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r12 + 16], 4 + QUAD $0x103e6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rsi + rdi + 16], 5 + QUAD $0x100e6c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rcx + 16], 6 + QUAD $0x101e6c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rsi + r11 + 16], 7 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x103e6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r15 + 16], 8 + QUAD $0x101e6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rsi + rbx + 16], 9 + QUAD $0x10366c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r14 + 16], 10 + QUAD $0x102e6c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rsi + r13 + 16], 11 + QUAD $0x10066c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r8 + 16], 12 + LONG $0x24248b4c // mov r12, qword [rsp] + QUAD $0x10266c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r12 + 16], 13 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x100e6c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rcx + 16], 14 + QUAD $0x10166c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r10 + 16], 15 + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0xda0f4166; BYTE $0xdc // pminub xmm3, xmm12 + LONG $0x740f4166; BYTE $0xdd // pcmpeqb xmm3, xmm13 + QUAD $0x000110249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x18067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 24], 1 + QUAD $0x18167c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rsi + rdx + 24], 2 + QUAD $0x180e7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r9 + 24], 3 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x180e7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rsi + r9 + 24], 4 + QUAD $0x183e7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rdi + 24], 5 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x18067c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rax + 24], 6 + QUAD $0x181e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r11 + 24], 7 + QUAD $0x183e7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r15 + 24], 8 + QUAD $0x181e7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rsi + rbx + 24], 9 + QUAD $0x18367c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r14 + 24], 10 + QUAD $0x182e7c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r13 + 24], 11 + QUAD $0x18067c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r8 + 24], 12 + QUAD $0x18267c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r12 + 24], 13 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + QUAD $0x180e7c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rsi + rcx + 24], 14 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x18167c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r10 + 24], 15 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xda0f4166; BYTE $0xdc // pminub xmm3, xmm12 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x0000f0249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 240], xmm3 + LONG $0x6f0f4466; BYTE $0xf4 // movdqa xmm14, xmm4 + LONG $0xda0f4566; BYTE $0xf4 // pminub xmm14, xmm12 + LONG $0x740f4466; BYTE $0xf4 // pcmpeqb xmm14, xmm4 + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + QUAD $0x000000a0a56f0f66 // movdqa xmm4, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xdf0f4466; BYTE $0xec // pandn xmm13, xmm4 + LONG $0xfc0f4566; BYTE $0xee // paddb xmm13, xmm14 + LONG $0x6f0f4466; BYTE $0xf6 // movdqa xmm14, xmm6 + LONG $0xda0f4566; BYTE $0xf4 // pminub xmm14, xmm12 + LONG $0x740f4466; BYTE $0xf6 // pcmpeqb xmm14, xmm6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + LONG $0x0e54b60f; BYTE $0x0d // movzx edx, byte [rsi + rcx + 13] + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + QUAD $0x03266c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rsi + r12 + 3], 1 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x02030e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 3], 2 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0303166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 3], 3 + QUAD $0x030e6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rsi + r9 + 3], 4 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x03166c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r10 + 3], 5 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0603166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 3], 6 + LONG $0x245c894c; BYTE $0x50 // mov qword [rsp + 80], r11 + QUAD $0x031e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r11 + 3], 7 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x030e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r9 + 3], 8 + QUAD $0x09031e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 3], 9 + QUAD $0x000000a024b4894c // mov qword [rsp + 160], r14 + QUAD $0x03366c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r14 + 3], 10 + QUAD $0x032e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r13 + 3], 11 + QUAD $0x03066c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r8 + 3], 12 + QUAD $0x033e6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r15 + 3], 13 + QUAD $0x0e03066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 3], 14 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x033e6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r15 + 3], 15 + QUAD $0x04264c203a0f4666; BYTE $0x01 // pinsrb xmm9, byte [rsi + r12 + 4], 1 + QUAD $0x040e4c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rcx + 4], 2 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x043e4c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rdi + 4], 3 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x043e4c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rdi + 4], 4 + QUAD $0x04164c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r10 + 4], 5 + QUAD $0x04164c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rdx + 4], 6 + QUAD $0x041e4c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r11 + 4], 7 + QUAD $0x040e4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r9 + 4], 8 + QUAD $0x041e4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rsi + rbx + 4], 9 + QUAD $0x04364c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r14 + 4], 10 + QUAD $0x042e4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r13 + 4], 11 + QUAD $0x04064c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r8 + 4], 12 + LONG $0x243c8b48 // mov rdi, qword [rsp] + QUAD $0x043e4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rdi + 4], 13 + QUAD $0x04064c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rsi + rax + 4], 14 + QUAD $0x043e4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r15 + 4], 15 + QUAD $0x05267c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rsi + r12 + 5], 1 + QUAD $0x02050e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 5], 2 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x03053e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 5], 3 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x04053e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 5], 4 + QUAD $0x05167c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r10 + 5], 5 + QUAD $0x0605167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 5], 6 + QUAD $0x051e7c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rsi + r11 + 5], 7 + QUAD $0x050e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r9 + 5], 8 + QUAD $0x09051e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 5], 9 + QUAD $0x05367c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r14 + 5], 10 + QUAD $0x052e7c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r13 + 5], 11 + QUAD $0x05067c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r8 + 5], 12 + LONG $0x243c8b48 // mov rdi, qword [rsp] + QUAD $0x0d053e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 5], 13 + QUAD $0x0e05067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 5], 14 + QUAD $0x053e7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r15 + 5], 15 + QUAD $0x062644203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rsi + r12 + 6], 1 + QUAD $0x02060e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 6], 2 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x062644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r12 + 6], 3 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x04060e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 6], 4 + QUAD $0x061644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r10 + 6], 5 + QUAD $0x06061644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 6], 6 + QUAD $0x061e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r11 + 6], 7 + QUAD $0x060e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r9 + 6], 8 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x09061e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 6], 9 + QUAD $0x063644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r14 + 6], 10 + QUAD $0x062e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r13 + 6], 11 + WORD $0x894d; BYTE $0xee // mov r14, r13 + QUAD $0x060644203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r8 + 6], 12 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + LONG $0x24048b4c // mov r8, qword [rsp] + QUAD $0x060644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r8 + 6], 13 + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + QUAD $0x0e060644203a0f66 // pinsrb xmm0, byte [rsi + rax + 6], 14 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xdf0f4466; BYTE $0xf4 // pandn xmm14, xmm4 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + LONG $0x6f0f4466; BYTE $0xfd // movdqa xmm15, xmm5 + LONG $0xda0f4566; BYTE $0xfc // pminub xmm15, xmm12 + LONG $0x740f4466; BYTE $0xfd // pcmpeqb xmm15, xmm5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + LONG $0x0654b60f; BYTE $0x0e // movzx edx, byte [rsi + rax + 14] + LONG $0xea6e0f66 // movd xmm5, edx + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0xdf0f4466; BYTE $0xfc // pandn xmm15, xmm4 + LONG $0xeb0f4566; BYTE $0xfe // por xmm15, xmm14 + LONG $0x0654b60f; BYTE $0x0f // movzx edx, byte [rsi + rax + 15] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xf80f4466; BYTE $0xeb // psubb xmm13, xmm3 + LONG $0x760f4566; BYTE $0xf6 // pcmpeqd xmm14, xmm14 + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x6f0f4166; BYTE $0xe1 // movdqa xmm4, xmm9 + LONG $0xda0f4166; BYTE $0xe4 // pminub xmm4, xmm12 + LONG $0x740f4166; BYTE $0xe1 // pcmpeqb xmm4, xmm9 + LONG $0x6f0f4466; BYTE $0xcf // movdqa xmm9, xmm7 + LONG $0xda0f4566; BYTE $0xcc // pminub xmm9, xmm12 + LONG $0x740f4466; BYTE $0xcf // pcmpeqb xmm9, xmm7 + LONG $0x0654b60f; BYTE $0x11 // movzx edx, byte [rsi + rax + 17] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0f063e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 6], 15 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xe1df0f66 // pandn xmm4, xmm1 + QUAD $0x000000e08d6f0f66 // movdqa xmm1, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xdf0f4466; BYTE $0xc9 // pandn xmm9, xmm1 + LONG $0xeb0f4466; BYTE $0xcc // por xmm9, xmm4 + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xda0f4166; BYTE $0xe4 // pminub xmm4, xmm12 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0x0654b60f; BYTE $0x12 // movzx edx, byte [rsi + rax + 18] + LONG $0xca6e0f66 // movd xmm1, edx + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x01070e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 7], 1 + QUAD $0x073e44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r15 + 7], 2 + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + QUAD $0x072644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r12 + 7], 3 + LONG $0x244c8b4c; BYTE $0x30 // mov r9, qword [rsp + 48] + QUAD $0x070e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r9 + 7], 4 + QUAD $0x071644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r10 + 7], 5 + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + QUAD $0x073e44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r15 + 7], 6 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x07071644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 7], 7 + QUAD $0x071e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r11 + 7], 8 + LONG $0x24648b4c; BYTE $0x78 // mov r12, qword [rsp + 120] + QUAD $0x072644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r12 + 7], 9 + QUAD $0x000000a0249c8b4c // mov r11, qword [rsp + 160] + QUAD $0x071e44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r11 + 7], 10 + QUAD $0x073644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 7], 11 + QUAD $0x072e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r13 + 7], 12 + QUAD $0x070644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r8 + 7], 13 + LONG $0x24548b48; BYTE $0x18 // mov rdx, qword [rsp + 24] + QUAD $0x0e071644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 7], 14 + QUAD $0x0f073e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 7], 15 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0xe3df0f66 // pandn xmm4, xmm3 + LONG $0xeb0f4166; BYTE $0xe1 // por xmm4, xmm9 + LONG $0x6f0f4466; BYTE $0xc8 // movdqa xmm9, xmm0 + LONG $0xda0f4566; BYTE $0xcc // pminub xmm9, xmm12 + LONG $0x740f4466; BYTE $0xc8 // pcmpeqb xmm9, xmm0 + LONG $0x0654b60f; BYTE $0x13 // movzx edx, byte [rsi + rax + 19] + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0xef0f4566; BYTE $0xce // pxor xmm9, xmm14 + LONG $0x710f4166; WORD $0x07f1 // psllw xmm9, 7 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb0f4466; BYTE $0xc8 // pand xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xcc // por xmm9, xmm4 + LONG $0x6f0f4166; BYTE $0xe1 // movdqa xmm4, xmm9 + LONG $0x0654b60f; BYTE $0x14 // movzx edx, byte [rsi + rax + 20] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + QUAD $0x0000c024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 192] + QUAD $0x01090e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 9], 1 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x02090e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 9], 2 + QUAD $0x03091e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 9], 3 + QUAD $0x090e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r9 + 9], 4 + QUAD $0x091644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r10 + 9], 5 + QUAD $0x093e44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r15 + 9], 6 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x07093e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 9], 7 + LONG $0x247c8b4c; BYTE $0x70 // mov r15, qword [rsp + 112] + QUAD $0x093e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r15 + 9], 8 + QUAD $0x092644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r12 + 9], 9 + WORD $0x894d; BYTE $0xe2 // mov r10, r12 + QUAD $0x091e44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r11 + 9], 10 + QUAD $0x093644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 9], 11 + QUAD $0x092e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r13 + 9], 12 + LONG $0x246c894c; BYTE $0x68 // mov qword [rsp + 104], r13 + LONG $0x24248b4c // mov r12, qword [rsp] + QUAD $0x092644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r12 + 9], 13 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x090e44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r9 + 9], 14 + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x0f091644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 9], 15 + QUAD $0x010a0654203a0f66 // pinsrb xmm2, byte [rsi + rax + 10], 1 + QUAD $0x020a0e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 10], 2 + QUAD $0x030a1e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 10], 3 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x040a1e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 10], 4 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x050a0654203a0f66 // pinsrb xmm2, byte [rsi + rax + 10], 5 + QUAD $0x0a0654203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r8 + 10], 6 + QUAD $0x070a3e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 10], 7 + QUAD $0x0a3e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r15 + 10], 8 + QUAD $0x0a1654203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r10 + 10], 9 + QUAD $0x0a1e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r11 + 10], 10 + QUAD $0x0a3654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 10], 11 + QUAD $0x0a2e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r13 + 10], 12 + QUAD $0x0a2654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r12 + 10], 13 + QUAD $0x0a0e54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r9 + 10], 14 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x0f0a1654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 10], 15 + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + LONG $0xeb0f4166; BYTE $0xe7 // por xmm4, xmm15 + QUAD $0x0000c024a47f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm4 + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xda0f4166; BYTE $0xe4 // pminub xmm4, xmm12 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + LONG $0x6f0f4466; BYTE $0xec // movdqa xmm13, xmm4 + QUAD $0x0000a0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xdf0f4566; BYTE $0xee // pandn xmm13, xmm14 + LONG $0xfc0f4466; BYTE $0xec // paddb xmm13, xmm4 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0xda0f4166; BYTE $0xc4 // pminub xmm0, xmm12 + LONG $0xc2740f66 // pcmpeqb xmm0, xmm2 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + LONG $0x0654b60f; BYTE $0x15 // movzx edx, byte [rsi + rax + 21] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0xdf0f4566; BYTE $0xd6 // pandn xmm10, xmm14 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x0b065c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rsi + r8 + 11], 1 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x0b0e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rcx + 11], 2 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0b0e5c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rcx + 11], 3 + QUAD $0x0b1e5c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rsi + rbx + 11], 4 + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x0b3e5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rsi + rdi + 11], 5 + LONG $0x24548b48; BYTE $0x08 // mov rdx, qword [rsp + 8] + QUAD $0x0b165c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rdx + 11], 6 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0b165c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rsi + rdx + 11], 7 + QUAD $0x0b3e5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r15 + 11], 8 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x0b165c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r10 + 11], 9 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0b165c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r10 + 11], 10 + QUAD $0x0b365c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r14 + 11], 11 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x0b365c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r14 + 11], 12 + LONG $0x241c8b48 // mov rbx, qword [rsp] + QUAD $0x0b1e5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rbx + 11], 13 + QUAD $0x0b1e5c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r11 + 11], 14 + QUAD $0x0b265c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r12 + 11], 15 + QUAD $0x000000b085df0f66 // pandn xmm0, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xeb0f4166; BYTE $0xc2 // por xmm0, xmm10 + LONG $0x6f0f4566; BYTE $0xd3 // movdqa xmm10, xmm11 + LONG $0xda0f4566; BYTE $0xd4 // pminub xmm10, xmm12 + LONG $0x740f4566; BYTE $0xd3 // pcmpeqb xmm10, xmm11 + LONG $0x0654b60f; BYTE $0x16 // movzx edx, byte [rsi + rax + 22] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + QUAD $0x0000c095df0f4466; BYTE $0x00 // pandn xmm10, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0xeb0f4466; BYTE $0xd0 // por xmm10, xmm0 + LONG $0x0654b60f; BYTE $0x17 // movzx edx, byte [rsi + rax + 23] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x00013024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 304] + QUAD $0x0c0644203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rsi + r8 + 12], 1 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x0c2e44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r13 + 12], 2 + WORD $0x8948; BYTE $0xca // mov rdx, rcx + QUAD $0x030c0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 12], 3 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0c3e44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rsi + r15 + 12], 4 + QUAD $0x050c3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 12], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x060c0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 12], 6 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x070c3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 12], 7 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x0c1e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r11 + 12], 8 + QUAD $0x0c0e44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r9 + 12], 9 + QUAD $0x0c1644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r10 + 12], 10 + QUAD $0x000000d024ac8b4c // mov r13, qword [rsp + 208] + QUAD $0x0c2e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r13 + 12], 11 + QUAD $0x0c3644203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r14 + 12], 12 + QUAD $0x0d0c1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 12], 13 + LONG $0x24548b4c; BYTE $0x18 // mov r10, qword [rsp + 24] + QUAD $0x0c1644203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r10 + 12], 14 + QUAD $0x0c2644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r12 + 12], 15 + QUAD $0x0d0674203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r8 + 13], 1 + QUAD $0x020d0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 13], 2 + QUAD $0x030d1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 13], 3 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + QUAD $0x0d3e74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r15 + 13], 4 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x0d3e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r15 + 13], 5 + QUAD $0x060d0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 13], 6 + QUAD $0x070d3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 13], 7 + QUAD $0x0d1e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r11 + 13], 8 + QUAD $0x0d0e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r9 + 13], 9 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x0a0d3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 13], 10 + QUAD $0x0d2e74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r13 + 13], 11 + QUAD $0x0d3674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r14 + 13], 12 + QUAD $0x0d0d1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 13], 13 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + QUAD $0x0d1674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r10 + 13], 14 + QUAD $0x0d2674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r12 + 13], 15 + QUAD $0x000100adf80f4466; BYTE $0x00 // psubb xmm13, oword 256[rbp] /* [rip + .LCPI7_16] */ + LONG $0xeb0f4566; BYTE $0xd5 // por xmm10, xmm13 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0x6f0f4566; BYTE $0xec // movdqa xmm13, xmm12 + LONG $0xda0f4166; BYTE $0xd4 // pminub xmm2, xmm12 + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0xda0f4166; BYTE $0xc4 // pminub xmm0, xmm12 + LONG $0xc6740f66 // pcmpeqb xmm0, xmm6 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + LONG $0x0e54b60f; BYTE $0x19 // movzx edx, byte [rsi + rcx + 25] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x010e1e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 14], 1 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x020e0e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 14], 2 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x0e266c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r12 + 14], 3 + WORD $0x8948; BYTE $0xc2 // mov rdx, rax + QUAD $0x040e066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 14], 4 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + QUAD $0x0e3e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r15 + 14], 5 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x060e0e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 14], 6 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x0e166c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r10 + 14], 7 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x0e1e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r11 + 14], 8 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x0e1e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r11 + 14], 9 + QUAD $0x0a0e3e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 14], 10 + WORD $0x894d; BYTE $0xee // mov r14, r13 + QUAD $0x0e2e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r13 + 14], 11 + LONG $0x246c8b4c; BYTE $0x68 // mov r13, qword [rsp + 104] + QUAD $0x0e2e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r13 + 14], 12 + LONG $0x24048b48 // mov rax, qword [rsp] + QUAD $0x0d0e066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 14], 13 + QUAD $0x0e066c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r8 + 14], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0e066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 14], 15 + QUAD $0x0f1e44203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rbx + 15], 1 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0f0644203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r8 + 15], 2 + QUAD $0x0f2644203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r12 + 15], 3 + QUAD $0x0f1644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 15], 4 + QUAD $0x0f0e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r9 + 15], 5 + QUAD $0x0f0e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rcx + 15], 6 + QUAD $0x0f1644203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r10 + 15], 7 + QUAD $0x0f3e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r15 + 15], 8 + QUAD $0x0f1e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r11 + 15], 9 + QUAD $0x0f3e44203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rsi + rdi + 15], 10 + QUAD $0x0f3644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 15], 11 + QUAD $0x0f2e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r13 + 15], 12 + LONG $0x24048b48 // mov rax, qword [rsp] + QUAD $0x0f0644203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rax + 15], 13 + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x0f0644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r8 + 15], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f0644203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rsi + rax + 15], 15 + QUAD $0x01111e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 17], 1 + LONG $0x24448b48; BYTE $0x58 // mov rax, qword [rsp + 88] + QUAD $0x0211067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 17], 2 + QUAD $0x11267c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r12 + 17], 3 + QUAD $0x0411167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 17], 4 + QUAD $0x110e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r9 + 17], 5 + QUAD $0x06110e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 17], 6 + QUAD $0x11167c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rsi + r10 + 17], 7 + QUAD $0x113e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r15 + 17], 8 + QUAD $0x111e7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r11 + 17], 9 + QUAD $0x0a113e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 17], 10 + QUAD $0x11367c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r14 + 17], 11 + QUAD $0x112e7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r13 + 17], 12 + LONG $0x24048b48 // mov rax, qword [rsp] + QUAD $0x0d11067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 17], 13 + QUAD $0x11067c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r8 + 17], 14 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0f11067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 17], 15 + QUAD $0x01121e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 18], 1 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x02121e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 18], 2 + QUAD $0x12264c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r12 + 18], 3 + QUAD $0x0412164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 18], 4 + QUAD $0x120e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r9 + 18], 5 + QUAD $0x06120e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 18], 6 + QUAD $0x12164c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rsi + r10 + 18], 7 + QUAD $0x123e4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r15 + 18], 8 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + QUAD $0x121e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r11 + 18], 9 + QUAD $0x0a123e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 18], 10 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + QUAD $0x12364c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r14 + 18], 11 + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + QUAD $0x122e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r13 + 18], 12 + LONG $0x240c8b4c // mov r9, qword [rsp] + QUAD $0x120e4c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r9 + 18], 13 + QUAD $0x000000d095df0f66 // pandn xmm2, oword 208[rbp] /* [rip + .LCPI7_13] */ + QUAD $0x000000e085df0f66 // pandn xmm0, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xc2eb0f66 // por xmm0, xmm2 + LONG $0xd56f0f66 // movdqa xmm2, xmm5 + LONG $0xda0f4166; BYTE $0xd5 // pminub xmm2, xmm13 + LONG $0xd5740f66 // pcmpeqb xmm2, xmm5 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + LONG $0x0654b60f; BYTE $0x1a // movzx edx, byte [rsi + rax + 26] + LONG $0xea6e0f66 // movd xmm5, edx + QUAD $0x12064c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r8 + 18], 14 + QUAD $0x000000f095df0f66 // pandn xmm2, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0xd0eb0f66 // por xmm2, xmm0 + LONG $0x6f0f4166; BYTE $0xf0 // movdqa xmm6, xmm8 + LONG $0xda0f4166; BYTE $0xf5 // pminub xmm6, xmm13 + LONG $0x740f4166; BYTE $0xf0 // pcmpeqb xmm6, xmm8 + LONG $0x0654b60f; BYTE $0x1b // movzx edx, byte [rsi + rax + 27] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0f120e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 18], 15 + QUAD $0x00000100b5ef0f66 // pxor xmm6, oword 256[rbp] /* [rip + .LCPI7_16] */ + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0x75db0f66; BYTE $0x60 // pand xmm6, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0x0654b60f; BYTE $0x1c // movzx edx, byte [rsi + rax + 28] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + QUAD $0x0000b024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm6 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xda0f4166; BYTE $0xd5 // pminub xmm2, xmm13 + LONG $0xd7740f66 // pcmpeqb xmm2, xmm7 + LONG $0x6f0f4466; BYTE $0xf2 // movdqa xmm14, xmm2 + QUAD $0x0000a0b5df0f4466; BYTE $0x00 // pandn xmm14, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xfc0f4466; BYTE $0xf2 // paddb xmm14, xmm2 + LONG $0x6f0f4466; BYTE $0xd1 // movdqa xmm10, xmm1 + LONG $0xda0f4566; BYTE $0xd5 // pminub xmm10, xmm13 + LONG $0x740f4466; BYTE $0xd1 // pcmpeqb xmm10, xmm1 + LONG $0x0654b60f; BYTE $0x1d // movzx edx, byte [rsi + rax + 29] + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x0654b60f; BYTE $0x1e // movzx edx, byte [rsi + rax + 30] + LONG $0x067cb60f; BYTE $0x1f // movzx edi, byte [rsi + rax + 31] + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x0113065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 19], 1 + QUAD $0x14064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 20], 1 + QUAD $0x01150664203a0f66 // pinsrb xmm4, byte [rsi + rax + 21], 1 + QUAD $0x16067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 22], 1 + QUAD $0x17065c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rax + 23], 1 + QUAD $0x190664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rax + 25], 1 + QUAD $0x011a066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 26], 1 + QUAD $0x011b0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 27], 1 + QUAD $0x1c0644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rax + 28], 1 + QUAD $0x011d0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 29], 1 + LONG $0xca6e0f66 // movd xmm1, edx + QUAD $0x011e064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 30], 1 + LONG $0xff6e0f66 // movd xmm7, edi + QUAD $0x011f067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 31], 1 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x02131e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 19], 2 + QUAD $0x141e4c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rbx + 20], 2 + QUAD $0x02151e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 21], 2 + QUAD $0x161e7c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rsi + rbx + 22], 2 + QUAD $0x171e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rbx + 23], 2 + QUAD $0x191e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rbx + 25], 2 + QUAD $0x021a1e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 26], 2 + QUAD $0x021b1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 27], 2 + QUAD $0x1c1e44203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rbx + 28], 2 + QUAD $0x021d1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 29], 2 + QUAD $0x021e1e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 30], 2 + QUAD $0x021f1e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 31], 2 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0313065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 19], 3 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0413165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 19], 4 + LONG $0x246c8b4c; BYTE $0x40 // mov r13, qword [rsp + 64] + QUAD $0x132e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r13 + 19], 5 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x06133e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 19], 6 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x131e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r11 + 19], 7 + QUAD $0x13265c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r12 + 19], 8 + LONG $0x24748b4c; BYTE $0x78 // mov r14, qword [rsp + 120] + QUAD $0x13365c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r14 + 19], 9 + QUAD $0x13165c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r10 + 19], 10 + QUAD $0x133e5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r15 + 19], 11 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0c131e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 19], 12 + QUAD $0x130e5c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r9 + 19], 13 + QUAD $0x13065c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r8 + 19], 14 + QUAD $0x0f130e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 19], 15 + QUAD $0x14064c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rax + 20], 3 + QUAD $0x14164c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rdx + 20], 4 + QUAD $0x142e4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rsi + r13 + 20], 5 + QUAD $0x143e4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rdi + 20], 6 + QUAD $0x141e4c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r11 + 20], 7 + QUAD $0x14264c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r12 + 20], 8 + QUAD $0x14364c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r14 + 20], 9 + QUAD $0x14164c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r10 + 20], 10 + QUAD $0x143e4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r15 + 20], 11 + QUAD $0x141e4c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rsi + rbx + 20], 12 + QUAD $0x140e4c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r9 + 20], 13 + QUAD $0x14064c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r8 + 20], 14 + QUAD $0x140e4c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rsi + rcx + 20], 15 + QUAD $0x03150664203a0f66 // pinsrb xmm4, byte [rsi + rax + 21], 3 + QUAD $0x04151664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 21], 4 + QUAD $0x152e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r13 + 21], 5 + QUAD $0x06153e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 21], 6 + QUAD $0x151e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 21], 7 + QUAD $0x152664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r12 + 21], 8 + QUAD $0x153664203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r14 + 21], 9 + QUAD $0x151664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r10 + 21], 10 + QUAD $0x153e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r15 + 21], 11 + QUAD $0x0c151e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 21], 12 + QUAD $0x150e64203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r9 + 21], 13 + QUAD $0x150664203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r8 + 21], 14 + QUAD $0x0f150e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 21], 15 + QUAD $0x16067c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rax + 22], 3 + QUAD $0x16167c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rsi + rdx + 22], 4 + QUAD $0x162e7c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rsi + r13 + 22], 5 + QUAD $0x163e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rdi + 22], 6 + QUAD $0x161e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r11 + 22], 7 + QUAD $0x16267c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r12 + 22], 8 + QUAD $0x16367c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r14 + 22], 9 + QUAD $0x16167c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r10 + 22], 10 + QUAD $0x00011024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 272] + QUAD $0x000000a095df0f66 // pandn xmm2, oword 160[rbp] /* [rip + .LCPI7_10] */ + QUAD $0x163e7c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r15 + 22], 11 + QUAD $0x0000b095df0f4466; BYTE $0x00 // pandn xmm10, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xeb0f4466; BYTE $0xd2 // por xmm10, xmm2 + QUAD $0x161e7c203a0f4466; BYTE $0x0c // pinsrb xmm15, byte [rsi + rbx + 22], 12 + LONG $0xd36f0f66 // movdqa xmm2, xmm3 + LONG $0xda0f4166; BYTE $0xd5 // pminub xmm2, xmm13 + LONG $0xd3740f66 // pcmpeqb xmm2, xmm3 + QUAD $0x160e7c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r9 + 22], 13 + QUAD $0x000000c095df0f66 // pandn xmm2, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0xeb0f4166; BYTE $0xd2 // por xmm2, xmm10 + QUAD $0x16067c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r8 + 22], 14 + QUAD $0x000100b5f80f4466; BYTE $0x00 // psubb xmm14, oword 256[rbp] /* [rip + .LCPI7_16] */ + LONG $0xeb0f4166; BYTE $0xd6 // por xmm2, xmm14 + LONG $0x6f0f4566; BYTE $0xd1 // movdqa xmm10, xmm9 + LONG $0xda0f4566; BYTE $0xd5 // pminub xmm10, xmm13 + LONG $0x740f4566; BYTE $0xd1 // pcmpeqb xmm10, xmm9 + LONG $0xdc6f0f66 // movdqa xmm3, xmm4 + LONG $0x6f0f4566; BYTE $0xcd // movdqa xmm9, xmm13 + LONG $0xda0f4166; BYTE $0xdd // pminub xmm3, xmm13 + LONG $0xdc740f66 // pcmpeqb xmm3, xmm4 + QUAD $0x160e7c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rsi + rcx + 22], 15 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI7_13] */ + LONG $0xdf0f4566; BYTE $0xd5 // pandn xmm10, xmm13 + QUAD $0x000000e0a56f0f66 // movdqa xmm4, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xdcdf0f66 // pandn xmm3, xmm4 + LONG $0xeb0f4166; BYTE $0xda // por xmm3, xmm10 + LONG $0x6f0f4166; BYTE $0xe7 // movdqa xmm4, xmm15 + LONG $0xda0f4166; BYTE $0xe1 // pminub xmm4, xmm9 + LONG $0x6f0f4566; BYTE $0xe9 // movdqa xmm13, xmm9 + LONG $0x740f4166; BYTE $0xe7 // pcmpeqb xmm4, xmm15 + QUAD $0x17065c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rsi + rax + 23], 3 + QUAD $0x17165c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rsi + rdx + 23], 4 + QUAD $0x172e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r13 + 23], 5 + QUAD $0x173e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rdi + 23], 6 + QUAD $0x171e5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r11 + 23], 7 + QUAD $0x17265c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r12 + 23], 8 + QUAD $0x17365c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r14 + 23], 9 + QUAD $0x17165c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r10 + 23], 10 + QUAD $0x173e5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r15 + 23], 11 + QUAD $0x171e5c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rsi + rbx + 23], 12 + QUAD $0x170e5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r9 + 23], 13 + QUAD $0x17065c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r8 + 23], 14 + QUAD $0x170e5c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rsi + rcx + 23], 15 + QUAD $0x0000f0bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 240[rbp] /* [rip + .LCPI7_15] */ + LONG $0xdf0f4166; BYTE $0xe7 // pandn xmm4, xmm15 + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x6f0f4166; BYTE $0xdb // movdqa xmm3, xmm11 + LONG $0xda0f4166; BYTE $0xd9 // pminub xmm3, xmm9 + LONG $0x740f4166; BYTE $0xdb // pcmpeqb xmm3, xmm11 + QUAD $0x000001009def0f66 // pxor xmm3, oword 256[rbp] /* [rip + .LCPI7_16] */ + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0x6f0f4466; WORD $0x605d // movdqa xmm11, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x190664203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rax + 25], 3 + QUAD $0x191664203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rdx + 25], 4 + QUAD $0x192e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r13 + 25], 5 + QUAD $0x193e64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rdi + 25], 6 + QUAD $0x191e64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rsi + r11 + 25], 7 + QUAD $0x192664203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r12 + 25], 8 + QUAD $0x193664203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r14 + 25], 9 + QUAD $0x191664203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r10 + 25], 10 + QUAD $0x193e64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r15 + 25], 11 + QUAD $0x191e64203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rsi + rbx + 25], 12 + QUAD $0x190e64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r9 + 25], 13 + QUAD $0x190664203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r8 + 25], 14 + QUAD $0x190e64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rsi + rcx + 25], 15 + QUAD $0x031a066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 26], 3 + QUAD $0x041a166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 26], 4 + QUAD $0x1a2e6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r13 + 26], 5 + QUAD $0x061a3e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 26], 6 + QUAD $0x1a1e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r11 + 26], 7 + QUAD $0x1a266c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r12 + 26], 8 + QUAD $0x1a366c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r14 + 26], 9 + QUAD $0x1a166c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r10 + 26], 10 + QUAD $0x1a3e6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r15 + 26], 11 + QUAD $0x0c1a1e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 26], 12 + QUAD $0x1a0e6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r9 + 26], 13 + QUAD $0x1a066c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r8 + 26], 14 + QUAD $0x0f1a0e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 26], 15 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6f0f4166; BYTE $0xd4 // movdqa xmm2, xmm12 + LONG $0xda0f4166; BYTE $0xd1 // pminub xmm2, xmm9 + LONG $0x740f4166; BYTE $0xd4 // pcmpeqb xmm2, xmm12 + LONG $0x6f0f4466; BYTE $0xca // movdqa xmm9, xmm2 + QUAD $0x0000a0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 160[rbp] /* [rip + .LCPI7_10] */ + LONG $0xdf0f4566; BYTE $0xca // pandn xmm9, xmm10 + LONG $0xfc0f4466; BYTE $0xca // paddb xmm9, xmm2 + LONG $0xe56f0f66 // movdqa xmm4, xmm5 + LONG $0xda0f4166; BYTE $0xe5 // pminub xmm4, xmm13 + LONG $0xe5740f66 // pcmpeqb xmm4, xmm5 + QUAD $0x0000f024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 240] + LONG $0xdf0f4166; BYTE $0xd2 // pandn xmm2, xmm10 + QUAD $0x031b0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 27], 3 + QUAD $0x041b1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 27], 4 + QUAD $0x1b2e44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r13 + 27], 5 + QUAD $0x061b3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 27], 6 + QUAD $0x1b1e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r11 + 27], 7 + QUAD $0x1b2644203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r12 + 27], 8 + QUAD $0x1b3644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r14 + 27], 9 + QUAD $0x1b1644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r10 + 27], 10 + QUAD $0x1b3e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r15 + 27], 11 + QUAD $0x0c1b1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 27], 12 + QUAD $0x1b0e44203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r9 + 27], 13 + QUAD $0x1b0644203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r8 + 27], 14 + QUAD $0x0f1b0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 27], 15 + QUAD $0x000000b0a5df0f66 // pandn xmm4, oword 176[rbp] /* [rip + .LCPI7_11] */ + LONG $0xe2eb0f66 // por xmm4, xmm2 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xda0f4166; BYTE $0xd5 // pminub xmm2, xmm13 + LONG $0xd0740f66 // pcmpeqb xmm2, xmm0 + QUAD $0x000000c095df0f66 // pandn xmm2, oword 192[rbp] /* [rip + .LCPI7_12] */ + LONG $0xd4eb0f66 // por xmm2, xmm4 + QUAD $0x1c0644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rax + 28], 3 + QUAD $0x1c1644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 28], 4 + QUAD $0x1c2e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r13 + 28], 5 + QUAD $0x1c3e44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rdi + 28], 6 + QUAD $0x1c1e44203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r11 + 28], 7 + QUAD $0x1c2644203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r12 + 28], 8 + QUAD $0x1c3644203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r14 + 28], 9 + QUAD $0x1c1644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r10 + 28], 10 + QUAD $0x1c3e44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r15 + 28], 11 + QUAD $0x1c1e44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rbx + 28], 12 + QUAD $0x1c0e44203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r9 + 28], 13 + QUAD $0x1c0644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r8 + 28], 14 + QUAD $0x1c0e44203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rsi + rcx + 28], 15 + QUAD $0x031d0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 29], 3 + QUAD $0x041d1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 29], 4 + QUAD $0x1d2e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r13 + 29], 5 + QUAD $0x061d3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 29], 6 + QUAD $0x1d1e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r11 + 29], 7 + QUAD $0x1d2674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r12 + 29], 8 + QUAD $0x1d3674203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r14 + 29], 9 + QUAD $0x1d1674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r10 + 29], 10 + QUAD $0x1d3e74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r15 + 29], 11 + QUAD $0x0c1d1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 29], 12 + QUAD $0x1d0e74203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r9 + 29], 13 + QUAD $0x1d0674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r8 + 29], 14 + QUAD $0x0f1d0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 29], 15 + LONG $0x760f4566; BYTE $0xd2 // pcmpeqd xmm10, xmm10 + LONG $0xf80f4566; BYTE $0xca // psubb xmm9, xmm10 + LONG $0xeb0f4166; BYTE $0xd1 // por xmm2, xmm9 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xda0f4166; BYTE $0xc5 // pminub xmm0, xmm13 + LONG $0x740f4166; BYTE $0xc0 // pcmpeqb xmm0, xmm8 + LONG $0xe66f0f66 // movdqa xmm4, xmm6 + LONG $0xda0f4166; BYTE $0xe5 // pminub xmm4, xmm13 + LONG $0xe6740f66 // pcmpeqb xmm4, xmm6 + QUAD $0x031e064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 30], 3 + QUAD $0x031f067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 31], 3 + QUAD $0x041e164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 30], 4 + QUAD $0x041f167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 31], 4 + QUAD $0x1e2e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r13 + 30], 5 + QUAD $0x1f2e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r13 + 31], 5 + QUAD $0x061e3e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 30], 6 + QUAD $0x061f3e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 31], 6 + QUAD $0x1e1e4c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rsi + r11 + 30], 7 + QUAD $0x1f1e7c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rsi + r11 + 31], 7 + QUAD $0x1e264c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r12 + 30], 8 + QUAD $0x1f267c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r12 + 31], 8 + QUAD $0x1e364c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r14 + 30], 9 + QUAD $0x1f367c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r14 + 31], 9 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x1e164c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r10 + 30], 10 + QUAD $0x1f167c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r10 + 31], 10 + QUAD $0x1e3e4c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rsi + r15 + 30], 11 + QUAD $0x1f3e7c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r15 + 31], 11 + QUAD $0x0c1e1e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 30], 12 + QUAD $0x0c1f1e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 31], 12 + QUAD $0x1e0e4c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r9 + 30], 13 + QUAD $0x1f0e7c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r9 + 31], 13 + QUAD $0x1e064c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rsi + r8 + 30], 14 + QUAD $0x1f067c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r8 + 31], 14 + QUAD $0x0f1e0e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 30], 15 + QUAD $0x0f1f0e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 31], 15 + QUAD $0x000000d085df0f66 // pandn xmm0, oword 208[rbp] /* [rip + .LCPI7_13] */ + QUAD $0x000000e0a5df0f66 // pandn xmm4, oword 224[rbp] /* [rip + .LCPI7_14] */ + LONG $0xe0eb0f66 // por xmm4, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0xda0f4166; BYTE $0xc5 // pminub xmm0, xmm13 + LONG $0xc1740f66 // pcmpeqb xmm0, xmm1 + LONG $0xdf0f4166; BYTE $0xc7 // pandn xmm0, xmm15 + LONG $0xc4eb0f66 // por xmm0, xmm4 + LONG $0xcf6f0f66 // movdqa xmm1, xmm7 + LONG $0xda0f4166; BYTE $0xcd // pminub xmm1, xmm13 + LONG $0xcf740f66 // pcmpeqb xmm1, xmm7 + LONG $0xef0f4166; BYTE $0xca // pxor xmm1, xmm10 + LONG $0xf1710f66; BYTE $0x07 // psllw xmm1, 7 + LONG $0xdb0f4166; BYTE $0xcb // pand xmm1, xmm11 + LONG $0xc8eb0f66 // por xmm1, xmm0 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0xc1600f66 // punpcklbw xmm0, xmm1 + QUAD $0x0000c024ac6f0f66; BYTE $0x00 // movdqa xmm5, oword [rsp + 192] + LONG $0xd56f0f66 // movdqa xmm2, xmm5 + QUAD $0x0000b024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 176] + LONG $0xd6600f66 // punpcklbw xmm2, xmm6 + LONG $0xe26f0f66 // movdqa xmm4, xmm2 + LONG $0xe0610f66 // punpcklwd xmm4, xmm0 + LONG $0xd0690f66 // punpckhwd xmm2, xmm0 + LONG $0xd9680f66 // punpckhbw xmm3, xmm1 + LONG $0xee680f66 // punpckhbw xmm5, xmm6 + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc3610f66 // punpcklwd xmm0, xmm3 + LONG $0xeb690f66 // punpckhwd xmm5, xmm3 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + LONG $0x6c7f0ff3; WORD $0x3088 // movdqu oword [rax + 4*rcx + 48], xmm5 + LONG $0x447f0ff3; WORD $0x2088 // movdqu oword [rax + 4*rcx + 32], xmm0 + LONG $0x547f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm2 + LONG $0x247f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm4 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB7_67 + QUAD $0x0000010824948b4c // mov r10, qword [rsp + 264] + QUAD $0x000000e824943b4c // cmp r10, qword [rsp + 232] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0000014024b48b4c // mov r14, qword [rsp + 320] + JNE LBB7_69 + JMP LBB7_72 + +LBB7_180: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xf3 // add rbx, rsi + LONG $0x84348d4f // lea r14, [r12 + 4*r8] + LONG $0xeb280f45 // movaps xmm13, xmm11 + LONG $0xebc60f45; BYTE $0x00 // shufps xmm13, xmm11, 0 + LONG $0xfcc68148; WORD $0x0001; BYTE $0x00 // add rsi, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI7_0] */ + +LBB7_181: + QUAD $0xfffffe049e100ff3 // movss xmm3, dword [rsi - 508] + QUAD $0xfffe0896100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 504] + QUAD $0xfffe0c8e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 500] + QUAD $0xfffffe108e100ff3 // movss xmm1, dword [rsi - 496] + QUAD $0xfffe849e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 380], 16 + QUAD $0xffff049e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 252], 32 + LONG $0x213a0f66; WORD $0x845e; BYTE $0x30 // insertps xmm3, dword [rsi - 124], 48 + QUAD $0xfe8896213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 376], 16 + QUAD $0xff0896213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 248], 32 + QUAD $0x308856213a0f4466 // insertps xmm10, dword [rsi - 120], 48 + QUAD $0xfe8c8e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 372], 16 + QUAD $0xff0c8e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 244], 32 + QUAD $0x308c4e213a0f4466 // insertps xmm9, dword [rsi - 116], 48 + QUAD $0xfffe908e213a0f66; WORD $0x10ff // insertps xmm1, dword [rsi - 368], 16 + QUAD $0xffff108e213a0f66; WORD $0x20ff // insertps xmm1, dword [rsi - 240], 32 + LONG $0x213a0f66; WORD $0x904e; BYTE $0x30 // insertps xmm1, dword [rsi - 112], 48 + QUAD $0xfffe1486100f44f3; BYTE $0xff // movss xmm8, dword [rsi - 492] + QUAD $0xfe9486213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm8, dword [rsi - 364], 16 + QUAD $0xff1486213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm8, dword [rsi - 236], 32 + LONG $0xe5280f45 // movaps xmm12, xmm13 + QUAD $0x309446213a0f4466 // insertps xmm8, dword [rsi - 108], 48 + QUAD $0xfffffe1896100ff3 // movss xmm2, dword [rsi - 488] + QUAD $0xfffe9896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 360], 16 + QUAD $0xffff1896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 232], 32 + LONG $0xe3c20f44; BYTE $0x01 // cmpltps xmm12, xmm3 + LONG $0x213a0f66; WORD $0x9856; BYTE $0x30 // insertps xmm2, dword [rsi - 104], 48 + QUAD $0xfffffe1c9e100ff3 // movss xmm3, dword [rsi - 484] + QUAD $0xfffe9c9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 356], 16 + QUAD $0xffff1c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 228], 32 + LONG $0x6b0f4566; BYTE $0xe4 // packssdw xmm12, xmm12 + LONG $0x213a0f66; WORD $0x9c5e; BYTE $0x30 // insertps xmm3, dword [rsi - 100], 48 + QUAD $0xfffffe24a6100ff3 // movss xmm4, dword [rsi - 476] + QUAD $0xfffea4a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 348], 16 + QUAD $0xffff24a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 220], 32 + LONG $0x630f4566; BYTE $0xe4 // packsswb xmm12, xmm12 + LONG $0x213a0f66; WORD $0xa466; BYTE $0x30 // insertps xmm4, dword [rsi - 92], 48 + LONG $0xfd280f41 // movaps xmm7, xmm13 + QUAD $0xfffffe44ae100ff3 // movss xmm5, dword [rsi - 444] + QUAD $0xfffec4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 316], 16 + QUAD $0xffff44ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 188], 32 + LONG $0x01fcc20f // cmpltps xmm7, xmm4 + LONG $0x213a0f66; WORD $0xc46e; BYTE $0x30 // insertps xmm5, dword [rsi - 60], 48 + LONG $0xf5280f41 // movaps xmm6, xmm13 + QUAD $0xfffffe6486100ff3 // movss xmm0, dword [rsi - 412] + QUAD $0xfffee486213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 284], 16 + QUAD $0xffff6486213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 156], 32 + LONG $0x01f5c20f // cmpltps xmm6, xmm5 + LONG $0x213a0f66; WORD $0xe446; BYTE $0x30 // insertps xmm0, dword [rsi - 28], 48 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x01e0c20f // cmpltps xmm4, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc2c20f41; BYTE $0x01 // cmpltps xmm0, xmm10 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x6f0f4466; BYTE $0xf0 // movdqa xmm14, xmm0 + LONG $0xdb0f4566; BYTE $0xf7 // pand xmm14, xmm15 + LONG $0xf80f4466; BYTE $0xf0 // psubb xmm14, xmm0 + QUAD $0xfffe2096100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 480] + QUAD $0xfea096213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 352], 16 + LONG $0xdb0f4566; BYTE $0xe7 // pand xmm12, xmm15 + QUAD $0xff2096213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 224], 32 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xe9c20f41; BYTE $0x01 // cmpltps xmm5, xmm9 + QUAD $0x30a056213a0f4466 // insertps xmm10, dword [rsi - 96], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI7_1] */ + LONG $0xe8db0f66 // pand xmm5, xmm0 + LONG $0xeb0f4166; BYTE $0xee // por xmm5, xmm14 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c1c20f // cmpltps xmm0, xmm1 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0xc8c20f41; BYTE $0x01 // cmpltps xmm1, xmm8 + QUAD $0xfffe288e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 472] + QUAD $0xfea88e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 344], 16 + QUAD $0xff288e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 216], 32 + QUAD $0x30a84e213a0f4466 // insertps xmm9, dword [rsi - 88], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0x6f0f4466; WORD $0x2075 // movdqa xmm14, oword 32[rbp] /* [rip + .LCPI7_2] */ + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x6f0f4466; WORD $0x3075 // movdqa xmm14, oword 48[rbp] /* [rip + .LCPI7_3] */ + LONG $0xdb0f4166; BYTE $0xce // pand xmm1, xmm14 + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffe2ca6100f44f3; BYTE $0xff // movss xmm12, dword [rsi - 468] + QUAD $0xfeaca6213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm12, dword [rsi - 340], 16 + QUAD $0xff2ca6213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm12, dword [rsi - 212], 32 + QUAD $0x30ac66213a0f4466 // insertps xmm12, dword [rsi - 84], 48 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c2c20f // cmpltps xmm0, xmm2 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0x01ebc20f // cmpltps xmm5, xmm3 + QUAD $0xfffffe3096100ff3 // movss xmm2, dword [rsi - 464] + QUAD $0xfffeb096213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 336], 16 + QUAD $0xffff3096213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 208], 32 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0x213a0f66; WORD $0xb056; BYTE $0x30 // insertps xmm2, dword [rsi - 80], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0x6f0f4466; WORD $0x4075 // movdqa xmm14, oword 64[rbp] /* [rip + .LCPI7_4] */ + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x06 // psllw xmm5, 6 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI7_5] */ + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xe8eb0f66 // por xmm5, xmm0 + LONG $0xc5280f45 // movaps xmm8, xmm13 + LONG $0xc2c20f45; BYTE $0x01 // cmpltps xmm8, xmm10 + QUAD $0xfffffe349e100ff3 // movss xmm3, dword [rsi - 460] + QUAD $0xfffeb49e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 332], 16 + QUAD $0xffff349e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 204], 32 + LONG $0x213a0f66; WORD $0xb45e; BYTE $0x30 // insertps xmm3, dword [rsi - 76], 48 + LONG $0x6b0f4566; BYTE $0xc0 // packssdw xmm8, xmm8 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb0f4466; BYTE $0xc0 // pand xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc5 // por xmm8, xmm5 + QUAD $0xfffe3896100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 456] + QUAD $0xfeb896213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 328], 16 + QUAD $0xff3896213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 200], 32 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x30b856213a0f4466 // insertps xmm10, dword [rsi - 72], 48 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc1c20f41; BYTE $0x01 // cmpltps xmm0, xmm9 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + QUAD $0xfffe3c8e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 452] + QUAD $0xfebc8e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 324], 16 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + QUAD $0xff3c8e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 196], 32 + LONG $0xcfeb0f66 // por xmm1, xmm7 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xecc20f41; BYTE $0x01 // cmpltps xmm5, xmm12 + QUAD $0x30bc4e213a0f4466 // insertps xmm9, dword [rsi - 68], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0x6ddb0f66; BYTE $0x10 // pand xmm5, oword 16[rbp] /* [rip + .LCPI7_1] */ + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c2c20f // cmpltps xmm0, xmm2 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x01cbc20f // cmpltps xmm1, xmm3 + QUAD $0xfffffe409e100ff3 // movss xmm3, dword [rsi - 448] + QUAD $0xfffec09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 320], 16 + QUAD $0xffff409e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 192], 32 + LONG $0x213a0f66; WORD $0xc05e; BYTE $0x30 // insertps xmm3, dword [rsi - 64], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0x6f0f4466; WORD $0x2065 // movdqa xmm12, oword 32[rbp] /* [rip + .LCPI7_2] */ + LONG $0xdb0f4166; BYTE $0xc4 // pand xmm0, xmm12 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x4ddb0f66; BYTE $0x30 // pand xmm1, oword 48[rbp] /* [rip + .LCPI7_3] */ + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffffe4896100ff3 // movss xmm2, dword [rsi - 440] + QUAD $0xfffec896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 312], 16 + QUAD $0xffff4896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 184], 32 + LONG $0x213a0f66; WORD $0xc856; BYTE $0x30 // insertps xmm2, dword [rsi - 56], 48 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc2c20f41; BYTE $0x01 // cmpltps xmm0, xmm10 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xe9c20f41; BYTE $0x01 // cmpltps xmm5, xmm9 + QUAD $0xfffffe4cbe100ff3 // movss xmm7, dword [rsi - 436] + QUAD $0xfffeccbe213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 308], 16 + QUAD $0xffff4cbe213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 180], 32 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x213a0f66; WORD $0xcc7e; BYTE $0x30 // insertps xmm7, dword [rsi - 52], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x06 // psllw xmm5, 6 + LONG $0x6ddb0f66; BYTE $0x50 // pand xmm5, oword 80[rbp] /* [rip + .LCPI7_5] */ + LONG $0xe8eb0f66 // por xmm5, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + QUAD $0xfffffe509e100ff3 // movss xmm3, dword [rsi - 432] + QUAD $0xfffed09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 304], 16 + QUAD $0xffff509e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 176], 32 + LONG $0x213a0f66; WORD $0xd05e; BYTE $0x30 // insertps xmm3, dword [rsi - 48], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0x6f0f4466; WORD $0x6055 // movdqa xmm10, oword 96[rbp] /* [rip + .LCPI7_6] */ + LONG $0xdb0f4166; BYTE $0xc2 // pand xmm0, xmm10 + LONG $0xc5eb0f66 // por xmm0, xmm5 + QUAD $0xfffffe54ae100ff3 // movss xmm5, dword [rsi - 428] + QUAD $0xfffed4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 300], 16 + QUAD $0xffff54ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 172], 32 + LONG $0x213a0f66; WORD $0xd46e; BYTE $0x30 // insertps xmm5, dword [rsi - 44], 48 + LONG $0xc1eb0f66 // por xmm0, xmm1 + QUAD $0xfffe588e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 424] + QUAD $0xfed88e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 296], 16 + QUAD $0xff588e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 168], 32 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x30d84e213a0f4466 // insertps xmm9, dword [rsi - 40], 48 + LONG $0x620f4466; BYTE $0xc0 // punpckldq xmm8, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c2c20f // cmpltps xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + QUAD $0xfffffe5c96100ff3 // movss xmm2, dword [rsi - 420] + QUAD $0xfffedc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 292], 16 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xffff5c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 164], 32 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0xf5280f41 // movaps xmm6, xmm13 + LONG $0x01f7c20f // cmpltps xmm6, xmm7 + LONG $0x213a0f66; WORD $0xdc56; BYTE $0x30 // insertps xmm2, dword [rsi - 36], 48 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI7_1] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c3c20f // cmpltps xmm0, xmm3 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x01cdc20f // cmpltps xmm1, xmm5 + QUAD $0xfffffe609e100ff3 // movss xmm3, dword [rsi - 416] + QUAD $0xfffee09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 288], 16 + QUAD $0xffff609e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 160], 32 + LONG $0x213a0f66; WORD $0xe05e; BYTE $0x30 // insertps xmm3, dword [rsi - 32], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0xdb0f4166; BYTE $0xc4 // pand xmm0, xmm12 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x6f0f4466; WORD $0x3065 // movdqa xmm12, oword 48[rbp] /* [rip + .LCPI7_3] */ + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffffe68ae100ff3 // movss xmm5, dword [rsi - 408] + QUAD $0xfffee8ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 280], 16 + QUAD $0xffff68ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 152], 32 + LONG $0x213a0f66; WORD $0xe86e; BYTE $0x30 // insertps xmm5, dword [rsi - 24], 48 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc1c20f41; BYTE $0x01 // cmpltps xmm0, xmm9 + LONG $0xf5280f41 // movaps xmm6, xmm13 + LONG $0x01f2c20f // cmpltps xmm6, xmm2 + QUAD $0xfffffe6cbe100ff3 // movss xmm7, dword [rsi - 404] + QUAD $0xfffeecbe213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 276], 16 + QUAD $0xffff6cbe213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 148], 32 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0x213a0f66; WORD $0xec7e; BYTE $0x30 // insertps xmm7, dword [rsi - 20], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x06 // psllw xmm6, 6 + LONG $0x6f0f4466; WORD $0x504d // movdqa xmm9, oword 80[rbp] /* [rip + .LCPI7_5] */ + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf0eb0f66 // por xmm6, xmm0 + LONG $0xd5280f41 // movaps xmm2, xmm13 + LONG $0x01d3c20f // cmpltps xmm2, xmm3 + QUAD $0xfffffe7086100ff3 // movss xmm0, dword [rsi - 400] + QUAD $0xfffef086213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 272], 16 + QUAD $0xffff7086213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 144], 32 + LONG $0x213a0f66; WORD $0xf046; BYTE $0x30 // insertps xmm0, dword [rsi - 16], 48 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe74b6100ff3 // movss xmm6, dword [rsi - 396] + QUAD $0xfffef4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 268], 16 + QUAD $0xffff74b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 140], 32 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0x213a0f66; WORD $0xf476; BYTE $0x30 // insertps xmm6, dword [rsi - 12], 48 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x01cdc20f // cmpltps xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + QUAD $0xfffffe789e100ff3 // movss xmm3, dword [rsi - 392] + QUAD $0xfffef89e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 264], 16 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0xffff789e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 136], 32 + LONG $0xeceb0f66 // por xmm5, xmm4 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x01e7c20f // cmpltps xmm4, xmm7 + LONG $0x213a0f66; WORD $0xf85e; BYTE $0x30 // insertps xmm3, dword [rsi - 8], 48 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x02 // psllw xmm4, 2 + LONG $0x65db0f66; BYTE $0x10 // pand xmm4, oword 16[rbp] /* [rip + .LCPI7_1] */ + LONG $0xe5eb0f66 // por xmm4, xmm5 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0x01e8c20f // cmpltps xmm5, xmm0 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x01cec20f // cmpltps xmm1, xmm6 + QUAD $0xfffffe7c86100ff3 // movss xmm0, dword [rsi - 388] + QUAD $0xfffefc86213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 260], 16 + QUAD $0xffff7c86213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 132], 32 + LONG $0x213a0f66; WORD $0xfc46; BYTE $0x30 // insertps xmm0, dword [rsi - 4], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0x6ddb0f66; BYTE $0x20 // pand xmm5, oword 32[rbp] /* [rip + .LCPI7_2] */ + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xcdeb0f66 // por xmm1, xmm5 + QUAD $0xfffffe80ae100ff3 // movss xmm5, dword [rsi - 384] + QUAD $0xffff00ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 256], 16 + LONG $0x213a0f66; WORD $0x806e; BYTE $0x20 // insertps xmm5, dword [rsi - 128], 32 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x01e3c20f // cmpltps xmm4, xmm3 + LONG $0xdd280f41 // movaps xmm3, xmm13 + LONG $0x01d8c20f // cmpltps xmm3, xmm0 + LONG $0x213a0f66; WORD $0x302e // insertps xmm5, dword [rsi], 48 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x05 // psllw xmm4, 5 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xd9 // pand xmm3, xmm9 + LONG $0xdceb0f66 // por xmm3, xmm4 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x01c5c20f // cmpltps xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xdb0f4166; BYTE $0xc2 // pand xmm0, xmm10 + LONG $0xc3eb0f66 // por xmm0, xmm3 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0xd0620f66 // punpckldq xmm2, xmm0 + LONG $0x600f4466; BYTE $0xc2 // punpcklbw xmm8, xmm2 + LONG $0x380f4466; WORD $0x4500; BYTE $0x70 // pshufb xmm8, oword 112[rbp] /* [rip + .LCPI7_7] */ + LONG $0x7f0f45f3; WORD $0x8c04 // movdqu oword [r12 + 4*rcx], xmm8 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c68148; WORD $0x0002; BYTE $0x00 // add rsi, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB7_181 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JNE LBB7_183 + JMP LBB7_186 + +LBB7_122: + LONG $0xf8e68349 // and r14, -8 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0x2474894c; BYTE $0x18 // mov qword [rsp + 24], r14 + LONG $0xb4048d4b // lea rax, [r12 + 4*r14] + LONG $0x24048948 // mov qword [rsp], rax + QUAD $0x0000f024846e0f66; BYTE $0x00 // movd xmm0, dword [rsp + 240] + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + WORD $0x3145; BYTE $0xff // xor r15d, r15d + QUAD $0x000080bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 128[rbp] /* [rip + .LCPI7_8] */ + LONG $0x6f0f4466; WORD $0x104d // movdqa xmm9, oword 16[rbp] /* [rip + .LCPI7_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI7_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI7_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI7_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI7_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI7_6] */ + QUAD $0x0000008024a4894c // mov qword [rsp + 128], r12 + +LBB7_123: + LONG $0x247c894c; BYTE $0x10 // mov qword [rsp + 16], r15 + LONG $0x06e7c149 // shl r15, 6 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x894d; BYTE $0xfd // mov r13, r15 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + WORD $0x894c; BYTE $0xff // mov rdi, r15 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + LONG $0x34b70f46; BYTE $0x3e // movzx r14d, word [rsi + r15] + LONG $0x44b70f42; WORD $0x023e // movzx eax, word [rsi + r15 + 2] + LONG $0x5cb70f46; WORD $0x043e // movzx r11d, word [rsi + r15 + 4] + LONG $0x54b70f42; WORD $0x063e // movzx edx, word [rsi + r15 + 6] + LONG $0x54b70f46; WORD $0x083e // movzx r10d, word [rsi + r15 + 8] + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + LONG $0x40c88349 // or r8, 64 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0x6e0f4166; BYTE $0xe6 // movd xmm4, r14d + LONG $0xc40f4266; WORD $0x0624; BYTE $0x01 // pinsrw xmm4, word [rsi + r8], 1 + LONG $0xc40f4266; WORD $0x0e24; BYTE $0x02 // pinsrw xmm4, word [rsi + r9], 2 + LONG $0xc40f4266; WORD $0x2624; BYTE $0x03 // pinsrw xmm4, word [rsi + r12], 3 + LONG $0xc40f4266; WORD $0x2e24; BYTE $0x04 // pinsrw xmm4, word [rsi + r13], 4 + LONG $0x24c40f66; WORD $0x050e // pinsrw xmm4, word [rsi + rcx], 5 + LONG $0x24c40f66; WORD $0x063e // pinsrw xmm4, word [rsi + rdi], 6 + LONG $0x24c40f66; WORD $0x071e // pinsrw xmm4, word [rsi + rbx], 7 + LONG $0x74b70f46; WORD $0x0a3e // movzx r14d, word [rsi + r15 + 10] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x01020674c40f4266 // pinsrw xmm6, word [rsi + r8 + 2], 1 + QUAD $0x02020e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 2], 2 + QUAD $0x03022674c40f4266 // pinsrw xmm6, word [rsi + r12 + 2], 3 + LONG $0x44b70f42; WORD $0x0c3e // movzx eax, word [rsi + r15 + 12] + LONG $0x08244489 // mov dword [rsp + 8], eax + QUAD $0x04022e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 2], 4 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x5cb70f46; WORD $0x0e3e // movzx r11d, word [rsi + r15 + 14] + LONG $0x74c40f66; WORD $0x020e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 2], 5 + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0x54b70f42; WORD $0x103e // movzx edx, word [rsi + r15 + 16] + LONG $0x74c40f66; WORD $0x023e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 2], 6 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x44b70f42; WORD $0x123e // movzx eax, word [rsi + r15 + 18] + LONG $0x28244489 // mov dword [rsp + 40], eax + LONG $0x74c40f66; WORD $0x021e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 2], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xcef80f66 // psubb xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf6 // movd xmm6, r14d + LONG $0x54b70f46; WORD $0x143e // movzx r10d, word [rsi + r15 + 20] + LONG $0xe0650f66 // pcmpgtw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0x01040654c40f4266 // pinsrw xmm2, word [rsi + r8 + 4], 1 + QUAD $0x02040e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 4], 2 + QUAD $0x03042654c40f4266 // pinsrw xmm2, word [rsi + r12 + 4], 3 + QUAD $0x04042e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 4], 7 + QUAD $0x0106066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 6], 1 + QUAD $0x02060e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 6], 2 + QUAD $0x0306266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 6], 3 + QUAD $0x04062e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 6], 4 + LONG $0x6cc40f66; WORD $0x060e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 6], 5 + LONG $0x6cc40f66; WORD $0x063e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 6], 6 + LONG $0x6cc40f66; WORD $0x061e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 6], 7 + QUAD $0x0108065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 8], 1 + QUAD $0x02080e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 8], 2 + QUAD $0x0308265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 8], 3 + QUAD $0x04082e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 8], 4 + LONG $0x5cc40f66; WORD $0x080e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 8], 5 + LONG $0x5cc40f66; WORD $0x083e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 8], 6 + LONG $0x5cc40f66; WORD $0x081e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 8], 7 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x7c6e0f66; WORD $0x0824 // movd xmm7, dword [rsp + 8] + LONG $0x44b70f42; WORD $0x163e // movzx eax, word [rsi + r15 + 22] + LONG $0xd0650f66 // pcmpgtw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0xdb0f4166; BYTE $0xd1 // pand xmm2, xmm9 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f46; WORD $0x183e // movzx r11d, word [rsi + r15 + 24] + LONG $0xe8650f66 // pcmpgtw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0xd8650f66 // pcmpgtw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x54b70f42; WORD $0x1a3e // movzx edx, word [rsi + r15 + 26] + QUAD $0x010a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 10], 1 + QUAD $0x020a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 10], 2 + QUAD $0x030a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 10], 3 + QUAD $0x040a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 10], 4 + LONG $0x74c40f66; WORD $0x0a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 10], 5 + LONG $0x74c40f66; WORD $0x0a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 10], 6 + LONG $0x74c40f66; WORD $0x0a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 10], 7 + QUAD $0x010c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 12], 1 + QUAD $0x020c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 12], 2 + QUAD $0x030c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 12], 3 + QUAD $0x040c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 12], 4 + LONG $0x7cc40f66; WORD $0x0c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 12], 5 + LONG $0x7cc40f66; WORD $0x0c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 12], 6 + LONG $0x7cc40f66; WORD $0x0c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 12], 7 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4466; WORD $0x2444; BYTE $0x28 // movd xmm8, dword [rsp + 40] + LONG $0x74b70f46; WORD $0x1c3e // movzx r14d, word [rsi + r15 + 28] + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8650f66 // pcmpgtw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xea // movd xmm5, r10d + LONG $0x54b70f46; WORD $0x1e3e // movzx r10d, word [rsi + r15 + 30] + QUAD $0x010e0664c40f4266 // pinsrw xmm4, word [rsi + r8 + 14], 1 + QUAD $0x020e0e64c40f4266 // pinsrw xmm4, word [rsi + r9 + 14], 2 + QUAD $0x030e2664c40f4266 // pinsrw xmm4, word [rsi + r12 + 14], 3 + QUAD $0x040e2e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 14], 4 + LONG $0x64c40f66; WORD $0x0e0e; BYTE $0x05 // pinsrw xmm4, word [rsi + rcx + 14], 5 + LONG $0x64c40f66; WORD $0x0e3e; BYTE $0x06 // pinsrw xmm4, word [rsi + rdi + 14], 6 + LONG $0x64c40f66; WORD $0x0e1e; BYTE $0x07 // pinsrw xmm4, word [rsi + rbx + 14], 7 + QUAD $0x01120644c40f4666 // pinsrw xmm8, word [rsi + r8 + 18], 1 + QUAD $0x02120e44c40f4666 // pinsrw xmm8, word [rsi + r9 + 18], 2 + QUAD $0x03122644c40f4666 // pinsrw xmm8, word [rsi + r12 + 18], 3 + QUAD $0x04122e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 18], 4 + QUAD $0x05120e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 18], 5 + QUAD $0x06123e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 18], 6 + QUAD $0x07121e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 18], 7 + LONG $0xe0650f66 // pcmpgtw xmm4, xmm0 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x203e // movzx eax, word [rsi + r15 + 32] + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x650f4466; BYTE $0xc0 // pcmpgtw xmm8, xmm0 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf80f4166; BYTE $0xf8 // psubb xmm7, xmm8 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + LONG $0x5cb70f46; WORD $0x223e // movzx r11d, word [rsi + r15 + 34] + QUAD $0x0110064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 16], 1 + QUAD $0x02100e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 16], 2 + QUAD $0x0310264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 16], 3 + QUAD $0x04102e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 16], 4 + LONG $0x4cc40f66; WORD $0x100e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 16], 5 + LONG $0x4cc40f66; WORD $0x103e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 16], 6 + LONG $0x4cc40f66; WORD $0x101e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 16], 7 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0x54b70f42; WORD $0x243e // movzx edx, word [rsi + r15 + 36] + LONG $0x20245489 // mov dword [rsp + 32], edx + QUAD $0x0114066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 20], 1 + QUAD $0x02140e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 20], 2 + QUAD $0x0314266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 20], 3 + QUAD $0x04142e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 20], 4 + LONG $0x6cc40f66; WORD $0x140e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 20], 5 + LONG $0x6cc40f66; WORD $0x143e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 20], 6 + LONG $0x6cc40f66; WORD $0x141e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 20], 7 + LONG $0xe8650f66 // pcmpgtw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe9 // pand xmm5, xmm9 + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6e0f4166; BYTE $0xfe // movd xmm7, r14d + LONG $0x54b70f42; WORD $0x263e // movzx edx, word [rsi + r15 + 38] + LONG $0x28245489 // mov dword [rsp + 40], edx + QUAD $0x01160654c40f4266 // pinsrw xmm2, word [rsi + r8 + 22], 1 + QUAD $0x02160e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 22], 2 + QUAD $0x03162654c40f4266 // pinsrw xmm2, word [rsi + r12 + 22], 3 + QUAD $0x04162e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 22], 4 + LONG $0x54c40f66; WORD $0x160e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 22], 5 + LONG $0x54c40f66; WORD $0x163e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 22], 6 + LONG $0x54c40f66; WORD $0x161e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 22], 7 + QUAD $0x0118065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 24], 1 + QUAD $0x02180e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 24], 2 + QUAD $0x0318265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 24], 3 + QUAD $0x04182e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 24], 4 + LONG $0x5cc40f66; WORD $0x180e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 24], 5 + LONG $0x5cc40f66; WORD $0x183e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 24], 6 + LONG $0x5cc40f66; WORD $0x181e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 24], 7 + LONG $0xd0650f66 // pcmpgtw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd8650f66 // pcmpgtw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x04 // psllw xmm3, 4 + LONG $0xdb0f4166; BYTE $0xdb // pand xmm3, xmm11 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x74b70f46; WORD $0x283e // movzx r14d, word [rsi + r15 + 40] + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x2a3e // movzx eax, word [rsi + r15 + 42] + LONG $0x08244489 // mov dword [rsp + 8], eax + QUAD $0x011a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 26], 1 + QUAD $0x021a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 26], 2 + QUAD $0x031a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 26], 3 + QUAD $0x041a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 26], 4 + LONG $0x74c40f66; WORD $0x1a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 26], 5 + LONG $0x74c40f66; WORD $0x1a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 26], 6 + LONG $0x74c40f66; WORD $0x1a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 26], 7 + QUAD $0x011c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 28], 1 + QUAD $0x021c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 28], 2 + QUAD $0x031c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 28], 3 + QUAD $0x041c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 28], 4 + LONG $0x7cc40f66; WORD $0x1c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 28], 5 + LONG $0x7cc40f66; WORD $0x1c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 28], 6 + LONG $0x7cc40f66; WORD $0x1c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 28], 7 + QUAD $0x011e0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 30], 1 + QUAD $0x021e0e54c40f4266 // pinsrw xmm2, word [rsi + r9 + 30], 2 + QUAD $0x031e2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 30], 3 + QUAD $0x041e2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 30], 4 + LONG $0x54c40f66; WORD $0x1e0e; BYTE $0x05 // pinsrw xmm2, word [rsi + rcx + 30], 5 + LONG $0x54c40f66; WORD $0x1e3e; BYTE $0x06 // pinsrw xmm2, word [rsi + rdi + 30], 6 + LONG $0x54c40f66; WORD $0x1e1e; BYTE $0x07 // pinsrw xmm2, word [rsi + rbx + 30], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xf8650f66 // pcmpgtw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xfeeb0f66 // por xmm7, xmm6 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x54b70f46; WORD $0x2c3e // movzx r10d, word [rsi + r15 + 44] + LONG $0xd0650f66 // pcmpgtw xmm2, xmm0 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x746e0f66; WORD $0x2024 // movd xmm6, dword [rsp + 32] + LONG $0x54b70f42; WORD $0x2e3e // movzx edx, word [rsi + r15 + 46] + QUAD $0x0120066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 32], 1 + QUAD $0x02200e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 32], 2 + QUAD $0x0320266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 32], 3 + QUAD $0x04202e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 32], 4 + LONG $0x6cc40f66; WORD $0x200e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 32], 5 + LONG $0x6cc40f66; WORD $0x203e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 32], 6 + QUAD $0x0122064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 34], 1 + QUAD $0x02220e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 34], 2 + QUAD $0x0322264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 34], 3 + QUAD $0x04222e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 34], 4 + LONG $0x4cc40f66; WORD $0x220e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 34], 5 + LONG $0x4cc40f66; WORD $0x223e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 34], 6 + LONG $0x4cc40f66; WORD $0x221e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 34], 7 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0x5c6e0f66; WORD $0x2824 // movd xmm3, dword [rsp + 40] + LONG $0x5cb70f46; WORD $0x303e // movzx r11d, word [rsi + r15 + 48] + LONG $0x6cc40f66; WORD $0x201e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 32], 7 + LONG $0xe8650f66 // pcmpgtw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + QUAD $0x01240674c40f4266 // pinsrw xmm6, word [rsi + r8 + 36], 1 + QUAD $0x02240e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 36], 2 + QUAD $0x03242674c40f4266 // pinsrw xmm6, word [rsi + r12 + 36], 3 + QUAD $0x04242e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 36], 4 + LONG $0x74c40f66; WORD $0x240e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 36], 5 + LONG $0x74c40f66; WORD $0x243e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 36], 6 + LONG $0x74c40f66; WORD $0x241e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 36], 7 + QUAD $0x0126065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 38], 1 + QUAD $0x02260e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 38], 2 + QUAD $0x0326265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 38], 3 + QUAD $0x04262e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 38], 4 + LONG $0x5cc40f66; WORD $0x260e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 38], 5 + LONG $0x5cc40f66; WORD $0x263e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 38], 6 + LONG $0x5cc40f66; WORD $0x261e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 38], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6e0f4166; BYTE $0xee // movd xmm5, r14d + QUAD $0x0128066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 40], 1 + QUAD $0x02280e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 40], 2 + QUAD $0x0328266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 40], 3 + QUAD $0x04282e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 40], 4 + LONG $0x6cc40f66; WORD $0x280e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 40], 5 + LONG $0x6cc40f66; WORD $0x283e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 40], 6 + LONG $0x44b70f42; WORD $0x323e // movzx eax, word [rsi + r15 + 50] + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf7eb0f66 // por xmm6, xmm7 + LONG $0x4c6e0f66; WORD $0x0824 // movd xmm1, dword [rsp + 8] + LONG $0x74b70f46; WORD $0x343e // movzx r14d, word [rsi + r15 + 52] + LONG $0x6cc40f66; WORD $0x281e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 40], 7 + LONG $0xd8650f66 // pcmpgtw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0xdb0f4166; BYTE $0xda // pand xmm3, xmm10 + LONG $0xe8650f66 // pcmpgtw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xebeb0f66 // por xmm5, xmm3 + LONG $0x6e0f4166; BYTE $0xfa // movd xmm7, r10d + LONG $0x54b70f46; WORD $0x363e // movzx r10d, word [rsi + r15 + 54] + QUAD $0x012a064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 42], 1 + QUAD $0x022a0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 42], 2 + QUAD $0x032a264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 42], 3 + QUAD $0x042a2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 42], 4 + LONG $0x4cc40f66; WORD $0x2a0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 42], 5 + LONG $0x4cc40f66; WORD $0x2a3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 42], 6 + LONG $0x4cc40f66; WORD $0x2a1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 42], 7 + QUAD $0x012c067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 44], 1 + QUAD $0x022c0e7cc40f4266 // pinsrw xmm7, word [rsi + r9 + 44], 2 + QUAD $0x032c267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 44], 3 + QUAD $0x042c2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 44], 4 + LONG $0x7cc40f66; WORD $0x2c0e; BYTE $0x05 // pinsrw xmm7, word [rsi + rcx + 44], 5 + LONG $0x7cc40f66; WORD $0x2c3e; BYTE $0x06 // pinsrw xmm7, word [rsi + rdi + 44], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0xda6e0f66 // movd xmm3, edx + LONG $0x54b70f42; WORD $0x383e // movzx edx, word [rsi + r15 + 56] + LONG $0x7cc40f66; WORD $0x2c1e; BYTE $0x07 // pinsrw xmm7, word [rsi + rbx + 44], 7 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x05 // psllw xmm1, 5 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xf8650f66 // pcmpgtw xmm7, xmm0 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0xdb0f4166; BYTE $0xfd // pand xmm7, xmm13 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + LONG $0x5cb70f46; WORD $0x3a3e // movzx r11d, word [rsi + r15 + 58] + QUAD $0x012e065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 46], 1 + QUAD $0x022e0e5cc40f4266 // pinsrw xmm3, word [rsi + r9 + 46], 2 + QUAD $0x032e265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 46], 3 + QUAD $0x042e2e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 46], 4 + LONG $0x5cc40f66; WORD $0x2e0e; BYTE $0x05 // pinsrw xmm3, word [rsi + rcx + 46], 5 + LONG $0x5cc40f66; WORD $0x2e3e; BYTE $0x06 // pinsrw xmm3, word [rsi + rdi + 46], 6 + LONG $0x5cc40f66; WORD $0x2e1e; BYTE $0x07 // pinsrw xmm3, word [rsi + rbx + 46], 7 + LONG $0xd8650f66 // pcmpgtw xmm3, xmm0 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdfeb0f66 // por xmm3, xmm7 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x3c3e // movzx eax, word [rsi + r15 + 60] + LONG $0x7cb70f46; WORD $0x3e3e // movzx r15d, word [rsi + r15 + 62] + QUAD $0x0132064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 50], 1 + QUAD $0x02320e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 50], 2 + QUAD $0x0332264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 50], 3 + QUAD $0x04322e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 50], 4 + LONG $0x4cc40f66; WORD $0x320e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 50], 5 + LONG $0x4cc40f66; WORD $0x323e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 50], 6 + LONG $0x4cc40f66; WORD $0x321e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 50], 7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + QUAD $0x01300674c40f4266 // pinsrw xmm6, word [rsi + r8 + 48], 1 + QUAD $0x02300e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 48], 2 + QUAD $0x03302674c40f4266 // pinsrw xmm6, word [rsi + r12 + 48], 3 + QUAD $0x04302e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 48], 4 + LONG $0x74c40f66; WORD $0x300e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 48], 5 + LONG $0x74c40f66; WORD $0x303e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 48], 6 + LONG $0x74c40f66; WORD $0x301e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 48], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x0134064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 52], 1 + QUAD $0x02340e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 52], 2 + QUAD $0x0334264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 52], 3 + QUAD $0x04342e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 52], 4 + LONG $0x4cc40f66; WORD $0x340e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 52], 5 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x4cc40f66; WORD $0x343e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 52], 6 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x4cc40f66; WORD $0x341e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 52], 7 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x02 // psllw xmm1, 2 + LONG $0xdb0f4166; BYTE $0xc9 // pand xmm1, xmm9 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xea6e0f66 // movd xmm5, edx + QUAD $0x01360674c40f4266 // pinsrw xmm6, word [rsi + r8 + 54], 1 + QUAD $0x02360e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 54], 2 + QUAD $0x03362674c40f4266 // pinsrw xmm6, word [rsi + r12 + 54], 3 + QUAD $0x04362e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 54], 7 + QUAD $0x0138066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 56], 1 + QUAD $0x02380e6cc40f4266 // pinsrw xmm5, word [rsi + r9 + 56], 2 + QUAD $0x0338266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 56], 3 + QUAD $0x04382e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 56], 4 + LONG $0x6cc40f66; WORD $0x380e; BYTE $0x05 // pinsrw xmm5, word [rsi + rcx + 56], 5 + LONG $0x6cc40f66; WORD $0x383e; BYTE $0x06 // pinsrw xmm5, word [rsi + rdi + 56], 6 + LONG $0x6cc40f66; WORD $0x381e; BYTE $0x07 // pinsrw xmm5, word [rsi + rbx + 56], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x03 // psllw xmm6, 3 + LONG $0xdb0f4166; BYTE $0xf2 // pand xmm6, xmm10 + LONG $0xe8650f66 // pcmpgtw xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6e0f4166; BYTE $0xf3 // movd xmm6, r11d + QUAD $0x013a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 58], 1 + QUAD $0x023a0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 58], 2 + QUAD $0x033a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 58], 3 + QUAD $0x043a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 58], 4 + LONG $0x74c40f66; WORD $0x3a0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 58], 5 + LONG $0x74c40f66; WORD $0x3a3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 58], 6 + LONG $0x74c40f66; WORD $0x3a1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 58], 7 + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0xc86e0f66 // movd xmm1, eax + QUAD $0x013c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 60], 1 + QUAD $0x023c0e4cc40f4266 // pinsrw xmm1, word [rsi + r9 + 60], 2 + QUAD $0x033c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 60], 3 + QUAD $0x043c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 60], 4 + LONG $0x4cc40f66; WORD $0x3c0e; BYTE $0x05 // pinsrw xmm1, word [rsi + rcx + 60], 5 + LONG $0x4cc40f66; WORD $0x3c3e; BYTE $0x06 // pinsrw xmm1, word [rsi + rdi + 60], 6 + LONG $0x4cc40f66; WORD $0x3c1e; BYTE $0x07 // pinsrw xmm1, word [rsi + rbx + 60], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x06 // psllw xmm1, 6 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6e0f4166; BYTE $0xf7 // movd xmm6, r15d + QUAD $0x013e0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 62], 1 + QUAD $0x023e0e74c40f4266 // pinsrw xmm6, word [rsi + r9 + 62], 2 + QUAD $0x033e2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 62], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x043e2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 62], 4 + LONG $0x74c40f66; WORD $0x3e0e; BYTE $0x05 // pinsrw xmm6, word [rsi + rcx + 62], 5 + LONG $0x74c40f66; WORD $0x3e3e; BYTE $0x06 // pinsrw xmm6, word [rsi + rdi + 62], 6 + LONG $0x74c40f66; WORD $0x3e1e; BYTE $0x07 // pinsrw xmm6, word [rsi + rbx + 62], 7 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0xdb0f4166; BYTE $0xf6 // pand xmm6, xmm14 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + LONG $0xeb6f0f66 // movdqa xmm5, xmm3 + LONG $0xee6c0f66 // punpcklqdq xmm5, xmm6 + QUAD $0x00000090bd6f0f66 // movdqa xmm7, oword 144[rbp] /* [rip + .LCPI7_9] */ + LONG $0x00380f66; BYTE $0xef // pshufb xmm5, xmm7 + LONG $0x00380f66; BYTE $0xcf // pshufb xmm1, xmm7 + LONG $0xcd610f66 // punpcklwd xmm1, xmm5 + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe2600f66 // punpcklbw xmm4, xmm2 + LONG $0xe3610f66 // punpcklwd xmm4, xmm3 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + LONG $0x247f0ff3; BYTE $0x88 // movdqu oword [rax + 4*rcx], xmm4 + LONG $0x4c7f0ff3; WORD $0x1088 // movdqu oword [rax + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + LONG $0x244c3b48; BYTE $0x18 // cmp rcx, qword [rsp + 24] + JNE LBB7_123 + QUAD $0x0000011024b48b4c // mov r14, qword [rsp + 272] + LONG $0x24743b4c; BYTE $0x18 // cmp r14, qword [rsp + 24] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + LONG $0x24248b4c // mov r12, qword [rsp] + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + JNE LBB7_125 + JMP LBB7_128 + +DATA LCDATA6<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA6<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA6<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA6<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA6<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA6<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA6<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA6<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA6<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA6<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA6<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA6<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA6<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA6<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA6<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA6<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA6<>+0x080(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA6<>+0x090(SB)/8, $0x0f070e060d050c04 +DATA LCDATA6<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA6<>+0x0a0(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x0a8(SB)/8, $0x0101010101010101 +DATA LCDATA6<>+0x0b0(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x0b8(SB)/8, $0x0404040404040404 +DATA LCDATA6<>+0x0c0(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x0c8(SB)/8, $0x0808080808080808 +DATA LCDATA6<>+0x0d0(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x0d8(SB)/8, $0x1010101010101010 +DATA LCDATA6<>+0x0e0(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x0e8(SB)/8, $0x2020202020202020 +DATA LCDATA6<>+0x0f0(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x0f8(SB)/8, $0x4040404040404040 +DATA LCDATA6<>+0x100(SB)/8, $0xffffffffffffffff +DATA LCDATA6<>+0x108(SB)/8, $0xffffffffffffffff +GLOBL LCDATA6<>(SB), 8, $272 + +TEXT ·_comparison_greater_scalar_arr_sse4(SB), $360-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 336(SP) + LEAQ LCDATA6<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB8_16 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB8_31 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB8_81 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB8_92 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB8_182 + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_7: + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0xf619 // sbb esi, esi + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_7 + LONG $0x01c68349 // add r14, 1 + +LBB8_9: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_13 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + +LBB8_11: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd7970f40 // seta dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd6970f41 // seta r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd3970f41 // seta r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd6970f40 // seta sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd0970f41 // seta r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd1970f41 // seta r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd2970f41 // seta r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd4970f41 // seta r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd7970f41 // seta r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x2414970f // seta byte [rsp] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x240cb60f // movzx ecx, byte [rsp] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_11 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + +LBB8_13: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_162 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_164 + +LBB8_16: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB8_45 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB8_104 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB8_115 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB8_182 + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_24 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_22: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x08c28348 // add rdx, 8 + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_22 + LONG $0x01c68349 // add r14, 1 + +LBB8_24: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_28 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB8_26: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0xd0970f41 // seta r8b + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0xd6970f41 // seta r14b + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0xd5970f41 // seta r13b + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd3970f41 // seta r11b + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + LONG $0xd6970f40 // seta sil + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0xd7970f40 // seta dil + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd1970f41 // seta r9b + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0xd2970f41 // seta r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0xd4970f41 // seta r12b + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x970f; BYTE $0xd1 // seta cl + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + LONG $0xd7970f41 // seta r15b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + LONG $0x2414970f // seta byte [rsp] + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x78 // add r8b, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x68 // add sil, byte [rsp + 104] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x240cb60f // movzx ecx, byte [rsp] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB8_26 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + +LBB8_28: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_166 + WORD $0xff31 // xor edi, edi + JMP LBB8_168 + +LBB8_31: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB8_58 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB8_182 + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_37 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_35: + WORD $0x3a44; BYTE $0x1a // cmp r11b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_35 + LONG $0x01c68349 // add r14, 1 + +LBB8_37: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_127 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x241c8844 // mov byte [rsp], r11b + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x0000010024bc894c // mov qword [rsp + 256], r15 + JB LBB8_41 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB8_191 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB8_191 + +LBB8_41: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x2474894c; BYTE $0x58 // mov qword [rsp + 88], r14 + +LBB8_42: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000000e824b42b4c // sub r14, qword [rsp + 232] + QUAD $0x000000d024b4894c // mov qword [rsp + 208], r14 + +LBB8_43: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3a44; BYTE $0x1e // cmp r11b, byte [rsi] + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x015e3a44 // cmp r11b, byte [rsi + 1] + LONG $0xd79f0f40 // setg dil + LONG $0x025e3a44 // cmp r11b, byte [rsi + 2] + LONG $0xd39f0f41 // setg r11b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x03 // cmp al, byte [rsi + 3] + LONG $0xd79f0f41 // setg r15b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x04 // cmp al, byte [rsi + 4] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x05 // cmp al, byte [rsi + 5] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x06 // cmp al, byte [rsi + 6] + WORD $0x9f0f; BYTE $0xd3 // setg bl + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x07 // cmp al, byte [rsi + 7] + LONG $0xd59f0f41 // setg r13b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x08 // cmp al, byte [rsi + 8] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x09 // cmp al, byte [rsi + 9] + LONG $0xd69f0f40 // setg sil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0a // cmp al, byte [rcx + 10] + LONG $0xd09f0f41 // setg r8b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0b // cmp al, byte [rcx + 11] + LONG $0xd19f0f41 // setg r9b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0c // cmp al, byte [rcx + 12] + LONG $0xd69f0f41 // setg r14b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0d // cmp al, byte [rcx + 13] + LONG $0xd49f0f41 // setg r12b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0e // cmp al, byte [rcx + 14] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0f // cmp al, byte [rcx + 15] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x10 // cmp dl, byte [rcx + 16] + QUAD $0x000000b024949f0f // setg byte [rsp + 176] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x11 // cmp dl, byte [rcx + 17] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x12 // cmp dl, byte [rcx + 18] + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x13 // cmp dl, byte [rcx + 19] + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x14 // cmp dl, byte [rcx + 20] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x15 // cmp dl, byte [rcx + 21] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x16 // cmp dl, byte [rcx + 22] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x17 // cmp dl, byte [rcx + 23] + LONG $0xd29f0f41 // setg r10b + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0841; BYTE $0xfb // or r11b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x1cb60f44; BYTE $0x24 // movzx r11d, byte [rsp] + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x245cb60f; BYTE $0x78 // movzx ebx, byte [rsp + 120] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xfb // or bl, r15b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x0841; BYTE $0xdd // or r13b, bl + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xdb00 // add bl, bl + LONG $0xb0249c02; WORD $0x0000; BYTE $0x00 // add bl, byte [rsp + 176] + WORD $0xde89 // mov esi, ebx + QUAD $0x00000090249cb60f // movzx ebx, byte [rsp + 144] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x000000a0249cb60f // movzx ebx, byte [rsp + 160] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + WORD $0x8844; BYTE $0x2f // mov byte [rdi], r13b + LONG $0x2474b60f; BYTE $0x48 // movzx esi, byte [rsp + 72] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xf2 // or r10b, sil + WORD $0x4788; BYTE $0x01 // mov byte [rdi + 1], al + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02578844 // mov byte [rdi + 2], r10b + WORD $0x5788; BYTE $0x03 // mov byte [rdi + 3], dl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c78348 // add rdi, 4 + LONG $0x247c8948; BYTE $0x58 // mov qword [rsp + 88], rdi + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_43 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + JMP LBB8_128 + +LBB8_45: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB8_70 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB8_182 + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_51 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_49: + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0xf619 // sbb esi, esi + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_49 + LONG $0x01c68349 // add r14, 1 + +LBB8_51: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_55 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + +LBB8_53: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd7970f40 // seta dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd6970f41 // seta r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd3970f41 // seta r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd6970f40 // seta sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd0970f41 // seta r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd1970f41 // seta r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd2970f41 // seta r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd4970f41 // seta r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd7970f41 // seta r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x2414970f // seta byte [rsp] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x240cb60f // movzx ecx, byte [rsp] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_53 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + +LBB8_55: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_143 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_145 + +LBB8_58: + WORD $0x8a44; BYTE $0x1e // mov r11b, byte [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_62 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_60: + WORD $0x3844; BYTE $0x1a // cmp byte [rdx], r11b + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0xf619 // sbb esi, esi + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_60 + LONG $0x01c68349 // add r14, 1 + +LBB8_62: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_131 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x241c8844 // mov byte [rsp], r11b + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x0000010024bc894c // mov qword [rsp + 256], r15 + JB LBB8_66 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB8_194 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB8_194 + +LBB8_66: + WORD $0xc031 // xor eax, eax + QUAD $0x000000e824848948 // mov qword [rsp + 232], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + +LBB8_67: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000000e824b42b4c // sub r14, qword [rsp + 232] + QUAD $0x000000d024b4894c // mov qword [rsp + 208], r14 + +LBB8_68: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3a44; BYTE $0x1e // cmp r11b, byte [rsi] + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x015e3a44 // cmp r11b, byte [rsi + 1] + LONG $0xd7970f40 // seta dil + LONG $0x025e3a44 // cmp r11b, byte [rsi + 2] + LONG $0xd3970f41 // seta r11b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x03 // cmp al, byte [rsi + 3] + LONG $0xd7970f41 // seta r15b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x04 // cmp al, byte [rsi + 4] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x05 // cmp al, byte [rsi + 5] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x06 // cmp al, byte [rsi + 6] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x07 // cmp al, byte [rsi + 7] + LONG $0xd5970f41 // seta r13b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x08 // cmp al, byte [rsi + 8] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x463a; BYTE $0x09 // cmp al, byte [rsi + 9] + LONG $0xd6970f40 // seta sil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0a // cmp al, byte [rcx + 10] + LONG $0xd0970f41 // seta r8b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0b // cmp al, byte [rcx + 11] + LONG $0xd1970f41 // seta r9b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0c // cmp al, byte [rcx + 12] + LONG $0xd6970f41 // seta r14b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0d // cmp al, byte [rcx + 13] + LONG $0xd4970f41 // seta r12b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0e // cmp al, byte [rcx + 14] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x413a; BYTE $0x0f // cmp al, byte [rcx + 15] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x10 // cmp dl, byte [rcx + 16] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x11 // cmp dl, byte [rcx + 17] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x12 // cmp dl, byte [rcx + 18] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x13 // cmp dl, byte [rcx + 19] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x14 // cmp dl, byte [rcx + 20] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x15 // cmp dl, byte [rcx + 21] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x16 // cmp dl, byte [rcx + 22] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x17 // cmp dl, byte [rcx + 23] + LONG $0xd2970f41 // seta r10b + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x18 // cmp dl, byte [rcx + 24] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x19 // cmp dl, byte [rcx + 25] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1a // cmp dl, byte [rcx + 26] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1b // cmp dl, byte [rcx + 27] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1c // cmp dl, byte [rcx + 28] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1d // cmp dl, byte [rcx + 29] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1e // cmp dl, byte [rcx + 30] + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x2414b60f // movzx edx, byte [rsp] + WORD $0x513a; BYTE $0x1f // cmp dl, byte [rcx + 31] + WORD $0x970f; BYTE $0xd2 // seta dl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xdd // or r13b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0841; BYTE $0xfb // or r11b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x1cb60f44; BYTE $0x24 // movzx r11d, byte [rsp] + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x245cb60f; BYTE $0x78 // movzx ebx, byte [rsp + 120] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xfb // or bl, r15b + WORD $0xde89 // mov esi, ebx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x245cb60f; BYTE $0x38 // movzx ebx, byte [rsp + 56] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xce // or r14b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x0841; BYTE $0xdd // or r13b, bl + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x245cb60f; BYTE $0x60 // movzx ebx, byte [rsp + 96] + WORD $0xdb00 // add bl, bl + LONG $0xb0249c02; WORD $0x0000; BYTE $0x00 // add bl, byte [rsp + 176] + WORD $0xde89 // mov esi, ebx + QUAD $0x00000090249cb60f // movzx ebx, byte [rsp + 144] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + QUAD $0x000000a0249cb60f // movzx ebx, byte [rsp + 160] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + WORD $0x8844; BYTE $0x2f // mov byte [rdi], r13b + LONG $0x2474b60f; BYTE $0x50 // movzx esi, byte [rsp + 80] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xf2 // or r10b, sil + WORD $0x4788; BYTE $0x01 // mov byte [rdi + 1], al + WORD $0x0841; BYTE $0xda // or r10b, bl + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x40244402 // add al, byte [rsp + 64] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02578844 // mov byte [rdi + 2], r10b + WORD $0x5788; BYTE $0x03 // mov byte [rdi + 3], dl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c78348 // add rdi, 4 + LONG $0x247c8948; BYTE $0x30 // mov qword [rsp + 48], rdi + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_68 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + JMP LBB8_132 + +LBB8_70: + WORD $0x8b44; BYTE $0x2e // mov r13d, dword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_74 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_72: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x36 // movzx r8d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_72 + LONG $0x01c68349 // add r14, 1 + +LBB8_74: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_78 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + +LBB8_76: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0xd79f0f40 // setg dil + LONG $0x086a3b44 // cmp r13d, dword [rdx + 8] + LONG $0xd69f0f41 // setg r14b + LONG $0x0c6a3b44 // cmp r13d, dword [rdx + 12] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x106a3b44 // cmp r13d, dword [rdx + 16] + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x146a3b44 // cmp r13d, dword [rdx + 20] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x186a3b44 // cmp r13d, dword [rdx + 24] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x1c6a3b44 // cmp r13d, dword [rdx + 28] + LONG $0xd39f0f41 // setg r11b + LONG $0x206a3b44 // cmp r13d, dword [rdx + 32] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x246a3b44 // cmp r13d, dword [rdx + 36] + LONG $0xd69f0f40 // setg sil + LONG $0x286a3b44 // cmp r13d, dword [rdx + 40] + LONG $0xd09f0f41 // setg r8b + LONG $0x2c6a3b44 // cmp r13d, dword [rdx + 44] + LONG $0xd19f0f41 // setg r9b + LONG $0x306a3b44 // cmp r13d, dword [rdx + 48] + LONG $0xd29f0f41 // setg r10b + LONG $0x346a3b44 // cmp r13d, dword [rdx + 52] + LONG $0xd49f0f41 // setg r12b + LONG $0x386a3b44 // cmp r13d, dword [rdx + 56] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x3c6a3b44 // cmp r13d, dword [rdx + 60] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x406a3b44 // cmp r13d, dword [rdx + 64] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x446a3b44 // cmp r13d, dword [rdx + 68] + QUAD $0x000000b024949f0f // setg byte [rsp + 176] + LONG $0x486a3b44 // cmp r13d, dword [rdx + 72] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x4c6a3b44 // cmp r13d, dword [rdx + 76] + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x506a3b44 // cmp r13d, dword [rdx + 80] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x546a3b44 // cmp r13d, dword [rdx + 84] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x586a3b44 // cmp r13d, dword [rdx + 88] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x5c6a3b44 // cmp r13d, dword [rdx + 92] + LONG $0xd79f0f41 // setg r15b + LONG $0x606a3b44 // cmp r13d, dword [rdx + 96] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x646a3b44 // cmp r13d, dword [rdx + 100] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x686a3b44 // cmp r13d, dword [rdx + 104] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x6c6a3b44 // cmp r13d, dword [rdx + 108] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x706a3b44 // cmp r13d, dword [rdx + 112] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x746a3b44 // cmp r13d, dword [rdx + 116] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x786a3b44 // cmp r13d, dword [rdx + 120] + LONG $0x24149f0f // setg byte [rsp] + LONG $0x7c6a3b44 // cmp r13d, dword [rdx + 124] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x240cb60f // movzx ecx, byte [rsp] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_76 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + +LBB8_78: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_147 + WORD $0xff31 // xor edi, edi + JMP LBB8_149 + +LBB8_81: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_85 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_83: + LONG $0x2a394466 // cmp word [rdx], r13w + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0xf619 // sbb esi, esi + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_83 + LONG $0x01c68349 // add r14, 1 + +LBB8_85: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_89 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + +LBB8_87: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x6a3b4466; BYTE $0x02 // cmp r13w, word [rdx + 2] + LONG $0xd7970f40 // seta dil + LONG $0x6a3b4466; BYTE $0x04 // cmp r13w, word [rdx + 4] + LONG $0xd6970f41 // seta r14b + LONG $0x6a3b4466; BYTE $0x06 // cmp r13w, word [rdx + 6] + QUAD $0x000000c02494970f // seta byte [rsp + 192] + LONG $0x6a3b4466; BYTE $0x08 // cmp r13w, word [rdx + 8] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x6a3b4466; BYTE $0x0a // cmp r13w, word [rdx + 10] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x6a3b4466; BYTE $0x0c // cmp r13w, word [rdx + 12] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x6a3b4466; BYTE $0x0e // cmp r13w, word [rdx + 14] + LONG $0xd3970f41 // seta r11b + LONG $0x6a3b4466; BYTE $0x10 // cmp r13w, word [rdx + 16] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x6a3b4466; BYTE $0x12 // cmp r13w, word [rdx + 18] + LONG $0xd6970f40 // seta sil + LONG $0x6a3b4466; BYTE $0x14 // cmp r13w, word [rdx + 20] + LONG $0xd0970f41 // seta r8b + LONG $0x6a3b4466; BYTE $0x16 // cmp r13w, word [rdx + 22] + LONG $0xd1970f41 // seta r9b + LONG $0x6a3b4466; BYTE $0x18 // cmp r13w, word [rdx + 24] + LONG $0xd2970f41 // seta r10b + LONG $0x6a3b4466; BYTE $0x1a // cmp r13w, word [rdx + 26] + LONG $0xd4970f41 // seta r12b + LONG $0x6a3b4466; BYTE $0x1c // cmp r13w, word [rdx + 28] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x6a3b4466; BYTE $0x1e // cmp r13w, word [rdx + 30] + WORD $0x970f; BYTE $0xd1 // seta cl + LONG $0x6a3b4466; BYTE $0x20 // cmp r13w, word [rdx + 32] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x6a3b4466; BYTE $0x22 // cmp r13w, word [rdx + 34] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x6a3b4466; BYTE $0x24 // cmp r13w, word [rdx + 36] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x6a3b4466; BYTE $0x26 // cmp r13w, word [rdx + 38] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x6a3b4466; BYTE $0x28 // cmp r13w, word [rdx + 40] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x6a3b4466; BYTE $0x2a // cmp r13w, word [rdx + 42] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x6a3b4466; BYTE $0x2c // cmp r13w, word [rdx + 44] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x6a3b4466; BYTE $0x2e // cmp r13w, word [rdx + 46] + LONG $0xd7970f41 // seta r15b + LONG $0x6a3b4466; BYTE $0x30 // cmp r13w, word [rdx + 48] + LONG $0x2414970f // seta byte [rsp] + LONG $0x6a3b4466; BYTE $0x32 // cmp r13w, word [rdx + 50] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x6a3b4466; BYTE $0x34 // cmp r13w, word [rdx + 52] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6a3b4466; BYTE $0x36 // cmp r13w, word [rdx + 54] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x6a3b4466; BYTE $0x38 // cmp r13w, word [rdx + 56] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x6a3b4466; BYTE $0x3a // cmp r13w, word [rdx + 58] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x6a3b4466; BYTE $0x3c // cmp r13w, word [rdx + 60] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x6a3b4466; BYTE $0x3e // cmp r13w, word [rdx + 62] + WORD $0x970f; BYTE $0xd3 // seta bl + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x60 // add dil, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x38 // add sil, byte [rsp + 56] + QUAD $0x000000c02484b60f // movzx eax, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x70 // movzx esi, byte [rsp + 112] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc689 // mov esi, eax + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x48 // movzx esi, byte [rsp + 72] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xc000 // add al, al + WORD $0x0402; BYTE $0x24 // add al, byte [rsp] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_87 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + +LBB8_89: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_170 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB8_172 + +LBB8_92: + LONG $0x2eb70f44 // movzx r13d, word [rsi] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_96 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_94: + LONG $0x2a3b4466 // cmp r13w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_94 + LONG $0x01c68349 // add r14, 1 + +LBB8_96: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_135 + LONG $0x08ff8349 // cmp r15, 8 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f024bc894c // mov qword [rsp + 240], r15 + JB LBB8_100 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB8_197 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB8_197 + +LBB8_100: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB8_101: + LONG $0x2424894c // mov qword [rsp], r12 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x24742b4c; BYTE $0x20 // sub r14, qword [rsp + 32] + QUAD $0x000000d024b4894c // mov qword [rsp + 208], r14 + +LBB8_102: + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0xd79f0f40 // setg dil + LONG $0x6e3b4466; BYTE $0x04 // cmp r13w, word [rsi + 4] + LONG $0xd69f0f41 // setg r14b + LONG $0x6e3b4466; BYTE $0x06 // cmp r13w, word [rsi + 6] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x6e3b4466; BYTE $0x08 // cmp r13w, word [rsi + 8] + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x6e3b4466; BYTE $0x0a // cmp r13w, word [rsi + 10] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x6e3b4466; BYTE $0x0c // cmp r13w, word [rsi + 12] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x6e3b4466; BYTE $0x0e // cmp r13w, word [rsi + 14] + LONG $0xd29f0f41 // setg r10b + LONG $0x6e3b4466; BYTE $0x10 // cmp r13w, word [rsi + 16] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x6e3b4466; BYTE $0x12 // cmp r13w, word [rsi + 18] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x6e3b4466; BYTE $0x14 // cmp r13w, word [rsi + 20] + WORD $0x9f0f; BYTE $0xd2 // setg dl + LONG $0x6e3b4466; BYTE $0x16 // cmp r13w, word [rsi + 22] + LONG $0xd69f0f40 // setg sil + LONG $0x6b3b4566; BYTE $0x18 // cmp r13w, word [r11 + 24] + LONG $0xd19f0f41 // setg r9b + LONG $0x6b3b4566; BYTE $0x1a // cmp r13w, word [r11 + 26] + LONG $0xd49f0f41 // setg r12b + LONG $0x6b3b4566; BYTE $0x1c // cmp r13w, word [r11 + 28] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x6b3b4566; BYTE $0x1e // cmp r13w, word [r11 + 30] + LONG $0xd09f0f41 // setg r8b + LONG $0x6b3b4566; BYTE $0x20 // cmp r13w, word [r11 + 32] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x6b3b4566; BYTE $0x22 // cmp r13w, word [r11 + 34] + QUAD $0x000000b024949f0f // setg byte [rsp + 176] + LONG $0x6b3b4566; BYTE $0x24 // cmp r13w, word [r11 + 36] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x6b3b4566; BYTE $0x26 // cmp r13w, word [r11 + 38] + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0x6b3b4566; BYTE $0x28 // cmp r13w, word [r11 + 40] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0x6b3b4566; BYTE $0x2a // cmp r13w, word [r11 + 42] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0x6b3b4566; BYTE $0x2c // cmp r13w, word [r11 + 44] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0x6b3b4566; BYTE $0x2e // cmp r13w, word [r11 + 46] + LONG $0xd79f0f41 // setg r15b + LONG $0x6b3b4566; BYTE $0x30 // cmp r13w, word [r11 + 48] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0x6b3b4566; BYTE $0x32 // cmp r13w, word [r11 + 50] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0x6b3b4566; BYTE $0x34 // cmp r13w, word [r11 + 52] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0x6b3b4566; BYTE $0x36 // cmp r13w, word [r11 + 54] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0x6b3b4566; BYTE $0x38 // cmp r13w, word [r11 + 56] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0x6b3b4566; BYTE $0x3a // cmp r13w, word [r11 + 58] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0x6b3b4566; BYTE $0x3c // cmp r13w, word [r11 + 60] + QUAD $0x0000008024949f0f // setg byte [rsp + 128] + LONG $0x6b3b4566; BYTE $0x3e // cmp r13w, word [r11 + 62] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xc2 // or r10b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xc900 // add cl, cl + LONG $0x70244c02 // add cl, byte [rsp + 112] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xca08 // or dl, cl + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e6c040 // shl sil, 3 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e1c041 // shl r9b, 4 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xcc // or r12b, r9b + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0845; BYTE $0xe0 // or r8b, r12b + QUAD $0x000000b0248cb60f // movzx ecx, byte [rsp + 176] + WORD $0xc900 // add cl, cl + LONG $0x58244c02 // add cl, byte [rsp + 88] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + QUAD $0x000000a0248cb60f // movzx ecx, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xce89 // mov esi, ecx + LONG $0x240c8b48 // mov rcx, qword [rsp] + WORD $0x8844; BYTE $0x11 // mov byte [rcx], r10b + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x01418844 // mov byte [rcx + 1], r8b + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xd308 // or bl, dl + WORD $0xc308 // or bl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5988; BYTE $0x03 // mov byte [rcx + 3], bl + LONG $0x40738d49 // lea rsi, [r11 + 64] + LONG $0x04c18348 // add rcx, 4 + LONG $0x240c8948 // mov qword [rsp], rcx + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_102 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + LONG $0x24248b4c // mov r12, qword [rsp] + JMP LBB8_136 + +LBB8_104: + WORD $0x8b4c; BYTE $0x2e // mov r13, qword [rsi] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_108 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_106: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x36 // movzx r8d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_106 + LONG $0x01c68349 // add r14, 1 + +LBB8_108: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_112 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000f0249c894c // mov qword [rsp + 240], r11 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + +LBB8_110: + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + QUAD $0x000000c024949f0f // setg byte [rsp + 192] + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0xd79f0f40 // setg dil + LONG $0x106a3b4c // cmp r13, qword [rdx + 16] + LONG $0xd69f0f41 // setg r14b + LONG $0x186a3b4c // cmp r13, qword [rdx + 24] + LONG $0x24549f0f; BYTE $0x78 // setg byte [rsp + 120] + LONG $0x206a3b4c // cmp r13, qword [rdx + 32] + QUAD $0x0000009024949f0f // setg byte [rsp + 144] + LONG $0x286a3b4c // cmp r13, qword [rdx + 40] + LONG $0x24549f0f; BYTE $0x48 // setg byte [rsp + 72] + LONG $0x306a3b4c // cmp r13, qword [rdx + 48] + WORD $0x9f0f; BYTE $0xd0 // setg al + LONG $0x386a3b4c // cmp r13, qword [rdx + 56] + LONG $0xd39f0f41 // setg r11b + LONG $0x406a3b4c // cmp r13, qword [rdx + 64] + LONG $0x24549f0f; BYTE $0x70 // setg byte [rsp + 112] + LONG $0x486a3b4c // cmp r13, qword [rdx + 72] + LONG $0xd69f0f40 // setg sil + LONG $0x506a3b4c // cmp r13, qword [rdx + 80] + LONG $0xd09f0f41 // setg r8b + LONG $0x586a3b4c // cmp r13, qword [rdx + 88] + LONG $0xd19f0f41 // setg r9b + LONG $0x606a3b4c // cmp r13, qword [rdx + 96] + LONG $0xd29f0f41 // setg r10b + LONG $0x686a3b4c // cmp r13, qword [rdx + 104] + LONG $0xd49f0f41 // setg r12b + LONG $0x706a3b4c // cmp r13, qword [rdx + 112] + LONG $0x24549f0f; BYTE $0x68 // setg byte [rsp + 104] + LONG $0x786a3b4c // cmp r13, qword [rdx + 120] + WORD $0x9f0f; BYTE $0xd1 // setg cl + LONG $0x80aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 128] + LONG $0x24549f0f; BYTE $0x58 // setg byte [rsp + 88] + LONG $0x88aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 136] + QUAD $0x000000b024949f0f // setg byte [rsp + 176] + LONG $0x90aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 144] + LONG $0x24549f0f; BYTE $0x60 // setg byte [rsp + 96] + LONG $0x98aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 152] + QUAD $0x000000a024949f0f // setg byte [rsp + 160] + LONG $0xa0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 160] + LONG $0x24549f0f; BYTE $0x50 // setg byte [rsp + 80] + LONG $0xa8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 168] + LONG $0x24549f0f; BYTE $0x38 // setg byte [rsp + 56] + LONG $0xb0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 176] + LONG $0x24549f0f; BYTE $0x40 // setg byte [rsp + 64] + LONG $0xb8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 184] + LONG $0xd79f0f41 // setg r15b + LONG $0xc0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 192] + LONG $0x24549f0f; BYTE $0x18 // setg byte [rsp + 24] + LONG $0xc8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 200] + LONG $0x24549f0f; BYTE $0x28 // setg byte [rsp + 40] + LONG $0xd0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 208] + LONG $0x24549f0f; BYTE $0x30 // setg byte [rsp + 48] + LONG $0xd8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 216] + LONG $0x24549f0f; BYTE $0x20 // setg byte [rsp + 32] + LONG $0xe0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 224] + LONG $0x24549f0f; BYTE $0x08 // setg byte [rsp + 8] + LONG $0xe8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 232] + LONG $0x24549f0f; BYTE $0x10 // setg byte [rsp + 16] + LONG $0xf0aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 240] + LONG $0x24149f0f // setg byte [rsp] + LONG $0xf8aa3b4c; WORD $0x0000; BYTE $0x00 // cmp r13, qword [rdx + 248] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000c024bc0240 // add dil, byte [rsp + 192] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + WORD $0xc789 // mov edi, eax + LONG $0x02e0c041 // shl r8b, 2 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf8 // or al, dil + WORD $0xc789 // mov edi, eax + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf8 // or al, dil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + LONG $0x2474b60f; BYTE $0x68 // movzx esi, byte [rsp + 104] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xc3 // or r11b, al + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x40 // movzx esi, byte [rsp + 64] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xc7 // or r15b, al + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x240cb60f // movzx ecx, byte [rsp] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xcb08 // or bl, cl + WORD $0xc308 // or bl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x035e8841 // mov byte [r14 + 3], bl + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB8_110 + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + +LBB8_112: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_175 + WORD $0xff31 // xor edi, edi + JMP LBB8_177 + +LBB8_115: + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB8_119 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB8_117: + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + WORD $0x970f; BYTE $0xd3 // seta bl + LONG $0x04c28348 // add rdx, 4 + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x363c8841 // mov byte [r14 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB8_117 + LONG $0x01c68349 // add r14, 1 + +LBB8_119: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB8_139 + LONG $0x04fb8349 // cmp r11, 4 + JB LBB8_123 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB8_200 + LONG $0x9e048d4b // lea rax, [r14 + 4*r11] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB8_200 + +LBB8_123: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB8_124: + LONG $0x243c894c // mov qword [rsp], r15 + QUAD $0x000000882494894c // mov qword [rsp + 136], r10 + QUAD $0x000000d0249c894c // mov qword [rsp + 208], r11 + WORD $0x294d; BYTE $0xc3 // sub r11, r8 + QUAD $0x000000c0249c894c // mov qword [rsp + 192], r11 + +LBB8_125: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + LONG $0x2454970f; BYTE $0x78 // seta byte [rsp + 120] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0970f41 // seta r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6970f41 // seta r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5970f41 // seta r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + QUAD $0x000000902494970f // seta byte [rsp + 144] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454970f; BYTE $0x48 // seta byte [rsp + 72] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x970f; BYTE $0xd0 // seta al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3970f41 // seta r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + LONG $0x2454970f; BYTE $0x68 // seta byte [rsp + 104] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x970f; BYTE $0xd2 // seta dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6970f40 // seta sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd7970f40 // seta dil + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2970f41 // seta r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4970f41 // seta r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + QUAD $0x000000b02494970f // seta byte [rsp + 176] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd1970f41 // seta r9b + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454970f; BYTE $0x58 // seta byte [rsp + 88] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + LONG $0x2454970f; BYTE $0x70 // seta byte [rsp + 112] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + LONG $0x2454970f; BYTE $0x60 // seta byte [rsp + 96] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + QUAD $0x000000a02494970f // seta byte [rsp + 160] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454970f; BYTE $0x50 // seta byte [rsp + 80] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + LONG $0x2454970f; BYTE $0x38 // seta byte [rsp + 56] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454970f; BYTE $0x40 // seta byte [rsp + 64] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7970f41 // seta r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454970f; BYTE $0x18 // seta byte [rsp + 24] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454970f; BYTE $0x28 // seta byte [rsp + 40] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454970f; BYTE $0x30 // seta byte [rsp + 48] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454970f; BYTE $0x20 // seta byte [rsp + 32] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454970f; BYTE $0x08 // seta byte [rsp + 8] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454970f; BYTE $0x10 // seta byte [rsp + 16] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + QUAD $0x000000802494970f // seta byte [rsp + 128] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x970f; BYTE $0xd1 // seta cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x78 // add r8b, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0x68245402 // add dl, byte [rsp + 104] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000b024b4b60f // movzx esi, byte [rsp + 176] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x58244402 // add al, byte [rsp + 88] + LONG $0x2454b60f; BYTE $0x60 // movzx edx, byte [rsp + 96] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000a02494b60f // movzx edx, byte [rsp + 160] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x38 // movzx edx, byte [rsp + 56] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24348b48 // mov rsi, qword [rsp] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + LONG $0x247cb60f; BYTE $0x40 // movzx edi, byte [rsp + 64] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24348948 // mov qword [rsp], rsi + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB8_125 + LONG $0x243c8b4c // mov r15, qword [rsp] + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + QUAD $0x000000d0249c8b4c // mov r11, qword [rsp + 208] + JMP LBB8_140 + +LBB8_127: + LONG $0x2474894c; BYTE $0x58 // mov qword [rsp + 88], r14 + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB8_128: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_151 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB8_154 + +LBB8_131: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB8_132: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_156 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB8_159 + +LBB8_135: + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + WORD $0x8948; BYTE $0xd6 // mov rsi, rdx + +LBB8_136: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB8_183 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + JMP LBB8_185 + +LBB8_139: + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + +LBB8_140: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB8_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB8_187 + WORD $0xf631 // xor esi, esi + JMP LBB8_189 + +LBB8_143: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB8_144: + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x36 // movzx r10d, byte [r14 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x36048841 // mov byte [r14 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086a394c // cmp qword [rdx + 8], r13 + LONG $0x10528d48 // lea rdx, [rdx + 16] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x361c8841 // mov byte [r14 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_144 + +LBB8_145: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x394c; BYTE $0x2a // cmp qword [rdx], r13 + JMP LBB8_174 + +LBB8_147: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB8_148: + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x046a3b44 // cmp r13d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd19f0f41 // setg r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_148 + +LBB8_149: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x3b44; BYTE $0x2a // cmp r13d, dword [rdx] + JMP LBB8_179 + +LBB8_151: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + +LBB8_152: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3a46 // cmp r11b, byte [rsi + r9] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3a44; BYTE $0x01 // cmp r11b, byte [rsi + rax + 1] + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x9f0f; BYTE $0xd3 // setg bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB8_152 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB8_154: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x3a44; BYTE $0x1e // cmp r11b, byte [rsi] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + JMP LBB8_161 + +LBB8_156: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + +LBB8_157: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + LONG $0x03ebc148 // shr rbx, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0x2040; BYTE $0xfa // and dl, dil + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x1e148841 // mov byte [r14 + rbx], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xd7 // xor dil, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0xd030 // xor al, dl + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB8_157 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB8_159: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + +LBB8_161: + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB8_182 + +LBB8_162: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB8_163: + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x36 // movzx r10d, byte [r14 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x36048841 // mov byte [r14 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046a3944 // cmp dword [rdx + 4], r13d + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x361c8841 // mov byte [r14 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_163 + +LBB8_164: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x3944; BYTE $0x2a // cmp dword [rdx], r13d + JMP LBB8_174 + +LBB8_166: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB8_167: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0xd1970f41 // seta r9b + LONG $0x10c28348 // add rdx, 16 + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_167 + +LBB8_168: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + WORD $0x970f; BYTE $0xd0 // seta al + JMP LBB8_180 + +LBB8_170: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB8_171: + LONG $0x2a394466 // cmp word [rdx], r13w + WORD $0xff19 // sbb edi, edi + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x36 // movzx r10d, byte [r14 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x36048841 // mov byte [r14 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6a394466; BYTE $0x02 // cmp word [rdx + 2], r13w + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0xff19 // sbb edi, edi + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x361c8841 // mov byte [r14 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB8_171 + +LBB8_172: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + LONG $0x2a394466 // cmp word [rdx], r13w + +LBB8_174: + WORD $0xc019 // sbb eax, eax + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB8_181 + +LBB8_175: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB8_176: + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x36 // movzx r9d, byte [r14 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x361c8841 // mov byte [r14 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x086a3b4c // cmp r13, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd19f0f41 // setg r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x36048841 // mov byte [r14 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB8_176 + +LBB8_177: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x3b4c; BYTE $0x2a // cmp r13, qword [rdx] + +LBB8_179: + WORD $0x9f0f; BYTE $0xd0 // setg al + +LBB8_180: + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB8_181: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB8_182: + MOVQ 336(SP), SP + RET + +LBB8_183: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + +LBB8_184: + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68349 // add r14, 2 + LONG $0x6e3b4466; BYTE $0x02 // cmp r13w, word [rsi + 2] + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9f0f; BYTE $0xd2 // setg dl + WORD $0xdaf6 // neg dl + WORD $0xda30 // xor dl, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd020 // and al, dl + WORD $0xd830 // xor al, bl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x394d; BYTE $0xf1 // cmp r9, r14 + JNE LBB8_184 + +LBB8_185: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + LONG $0x2e3b4466 // cmp r13w, word [rsi] + WORD $0x9f0f; BYTE $0xd0 // setg al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68041 // and r14b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xf1 // mov ecx, r14d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB8_182 + +LBB8_187: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xfb // mov r11, r15 + +LBB8_188: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x970f; BYTE $0xd2 // seta dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3b048841 // mov byte [r11 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd1970f41 // seta r9b + LONG $0x08c38348 // add rbx, 8 + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3b148841 // mov byte [r11 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB8_188 + +LBB8_189: + LONG $0x01c0f641 // test r8b, 1 + JE LBB8_182 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0x970f; BYTE $0xd0 // seta al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x173c8a41 // mov dil, byte [r15 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + JMP LBB8_182 + +LBB8_191: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + QUAD $0x000000e824bc894c // mov qword [rsp + 232], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x58 // mov qword [rsp + 88], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000120248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + +LBB8_192: + WORD $0x8949; BYTE $0xc1 // mov r9, rax + LONG $0x24448948; BYTE $0x78 // mov qword [rsp + 120], rax + LONG $0x05e0c148 // shl rax, 5 + LONG $0x24448948; BYTE $0x40 // mov qword [rsp + 64], rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8949; BYTE $0xc6 // mov r14, rax + WORD $0x8949; BYTE $0xc5 // mov r13, rax + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + LONG $0x020cb60f // movzx ecx, byte [rdx + rax] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x024cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rax + 1] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x024cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rax + 2] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x024cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rax + 3] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x024cb60f; BYTE $0x04 // movzx ecx, byte [rdx + rax + 4] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x024cb60f; BYTE $0x05 // movzx ecx, byte [rdx + rax + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x024cb60f; BYTE $0x06 // movzx ecx, byte [rdx + rax + 6] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + LONG $0x024cb60f; BYTE $0x07 // movzx ecx, byte [rdx + rax + 7] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x024cb60f; BYTE $0x08 // movzx ecx, byte [rdx + rax + 8] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x024cb60f; BYTE $0x09 // movzx ecx, byte [rdx + rax + 9] + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0x024cb60f; BYTE $0x0a // movzx ecx, byte [rdx + rax + 10] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x024cb60f; BYTE $0x0b // movzx ecx, byte [rdx + rax + 11] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x024cb60f; BYTE $0x0c // movzx ecx, byte [rdx + rax + 12] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x024cb60f; BYTE $0x10 // movzx ecx, byte [rdx + rax + 16] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x024cb60f; BYTE $0x18 // movzx ecx, byte [rdx + rax + 24] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x20c98348 // or rcx, 32 + LONG $0x244c8948; BYTE $0x10 // mov qword [rsp + 16], rcx + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + LONG $0x40c88349 // or r8, 64 + LONG $0x2444894c; BYTE $0x40 // mov qword [rsp + 64], r8 + LONG $0x60cb8349 // or r11, 96 + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xa0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 160 + QUAD $0x000000a024a4894c // mov qword [rsp + 160], r12 + LONG $0xc0ce8149; WORD $0x0000; BYTE $0x00 // or r14, 192 + QUAD $0x0000009024b4894c // mov qword [rsp + 144], r14 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0xe0cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 224 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x246c894c; BYTE $0x20 // mov qword [rsp + 32], r13 + LONG $0x20ca8149; WORD $0x0001; BYTE $0x00 // or r10, 288 + LONG $0x40cf8149; WORD $0x0001; BYTE $0x00 // or r15, 320 + LONG $0x60cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 352 + QUAD $0x00018048244c8148; BYTE $0x00 // or qword [rsp + 72], 384 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0xa0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 416 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + LONG $0xc0ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 448 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0xe0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 480 + LONG $0x244c8948; BYTE $0x30 // mov qword [rsp + 48], rcx + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x010204203a0f4466 // pinsrb xmm8, byte [rdx + rax], 1 + QUAD $0x020204203a0f4666 // pinsrb xmm8, byte [rdx + r8], 2 + QUAD $0x031a04203a0f4666 // pinsrb xmm8, byte [rdx + r11], 3 + QUAD $0x040a04203a0f4666 // pinsrb xmm8, byte [rdx + r9], 4 + QUAD $0x052204203a0f4666 // pinsrb xmm8, byte [rdx + r12], 5 + QUAD $0x063204203a0f4666 // pinsrb xmm8, byte [rdx + r14], 6 + QUAD $0x073a04203a0f4466 // pinsrb xmm8, byte [rdx + rdi], 7 + QUAD $0x082a04203a0f4666 // pinsrb xmm8, byte [rdx + r13], 8 + QUAD $0x091204203a0f4666 // pinsrb xmm8, byte [rdx + r10], 9 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + LONG $0x247c894c; BYTE $0x60 // mov qword [rsp + 96], r15 + QUAD $0x0a3a04203a0f4666 // pinsrb xmm8, byte [rdx + r15], 10 + QUAD $0x0b1a04203a0f4466 // pinsrb xmm8, byte [rdx + rbx], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c3a04203a0f4666 // pinsrb xmm8, byte [rdx + r15], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d0204203a0f4466 // pinsrb xmm8, byte [rdx + rax], 13 + QUAD $0x0e3204203a0f4466 // pinsrb xmm8, byte [rdx + rsi], 14 + QUAD $0x0f0a04203a0f4466 // pinsrb xmm8, byte [rdx + rcx], 15 + QUAD $0x012024ac6f0f4466; WORD $0x0000 // movdqa xmm13, oword [rsp + 288] + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0101027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 1], 1 + QUAD $0x01027c203a0f4266; BYTE $0x02 // pinsrb xmm7, byte [rdx + r8 + 1], 2 + QUAD $0x011a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r11 + 1], 3 + QUAD $0x010a7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r9 + 1], 4 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x012a7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rdx + r13 + 1], 5 + QUAD $0x01327c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r14 + 1], 6 + QUAD $0x07013a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 1], 7 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0801027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 1], 8 + QUAD $0x01127c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r10 + 1], 9 + QUAD $0x01227c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rdx + r12 + 1], 10 + QUAD $0x0b011a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 1], 11 + QUAD $0x013a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r15 + 1], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d01027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 1], 13 + QUAD $0x0e01327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 1], 14 + QUAD $0x0f010a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 1], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x01020274203a0f66 // pinsrb xmm6, byte [rdx + rax + 2], 1 + QUAD $0x020274203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rdx + r8 + 2], 2 + QUAD $0x021a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 2], 3 + QUAD $0x020a74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r9 + 2], 4 + QUAD $0x022a74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r13 + 2], 5 + QUAD $0x023274203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r14 + 2], 6 + QUAD $0x07023a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 2], 7 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x08020274203a0f66 // pinsrb xmm6, byte [rdx + rax + 2], 8 + QUAD $0x021274203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r10 + 2], 9 + QUAD $0x022274203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r12 + 2], 10 + QUAD $0x0b021a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 2], 11 + QUAD $0x023a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 2], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d020274203a0f66 // pinsrb xmm6, byte [rdx + rax + 2], 13 + QUAD $0x0e023274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 2], 14 + QUAD $0x0f020a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 2], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x080264203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rax + 8], 1 + QUAD $0x080264203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rdx + r8 + 8], 2 + QUAD $0x081a64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r11 + 8], 3 + QUAD $0x080a64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rdx + r9 + 8], 4 + QUAD $0x082a64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rdx + r13 + 8], 5 + QUAD $0x083264203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r14 + 8], 6 + QUAD $0x083a64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rdx + rdi + 8], 7 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x080264203a0f4466; BYTE $0x08 // pinsrb xmm12, byte [rdx + rax + 8], 8 + QUAD $0x081264203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r10 + 8], 9 + QUAD $0x082264203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rdx + r12 + 8], 10 + QUAD $0x081a64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rdx + rbx + 8], 11 + QUAD $0x083a64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r15 + 8], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x080264203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rdx + rax + 8], 13 + QUAD $0x083264203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rdx + rsi + 8], 14 + QUAD $0x080a64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rcx + 8], 15 + LONG $0x640f4166; BYTE $0xd8 // pcmpgtb xmm3, xmm8 + QUAD $0x000110249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm3 + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0x640f4166; BYTE $0xdc // pcmpgtb xmm3, xmm12 + QUAD $0x000130249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm3 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x100a74203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rcx + 16], 1 + QUAD $0x100274203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rdx + r8 + 16], 2 + QUAD $0x101a74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r11 + 16], 3 + QUAD $0x100a74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rdx + r9 + 16], 4 + QUAD $0x102a74203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rdx + r13 + 16], 5 + QUAD $0x103274203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r14 + 16], 6 + QUAD $0x103a74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rdx + rdi + 16], 7 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x100a74203a0f4466; BYTE $0x08 // pinsrb xmm14, byte [rdx + rcx + 16], 8 + QUAD $0x101274203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rdx + r10 + 16], 9 + QUAD $0x102274203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rdx + r12 + 16], 10 + QUAD $0x101a74203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rdx + rbx + 16], 11 + QUAD $0x103a74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r15 + 16], 12 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + QUAD $0x100274203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rax + 16], 13 + LONG $0x24748948; BYTE $0x18 // mov qword [rsp + 24], rsi + QUAD $0x103274203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rdx + rsi + 16], 14 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x103a74203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rdi + 16], 15 + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x01180264203a0f66 // pinsrb xmm4, byte [rdx + rax + 24], 1 + QUAD $0x180264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r8 + 24], 2 + QUAD $0x181a64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r11 + 24], 3 + QUAD $0x180a64203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r9 + 24], 4 + QUAD $0x182a64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rdx + r13 + 24], 5 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x180264203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r8 + 24], 6 + QUAD $0x183264203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r14 + 24], 7 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x08180264203a0f66 // pinsrb xmm4, byte [rdx + rax + 24], 8 + QUAD $0x181264203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r10 + 24], 9 + QUAD $0x000000b02494894c // mov qword [rsp + 176], r10 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0a180264203a0f66 // pinsrb xmm4, byte [rdx + rax + 24], 10 + QUAD $0x0b181a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 24], 11 + QUAD $0x183a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 24], 12 + QUAD $0x0d180a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 24], 13 + QUAD $0x0e183264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 24], 14 + LONG $0x640f4166; BYTE $0xde // pcmpgtb xmm3, xmm14 + QUAD $0x0000f0249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 240], xmm3 + QUAD $0x0f183a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 24], 15 + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0xdc640f66 // pcmpgtb xmm3, xmm4 + QUAD $0x0000d0249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm3 + LONG $0x6f0f4166; BYTE $0xe5 // movdqa xmm4, xmm13 + LONG $0xe7640f66 // pcmpgtb xmm4, xmm7 + LONG $0x6f0f4466; BYTE $0xe4 // movdqa xmm12, xmm4 + QUAD $0x0000a0856f0f4466; BYTE $0x00 // movdqa xmm8, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdb0f4566; BYTE $0xe0 // pand xmm12, xmm8 + LONG $0xf80f4466; BYTE $0xe4 // psubb xmm12, xmm4 + LONG $0x6f0f4166; BYTE $0xe5 // movdqa xmm4, xmm13 + LONG $0x6f0f4566; BYTE $0xf5 // movdqa xmm14, xmm13 + LONG $0xe6640f66 // pcmpgtb xmm4, xmm6 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x0d // movzx esi, byte [rdx + rax + 13] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x03327c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rsi + 3], 1 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x03027c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rdx + rax + 3], 2 + LONG $0x245c894c; BYTE $0x28 // mov qword [rsp + 40], r11 + QUAD $0x031a7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r11 + 3], 3 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0x244c894c; BYTE $0x70 // mov qword [rsp + 112], r9 + QUAD $0x030a7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rdx + r9 + 3], 4 + QUAD $0x032a7c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rdx + r13 + 3], 5 + QUAD $0x03027c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r8 + 3], 6 + LONG $0x2474894c; BYTE $0x50 // mov qword [rsp + 80], r14 + QUAD $0x03327c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r14 + 3], 7 + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x03227c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r12 + 3], 8 + QUAD $0x03127c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r10 + 3], 9 + LONG $0x244c8b4c; BYTE $0x60 // mov r9, qword [rsp + 96] + QUAD $0x030a7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rdx + r9 + 3], 10 + LONG $0x245c8948; BYTE $0x68 // mov qword [rsp + 104], rbx + QUAD $0x031a7c203a0f4466; BYTE $0x0b // pinsrb xmm15, byte [rdx + rbx + 3], 11 + QUAD $0x033a7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r15 + 3], 12 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x033a7c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rdi + 3], 13 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x033a7c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rdx + rdi + 3], 14 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x03127c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rdx + r10 + 3], 15 + QUAD $0x0104326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 4], 1 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + QUAD $0x0204026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 4], 2 + QUAD $0x041a6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r11 + 4], 3 + QUAD $0x04040a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 4], 4 + QUAD $0x042a6c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rdx + r13 + 4], 5 + QUAD $0x04026c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r8 + 4], 6 + QUAD $0x04326c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r14 + 4], 7 + QUAD $0x04226c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r12 + 4], 8 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x09040a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 4], 9 + QUAD $0x040a6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r9 + 4], 10 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x0b041a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 4], 11 + QUAD $0x043a6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r15 + 4], 12 + LONG $0x244c8b4c; BYTE $0x08 // mov r9, qword [rsp + 8] + QUAD $0x040a6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r9 + 4], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e04026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 4], 14 + QUAD $0x000110249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 272] + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + QUAD $0x000000b0b56f0f66 // movdqa xmm6, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xe6db0f66 // pand xmm4, xmm6 + LONG $0xe3eb0f66 // por xmm4, xmm3 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x3a74b60f; BYTE $0x0e // movzx esi, byte [rdx + rdi + 14] + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x0f041a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 4], 15 + LONG $0xeb0f4166; BYTE $0xe4 // por xmm4, xmm12 + LONG $0x6f0f4566; BYTE $0xe5 // movdqa xmm12, xmm13 + LONG $0x640f4566; BYTE $0xe7 // pcmpgtb xmm12, xmm15 + LONG $0x640f4466; BYTE $0xed // pcmpgtb xmm13, xmm5 + LONG $0x3a74b60f; BYTE $0x0f // movzx esi, byte [rdx + rdi + 15] + LONG $0xee6e0f66 // movd xmm5, esi + QUAD $0x051254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r10 + 5], 1 + LONG $0x24448b4c; BYTE $0x40 // mov r8, qword [rsp + 64] + QUAD $0x050254203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r8 + 5], 2 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x03053a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 5], 3 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x052a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r13 + 5], 4 + QUAD $0x000000a024b48b48 // mov rsi, qword [rsp + 160] + QUAD $0x05053254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 5], 5 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x053254203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r14 + 5], 6 + LONG $0x24548b4c; BYTE $0x50 // mov r10, qword [rsp + 80] + QUAD $0x051254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r10 + 5], 7 + QUAD $0x052254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r12 + 5], 8 + QUAD $0x09050a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 5], 9 + QUAD $0x051a54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r11 + 5], 10 + LONG $0x244c8b48; BYTE $0x68 // mov rcx, qword [rsp + 104] + QUAD $0x0b050a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 5], 11 + QUAD $0x053a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 5], 12 + QUAD $0x050a54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r9 + 5], 13 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + QUAD $0x0e050254203a0f66 // pinsrb xmm2, byte [rdx + rax + 5], 14 + QUAD $0x0f051a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 5], 15 + QUAD $0x000000c09d6f0f66 // movdqa xmm3, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xdb0f4466; BYTE $0xe3 // pand xmm12, xmm3 + QUAD $0x000000d09d6f0f66 // movdqa xmm3, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xdb0f4466; BYTE $0xeb // pand xmm13, xmm3 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x6f0f4566; BYTE $0xe6 // movdqa xmm12, xmm14 + LONG $0x640f4466; BYTE $0xe2 // pcmpgtb xmm12, xmm2 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xd66e0f66 // movd xmm2, esi + QUAD $0x000000e09d6f0f66 // movdqa xmm3, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xdb0f4466; BYTE $0xe3 // pand xmm12, xmm3 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x0274b60f; BYTE $0x12 // movzx esi, byte [rdx + rax + 18] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + QUAD $0x0000c0249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 192] + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0106025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 6], 1 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + QUAD $0x06025c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rdx + r8 + 6], 2 + QUAD $0x03063a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 6], 3 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x062a5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r13 + 6], 4 + QUAD $0x000000a024ac8b4c // mov r13, qword [rsp + 160] + QUAD $0x062a5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rdx + r13 + 6], 5 + QUAD $0x06325c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r14 + 6], 6 + QUAD $0x06125c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r10 + 6], 7 + QUAD $0x06225c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r12 + 6], 8 + QUAD $0x000000b024b48b48 // mov rsi, qword [rsp + 176] + QUAD $0x0906325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 6], 9 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x06025c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r8 + 6], 10 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0b061a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 6], 11 + LONG $0x247c894c; BYTE $0x48 // mov qword [rsp + 72], r15 + QUAD $0x063a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r15 + 6], 12 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x061a5c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r11 + 6], 13 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x061a5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r11 + 6], 14 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x06125c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r10 + 6], 15 + QUAD $0x0107024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 7], 1 + QUAD $0x070a4c203a0f4266; BYTE $0x02 // pinsrb xmm1, byte [rdx + r9 + 7], 2 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0307024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 7], 3 + QUAD $0x04070a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 7], 4 + QUAD $0x072a4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rdx + r13 + 7], 5 + QUAD $0x07324c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r14 + 7], 6 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x07324c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r14 + 7], 7 + QUAD $0x07224c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r12 + 7], 8 + QUAD $0x0907324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 7], 9 + QUAD $0x07024c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r8 + 7], 10 + QUAD $0x0b071a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 7], 11 + QUAD $0x073a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r15 + 7], 12 + QUAD $0x0d073a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 7], 13 + QUAD $0x071a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r11 + 7], 14 + QUAD $0x07124c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r10 + 7], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x01090244203a0f66 // pinsrb xmm0, byte [rdx + rax + 9], 1 + QUAD $0x090a44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r9 + 9], 2 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x03090244203a0f66 // pinsrb xmm0, byte [rdx + rax + 9], 3 + QUAD $0x04090a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 9], 4 + QUAD $0x092a44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rdx + r13 + 9], 5 + QUAD $0x0000009024848b48 // mov rax, qword [rsp + 144] + QUAD $0x06090244203a0f66 // pinsrb xmm0, byte [rdx + rax + 9], 6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x07090244203a0f66 // pinsrb xmm0, byte [rdx + rax + 9], 7 + QUAD $0x092244203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r12 + 9], 8 + QUAD $0x09093244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 9], 9 + QUAD $0x090244203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r8 + 9], 10 + QUAD $0x0b091a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 9], 11 + QUAD $0x093a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 9], 12 + QUAD $0x0d093a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 9], 13 + QUAD $0x091a44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r11 + 9], 14 + WORD $0x894d; BYTE $0xde // mov r14, r11 + QUAD $0x091244203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r10 + 9], 15 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a024c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rax + 10], 1 + QUAD $0x0a0a4c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rdx + r9 + 10], 2 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0a024c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rdx + rax + 10], 3 + QUAD $0x0a0a4c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rdx + rcx + 10], 4 + QUAD $0x0a2a4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rdx + r13 + 10], 5 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x0a1a4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r11 + 10], 6 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x0a0a4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rdx + rcx + 10], 7 + QUAD $0x0a224c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r12 + 10], 8 + QUAD $0x0a324c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rdx + rsi + 10], 9 + QUAD $0x0a024c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r8 + 10], 10 + QUAD $0x0a1a4c203a0f4466; BYTE $0x0b // pinsrb xmm9, byte [rdx + rbx + 10], 11 + QUAD $0x0a3a4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r15 + 10], 12 + QUAD $0x0a3a4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rdi + 10], 13 + LONG $0xeb0f4466; BYTE $0xe4 // por xmm12, xmm4 + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0x6f0f4166; BYTE $0xe6 // movdqa xmm4, xmm14 + LONG $0xe3640f66 // pcmpgtb xmm4, xmm3 + LONG $0x640f4466; BYTE $0xf1 // pcmpgtb xmm14, xmm1 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x3a74b60f; BYTE $0x13 // movzx esi, byte [rdx + rdi + 19] + LONG $0xce6e0f66 // movd xmm1, esi + QUAD $0x0a324c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r14 + 10], 14 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xe3db0f66 // pand xmm4, xmm3 + LONG $0x710f4166; WORD $0x07f6 // psllw xmm14, 7 + LONG $0x5d6f0f66; BYTE $0x60 // movdqa xmm3, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0f4466; BYTE $0xf3 // pand xmm14, xmm3 + LONG $0xeb0f4466; BYTE $0xf4 // por xmm14, xmm4 + LONG $0x3a74b60f; BYTE $0x14 // movzx esi, byte [rdx + rdi + 20] + LONG $0xe66e0f66 // movd xmm4, esi + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x0a124c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r10 + 10], 15 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + QUAD $0x00c024b47f0f4466; WORD $0x0000 // movdqa oword [rsp + 192], xmm14 + LONG $0x6f0f4566; BYTE $0xf5 // movdqa xmm14, xmm13 + LONG $0x6f0f4166; BYTE $0xdd // movdqa xmm3, xmm13 + LONG $0xd8640f66 // pcmpgtb xmm3, xmm0 + LONG $0x6f0f4466; BYTE $0xe3 // movdqa xmm12, xmm3 + LONG $0xdb0f4566; BYTE $0xe0 // pand xmm12, xmm8 + LONG $0xf80f4466; BYTE $0xe3 // psubb xmm12, xmm3 + LONG $0x640f4566; BYTE $0xe9 // pcmpgtb xmm13, xmm9 + LONG $0x3a74b60f; BYTE $0x15 // movzx esi, byte [rdx + rdi + 21] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x24548b4c; BYTE $0x10 // mov r10, qword [rsp + 16] + QUAD $0x0b1254203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r10 + 11], 1 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x0b0a54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rdx + r9 + 11], 2 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b3a54203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rdx + rdi + 11], 3 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0b0254203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r8 + 11], 4 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x0b0a54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r9 + 11], 5 + QUAD $0x0b1a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r11 + 11], 6 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + QUAD $0x0b0a54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rdx + rcx + 11], 7 + QUAD $0x0b2254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r12 + 11], 8 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0b0a54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rcx + 11], 9 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0b3254203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r14 + 11], 10 + LONG $0x247c8b4c; BYTE $0x68 // mov r15, qword [rsp + 104] + QUAD $0x0b3a54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r15 + 11], 11 + LONG $0x24748b48; BYTE $0x48 // mov rsi, qword [rsp + 72] + QUAD $0x0b3254203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rsi + 11], 12 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0b3254203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rsi + 11], 13 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x0b3254203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rdx + rsi + 11], 14 + QUAD $0x0b2a54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rdx + r13 + 11], 15 + QUAD $0x0c125c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r10 + 12], 1 + QUAD $0x0c025c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rax + 12], 2 + QUAD $0x0c3a5c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rdx + rdi + 12], 3 + QUAD $0x0c025c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r8 + 12], 4 + QUAD $0x0c0a5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r9 + 12], 5 + QUAD $0x0c1a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r11 + 12], 6 + QUAD $0x0c1a5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rdx + rbx + 12], 7 + QUAD $0x0c225c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r12 + 12], 8 + QUAD $0x0c0a5c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rcx + 12], 9 + WORD $0x8949; BYTE $0xcc // mov r12, rcx + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + QUAD $0x0c325c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r14 + 12], 10 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x0c3a5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r15 + 12], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x0c3a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r15 + 12], 12 + LONG $0x247c8b48; BYTE $0x08 // mov rdi, qword [rsp + 8] + QUAD $0x0c3a5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rdi + 12], 13 + QUAD $0x0c325c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rdx + rsi + 12], 14 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + QUAD $0x000130249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 304] + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + QUAD $0x0000b0addb0f4466; BYTE $0x00 // pand xmm13, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xeb0f4466; BYTE $0xeb // por xmm13, xmm3 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + QUAD $0x0c2a5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r13 + 12], 15 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x6f0f4566; BYTE $0xe6 // movdqa xmm12, xmm14 + LONG $0x640f4566; BYTE $0xe2 // pcmpgtb xmm12, xmm10 + LONG $0x6f0f4166; BYTE $0xde // movdqa xmm3, xmm14 + LONG $0x640f4166; BYTE $0xdb // pcmpgtb xmm3, xmm11 + LONG $0x0274b60f; BYTE $0x17 // movzx esi, byte [rdx + rax + 23] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x010d027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 13], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x020d0a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 13], 2 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0d1a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r11 + 13], 3 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x040d0a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 13], 4 + QUAD $0x0d0a7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rdx + r9 + 13], 5 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x0d327c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r14 + 13], 6 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x070d327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 13], 7 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x080d327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 13], 8 + QUAD $0x0d227c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r12 + 13], 9 + QUAD $0x0d027c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rdx + r8 + 13], 10 + QUAD $0x0b0d1a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 13], 11 + QUAD $0x0d3a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r15 + 13], 12 + QUAD $0x0d0d3a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 13], 13 + QUAD $0x0d127c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r10 + 13], 14 + QUAD $0x0d2a7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r13 + 13], 15 + QUAD $0x0000c0a5db0f4466; BYTE $0x00 // pand xmm12, oword 192[rbp] /* [rip + .LCPI8_12] */ + QUAD $0x000000d09ddb0f66 // pand xmm3, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xeb0f4166; BYTE $0xdc // por xmm3, xmm12 + LONG $0x6f0f4566; BYTE $0xd6 // movdqa xmm10, xmm14 + LONG $0x640f4466; BYTE $0xd7 // pcmpgtb xmm10, xmm7 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x74b60f42; WORD $0x1922 // movzx esi, byte [rdx + r12 + 25] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x0000e095db0f4466; BYTE $0x00 // pand xmm10, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xeb0f4466; BYTE $0xd3 // por xmm10, xmm3 + LONG $0x74b60f42; WORD $0x1a22 // movzx esi, byte [rdx + r12 + 26] + LONG $0xfe6e0f66 // movd xmm7, esi + QUAD $0x010e0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 14], 1 + LONG $0x24748b48; BYTE $0x40 // mov rsi, qword [rsp + 64] + QUAD $0x020e3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 14], 2 + WORD $0x894d; BYTE $0xda // mov r10, r11 + QUAD $0x0e1a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 14], 3 + WORD $0x8949; BYTE $0xcc // mov r12, rcx + QUAD $0x040e0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 14], 4 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + QUAD $0x0e0a74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r9 + 14], 5 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x0e3274203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r14 + 14], 6 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0e3274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r14 + 14], 7 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x080e0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 14], 8 + QUAD $0x000000b0248c8b4c // mov r9, qword [rsp + 176] + QUAD $0x0e0a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r9 + 14], 9 + QUAD $0x0e0274203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r8 + 14], 10 + QUAD $0x0b0e1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 14], 11 + QUAD $0x0e3a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 14], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d0e0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 14], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e0e0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 14], 14 + QUAD $0x0e2a74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rdx + r13 + 14], 15 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x0f2a6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rdx + r13 + 15], 1 + QUAD $0x020f326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 15], 2 + QUAD $0x0f126c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r10 + 15], 3 + QUAD $0x0f226c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r12 + 15], 4 + QUAD $0x050f3a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 15], 5 + QUAD $0x0f1a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r11 + 15], 6 + QUAD $0x0f326c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r14 + 15], 7 + QUAD $0x080f0a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 15], 8 + QUAD $0x0f0a6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r9 + 15], 9 + QUAD $0x0f026c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r8 + 15], 10 + QUAD $0x0b0f1a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 15], 11 + QUAD $0x0f3a6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r15 + 15], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d0f026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 15], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e0f026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 15], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0f026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 15], 15 + QUAD $0x112a54203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r13 + 17], 1 + QUAD $0x02113254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 17], 2 + QUAD $0x111254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r10 + 17], 3 + QUAD $0x112254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r12 + 17], 4 + QUAD $0x05113a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 17], 5 + QUAD $0x111a54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r11 + 17], 6 + QUAD $0x113254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r14 + 17], 7 + QUAD $0x08110a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 17], 8 + QUAD $0x110a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r9 + 17], 9 + QUAD $0x110254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r8 + 17], 10 + QUAD $0x0b111a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 17], 11 + QUAD $0x113a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 17], 12 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d110254203a0f66 // pinsrb xmm2, byte [rdx + rax + 17], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e110254203a0f66 // pinsrb xmm2, byte [rdx + rax + 17], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f110254203a0f66 // pinsrb xmm2, byte [rdx + rax + 17], 15 + QUAD $0x122a7c203a0f4666; BYTE $0x01 // pinsrb xmm15, byte [rdx + r13 + 18], 1 + QUAD $0x12327c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rdx + rsi + 18], 2 + QUAD $0x12127c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r10 + 18], 3 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x12227c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rdx + r12 + 18], 4 + QUAD $0x123a7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rdi + 18], 5 + QUAD $0x121a7c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r11 + 18], 6 + QUAD $0x12327c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r14 + 18], 7 + QUAD $0x120a7c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rdx + rcx + 18], 8 + QUAD $0x120a7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r9 + 18], 9 + QUAD $0x12027c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rdx + r8 + 18], 10 + QUAD $0x121a7c203a0f4466; BYTE $0x0b // pinsrb xmm15, byte [rdx + rbx + 18], 11 + WORD $0x8948; BYTE $0xdf // mov rdi, rbx + QUAD $0x123a7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r15 + 18], 12 + LONG $0x24548b4c; BYTE $0x08 // mov r10, qword [rsp + 8] + QUAD $0x12127c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rdx + r10 + 18], 13 + LONG $0xeb0f4566; BYTE $0xd5 // por xmm10, xmm13 + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0x640f4466; BYTE $0xee // pcmpgtb xmm13, xmm6 + LONG $0x6f0f4166; BYTE $0xde // movdqa xmm3, xmm14 + LONG $0xdd640f66 // pcmpgtb xmm3, xmm5 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x1b // movzx esi, byte [rdx + rax + 27] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x120a7c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rdx + rcx + 18], 14 + QUAD $0x0000f0addb0f4466; BYTE $0x00 // pand xmm13, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0x5ddb0f66; BYTE $0x60 // pand xmm3, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xeb0f4166; BYTE $0xdd // por xmm3, xmm13 + LONG $0x0274b60f; BYTE $0x1c // movzx esi, byte [rdx + rax + 28] + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + QUAD $0x120a7c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rdx + rcx + 18], 15 + LONG $0xeb0f4166; BYTE $0xda // por xmm3, xmm10 + QUAD $0x000110249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm3 + LONG $0x6f0f4166; BYTE $0xde // movdqa xmm3, xmm14 + LONG $0xda640f66 // pcmpgtb xmm3, xmm2 + LONG $0x6f0f4466; BYTE $0xeb // movdqa xmm13, xmm3 + QUAD $0x000000a0956f0f66 // movdqa xmm2, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdb0f4466; BYTE $0xea // pand xmm13, xmm2 + LONG $0xf80f4466; BYTE $0xeb // psubb xmm13, xmm3 + LONG $0x6f0f4566; BYTE $0xd6 // movdqa xmm10, xmm14 + LONG $0x640f4566; BYTE $0xd7 // pcmpgtb xmm10, xmm15 + LONG $0x0274b60f; BYTE $0x1d // movzx esi, byte [rdx + rax + 29] + LONG $0xde6e0f66 // movd xmm3, esi + QUAD $0x00f024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 240] + LONG $0xdb0f4466; BYTE $0xfa // pand xmm15, xmm2 + QUAD $0x000000b0956f0f66 // movdqa xmm2, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xdb0f4466; BYTE $0xd2 // pand xmm10, xmm2 + LONG $0xeb0f4566; BYTE $0xd7 // por xmm10, xmm15 + LONG $0x0274b60f; BYTE $0x1e // movzx esi, byte [rdx + rax + 30] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x0244b60f; BYTE $0x1f // movzx eax, byte [rdx + rax + 31] + LONG $0x38244489 // mov dword [rsp + 56], eax + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0113024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 19], 1 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x02130a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 19], 2 + QUAD $0x132a4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r13 + 19], 3 + QUAD $0x13224c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r12 + 19], 4 + QUAD $0x000000a024848b4c // mov r8, qword [rsp + 160] + QUAD $0x13024c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rdx + r8 + 19], 5 + QUAD $0x131a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r11 + 19], 6 + WORD $0x894c; BYTE $0xdb // mov rbx, r11 + QUAD $0x13324c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r14 + 19], 7 + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + LONG $0x24748b48; BYTE $0x20 // mov rsi, qword [rsp + 32] + QUAD $0x0813324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 19], 8 + QUAD $0x130a4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rdx + r9 + 19], 9 + LONG $0x245c8b4c; BYTE $0x60 // mov r11, qword [rsp + 96] + QUAD $0x131a4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r11 + 19], 10 + QUAD $0x0b133a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 19], 11 + LONG $0x247c8b48; BYTE $0x48 // mov rdi, qword [rsp + 72] + QUAD $0x0c133a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 19], 12 + QUAD $0x13124c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r10 + 19], 13 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x0e133a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 19], 14 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x13124c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r10 + 19], 15 + QUAD $0x01140264203a0f66 // pinsrb xmm4, byte [rdx + rax + 20], 1 + QUAD $0x02140a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 20], 2 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x142a64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r13 + 20], 3 + QUAD $0x142264203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r12 + 20], 4 + QUAD $0x140264203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rdx + r8 + 20], 5 + QUAD $0x06141a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 20], 6 + QUAD $0x143a64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r15 + 20], 7 + QUAD $0x08143264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 20], 8 + QUAD $0x140a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r9 + 20], 9 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + QUAD $0x141a64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r11 + 20], 10 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x0b141a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 20], 11 + LONG $0x247c8b4c; BYTE $0x48 // mov r15, qword [rsp + 72] + QUAD $0x143a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 20], 12 + QUAD $0x143264203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r14 + 20], 13 + QUAD $0x0e143a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 20], 14 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x141264203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rdx + r10 + 20], 15 + LONG $0xeb0f4566; BYTE $0xd5 // por xmm10, xmm13 + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0x640f4466; BYTE $0xe9 // pcmpgtb xmm13, xmm1 + LONG $0x6f0f4566; BYTE $0xfe // movdqa xmm15, xmm14 + LONG $0x640f4466; BYTE $0xfc // pcmpgtb xmm15, xmm4 + LONG $0x4c6e0f66; WORD $0x3824 // movd xmm1, dword [rsp + 56] + QUAD $0x01150244203a0f66 // pinsrb xmm0, byte [rdx + rax + 21], 1 + QUAD $0x160244203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rdx + rax + 22], 1 + QUAD $0x17024c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rax + 23], 1 + QUAD $0x19025c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rax + 25], 1 + QUAD $0x011a027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 26], 1 + QUAD $0x011b026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 27], 1 + QUAD $0x011c0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 28], 1 + QUAD $0x011d025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 29], 1 + QUAD $0x011e0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 30], 1 + QUAD $0x011f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 1 + QUAD $0x02150a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 21], 2 + QUAD $0x160a44203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rcx + 22], 2 + QUAD $0x170a4c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rcx + 23], 2 + QUAD $0x190a5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rcx + 25], 2 + QUAD $0x021a0a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 26], 2 + QUAD $0x021b0a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 27], 2 + QUAD $0x021c0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 28], 2 + QUAD $0x021d0a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 29], 2 + QUAD $0x021e0a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 30], 2 + QUAD $0x021f0a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 31], 2 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x152a44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r13 + 21], 3 + QUAD $0x152244203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r12 + 21], 4 + QUAD $0x000000a024bc8b48 // mov rdi, qword [rsp + 160] + QUAD $0x05153a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 21], 5 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x151a44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rdx + r11 + 21], 6 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x153244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r14 + 21], 7 + QUAD $0x08153244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 21], 8 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x151244203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rdx + r10 + 21], 9 + QUAD $0x150244203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r8 + 21], 10 + QUAD $0x0b151a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 21], 11 + QUAD $0x153a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r15 + 21], 12 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0d150a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 21], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e150244203a0f66 // pinsrb xmm0, byte [rdx + rax + 21], 14 + QUAD $0x150a44203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r9 + 21], 15 + QUAD $0x000000c0a56f0f66 // movdqa xmm4, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xdb0f4466; BYTE $0xec // pand xmm13, xmm4 + QUAD $0x000000d0a56f0f66 // movdqa xmm4, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xdb0f4466; BYTE $0xfc // pand xmm15, xmm4 + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0x640f4466; BYTE $0xe8 // pcmpgtb xmm13, xmm0 + QUAD $0x000000e0856f0f66 // movdqa xmm0, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xdb0f4466; BYTE $0xe8 // pand xmm13, xmm0 + LONG $0xeb0f4566; BYTE $0xef // por xmm13, xmm15 + QUAD $0x162a44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r13 + 22], 3 + QUAD $0x162244203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r12 + 22], 4 + QUAD $0x163a44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rdi + 22], 5 + QUAD $0x161a44203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rdx + r11 + 22], 6 + QUAD $0x163244203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rdx + r14 + 22], 7 + QUAD $0x163244203a0f4466; BYTE $0x08 // pinsrb xmm8, byte [rdx + rsi + 22], 8 + QUAD $0x161244203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rdx + r10 + 22], 9 + QUAD $0x160244203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rdx + r8 + 22], 10 + QUAD $0x161a44203a0f4466; BYTE $0x0b // pinsrb xmm8, byte [rdx + rbx + 22], 11 + QUAD $0x163a44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r15 + 22], 12 + QUAD $0x160a44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rcx + 22], 13 + QUAD $0x160244203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rdx + rax + 22], 14 + QUAD $0x160a44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r9 + 22], 15 + QUAD $0x172a4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r13 + 23], 3 + QUAD $0x17224c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r12 + 23], 4 + QUAD $0x173a4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rdx + rdi + 23], 5 + QUAD $0x171a4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r11 + 23], 6 + QUAD $0x17324c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r14 + 23], 7 + QUAD $0x17324c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rdx + rsi + 23], 8 + QUAD $0x17124c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r10 + 23], 9 + QUAD $0x17024c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r8 + 23], 10 + QUAD $0x171a4c203a0f4466; BYTE $0x0b // pinsrb xmm9, byte [rdx + rbx + 23], 11 + QUAD $0x173a4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r15 + 23], 12 + QUAD $0x170a4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rcx + 23], 13 + QUAD $0x17024c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rdx + rax + 23], 14 + QUAD $0x170a4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r9 + 23], 15 + QUAD $0x192a5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r13 + 25], 3 + QUAD $0x19225c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r12 + 25], 4 + QUAD $0x193a5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rdi + 25], 5 + QUAD $0x191a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r11 + 25], 6 + QUAD $0x19325c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r14 + 25], 7 + QUAD $0x19325c203a0f4466; BYTE $0x08 // pinsrb xmm11, byte [rdx + rsi + 25], 8 + QUAD $0x19125c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rdx + r10 + 25], 9 + QUAD $0x19025c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r8 + 25], 10 + QUAD $0x191a5c203a0f4466; BYTE $0x0b // pinsrb xmm11, byte [rdx + rbx + 25], 11 + QUAD $0x193a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r15 + 25], 12 + QUAD $0x190a5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rcx + 25], 13 + QUAD $0x19025c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rdx + rax + 25], 14 + QUAD $0x190a5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r9 + 25], 15 + QUAD $0x1a2a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r13 + 26], 3 + QUAD $0x1a227c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r12 + 26], 4 + QUAD $0x051a3a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 26], 5 + QUAD $0x1a1a7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r11 + 26], 6 + QUAD $0x1a327c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rdx + r14 + 26], 7 + QUAD $0x081a327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 26], 8 + QUAD $0x1a127c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r10 + 26], 9 + QUAD $0x1a027c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rdx + r8 + 26], 10 + QUAD $0x0b1a1a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 26], 11 + QUAD $0x1a3a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r15 + 26], 12 + QUAD $0x0d1a0a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 26], 13 + QUAD $0x0e1a027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 26], 14 + LONG $0xeb0f4566; BYTE $0xea // por xmm13, xmm10 + LONG $0x6f0f4566; BYTE $0xe6 // movdqa xmm12, xmm14 + LONG $0x6f0f4166; BYTE $0xe6 // movdqa xmm4, xmm14 + LONG $0x640f4166; BYTE $0xe0 // pcmpgtb xmm4, xmm8 + LONG $0x6f0f4166; BYTE $0xc6 // movdqa xmm0, xmm14 + LONG $0x640f4166; BYTE $0xc1 // pcmpgtb xmm0, xmm9 + QUAD $0x0000f0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0x6f0f4466; WORD $0x607d // movdqa xmm15, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xc4eb0f66 // por xmm0, xmm4 + QUAD $0x1a0a7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r9 + 26], 15 + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xe4 // movdqa xmm4, xmm12 + LONG $0x640f4166; BYTE $0xe3 // pcmpgtb xmm4, xmm11 + LONG $0x6f0f4466; BYTE $0xc4 // movdqa xmm8, xmm4 + QUAD $0x0000a09d6f0f4466; BYTE $0x00 // movdqa xmm11, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdb0f4566; BYTE $0xc3 // pand xmm8, xmm11 + LONG $0xf80f4466; BYTE $0xc4 // psubb xmm8, xmm4 + LONG $0x6f0f4166; BYTE $0xe4 // movdqa xmm4, xmm12 + LONG $0xe7640f66 // pcmpgtb xmm4, xmm7 + QUAD $0x1b2a6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r13 + 27], 3 + QUAD $0x1b226c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r12 + 27], 4 + QUAD $0x051b3a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 27], 5 + QUAD $0x1b1a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r11 + 27], 6 + QUAD $0x1b326c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r14 + 27], 7 + QUAD $0x081b326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 27], 8 + QUAD $0x1b126c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r10 + 27], 9 + QUAD $0x1b026c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r8 + 27], 10 + QUAD $0x0b1b1a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 27], 11 + QUAD $0x1b3a6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r15 + 27], 12 + QUAD $0x0d1b0a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 27], 13 + QUAD $0x0e1b026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 27], 14 + QUAD $0x1b0a6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r9 + 27], 15 + QUAD $0x1c2a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r13 + 28], 3 + QUAD $0x1c2274203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r12 + 28], 4 + QUAD $0x051c3a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 28], 5 + QUAD $0x1c1a74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r11 + 28], 6 + QUAD $0x1c3274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r14 + 28], 7 + QUAD $0x081c3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 28], 8 + QUAD $0x1c1274203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r10 + 28], 9 + QUAD $0x1c0274203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r8 + 28], 10 + QUAD $0x0b1c1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 28], 11 + QUAD $0x1c3a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r15 + 28], 12 + QUAD $0x0d1c0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 28], 13 + QUAD $0x0000d024bc6f0f66; BYTE $0x00 // movdqa xmm7, oword [rsp + 208] + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + QUAD $0x0e1c0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 28], 14 + QUAD $0x000000b0a5db0f66 // pand xmm4, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xe7eb0f66 // por xmm4, xmm7 + QUAD $0x1c0a74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rdx + r9 + 28], 15 + LONG $0xeb0f4166; BYTE $0xe0 // por xmm4, xmm8 + LONG $0x6f0f4166; BYTE $0xfc // movdqa xmm7, xmm12 + LONG $0xfd640f66 // pcmpgtb xmm7, xmm5 + LONG $0x6f0f4166; BYTE $0xec // movdqa xmm5, xmm12 + LONG $0xee640f66 // pcmpgtb xmm5, xmm6 + QUAD $0x1d2a5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r13 + 29], 3 + QUAD $0x1d225c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r12 + 29], 4 + QUAD $0x051d3a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 29], 5 + QUAD $0x1d1a5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r11 + 29], 6 + QUAD $0x1d325c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r14 + 29], 7 + QUAD $0x081d325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 29], 8 + QUAD $0x1d125c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rdx + r10 + 29], 9 + QUAD $0x1d025c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r8 + 29], 10 + QUAD $0x0b1d1a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 29], 11 + QUAD $0x1d3a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r15 + 29], 12 + QUAD $0x0d1d0a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 29], 13 + QUAD $0x0e1d025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 29], 14 + QUAD $0x1d0a5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r9 + 29], 15 + QUAD $0x000000c0bddb0f66 // pand xmm7, oword 192[rbp] /* [rip + .LCPI8_12] */ + QUAD $0x000000d0addb0f66 // pand xmm5, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6f0f4166; BYTE $0xf4 // movdqa xmm6, xmm12 + LONG $0xf3640f66 // pcmpgtb xmm6, xmm3 + QUAD $0x000000e0b5db0f66 // pand xmm6, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0x1e2a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r13 + 30], 3 + QUAD $0x1f2a4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r13 + 31], 3 + QUAD $0x1e2254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r12 + 30], 4 + QUAD $0x1f224c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r12 + 31], 4 + QUAD $0x051e3a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 30], 5 + QUAD $0x051f3a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 31], 5 + QUAD $0x1e1a54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r11 + 30], 6 + QUAD $0x1f1a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r11 + 31], 6 + QUAD $0x1e3254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r14 + 30], 7 + QUAD $0x1f324c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r14 + 31], 7 + QUAD $0x081e3254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 30], 8 + QUAD $0x081f324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 31], 8 + QUAD $0x1e1254203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r10 + 30], 9 + QUAD $0x1f124c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rdx + r10 + 31], 9 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x1e0254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r8 + 30], 10 + QUAD $0x1f024c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r8 + 31], 10 + QUAD $0x0b1e1a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 30], 11 + QUAD $0x0b1f1a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 31], 11 + QUAD $0x1e3a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r15 + 30], 12 + QUAD $0x1f3a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r15 + 31], 12 + QUAD $0x0d1e0a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 30], 13 + QUAD $0x0d1f0a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 31], 13 + QUAD $0x0e1e0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 30], 14 + QUAD $0x0e1f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 14 + QUAD $0x1e0a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r9 + 30], 15 + QUAD $0x1f0a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r9 + 31], 15 + LONG $0xf4eb0f66 // por xmm6, xmm4 + LONG $0x6f0f4166; BYTE $0xdc // movdqa xmm3, xmm12 + LONG $0xda640f66 // pcmpgtb xmm3, xmm2 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0x640f4466; BYTE $0xe1 // pcmpgtb xmm12, xmm1 + LONG $0x710f4166; WORD $0x07f4 // psllw xmm12, 7 + LONG $0xdb0f4566; BYTE $0xe7 // pand xmm12, xmm15 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0x600f4166; BYTE $0xcc // punpcklbw xmm1, xmm12 + QUAD $0x0000c024ac6f0f66; BYTE $0x00 // movdqa xmm5, oword [rsp + 192] + LONG $0xdd6f0f66 // movdqa xmm3, xmm5 + QUAD $0x00011024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 272] + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe36f0f66 // movdqa xmm4, xmm3 + LONG $0xe1610f66 // punpcklwd xmm4, xmm1 + LONG $0xd9690f66 // punpckhwd xmm3, xmm1 + LONG $0x680f4166; BYTE $0xc4 // punpckhbw xmm0, xmm12 + LONG $0xee680f66 // punpckhbw xmm5, xmm6 + LONG $0xcd6f0f66 // movdqa xmm1, xmm5 + LONG $0xc8610f66 // punpcklwd xmm1, xmm0 + LONG $0xe8690f66 // punpckhwd xmm5, xmm0 + LONG $0x244c8b48; BYTE $0x78 // mov rcx, qword [rsp + 120] + LONG $0x7f0f41f3; WORD $0x8e6c; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm5 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x8e5c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm3 + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB8_192 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x000000e824bc3b4c // cmp r15, qword [rsp + 232] + LONG $0x241c8a44 // mov r11b, byte [rsp] + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + JNE LBB8_42 + JMP LBB8_128 + +LBB8_194: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000010824848948 // mov qword [rsp + 264], rax + QUAD $0x000000e824bc894c // mov qword [rsp + 232], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000120248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm1 + WORD $0xc031 // xor eax, eax + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + +LBB8_195: + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x000000f024848948 // mov qword [rsp + 240], rax + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0x05e1c148 // shl rcx, 5 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + WORD $0x8949; BYTE $0xcb // mov r11, rcx + WORD $0x8949; BYTE $0xca // mov r10, rcx + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x244c8948; BYTE $0x40 // mov qword [rsp + 64], rcx + WORD $0x8949; BYTE $0xcc // mov r12, rcx + WORD $0x8949; BYTE $0xcf // mov r15, rcx + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + WORD $0x8948; BYTE $0xce // mov rsi, rcx + LONG $0x0a0cb60f // movzx ecx, byte [rdx + rcx] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x324cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rsi + 1] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x324cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rsi + 2] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x324cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rsi + 3] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x324cb60f; BYTE $0x04 // movzx ecx, byte [rdx + rsi + 4] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x324cb60f; BYTE $0x05 // movzx ecx, byte [rdx + rsi + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x324cb60f; BYTE $0x06 // movzx ecx, byte [rdx + rsi + 6] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x324cb60f; BYTE $0x07 // movzx ecx, byte [rdx + rsi + 7] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000a024847f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm0 + LONG $0x324cb60f; BYTE $0x08 // movzx ecx, byte [rdx + rsi + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x324cb60f; BYTE $0x09 // movzx ecx, byte [rdx + rsi + 9] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x324cb60f; BYTE $0x0a // movzx ecx, byte [rdx + rsi + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x324cb60f; BYTE $0x0b // movzx ecx, byte [rdx + rsi + 11] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00009024847f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm0 + LONG $0x324cb60f; BYTE $0x0c // movzx ecx, byte [rdx + rsi + 12] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00013024847f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm0 + LONG $0x324cb60f; BYTE $0x0d // movzx ecx, byte [rdx + rsi + 13] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x324cb60f; BYTE $0x0e // movzx ecx, byte [rdx + rsi + 14] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x24748948; BYTE $0x38 // mov qword [rsp + 56], rsi + WORD $0x8949; BYTE $0xf5 // mov r13, rsi + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x08 // mov qword [rsp + 8], r13 + LONG $0x40ce8349 // or r14, 64 + LONG $0x2474894c; BYTE $0x20 // mov qword [rsp + 32], r14 + LONG $0x60cb8348 // or rbx, 96 + LONG $0x245c8948; BYTE $0x58 // mov qword [rsp + 88], rbx + LONG $0x00800d48; WORD $0x0000 // or rax, 128 + WORD $0x894c; BYTE $0xdb // mov rbx, r11 + LONG $0xa0cb8148; WORD $0x0000; BYTE $0x00 // or rbx, 160 + WORD $0x894d; BYTE $0xd3 // mov r11, r10 + LONG $0xc0cb8149; WORD $0x0000; BYTE $0x00 // or r11, 192 + LONG $0x245c894c; BYTE $0x60 // mov qword [rsp + 96], r11 + LONG $0xe0c88149; WORD $0x0000; BYTE $0x00 // or r8, 224 + LONG $0x00c98149; WORD $0x0001; BYTE $0x00 // or r9, 256 + LONG $0x244c894c; BYTE $0x50 // mov qword [rsp + 80], r9 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + LONG $0x20c98148; WORD $0x0001; BYTE $0x00 // or rcx, 288 + LONG $0x40cc8149; WORD $0x0001; BYTE $0x00 // or r12, 320 + LONG $0x60cf8149; WORD $0x0001; BYTE $0x00 // or r15, 352 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + LONG $0x80ca8149; WORD $0x0001; BYTE $0x00 // or r10, 384 + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0xa0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 416 + LONG $0x247c8948; BYTE $0x68 // mov qword [rsp + 104], rdi + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0xc0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 448 + LONG $0x247c8948; BYTE $0x10 // mov qword [rsp + 16], rdi + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0xe0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 480 + LONG $0x247c8948; BYTE $0x18 // mov qword [rsp + 24], rdi + QUAD $0x012a6c203a0f4266; BYTE $0x01 // pinsrb xmm5, byte [rdx + r13 + 1], 1 + QUAD $0x01326c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rdx + r14 + 1], 2 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x012a6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r13 + 1], 3 + QUAD $0x0401026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 1], 4 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + QUAD $0x05011a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 1], 5 + QUAD $0x011a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r11 + 1], 6 + QUAD $0x01026c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r8 + 1], 7 + QUAD $0x010a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r9 + 1], 8 + QUAD $0x09010a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 1], 9 + QUAD $0x01226c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r12 + 1], 10 + QUAD $0x013a6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r15 + 1], 11 + QUAD $0x01126c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r10 + 1], 12 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x011a6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r11 + 1], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e01026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 1], 14 + QUAD $0x0f013a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 1], 15 + QUAD $0x012024946f0f4466; WORD $0x0000 // movdqa xmm10, oword [rsp + 288] + LONG $0xda0f4166; BYTE $0xea // pminub xmm5, xmm10 + LONG $0x740f4166; BYTE $0xea // pcmpeqb xmm5, xmm10 + LONG $0xf56f0f66 // movdqa xmm6, xmm5 + QUAD $0x000000a08d6f0f66 // movdqa xmm1, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xf1df0f66 // pandn xmm6, xmm1 + LONG $0xf5fc0f66 // paddb xmm6, xmm5 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + LONG $0x3274b60f; BYTE $0x0f // movzx esi, byte [rdx + rsi + 15] + LONG $0xc66e0f66 // movd xmm0, esi + QUAD $0x0000b024847f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm0 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x01020c203a0f4466 // pinsrb xmm9, byte [rdx + rax], 1 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x02120c203a0f4666 // pinsrb xmm9, byte [rdx + r10], 2 + QUAD $0x032a0c203a0f4666 // pinsrb xmm9, byte [rdx + r13], 3 + WORD $0x894c; BYTE $0xf6 // mov rsi, r14 + QUAD $0x04320c203a0f4666 // pinsrb xmm9, byte [rdx + r14], 4 + WORD $0x8949; BYTE $0xde // mov r14, rbx + QUAD $0x051a0c203a0f4466 // pinsrb xmm9, byte [rdx + rbx], 5 + LONG $0x245c8b48; BYTE $0x60 // mov rbx, qword [rsp + 96] + QUAD $0x061a0c203a0f4466 // pinsrb xmm9, byte [rdx + rbx], 6 + QUAD $0x07020c203a0f4666 // pinsrb xmm9, byte [rdx + r8], 7 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x083a0c203a0f4666 // pinsrb xmm9, byte [rdx + r15], 8 + LONG $0x244c8948; BYTE $0x40 // mov qword [rsp + 64], rcx + QUAD $0x090a0c203a0f4466 // pinsrb xmm9, byte [rdx + rcx], 9 + LONG $0x2464894c; BYTE $0x48 // mov qword [rsp + 72], r12 + QUAD $0x0a220c203a0f4666 // pinsrb xmm9, byte [rdx + r12], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b3a0c203a0f4466 // pinsrb xmm9, byte [rdx + rdi], 11 + QUAD $0x0c0a0c203a0f4666 // pinsrb xmm9, byte [rdx + r9], 12 + QUAD $0x0d1a0c203a0f4666 // pinsrb xmm9, byte [rdx + r11], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e020c203a0f4466 // pinsrb xmm9, byte [rdx + rax], 14 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0f2a0c203a0f4666 // pinsrb xmm9, byte [rdx + r13], 15 + LONG $0xda0f4566; BYTE $0xca // pminub xmm9, xmm10 + LONG $0x740f4566; BYTE $0xca // pcmpeqb xmm9, xmm10 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0102027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 2], 1 + QUAD $0x02127c203a0f4266; BYTE $0x02 // pinsrb xmm7, byte [rdx + r10 + 2], 2 + LONG $0x246c8b4c; BYTE $0x58 // mov r13, qword [rsp + 88] + QUAD $0x022a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r13 + 2], 3 + QUAD $0x0402327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 2], 4 + QUAD $0x02327c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rdx + r14 + 2], 5 + QUAD $0x06021a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 2], 6 + QUAD $0x02027c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rdx + r8 + 2], 7 + QUAD $0x023a7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r15 + 2], 8 + QUAD $0x09020a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 2], 9 + QUAD $0x02227c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rdx + r12 + 2], 10 + QUAD $0x0b023a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 2], 11 + QUAD $0x020a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r9 + 2], 12 + QUAD $0x021a7c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rdx + r11 + 2], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e02027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 2], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0f02027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 2], 15 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x01030244203a0f66 // pinsrb xmm0, byte [rdx + rax + 3], 1 + QUAD $0x031244203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r10 + 3], 2 + QUAD $0x032a44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r13 + 3], 3 + QUAD $0x04033244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 3], 4 + QUAD $0x033244203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rdx + r14 + 3], 5 + QUAD $0x06031a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 3], 6 + QUAD $0x030244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r8 + 3], 7 + QUAD $0x033a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r15 + 3], 8 + QUAD $0x09030a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 3], 9 + QUAD $0x032244203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r12 + 3], 10 + QUAD $0x0b033a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 3], 11 + QUAD $0x030a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r9 + 3], 12 + QUAD $0x031a44203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rdx + r11 + 3], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e030244203a0f66 // pinsrb xmm0, byte [rdx + rax + 3], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0f030244203a0f66 // pinsrb xmm0, byte [rdx + rax + 3], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0104025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 4], 1 + QUAD $0x04125c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rdx + r10 + 4], 2 + QUAD $0x042a5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r13 + 4], 3 + QUAD $0x0404325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 4], 4 + QUAD $0x04325c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rdx + r14 + 4], 5 + QUAD $0x06041a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 4], 6 + QUAD $0x04025c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r8 + 4], 7 + QUAD $0x043a5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r15 + 4], 8 + QUAD $0x09040a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 4], 9 + QUAD $0x04225c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r12 + 4], 10 + QUAD $0x0b043a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 4], 11 + QUAD $0x040a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r9 + 4], 12 + QUAD $0x041a5c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r11 + 4], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e04025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 4], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0f04025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 4], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x01050254203a0f66 // pinsrb xmm2, byte [rdx + rax + 5], 1 + QUAD $0x051254203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r10 + 5], 2 + QUAD $0x052a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r13 + 5], 3 + QUAD $0x04053254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 5], 4 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + QUAD $0x000000c024b48948 // mov qword [rsp + 192], rsi + QUAD $0x053254203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r14 + 5], 5 + QUAD $0x06051a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 5], 6 + QUAD $0x050254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r8 + 5], 7 + QUAD $0x053a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r15 + 5], 8 + QUAD $0x09050a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 5], 9 + QUAD $0x052254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r12 + 5], 10 + QUAD $0x0b053a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 5], 11 + QUAD $0x050a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 5], 12 + QUAD $0x051a54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r11 + 5], 13 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0xdf0f4466; BYTE $0xc9 // pandn xmm9, xmm1 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e050254203a0f66 // pinsrb xmm2, byte [rdx + rax + 5], 14 + LONG $0xda0f4166; BYTE $0xfa // pminub xmm7, xmm10 + LONG $0x740f4166; BYTE $0xfa // pcmpeqb xmm7, xmm10 + QUAD $0x000000b08d6f0f66 // movdqa xmm1, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xf9df0f66 // pandn xmm7, xmm1 + LONG $0xeb0f4166; BYTE $0xf9 // por xmm7, xmm9 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x74b60f42; WORD $0x1022 // movzx esi, byte [rdx + r12 + 16] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x0f050a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 5], 15 + LONG $0xda0f4166; BYTE $0xc2 // pminub xmm0, xmm10 + LONG $0x740f4166; BYTE $0xc2 // pcmpeqb xmm0, xmm10 + QUAD $0x000000c08d6f0f66 // movdqa xmm1, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xc1df0f66 // pandn xmm0, xmm1 + LONG $0xc7eb0f66 // por xmm0, xmm7 + LONG $0x74b60f42; WORD $0x1122 // movzx esi, byte [rdx + r12 + 17] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0xff760f66 // pcmpeqd xmm7, xmm7 + LONG $0xf7f80f66 // psubb xmm6, xmm7 + LONG $0x760f4566; BYTE $0xc9 // pcmpeqd xmm9, xmm9 + LONG $0xc6eb0f66 // por xmm0, xmm6 + LONG $0x74b60f42; WORD $0x1222 // movzx esi, byte [rdx + r12 + 18] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xda0f4166; BYTE $0xda // pminub xmm3, xmm10 + LONG $0x740f4166; BYTE $0xda // pcmpeqb xmm3, xmm10 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xdedf0f66 // pandn xmm3, xmm6 + LONG $0xda0f4166; BYTE $0xd2 // pminub xmm2, xmm10 + LONG $0x740f4166; BYTE $0xd2 // pcmpeqb xmm2, xmm10 + QUAD $0x000000e0b56f0f66 // movdqa xmm6, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xd6df0f66 // pandn xmm2, xmm6 + LONG $0xd3eb0f66 // por xmm2, xmm3 + LONG $0x74b60f42; WORD $0x1322 // movzx esi, byte [rdx + r12 + 19] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x060a44203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rdx + rcx + 6], 1 + LONG $0x245c8b4c; BYTE $0x20 // mov r11, qword [rsp + 32] + QUAD $0x061a44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rdx + r11 + 6], 2 + QUAD $0x062a44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r13 + 6], 3 + QUAD $0x061244203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r10 + 6], 4 + LONG $0x2474894c; BYTE $0x78 // mov qword [rsp + 120], r14 + QUAD $0x063244203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rdx + r14 + 6], 5 + QUAD $0x061a44203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rdx + rbx + 6], 6 + QUAD $0x000000d02484894c // mov qword [rsp + 208], r8 + QUAD $0x060244203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rdx + r8 + 6], 7 + QUAD $0x063a44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r15 + 6], 8 + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + QUAD $0x063a44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rdx + r15 + 6], 9 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x060244203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rdx + rax + 6], 10 + LONG $0x24548b4c; BYTE $0x28 // mov r10, qword [rsp + 40] + QUAD $0x061244203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r10 + 6], 11 + QUAD $0x060a44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r9 + 6], 12 + QUAD $0x063a44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rdi + 6], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x061a44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rdx + rbx + 6], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x060244203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rdx + rax + 6], 15 + LONG $0xda0f4566; BYTE $0xc2 // pminub xmm8, xmm10 + LONG $0x740f4566; BYTE $0xc2 // pcmpeqb xmm8, xmm10 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xdf0f4466; BYTE $0xc3 // pandn xmm8, xmm3 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x74b60f42; WORD $0x1422 // movzx esi, byte [rdx + r12 + 20] + LONG $0xe66e0f66 // movd xmm4, esi + QUAD $0x0000a024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 160] + QUAD $0x01070a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 7], 1 + QUAD $0x071a74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rdx + r11 + 7], 2 + QUAD $0x072a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r13 + 7], 3 + QUAD $0x000000c0248c8b48 // mov rcx, qword [rsp + 192] + QUAD $0x04070a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 7], 4 + QUAD $0x073274203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r14 + 7], 5 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x073274203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r14 + 7], 6 + QUAD $0x070274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r8 + 7], 7 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x072274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r12 + 7], 8 + QUAD $0x073a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r15 + 7], 9 + LONG $0x24448b4c; BYTE $0x48 // mov r8, qword [rsp + 72] + QUAD $0x070274203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r8 + 7], 10 + QUAD $0x071274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r10 + 7], 11 + QUAD $0x070a74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r9 + 7], 12 + QUAD $0x0d073a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 7], 13 + WORD $0x8949; BYTE $0xff // mov r15, rdi + QUAD $0x0e071a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 7], 14 + QUAD $0x0f070274203a0f66 // pinsrb xmm6, byte [rdx + rax + 7], 15 + LONG $0xda0f4166; BYTE $0xf2 // pminub xmm6, xmm10 + LONG $0x740f4166; BYTE $0xf2 // pcmpeqb xmm6, xmm10 + LONG $0xef0f4166; BYTE $0xf1 // pxor xmm6, xmm9 + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xf6710f66; BYTE $0x07 // psllw xmm6, 7 + LONG $0x556f0f66; BYTE $0x60 // movdqa xmm2, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xf2db0f66 // pand xmm6, xmm2 + LONG $0xeb0f4166; BYTE $0xf0 // por xmm6, xmm8 + LONG $0x6f0f4466; BYTE $0xc6 // movdqa xmm8, xmm6 + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + LONG $0x0274b60f; BYTE $0x15 // movzx esi, byte [rdx + rax + 21] + LONG $0xf66e0f66 // movd xmm6, esi + QUAD $0x00011024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 272] + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x01080a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 8], 1 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + QUAD $0x081a54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r11 + 8], 2 + WORD $0x894c; BYTE $0xef // mov rdi, r13 + QUAD $0x082a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r13 + 8], 3 + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + QUAD $0x081254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r10 + 8], 4 + LONG $0x245c8b4c; BYTE $0x78 // mov r11, qword [rsp + 120] + QUAD $0x081a54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r11 + 8], 5 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + QUAD $0x083254203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r14 + 8], 6 + QUAD $0x000000d024b48b48 // mov rsi, qword [rsp + 208] + QUAD $0x07083254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 8], 7 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + QUAD $0x082254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r12 + 8], 8 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x09081a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 8], 9 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x080254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r8 + 8], 10 + LONG $0x245c8b48; BYTE $0x28 // mov rbx, qword [rsp + 40] + QUAD $0x0b081a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 8], 11 + LONG $0x244c894c; BYTE $0x70 // mov qword [rsp + 112], r9 + QUAD $0x080a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 8], 12 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + QUAD $0x083a54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r15 + 8], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x083a54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r15 + 8], 14 + QUAD $0x090a5c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rcx + 9], 1 + QUAD $0x09025c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rax + 9], 2 + QUAD $0x093a5c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rdx + rdi + 9], 3 + QUAD $0x09125c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r10 + 9], 4 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x091a5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r11 + 9], 5 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x092a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r13 + 9], 6 + WORD $0x894d; BYTE $0xea // mov r10, r13 + QUAD $0x09325c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rdx + rsi + 9], 7 + QUAD $0x09325c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r14 + 9], 8 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x09025c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rax + 9], 9 + QUAD $0x09225c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r12 + 9], 10 + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x091a5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r11 + 9], 11 + QUAD $0x090a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r9 + 9], 12 + QUAD $0x09025c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rdx + r8 + 9], 13 + WORD $0x894d; BYTE $0xc5 // mov r13, r8 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x09025c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r8 + 9], 14 + LONG $0x247c8b4c; BYTE $0x18 // mov r15, qword [rsp + 24] + QUAD $0x093a5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r15 + 9], 15 + LONG $0xeb0f4466; BYTE $0xc0 // por xmm8, xmm0 + QUAD $0x00a024847f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm8 + LONG $0xda0f4566; BYTE $0xda // pminub xmm11, xmm10 + LONG $0x740f4566; BYTE $0xda // pcmpeqb xmm11, xmm10 + LONG $0x6f0f4166; BYTE $0xc3 // movdqa xmm0, xmm11 + QUAD $0x0000a0856f0f4466; BYTE $0x00 // movdqa xmm8, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdf0f4166; BYTE $0xc0 // pandn xmm0, xmm8 + LONG $0xfc0f4166; BYTE $0xc3 // paddb xmm0, xmm11 + LONG $0x244c8b4c; BYTE $0x38 // mov r9, qword [rsp + 56] + LONG $0x74b60f42; WORD $0x160a // movzx esi, byte [rdx + r9 + 22] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + QUAD $0x083a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r15 + 8], 15 + LONG $0xda0f4166; BYTE $0xd2 // pminub xmm2, xmm10 + LONG $0x740f4166; BYTE $0xd2 // pcmpeqb xmm2, xmm10 + LONG $0xdf0f4166; BYTE $0xd0 // pandn xmm2, xmm8 + QUAD $0x0a0a64203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rcx + 10], 1 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x0a0a64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rcx + 10], 2 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0a0a64203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rdx + rcx + 10], 3 + QUAD $0x0a1a64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rbx + 10], 4 + QUAD $0x0a3a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rdi + 10], 5 + QUAD $0x0a1264203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r10 + 10], 6 + QUAD $0x000000d0249c8b48 // mov rbx, qword [rsp + 208] + QUAD $0x0a1a64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rdx + rbx + 10], 7 + QUAD $0x0a3264203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r14 + 10], 8 + QUAD $0x0a0264203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rdx + rax + 10], 9 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + QUAD $0x0a2264203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rdx + r12 + 10], 10 + QUAD $0x0a1a64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r11 + 10], 11 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a0264203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rdx + rax + 10], 12 + QUAD $0x0a2a64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r13 + 10], 13 + QUAD $0x0a0264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r8 + 10], 14 + QUAD $0x0a3a64203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rdx + r15 + 10], 15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + LONG $0xda0f4566; BYTE $0xe2 // pminub xmm12, xmm10 + LONG $0x740f4566; BYTE $0xe2 // pcmpeqb xmm12, xmm10 + QUAD $0x0000b0a5df0f4466; BYTE $0x00 // pandn xmm12, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xeb0f4466; BYTE $0xe2 // por xmm12, xmm2 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x74b60f42; WORD $0x170a // movzx esi, byte [rdx + r9 + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + QUAD $0x00009024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 144] + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x0b0254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r8 + 11], 1 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0b3a54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r15 + 11], 2 + QUAD $0x030b0a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 11], 3 + QUAD $0x000000c0249c8b4c // mov r11, qword [rsp + 192] + QUAD $0x0b1a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r11 + 11], 4 + QUAD $0x050b3a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 11], 5 + QUAD $0x0b1254203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r10 + 11], 6 + QUAD $0x070b1a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 11], 7 + LONG $0x24748b48; BYTE $0x50 // mov rsi, qword [rsp + 80] + QUAD $0x080b3254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 11], 8 + QUAD $0x0b3254203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r14 + 11], 9 + LONG $0x24748b4c; BYTE $0x48 // mov r14, qword [rsp + 72] + QUAD $0x0b3254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r14 + 11], 10 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x0b0b3a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 11], 11 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x0b0a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 11], 12 + QUAD $0x0b2a54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r13 + 11], 13 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0e0b3254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 11], 14 + QUAD $0x0b2254203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r12 + 11], 15 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + LONG $0xda0f4166; BYTE $0xd2 // pminub xmm2, xmm10 + LONG $0x740f4166; BYTE $0xd2 // pcmpeqb xmm2, xmm10 + QUAD $0x000000c095df0f66 // pandn xmm2, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xeb0f4166; BYTE $0xd4 // por xmm2, xmm12 + LONG $0x0274b60f; BYTE $0x18 // movzx esi, byte [rdx + rax + 24] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + LONG $0xc3f80f66 // psubb xmm0, xmm3 + LONG $0xd0eb0f66 // por xmm2, xmm0 + QUAD $0x00009024947f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm2 + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0xde6e0f66 // movd xmm3, esi + QUAD $0x00013024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 304] + QUAD $0x0c0254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r8 + 12], 1 + QUAD $0x0c3a54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r15 + 12], 2 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0c0254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r8 + 12], 3 + WORD $0x894d; BYTE $0xda // mov r10, r11 + QUAD $0x0c1a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r11 + 12], 4 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x050c3254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 12], 5 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x0c3a54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r15 + 12], 6 + QUAD $0x070c1a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 12], 7 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0c1a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r11 + 12], 8 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x090c0a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 12], 9 + QUAD $0x0c3254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r14 + 12], 10 + QUAD $0x0b0c3a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 12], 11 + QUAD $0x0c0a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 12], 12 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x0c2254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 12], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e0c0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 12], 14 + QUAD $0x0c2a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r13 + 12], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0d0274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rax + 13], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0d2a74203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rdx + r13 + 13], 2 + QUAD $0x0d0274203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r8 + 13], 3 + QUAD $0x0d1274203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rdx + r10 + 13], 4 + QUAD $0x0d3274203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rdx + rsi + 13], 5 + QUAD $0x0d3a74203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r15 + 13], 6 + QUAD $0x0d1a74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rdx + rbx + 13], 7 + QUAD $0x0d1a74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r11 + 13], 8 + QUAD $0x0d0a74203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rdx + rcx + 13], 9 + QUAD $0x0d3274203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rdx + r14 + 13], 10 + QUAD $0x0d3a74203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rdx + rdi + 13], 11 + QUAD $0x0d0a74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r9 + 13], 12 + QUAD $0x0d2274203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rdx + r12 + 13], 13 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x0d2a74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r13 + 13], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0d0274203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rax + 13], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e026c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rdx + rax + 14], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0e026c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rax + 14], 2 + QUAD $0x0e026c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r8 + 14], 3 + QUAD $0x0e126c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rdx + r10 + 14], 4 + QUAD $0x0e326c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rsi + 14], 5 + QUAD $0x0e3a6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r15 + 14], 6 + QUAD $0x0e1a6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rdx + rbx + 14], 7 + QUAD $0x0e1a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r11 + 14], 8 + QUAD $0x0e0a6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rdx + rcx + 14], 9 + QUAD $0x0e326c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rdx + r14 + 14], 10 + QUAD $0x0e3a6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rdx + rdi + 14], 11 + QUAD $0x0e0a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r9 + 14], 12 + QUAD $0x0e226c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r12 + 14], 13 + QUAD $0x0e2a6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r13 + 14], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e026c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rax + 14], 15 + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x010f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 15], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x0f2a44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r13 + 15], 2 + QUAD $0x0f0244203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r8 + 15], 3 + QUAD $0x0f1244203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r10 + 15], 4 + QUAD $0x050f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 15], 5 + QUAD $0x0f3a44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rdx + r15 + 15], 6 + QUAD $0x070f1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 15], 7 + QUAD $0x0f1a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r11 + 15], 8 + QUAD $0x090f0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 15], 9 + QUAD $0x0f3244203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r14 + 15], 10 + QUAD $0x0b0f3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 15], 11 + QUAD $0x0f0a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r9 + 15], 12 + QUAD $0x0f2244203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rdx + r12 + 15], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e0f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 15], 14 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0f0f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 15], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0111024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 17], 1 + QUAD $0x112a4c203a0f4266; BYTE $0x02 // pinsrb xmm1, byte [rdx + r13 + 17], 2 + QUAD $0x11024c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r8 + 17], 3 + QUAD $0x11124c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r10 + 17], 4 + QUAD $0x0511324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 17], 5 + QUAD $0x113a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r15 + 17], 6 + QUAD $0x07111a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 17], 7 + QUAD $0x111a4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r11 + 17], 8 + QUAD $0x09110a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 17], 9 + QUAD $0x11324c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r14 + 17], 10 + QUAD $0x0b113a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 17], 11 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x110a4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r9 + 17], 12 + QUAD $0x11224c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r12 + 17], 13 + LONG $0xda0f4166; BYTE $0xd2 // pminub xmm2, xmm10 + LONG $0x740f4166; BYTE $0xd2 // pcmpeqb xmm2, xmm10 + QUAD $0x000000d095df0f66 // pandn xmm2, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xda0f4566; BYTE $0xf2 // pminub xmm14, xmm10 + LONG $0x740f4566; BYTE $0xf2 // pcmpeqb xmm14, xmm10 + QUAD $0x0000e0b5df0f4466; BYTE $0x00 // pandn xmm14, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xeb0f4466; BYTE $0xf2 // por xmm14, xmm2 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + LONG $0x3a74b60f; BYTE $0x1a // movzx esi, byte [rdx + rdi + 26] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x244c8b4c; BYTE $0x10 // mov r9, qword [rsp + 16] + QUAD $0x110a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r9 + 17], 14 + LONG $0xda0f4566; BYTE $0xea // pminub xmm13, xmm10 + LONG $0x740f4566; BYTE $0xea // pcmpeqb xmm13, xmm10 + QUAD $0x0000f0addf0f4466; BYTE $0x00 // pandn xmm13, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xeb0f4566; BYTE $0xee // por xmm13, xmm14 + LONG $0x3a74b60f; BYTE $0x1b // movzx esi, byte [rdx + rdi + 27] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + LONG $0xda0f4166; BYTE $0xc2 // pminub xmm0, xmm10 + LONG $0x740f4166; BYTE $0xc2 // pcmpeqb xmm0, xmm10 + QUAD $0x0000010085ef0f66 // pxor xmm0, oword 256[rbp] /* [rip + .LCPI8_16] */ + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0x45db0f66; BYTE $0x60 // pand xmm0, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x3a74b60f; BYTE $0x1c // movzx esi, byte [rdx + rdi + 28] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x112a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r13 + 17], 15 + QUAD $0x0000902484eb0f66; BYTE $0x00 // por xmm0, oword [rsp + 144] + QUAD $0x0000b024847f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm0 + LONG $0xda0f4166; BYTE $0xca // pminub xmm1, xmm10 + LONG $0x740f4166; BYTE $0xca // pcmpeqb xmm1, xmm10 + LONG $0x6f0f4166; BYTE $0xc2 // movdqa xmm0, xmm10 + LONG $0x6f0f4466; BYTE $0xf1 // movdqa xmm14, xmm1 + QUAD $0x0000a0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdf0f4566; BYTE $0xf2 // pandn xmm14, xmm10 + LONG $0xfc0f4466; BYTE $0xf1 // paddb xmm14, xmm1 + QUAD $0x009024b47f0f4466; WORD $0x0000 // movdqa oword [rsp + 144], xmm14 + LONG $0x3a74b60f; BYTE $0x1d // movzx esi, byte [rdx + rdi + 29] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0110026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 16], 1 + QUAD $0x0112027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 18], 1 + QUAD $0x13027c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rax + 19], 1 + QUAD $0x01140264203a0f66 // pinsrb xmm4, byte [rdx + rax + 20], 1 + QUAD $0x01150274203a0f66 // pinsrb xmm6, byte [rdx + rax + 21], 1 + QUAD $0x16024c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rax + 22], 1 + QUAD $0x170244203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rdx + rax + 23], 1 + QUAD $0x18025c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rax + 24], 1 + QUAD $0x0119025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 25], 1 + QUAD $0x011a0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 26], 1 + QUAD $0x1b0264203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rax + 27], 1 + QUAD $0x1c026c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rdx + rax + 28], 1 + QUAD $0x1d0254203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rdx + rax + 29], 1 + LONG $0x3a74b60f; BYTE $0x1e // movzx esi, byte [rdx + rdi + 30] + LONG $0x6e0f4466; BYTE $0xf6 // movd xmm14, esi + QUAD $0x1e0274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rax + 30], 1 + LONG $0x3a74b60f; BYTE $0x1f // movzx esi, byte [rdx + rdi + 31] + LONG $0xce6e0f66 // movd xmm1, esi + QUAD $0x011f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0210026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 16], 2 + QUAD $0x0212027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 18], 2 + QUAD $0x13027c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rdx + rax + 19], 2 + QUAD $0x02140264203a0f66 // pinsrb xmm4, byte [rdx + rax + 20], 2 + QUAD $0x02150274203a0f66 // pinsrb xmm6, byte [rdx + rax + 21], 2 + QUAD $0x16024c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rax + 22], 2 + QUAD $0x170244203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rax + 23], 2 + QUAD $0x18025c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rax + 24], 2 + QUAD $0x0219025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 25], 2 + QUAD $0x021a0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 26], 2 + QUAD $0x1b0264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rax + 27], 2 + QUAD $0x1c026c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rax + 28], 2 + QUAD $0x1d0254203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rax + 29], 2 + QUAD $0x1e0274203a0f4466; BYTE $0x02 // pinsrb xmm14, byte [rdx + rax + 30], 2 + QUAD $0x021f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 2 + QUAD $0x10026c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r8 + 16], 3 + QUAD $0x10126c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r10 + 16], 4 + LONG $0x24748b48; BYTE $0x78 // mov rsi, qword [rsp + 120] + QUAD $0x0510326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 16], 5 + QUAD $0x103a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r15 + 16], 6 + QUAD $0x07101a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 16], 7 + QUAD $0x101a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r11 + 16], 8 + QUAD $0x09100a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 16], 9 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x0a10026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 16], 10 + QUAD $0x10326c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r14 + 16], 11 + LONG $0x24648b4c; BYTE $0x70 // mov r12, qword [rsp + 112] + QUAD $0x10226c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r12 + 16], 12 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x0d103a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 16], 13 + QUAD $0x100a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r9 + 16], 14 + QUAD $0x102a6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r13 + 16], 15 + LONG $0xe8da0f66 // pminub xmm5, xmm0 + LONG $0xe8740f66 // pcmpeqb xmm5, xmm0 + QUAD $0x12027c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r8 + 18], 3 + QUAD $0x12127c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r10 + 18], 4 + QUAD $0x0512327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 18], 5 + QUAD $0x123a7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r15 + 18], 6 + QUAD $0x07121a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 18], 7 + QUAD $0x121a7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r11 + 18], 8 + QUAD $0x09120a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 18], 9 + QUAD $0x0a12027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 18], 10 + QUAD $0x12327c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r14 + 18], 11 + QUAD $0x12227c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r12 + 18], 12 + QUAD $0x0d123a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 18], 13 + QUAD $0x120a7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r9 + 18], 14 + QUAD $0x122a7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r13 + 18], 15 + QUAD $0x13027c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r8 + 19], 3 + QUAD $0x13127c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rdx + r10 + 19], 4 + QUAD $0x13327c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rsi + 19], 5 + QUAD $0x133a7c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r15 + 19], 6 + QUAD $0x131a7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rdx + rbx + 19], 7 + QUAD $0x131a7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r11 + 19], 8 + QUAD $0x130a7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rdx + rcx + 19], 9 + QUAD $0x13027c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rdx + rax + 19], 10 + QUAD $0x13327c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r14 + 19], 11 + QUAD $0x13227c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r12 + 19], 12 + QUAD $0x133a7c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rdi + 19], 13 + QUAD $0x130a7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rdx + r9 + 19], 14 + QUAD $0x132a7c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rdx + r13 + 19], 15 + QUAD $0x140264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r8 + 20], 3 + QUAD $0x141264203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r10 + 20], 4 + QUAD $0x05143264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 20], 5 + QUAD $0x143a64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r15 + 20], 6 + QUAD $0x07141a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 20], 7 + QUAD $0x141a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r11 + 20], 8 + QUAD $0x09140a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 20], 9 + QUAD $0x0a140264203a0f66 // pinsrb xmm4, byte [rdx + rax + 20], 10 + QUAD $0x143264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r14 + 20], 11 + QUAD $0x142264203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r12 + 20], 12 + QUAD $0x0d143a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 20], 13 + QUAD $0x140a64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r9 + 20], 14 + QUAD $0x142a64203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rdx + r13 + 20], 15 + QUAD $0x150274203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r8 + 21], 3 + QUAD $0x151274203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r10 + 21], 4 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x05153274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 21], 5 + QUAD $0x153a74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r15 + 21], 6 + QUAD $0x07151a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 21], 7 + QUAD $0x151a74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r11 + 21], 8 + QUAD $0x09150a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 21], 9 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x151274203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r10 + 21], 10 + QUAD $0x153274203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r14 + 21], 11 + QUAD $0x152274203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r12 + 21], 12 + QUAD $0x0d153a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 21], 13 + QUAD $0x150a74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r9 + 21], 14 + QUAD $0x000000a0addf0f66 // pandn xmm5, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xf8da0f66 // pminub xmm7, xmm0 + LONG $0xf8740f66 // pcmpeqb xmm7, xmm0 + QUAD $0x000000b0bddf0f66 // pandn xmm7, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0xda0f4466; BYTE $0xf8 // pminub xmm15, xmm0 + LONG $0x740f4466; BYTE $0xf8 // pcmpeqb xmm15, xmm0 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xdf0f4466; BYTE $0xfd // pandn xmm15, xmm5 + LONG $0xeb0f4466; BYTE $0xff // por xmm15, xmm7 + QUAD $0x152a74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rdx + r13 + 21], 15 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + QUAD $0x00009024bc6f0f66; BYTE $0x00 // movdqa xmm7, oword [rsp + 144] + LONG $0xfdf80f66 // psubb xmm7, xmm5 + LONG $0xeb0f4466; BYTE $0xff // por xmm15, xmm7 + LONG $0xe0da0f66 // pminub xmm4, xmm0 + LONG $0xe0740f66 // pcmpeqb xmm4, xmm0 + QUAD $0x000000d0bd6f0f66 // movdqa xmm7, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xe7df0f66 // pandn xmm4, xmm7 + LONG $0xf0da0f66 // pminub xmm6, xmm0 + LONG $0xf0740f66 // pcmpeqb xmm6, xmm0 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xf7df0f66 // pandn xmm6, xmm7 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x16024c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r8 + 22], 3 + QUAD $0x16024c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rdx + rax + 22], 4 + QUAD $0x16324c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rdx + rsi + 22], 5 + QUAD $0x163a4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r15 + 22], 6 + QUAD $0x161a4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rdx + rbx + 22], 7 + QUAD $0x161a4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r11 + 22], 8 + QUAD $0x160a4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rdx + rcx + 22], 9 + QUAD $0x16124c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r10 + 22], 10 + QUAD $0x16324c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r14 + 22], 11 + QUAD $0x16224c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r12 + 22], 12 + QUAD $0x163a4c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rdi + 22], 13 + QUAD $0x160a4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r9 + 22], 14 + QUAD $0x162a4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r13 + 22], 15 + LONG $0xda0f4466; BYTE $0xc8 // pminub xmm9, xmm0 + LONG $0x740f4466; BYTE $0xc8 // pcmpeqb xmm9, xmm0 + QUAD $0x000000f0bd6f0f66 // movdqa xmm7, oword 240[rbp] /* [rip + .LCPI8_15] */ + LONG $0xdf0f4466; BYTE $0xcf // pandn xmm9, xmm7 + LONG $0xeb0f4466; BYTE $0xce // por xmm9, xmm6 + QUAD $0x170244203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r8 + 23], 3 + QUAD $0x170244203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rdx + rax + 23], 4 + QUAD $0x173244203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rsi + 23], 5 + QUAD $0x173a44203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rdx + r15 + 23], 6 + QUAD $0x171a44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rdx + rbx + 23], 7 + QUAD $0x171a44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r11 + 23], 8 + QUAD $0x170a44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rdx + rcx + 23], 9 + QUAD $0x171244203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rdx + r10 + 23], 10 + QUAD $0x173244203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r14 + 23], 11 + QUAD $0x172244203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rdx + r12 + 23], 12 + QUAD $0x173a44203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rdx + rdi + 23], 13 + QUAD $0x170a44203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rdx + r9 + 23], 14 + QUAD $0x172a44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r13 + 23], 15 + LONG $0xda0f4466; BYTE $0xc0 // pminub xmm8, xmm0 + LONG $0x740f4466; BYTE $0xc0 // pcmpeqb xmm8, xmm0 + LONG $0xef0f4466; BYTE $0xc5 // pxor xmm8, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x756f0f66; BYTE $0x60 // movdqa xmm6, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0f4466; BYTE $0xc6 // pand xmm8, xmm6 + LONG $0xeb0f4566; BYTE $0xc1 // por xmm8, xmm9 + QUAD $0x18025c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r8 + 24], 3 + QUAD $0x18025c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rdx + rax + 24], 4 + QUAD $0x18325c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rsi + 24], 5 + QUAD $0x183a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r15 + 24], 6 + QUAD $0x181a5c203a0f4466; BYTE $0x07 // pinsrb xmm11, byte [rdx + rbx + 24], 7 + QUAD $0x181a5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r11 + 24], 8 + QUAD $0x180a5c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rcx + 24], 9 + QUAD $0x18125c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r10 + 24], 10 + QUAD $0x18325c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r14 + 24], 11 + QUAD $0x18225c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r12 + 24], 12 + QUAD $0x183a5c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rdi + 24], 13 + QUAD $0x180a5c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r9 + 24], 14 + QUAD $0x19025c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r8 + 25], 3 + QUAD $0x0419025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 25], 4 + QUAD $0x0519325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 25], 5 + QUAD $0x193a5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r15 + 25], 6 + QUAD $0x07191a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 25], 7 + QUAD $0x191a5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r11 + 25], 8 + QUAD $0x09190a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 25], 9 + QUAD $0x19125c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r10 + 25], 10 + QUAD $0x19325c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r14 + 25], 11 + QUAD $0x19225c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r12 + 25], 12 + QUAD $0x0d193a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 25], 13 + QUAD $0x190a5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r9 + 25], 14 + QUAD $0x192a5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r13 + 25], 15 + LONG $0xeb0f4566; BYTE $0xc7 // por xmm8, xmm15 + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xd8da0f66 // pminub xmm3, xmm0 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + QUAD $0x0000a08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 160[rbp] /* [rip + .LCPI8_10] */ + LONG $0xdf0f4166; BYTE $0xc1 // pandn xmm0, xmm9 + LONG $0xc3fc0f66 // paddb xmm0, xmm3 + QUAD $0x182a5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r13 + 24], 15 + LONG $0xda0f4466; BYTE $0xdc // pminub xmm11, xmm4 + LONG $0x740f4466; BYTE $0xdc // pcmpeqb xmm11, xmm4 + LONG $0xdf0f4566; BYTE $0xd9 // pandn xmm11, xmm9 + QUAD $0x1a0254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r8 + 26], 3 + QUAD $0x041a0254203a0f66 // pinsrb xmm2, byte [rdx + rax + 26], 4 + QUAD $0x051a3254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 26], 5 + QUAD $0x1a3a54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r15 + 26], 6 + QUAD $0x071a1a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 26], 7 + QUAD $0x1a1a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r11 + 26], 8 + QUAD $0x091a0a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 26], 9 + QUAD $0x1a1254203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r10 + 26], 10 + QUAD $0x1a3254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r14 + 26], 11 + QUAD $0x1a2254203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r12 + 26], 12 + QUAD $0x0d1a3a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 26], 13 + QUAD $0x1a0a54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r9 + 26], 14 + QUAD $0x1a2a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r13 + 26], 15 + LONG $0xd4da0f66 // pminub xmm2, xmm4 + LONG $0xd4740f66 // pcmpeqb xmm2, xmm4 + QUAD $0x000000b095df0f66 // pandn xmm2, oword 176[rbp] /* [rip + .LCPI8_11] */ + LONG $0xeb0f4166; BYTE $0xd3 // por xmm2, xmm11 + QUAD $0x1b0264203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r8 + 27], 3 + QUAD $0x1b0264203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rax + 27], 4 + QUAD $0x1b3264203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rsi + 27], 5 + QUAD $0x1b3a64203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r15 + 27], 6 + QUAD $0x1b1a64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rdx + rbx + 27], 7 + QUAD $0x1b1a64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r11 + 27], 8 + QUAD $0x1b0a64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rdx + rcx + 27], 9 + QUAD $0x1b1264203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rdx + r10 + 27], 10 + QUAD $0x1b3264203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r14 + 27], 11 + QUAD $0x1b2264203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r12 + 27], 12 + QUAD $0x1b3a64203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rdx + rdi + 27], 13 + QUAD $0x1b0a64203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r9 + 27], 14 + QUAD $0x1b2a64203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rdx + r13 + 27], 15 + LONG $0xda0f4466; BYTE $0xe4 // pminub xmm12, xmm4 + LONG $0x740f4466; BYTE $0xe4 // pcmpeqb xmm12, xmm4 + LONG $0xdc6f0f66 // movdqa xmm3, xmm4 + QUAD $0x0000c0a5df0f4466; BYTE $0x00 // pandn xmm12, oword 192[rbp] /* [rip + .LCPI8_12] */ + LONG $0xeb0f4466; BYTE $0xe2 // por xmm12, xmm2 + LONG $0xc5f80f66 // psubb xmm0, xmm5 + LONG $0xeb0f4466; BYTE $0xe0 // por xmm12, xmm0 + QUAD $0x1c026c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r8 + 28], 3 + QUAD $0x1d0254203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r8 + 29], 3 + QUAD $0x1e0274203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r8 + 30], 3 + QUAD $0x1f024c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r8 + 31], 3 + QUAD $0x1c026c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rdx + rax + 28], 4 + QUAD $0x1d0254203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rdx + rax + 29], 4 + QUAD $0x1e0274203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rdx + rax + 30], 4 + QUAD $0x041f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 4 + QUAD $0x1c326c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rsi + 28], 5 + QUAD $0x1d3254203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rsi + 29], 5 + QUAD $0x1e3274203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rdx + rsi + 30], 5 + QUAD $0x051f324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 31], 5 + QUAD $0x1c3a6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r15 + 28], 6 + QUAD $0x1d3a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r15 + 29], 6 + QUAD $0x1e3a74203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r15 + 30], 6 + QUAD $0x1f3a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r15 + 31], 6 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x1c1a6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rdx + rbx + 28], 7 + QUAD $0x1d1a54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rdx + rbx + 29], 7 + QUAD $0x1e1a74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rdx + rbx + 30], 7 + QUAD $0x071f1a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 31], 7 + QUAD $0x1c1a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r11 + 28], 8 + QUAD $0x1d1a54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r11 + 29], 8 + QUAD $0x1e1a74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r11 + 30], 8 + QUAD $0x1f1a4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r11 + 31], 8 + QUAD $0x1c0a6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rdx + rcx + 28], 9 + QUAD $0x1d0a54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rcx + 29], 9 + QUAD $0x1e0a74203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rdx + rcx + 30], 9 + QUAD $0x091f0a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 31], 9 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + QUAD $0x1c126c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rdx + r10 + 28], 10 + QUAD $0x1d1254203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rdx + r10 + 29], 10 + QUAD $0x1e1274203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rdx + r10 + 30], 10 + QUAD $0x1f124c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rdx + r10 + 31], 10 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x1c026c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rdx + rax + 28], 11 + QUAD $0x1d0254203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rdx + rax + 29], 11 + QUAD $0x1e0274203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rdx + rax + 30], 11 + QUAD $0x0b1f024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 31], 11 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x1c226c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r12 + 28], 12 + QUAD $0x1d2254203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r12 + 29], 12 + QUAD $0x1e2274203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r12 + 30], 12 + QUAD $0x1f224c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r12 + 31], 12 + QUAD $0x1c3a6c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rdx + rdi + 28], 13 + QUAD $0x1d3a54203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rdi + 29], 13 + QUAD $0x1e3a74203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rdi + 30], 13 + QUAD $0x0d1f3a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 31], 13 + QUAD $0x1c0a6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r9 + 28], 14 + QUAD $0x1d0a54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r9 + 29], 14 + QUAD $0x1e0a74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r9 + 30], 14 + QUAD $0x1f0a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r9 + 31], 14 + WORD $0x894c; BYTE $0xe8 // mov rax, r13 + QUAD $0x1c2a6c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rdx + r13 + 28], 15 + QUAD $0x1d2a54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rdx + r13 + 29], 15 + QUAD $0x1e2a74203a0f4666; BYTE $0x0f // pinsrb xmm14, byte [rdx + r13 + 30], 15 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xda0f4466; BYTE $0xec // pminub xmm13, xmm4 + LONG $0x740f4466; BYTE $0xec // pcmpeqb xmm13, xmm4 + QUAD $0x0000d0addf0f4466; BYTE $0x00 // pandn xmm13, oword 208[rbp] /* [rip + .LCPI8_13] */ + LONG $0xda0f4466; BYTE $0xd4 // pminub xmm10, xmm4 + LONG $0x740f4466; BYTE $0xd4 // pcmpeqb xmm10, xmm4 + QUAD $0x0000e095df0f4466; BYTE $0x00 // pandn xmm10, oword 224[rbp] /* [rip + .LCPI8_14] */ + LONG $0xeb0f4566; BYTE $0xd5 // por xmm10, xmm13 + QUAD $0x1f2a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r13 + 31], 15 + LONG $0xda0f4466; BYTE $0xf4 // pminub xmm14, xmm4 + LONG $0x740f4466; BYTE $0xf4 // pcmpeqb xmm14, xmm4 + LONG $0xdf0f4466; BYTE $0xf7 // pandn xmm14, xmm7 + LONG $0xeb0f4566; BYTE $0xf2 // por xmm14, xmm10 + LONG $0xccda0f66 // pminub xmm1, xmm4 + LONG $0xcc740f66 // pcmpeqb xmm1, xmm4 + LONG $0xcdef0f66 // pxor xmm1, xmm5 + LONG $0xf1710f66; BYTE $0x07 // psllw xmm1, 7 + LONG $0xcedb0f66 // pand xmm1, xmm6 + LONG $0xeb0f4166; BYTE $0xce // por xmm1, xmm14 + LONG $0xeb0f4166; BYTE $0xcc // por xmm1, xmm12 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc1600f66 // punpcklbw xmm0, xmm1 + QUAD $0x0000a024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 160] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + QUAD $0x0000b024ac6f0f66; BYTE $0x00 // movdqa xmm5, oword [rsp + 176] + LONG $0xd5600f66 // punpcklbw xmm2, xmm5 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd8610f66 // punpcklwd xmm3, xmm0 + LONG $0xd0690f66 // punpckhwd xmm2, xmm0 + LONG $0x680f4466; BYTE $0xc1 // punpckhbw xmm8, xmm1 + LONG $0xe5680f66 // punpckhbw xmm4, xmm5 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xe0 // punpckhwd xmm4, xmm8 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + LONG $0x7f0f41f3; WORD $0x8e64; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm4 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e54; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm2 + LONG $0x7f0f41f3; WORD $0x8e1c // movdqu oword [r14 + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000e8248c3b48 // cmp rcx, qword [rsp + 232] + JNE LBB8_195 + QUAD $0x0000010024bc8b4c // mov r15, qword [rsp + 256] + QUAD $0x000000e824bc3b4c // cmp r15, qword [rsp + 232] + LONG $0x241c8a44 // mov r11b, byte [rsp] + QUAD $0x0000010824b48b48 // mov rsi, qword [rsp + 264] + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + JNE LBB8_67 + JMP LBB8_132 + +LBB8_197: + LONG $0xf8e78349 // and r15, -8 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24448948; BYTE $0x28 // mov qword [rsp + 40], rax + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24048948 // mov qword [rsp], rax + LONG $0x246c8944; BYTE $0x30 // mov dword [rsp + 48], r13d + LONG $0x6e0f4166; BYTE $0xc5 // movd xmm0, r13d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00f8 // pshufd xmm15, xmm0, 0 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + QUAD $0x0000008024b4894c // mov qword [rsp + 128], r14 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI8_8] */ + +LBB8_198: + LONG $0x244c894c; BYTE $0x10 // mov qword [rsp + 16], r9 + LONG $0x06e1c149 // shl r9, 6 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + WORD $0x894d; BYTE $0xcc // mov r12, r9 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + LONG $0x04b70f42; BYTE $0x0a // movzx eax, word [rdx + r9] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x020a // movzx eax, word [rdx + r9 + 2] + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x44b70f42; WORD $0x040a // movzx eax, word [rdx + r9 + 4] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x060a // movzx eax, word [rdx + r9 + 6] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x54b70f46; WORD $0x080a // movzx r10d, word [rdx + r9 + 8] + LONG $0x74b70f42; WORD $0x0a0a // movzx esi, word [rdx + r9 + 10] + LONG $0x5cb70f46; WORD $0x0c0a // movzx r11d, word [rdx + r9 + 12] + LONG $0x44b70f42; WORD $0x0e0a // movzx eax, word [rdx + r9 + 14] + LONG $0x08244489 // mov dword [rsp + 8], eax + LONG $0x44b70f42; WORD $0x100a // movzx eax, word [rdx + r9 + 16] + LONG $0xf06e0f66 // movd xmm6, eax + LONG $0x44b70f42; WORD $0x200a // movzx eax, word [rdx + r9 + 32] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x300a // movzx eax, word [rdx + r9 + 48] + WORD $0x894d; BYTE $0xcf // mov r15, r9 + LONG $0x40cf8349 // or r15, 64 + LONG $0x80c88149; WORD $0x0000; BYTE $0x00 // or r8, 128 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x00cd8149; WORD $0x0001; BYTE $0x00 // or r13, 256 + LONG $0x40c98148; WORD $0x0001; BYTE $0x00 // or rcx, 320 + LONG $0x80cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 384 + LONG $0xc40f4266; WORD $0x3a2c; BYTE $0x01 // pinsrw xmm5, word [rdx + r15], 1 + LONG $0xc40f4266; WORD $0x022c; BYTE $0x02 // pinsrw xmm5, word [rdx + r8], 2 + LONG $0xc40f4266; WORD $0x222c; BYTE $0x03 // pinsrw xmm5, word [rdx + r12], 3 + LONG $0xc40f4266; WORD $0x2a2c; BYTE $0x04 // pinsrw xmm5, word [rdx + r13], 4 + LONG $0x2cc40f66; WORD $0x050a // pinsrw xmm5, word [rdx + rcx], 5 + LONG $0x2cc40f66; WORD $0x063a // pinsrw xmm5, word [rdx + rdi], 6 + LONG $0xc0cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 448 + LONG $0x2cc40f66; WORD $0x071a // pinsrw xmm5, word [rdx + rbx], 7 + LONG $0x6e0f4466; BYTE $0xc8 // movd xmm9, eax + LONG $0x44b70f42; WORD $0x120a // movzx eax, word [rdx + r9 + 18] + LONG $0x18244489 // mov dword [rsp + 24], eax + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc5650f66 // pcmpgtw xmm0, xmm5 + QUAD $0x01023a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 2], 1 + QUAD $0x0202025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 2], 2 + QUAD $0x0302225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 2], 3 + QUAD $0x04022a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 2], 4 + LONG $0x5cc40f66; WORD $0x020a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 2], 5 + LONG $0x5cc40f66; WORD $0x023a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 2], 6 + LONG $0x5cc40f66; WORD $0x021a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 2], 7 + QUAD $0x01103a74c40f4266 // pinsrw xmm6, word [rdx + r15 + 16], 1 + QUAD $0x02100274c40f4266 // pinsrw xmm6, word [rdx + r8 + 16], 2 + QUAD $0x03102274c40f4266 // pinsrw xmm6, word [rdx + r12 + 16], 3 + QUAD $0x04102a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 16], 4 + LONG $0x74c40f66; WORD $0x100a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 16], 5 + LONG $0x74c40f66; WORD $0x103a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 16], 6 + LONG $0x74c40f66; WORD $0x101a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 16], 7 + LONG $0x6f0f4566; BYTE $0xd7 // movdqa xmm10, xmm15 + QUAD $0x01203a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 32], 1 + QUAD $0x0220024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 32], 2 + QUAD $0x0320224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 32], 3 + QUAD $0x04202a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 32], 4 + LONG $0x4cc40f66; WORD $0x200a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 32], 5 + LONG $0x4cc40f66; WORD $0x203a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 32], 6 + LONG $0x4cc40f66; WORD $0x201a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 32], 7 + LONG $0x650f4466; BYTE $0xd6 // pcmpgtw xmm10, xmm6 + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xf1650f66 // pcmpgtw xmm6, xmm1 + QUAD $0x01303a4cc40f4666 // pinsrw xmm9, word [rdx + r15 + 48], 1 + QUAD $0x0230024cc40f4666 // pinsrw xmm9, word [rdx + r8 + 48], 2 + QUAD $0x0330224cc40f4666 // pinsrw xmm9, word [rdx + r12 + 48], 3 + QUAD $0x04302a4cc40f4666 // pinsrw xmm9, word [rdx + r13 + 48], 4 + QUAD $0x05300a4cc40f4466 // pinsrw xmm9, word [rdx + rcx + 48], 5 + QUAD $0x06303a4cc40f4466 // pinsrw xmm9, word [rdx + rdi + 48], 6 + QUAD $0x07301a4cc40f4466 // pinsrw xmm9, word [rdx + rbx + 48], 7 + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0x650f4166; BYTE $0xe9 // pcmpgtw xmm5, xmm9 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0xcb650f66 // pcmpgtw xmm1, xmm3 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xd9f80f66 // psubb xmm3, xmm1 + LONG $0x6e0f4166; BYTE $0xca // movd xmm1, r10d + LONG $0x74b70f46; WORD $0x140a // movzx r14d, word [rdx + r9 + 20] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x01043a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 4], 1 + QUAD $0x02040254c40f4266 // pinsrw xmm2, word [rdx + r8 + 4], 2 + QUAD $0x03042254c40f4266 // pinsrw xmm2, word [rdx + r12 + 4], 3 + QUAD $0x04042a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 4], 4 + LONG $0x54c40f66; WORD $0x040a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 4], 5 + LONG $0x54c40f66; WORD $0x043a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 4], 6 + LONG $0x54c40f66; WORD $0x041a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 4], 7 + QUAD $0x01063a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 6], 1 + QUAD $0x02060264c40f4266 // pinsrw xmm4, word [rdx + r8 + 6], 2 + QUAD $0x03062264c40f4266 // pinsrw xmm4, word [rdx + r12 + 6], 3 + QUAD $0x04062a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 6], 4 + LONG $0x64c40f66; WORD $0x060a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 6], 5 + LONG $0x64c40f66; WORD $0x063a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 6], 6 + LONG $0x64c40f66; WORD $0x061a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 6], 7 + QUAD $0x01083a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 8], 1 + QUAD $0x0208024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 8], 2 + QUAD $0x0308224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 8], 3 + QUAD $0x04082a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 8], 4 + LONG $0x4cc40f66; WORD $0x080a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 8], 5 + LONG $0x4cc40f66; WORD $0x083a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 8], 6 + LONG $0xdb0f4166; BYTE $0xc0 // pand xmm0, xmm8 + LONG $0xd8eb0f66 // por xmm3, xmm0 + LONG $0x6f0f4166; BYTE $0xff // movdqa xmm7, xmm15 + LONG $0xfa650f66 // pcmpgtw xmm7, xmm2 + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x74b70f42; WORD $0x160a // movzx esi, word [rdx + r9 + 22] + LONG $0x4cc40f66; WORD $0x081a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 8], 7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xf8 // pand xmm7, xmm8 + LONG $0xf7710f66; BYTE $0x02 // psllw xmm7, 2 + LONG $0x6f0f4466; WORD $0x105d // movdqa xmm11, oword 16[rbp] /* [rip + .LCPI8_1] */ + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfbeb0f66 // por xmm7, xmm3 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xdc650f66 // pcmpgtw xmm3, xmm4 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc1650f66 // pcmpgtw xmm0, xmm1 + LONG $0x6e0f4166; BYTE $0xcb // movd xmm1, r11d + LONG $0x5cb70f46; WORD $0x180a // movzx r11d, word [rdx + r9 + 24] + QUAD $0x010a3a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 10], 1 + QUAD $0x020a0254c40f4266 // pinsrw xmm2, word [rdx + r8 + 10], 2 + QUAD $0x030a2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 10], 3 + QUAD $0x040a2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 10], 4 + LONG $0x54c40f66; WORD $0x0a0a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 10], 5 + LONG $0x54c40f66; WORD $0x0a3a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 10], 6 + LONG $0x54c40f66; WORD $0x0a1a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 10], 7 + QUAD $0x010c3a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 12], 1 + QUAD $0x020c024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 12], 2 + QUAD $0x030c224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 12], 3 + QUAD $0x040c2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 12], 4 + LONG $0x4cc40f66; WORD $0x0c0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 12], 5 + LONG $0x4cc40f66; WORD $0x0c3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 12], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xf3710f66; BYTE $0x03 // psllw xmm3, 3 + LONG $0x6f0f4466; WORD $0x2065 // movdqa xmm12, oword 32[rbp] /* [rip + .LCPI8_2] */ + LONG $0xdb0f4166; BYTE $0xdc // pand xmm3, xmm12 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc0 // pand xmm0, xmm8 + LONG $0xf0710f66; BYTE $0x04 // psllw xmm0, 4 + LONG $0x6f0f4466; WORD $0x306d // movdqa xmm13, oword 48[rbp] /* [rip + .LCPI8_3] */ + LONG $0xdb0f4166; BYTE $0xc5 // pand xmm0, xmm13 + LONG $0xc3eb0f66 // por xmm0, xmm3 + LONG $0x5c6e0f66; WORD $0x0824 // movd xmm3, dword [rsp + 8] + LONG $0x44b70f42; WORD $0x1a0a // movzx eax, word [rdx + r9 + 26] + LONG $0x4cc40f66; WORD $0x0c1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 12], 7 + LONG $0xc7eb0f66 // por xmm0, xmm7 + LONG $0x6f0f4166; BYTE $0xe7 // movdqa xmm4, xmm15 + LONG $0xe2650f66 // pcmpgtw xmm4, xmm2 + LONG $0x6f0f4166; BYTE $0xff // movdqa xmm7, xmm15 + LONG $0xf9650f66 // pcmpgtw xmm7, xmm1 + LONG $0x4c6e0f66; WORD $0x1824 // movd xmm1, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x1c0a // movzx r10d, word [rdx + r9 + 28] + QUAD $0x010e3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 14], 1 + QUAD $0x020e025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 14], 2 + QUAD $0x030e225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 14], 3 + QUAD $0x040e2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 14], 4 + LONG $0x5cc40f66; WORD $0x0e0a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 14], 5 + LONG $0x5cc40f66; WORD $0x0e3a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 14], 6 + LONG $0x5cc40f66; WORD $0x0e1a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 14], 7 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xf4710f66; BYTE $0x05 // psllw xmm4, 5 + LONG $0x6f0f4466; WORD $0x4075 // movdqa xmm14, oword 64[rbp] /* [rip + .LCPI8_4] */ + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xf8 // pand xmm7, xmm8 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0x6f0f4466; WORD $0x505d // movdqa xmm11, oword 80[rbp] /* [rip + .LCPI8_5] */ + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + LONG $0x6f0f4566; BYTE $0xcf // movdqa xmm9, xmm15 + LONG $0x650f4466; BYTE $0xcb // pcmpgtw xmm9, xmm3 + LONG $0x6e0f4166; BYTE $0xde // movd xmm3, r14d + LONG $0x74b70f46; WORD $0x1e0a // movzx r14d, word [rdx + r9 + 30] + LONG $0x630f4566; BYTE $0xc9 // packsswb xmm9, xmm9 + LONG $0x710f4166; WORD $0x07f1 // psllw xmm9, 7 + LONG $0x556f0f66; BYTE $0x60 // movdqa xmm2, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0f4466; BYTE $0xca // pand xmm9, xmm2 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x74b70f42; WORD $0x220a // movzx esi, word [rdx + r9 + 34] + LONG $0x18247489 // mov dword [rsp + 24], esi + QUAD $0x01123a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 18], 1 + QUAD $0x0212024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 18], 2 + QUAD $0x0312224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 18], 3 + QUAD $0x04122a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 18], 4 + LONG $0x4cc40f66; WORD $0x120a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 18], 5 + LONG $0x4cc40f66; WORD $0x123a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 18], 6 + LONG $0x4cc40f66; WORD $0x121a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 18], 7 + LONG $0xeb0f4466; BYTE $0xc8 // por xmm9, xmm0 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc1650f66 // pcmpgtw xmm0, xmm1 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x74b70f42; WORD $0x240a // movzx esi, word [rdx + r9 + 36] + LONG $0x08247489 // mov dword [rsp + 8], esi + LONG $0x630f4566; BYTE $0xd2 // packsswb xmm10, xmm10 + QUAD $0x01143a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 20], 1 + QUAD $0x0214025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 20], 2 + QUAD $0x0314225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 20], 3 + QUAD $0x04142a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 20], 4 + LONG $0x5cc40f66; WORD $0x140a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 20], 5 + LONG $0x5cc40f66; WORD $0x143a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 20], 6 + LONG $0x5cc40f66; WORD $0x141a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 20], 7 + QUAD $0x01163a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 22], 1 + QUAD $0x02160264c40f4266 // pinsrw xmm4, word [rdx + r8 + 22], 2 + QUAD $0x03162264c40f4266 // pinsrw xmm4, word [rdx + r12 + 22], 3 + QUAD $0x04162a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 22], 4 + LONG $0x64c40f66; WORD $0x160a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 22], 5 + LONG $0x64c40f66; WORD $0x163a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 22], 6 + LONG $0x64c40f66; WORD $0x161a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 22], 7 + QUAD $0x01183a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 24], 1 + QUAD $0x0218027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 24], 2 + QUAD $0x0318227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 24], 3 + QUAD $0x04182a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 24], 4 + LONG $0x7cc40f66; WORD $0x180a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 24], 5 + LONG $0x7cc40f66; WORD $0x183a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 24], 6 + LONG $0x7cc40f66; WORD $0x181a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 24], 7 + LONG $0xdb0f4566; BYTE $0xd0 // pand xmm10, xmm8 + LONG $0xeb0f4166; BYTE $0xca // por xmm1, xmm10 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xd3650f66 // pcmpgtw xmm2, xmm3 + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0x5cb70f46; WORD $0x260a // movzx r11d, word [rdx + r9 + 38] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0xf2710f66; BYTE $0x02 // psllw xmm2, 2 + LONG $0x6f0f4466; WORD $0x106d // movdqa xmm13, oword 16[rbp] /* [rip + .LCPI8_1] */ + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc7650f66 // pcmpgtw xmm0, xmm7 + LONG $0x6e0f4166; BYTE $0xe2 // movd xmm4, r10d + LONG $0x54b70f46; WORD $0x280a // movzx r10d, word [rdx + r9 + 40] + QUAD $0x011a3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 26], 1 + QUAD $0x021a025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 26], 2 + QUAD $0x031a225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 26], 3 + QUAD $0x041a2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 26], 4 + LONG $0x5cc40f66; WORD $0x1a0a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 26], 5 + LONG $0x5cc40f66; WORD $0x1a3a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 26], 6 + LONG $0x5cc40f66; WORD $0x1a1a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 26], 7 + QUAD $0x011c3a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 28], 1 + QUAD $0x021c0264c40f4266 // pinsrw xmm4, word [rdx + r8 + 28], 2 + QUAD $0x031c2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 28], 3 + QUAD $0x041c2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 28], 4 + LONG $0x64c40f66; WORD $0x1c0a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 28], 5 + LONG $0x64c40f66; WORD $0x1c3a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 28], 6 + LONG $0x64c40f66; WORD $0x1c1a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 28], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0xf1710f66; BYTE $0x03 // psllw xmm1, 3 + LONG $0x6f0f4566; BYTE $0xdc // movdqa xmm11, xmm12 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc0 // pand xmm0, xmm8 + LONG $0xf0710f66; BYTE $0x04 // psllw xmm0, 4 + LONG $0x6f0f4466; WORD $0x3065 // movdqa xmm12, oword 48[rbp] /* [rip + .LCPI8_3] */ + LONG $0xdb0f4166; BYTE $0xc4 // pand xmm0, xmm12 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0x6e0f4166; BYTE $0xce // movd xmm1, r14d + LONG $0x44b70f42; WORD $0x2a0a // movzx eax, word [rdx + r9 + 42] + LONG $0xc2eb0f66 // por xmm0, xmm2 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xd3650f66 // pcmpgtw xmm2, xmm3 + LONG $0x6f0f4166; BYTE $0xff // movdqa xmm7, xmm15 + LONG $0xfc650f66 // pcmpgtw xmm7, xmm4 + LONG $0x646e0f66; WORD $0x1824 // movd xmm4, dword [rsp + 24] + LONG $0x74b70f46; WORD $0x2c0a // movzx r14d, word [rdx + r9 + 44] + QUAD $0x011e3a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 30], 1 + QUAD $0x021e024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 30], 2 + QUAD $0x031e224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 30], 3 + QUAD $0x041e2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 30], 4 + LONG $0x4cc40f66; WORD $0x1e0a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 30], 5 + LONG $0x4cc40f66; WORD $0x1e3a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 30], 6 + LONG $0x4cc40f66; WORD $0x1e1a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 30], 7 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0xf2710f66; BYTE $0x05 // psllw xmm2, 5 + LONG $0xdb0f4166; BYTE $0xd6 // pand xmm2, xmm14 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xf8 // pand xmm7, xmm8 + LONG $0xf7710f66; BYTE $0x06 // psllw xmm7, 6 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI8_5] */ + LONG $0xfbdb0f66 // pand xmm7, xmm3 + LONG $0xfaeb0f66 // por xmm7, xmm2 + LONG $0x6f0f4566; BYTE $0xd7 // movdqa xmm10, xmm15 + LONG $0x650f4466; BYTE $0xd1 // pcmpgtw xmm10, xmm1 + LONG $0x4c6e0f66; WORD $0x0824 // movd xmm1, dword [rsp + 8] + LONG $0x74b70f42; WORD $0x2e0a // movzx esi, word [rdx + r9 + 46] + LONG $0x18247489 // mov dword [rsp + 24], esi + LONG $0x630f4566; BYTE $0xd2 // packsswb xmm10, xmm10 + LONG $0x710f4166; WORD $0x07f2 // psllw xmm10, 7 + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0xdb0f4566; BYTE $0xd6 // pand xmm10, xmm14 + LONG $0xeb0f4466; BYTE $0xd7 // por xmm10, xmm7 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x5cb70f46; WORD $0x320a // movzx r11d, word [rdx + r9 + 50] + QUAD $0x01223a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 34], 1 + QUAD $0x02220264c40f4266 // pinsrw xmm4, word [rdx + r8 + 34], 2 + QUAD $0x03222264c40f4266 // pinsrw xmm4, word [rdx + r12 + 34], 3 + QUAD $0x04222a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 34], 4 + LONG $0x64c40f66; WORD $0x220a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 34], 5 + LONG $0x64c40f66; WORD $0x223a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 34], 6 + LONG $0x64c40f66; WORD $0x221a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 34], 7 + LONG $0xeb0f4466; BYTE $0xd0 // por xmm10, xmm0 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc4650f66 // pcmpgtw xmm0, xmm4 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xe06f0f66 // movdqa xmm4, xmm0 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xe0f80f66 // psubb xmm4, xmm0 + LONG $0x6e0f4166; BYTE $0xc2 // movd xmm0, r10d + LONG $0x74b70f42; WORD $0x340a // movzx esi, word [rdx + r9 + 52] + LONG $0x08247489 // mov dword [rsp + 8], esi + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x01243a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 36], 1 + QUAD $0x0224024cc40f4266 // pinsrw xmm1, word [rdx + r8 + 36], 2 + QUAD $0x0324224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 36], 3 + QUAD $0x04242a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 36], 4 + LONG $0x4cc40f66; WORD $0x240a; BYTE $0x05 // pinsrw xmm1, word [rdx + rcx + 36], 5 + LONG $0x4cc40f66; WORD $0x243a; BYTE $0x06 // pinsrw xmm1, word [rdx + rdi + 36], 6 + LONG $0x4cc40f66; WORD $0x241a; BYTE $0x07 // pinsrw xmm1, word [rdx + rbx + 36], 7 + QUAD $0x01263a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 38], 1 + QUAD $0x02260254c40f4266 // pinsrw xmm2, word [rdx + r8 + 38], 2 + QUAD $0x03262254c40f4266 // pinsrw xmm2, word [rdx + r12 + 38], 3 + QUAD $0x04262a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 38], 4 + LONG $0x54c40f66; WORD $0x260a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 38], 5 + LONG $0x54c40f66; WORD $0x263a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 38], 6 + LONG $0x54c40f66; WORD $0x261a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 38], 7 + QUAD $0x01283a44c40f4266 // pinsrw xmm0, word [rdx + r15 + 40], 1 + QUAD $0x02280244c40f4266 // pinsrw xmm0, word [rdx + r8 + 40], 2 + QUAD $0x03282244c40f4266 // pinsrw xmm0, word [rdx + r12 + 40], 3 + QUAD $0x04282a44c40f4266 // pinsrw xmm0, word [rdx + r13 + 40], 4 + LONG $0x44c40f66; WORD $0x280a; BYTE $0x05 // pinsrw xmm0, word [rdx + rcx + 40], 5 + LONG $0x44c40f66; WORD $0x283a; BYTE $0x06 // pinsrw xmm0, word [rdx + rdi + 40], 6 + LONG $0xdb0f4166; BYTE $0xf0 // pand xmm6, xmm8 + LONG $0xe6eb0f66 // por xmm4, xmm6 + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xf1650f66 // pcmpgtw xmm6, xmm1 + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x54b70f46; WORD $0x360a // movzx r10d, word [rdx + r9 + 54] + LONG $0x44c40f66; WORD $0x281a; BYTE $0x07 // pinsrw xmm0, word [rdx + rbx + 40], 7 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf0 // pand xmm6, xmm8 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0xdb0f4166; BYTE $0xf5 // pand xmm6, xmm13 + LONG $0xf4eb0f66 // por xmm6, xmm4 + LONG $0x6f0f4166; BYTE $0xe7 // movdqa xmm4, xmm15 + LONG $0xe2650f66 // pcmpgtw xmm4, xmm2 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0xc8650f66 // pcmpgtw xmm1, xmm0 + LONG $0x6e0f4166; BYTE $0xc6 // movd xmm0, r14d + LONG $0x44b70f42; WORD $0x380a // movzx eax, word [rdx + r9 + 56] + QUAD $0x012a3a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 42], 1 + QUAD $0x022a027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 42], 2 + QUAD $0x032a227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 42], 3 + QUAD $0x042a2a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 42], 4 + LONG $0x7cc40f66; WORD $0x2a0a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 42], 5 + LONG $0x7cc40f66; WORD $0x2a3a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 42], 6 + LONG $0x7cc40f66; WORD $0x2a1a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 42], 7 + QUAD $0x012c3a44c40f4266 // pinsrw xmm0, word [rdx + r15 + 44], 1 + QUAD $0x022c0244c40f4266 // pinsrw xmm0, word [rdx + r8 + 44], 2 + QUAD $0x032c2244c40f4266 // pinsrw xmm0, word [rdx + r12 + 44], 3 + QUAD $0x042c2a44c40f4266 // pinsrw xmm0, word [rdx + r13 + 44], 4 + LONG $0x44c40f66; WORD $0x2c0a; BYTE $0x05 // pinsrw xmm0, word [rdx + rcx + 44], 5 + LONG $0x44c40f66; WORD $0x2c3a; BYTE $0x06 // pinsrw xmm0, word [rdx + rdi + 44], 6 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe3 // pand xmm4, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0x6f0f4566; BYTE $0xec // movdqa xmm13, xmm12 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x546e0f66; WORD $0x1824 // movd xmm2, dword [rsp + 24] + LONG $0x74b70f42; WORD $0x3a0a // movzx esi, word [rdx + r9 + 58] + LONG $0x44c40f66; WORD $0x2c1a; BYTE $0x07 // pinsrw xmm0, word [rdx + rbx + 44], 7 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0x6f0f4166; BYTE $0xe7 // movdqa xmm4, xmm15 + LONG $0xe7650f66 // pcmpgtw xmm4, xmm7 + LONG $0x6f0f4166; BYTE $0xf7 // movdqa xmm6, xmm15 + LONG $0xf0650f66 // pcmpgtw xmm6, xmm0 + LONG $0x6e0f4166; BYTE $0xfb // movd xmm7, r11d + LONG $0x5cb70f46; WORD $0x3c0a // movzx r11d, word [rdx + r9 + 60] + QUAD $0x012e3a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 46], 1 + QUAD $0x022e0254c40f4266 // pinsrw xmm2, word [rdx + r8 + 46], 2 + QUAD $0x032e2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 46], 3 + QUAD $0x042e2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 46], 4 + LONG $0x54c40f66; WORD $0x2e0a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 46], 5 + LONG $0x54c40f66; WORD $0x2e3a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 46], 6 + LONG $0x4cb70f46; WORD $0x3e0a // movzx r9d, word [rdx + r9 + 62] + LONG $0x54c40f66; WORD $0x2e1a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 46], 7 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xf4710f66; BYTE $0x05 // psllw xmm4, 5 + LONG $0x65db0f66; BYTE $0x40 // pand xmm4, oword 64[rbp] /* [rip + .LCPI8_4] */ + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf0 // pand xmm6, xmm8 + LONG $0xf6710f66; BYTE $0x06 // psllw xmm6, 6 + LONG $0xf3db0f66 // pand xmm6, xmm3 + LONG $0x6f0f4466; BYTE $0xe3 // movdqa xmm12, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0xc2650f66 // pcmpgtw xmm0, xmm2 + LONG $0x546e0f66; WORD $0x0824 // movd xmm2, dword [rsp + 8] + QUAD $0x01323a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 50], 1 + QUAD $0x0232027cc40f4266 // pinsrw xmm7, word [rdx + r8 + 50], 2 + QUAD $0x0332227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 50], 3 + QUAD $0x04322a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 50], 4 + LONG $0x7cc40f66; WORD $0x320a; BYTE $0x05 // pinsrw xmm7, word [rdx + rcx + 50], 5 + LONG $0x7cc40f66; WORD $0x323a; BYTE $0x06 // pinsrw xmm7, word [rdx + rdi + 50], 6 + LONG $0x7cc40f66; WORD $0x321a; BYTE $0x07 // pinsrw xmm7, word [rdx + rbx + 50], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xc6eb0f66 // por xmm0, xmm6 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0xcf650f66 // pcmpgtw xmm1, xmm7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xdb0f4166; BYTE $0xf8 // pand xmm7, xmm8 + LONG $0xf9f80f66 // psubb xmm7, xmm1 + LONG $0xd86e0f66 // movd xmm3, eax + LONG $0xed630f66 // packsswb xmm5, xmm5 + QUAD $0x01343a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 52], 1 + QUAD $0x02340254c40f4266 // pinsrw xmm2, word [rdx + r8 + 52], 2 + QUAD $0x03342254c40f4266 // pinsrw xmm2, word [rdx + r12 + 52], 3 + QUAD $0x04342a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 52], 4 + LONG $0x54c40f66; WORD $0x340a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 52], 5 + LONG $0x54c40f66; WORD $0x343a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 52], 6 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0x54c40f66; WORD $0x341a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 52], 7 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0xea650f66 // pcmpgtw xmm5, xmm2 + LONG $0xe66e0f66 // movd xmm4, esi + QUAD $0x01363a74c40f4266 // pinsrw xmm6, word [rdx + r15 + 54], 1 + QUAD $0x02360274c40f4266 // pinsrw xmm6, word [rdx + r8 + 54], 2 + QUAD $0x03362274c40f4266 // pinsrw xmm6, word [rdx + r12 + 54], 3 + QUAD $0x04362a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 54], 4 + LONG $0x74c40f66; WORD $0x360a; BYTE $0x05 // pinsrw xmm6, word [rdx + rcx + 54], 5 + LONG $0x74c40f66; WORD $0x363a; BYTE $0x06 // pinsrw xmm6, word [rdx + rdi + 54], 6 + LONG $0x74c40f66; WORD $0x361a; BYTE $0x07 // pinsrw xmm6, word [rdx + rbx + 54], 7 + QUAD $0x01383a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 56], 1 + QUAD $0x0238025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 56], 2 + QUAD $0x0338225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 56], 3 + QUAD $0x04382a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 56], 4 + LONG $0x5cc40f66; WORD $0x380a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 56], 5 + LONG $0x5cc40f66; WORD $0x383a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 56], 6 + LONG $0x5cc40f66; WORD $0x381a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 56], 7 + QUAD $0x013a3a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 58], 1 + QUAD $0x023a0264c40f4266 // pinsrw xmm4, word [rdx + r8 + 58], 2 + QUAD $0x033a2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 58], 3 + QUAD $0x043a2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 58], 4 + LONG $0x64c40f66; WORD $0x3a0a; BYTE $0x05 // pinsrw xmm4, word [rdx + rcx + 58], 5 + LONG $0x64c40f66; WORD $0x3a3a; BYTE $0x06 // pinsrw xmm4, word [rdx + rdi + 58], 6 + LONG $0x64c40f66; WORD $0x3a1a; BYTE $0x07 // pinsrw xmm4, word [rdx + rbx + 58], 7 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0x6ddb0f66; BYTE $0x10 // pand xmm5, oword 16[rbp] /* [rip + .LCPI8_1] */ + LONG $0xefeb0f66 // por xmm5, xmm7 + LONG $0x6f0f4166; BYTE $0xd7 // movdqa xmm2, xmm15 + LONG $0xd6650f66 // pcmpgtw xmm2, xmm6 + LONG $0x6f0f4166; BYTE $0xcf // movdqa xmm1, xmm15 + LONG $0xcb650f66 // pcmpgtw xmm1, xmm3 + LONG $0x6e0f4166; BYTE $0xdb // movd xmm3, r11d + QUAD $0x013c3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 60], 1 + QUAD $0x023c025cc40f4266 // pinsrw xmm3, word [rdx + r8 + 60], 2 + QUAD $0x033c225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 60], 3 + QUAD $0x043c2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 60], 4 + LONG $0x5cc40f66; WORD $0x3c0a; BYTE $0x05 // pinsrw xmm3, word [rdx + rcx + 60], 5 + LONG $0x5cc40f66; WORD $0x3c3a; BYTE $0x06 // pinsrw xmm3, word [rdx + rdi + 60], 6 + LONG $0x5cc40f66; WORD $0x3c1a; BYTE $0x07 // pinsrw xmm3, word [rdx + rbx + 60], 7 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd0 // pand xmm2, xmm8 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd3 // pand xmm2, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xc8 // pand xmm1, xmm8 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0xdb0f4166; BYTE $0xcd // pand xmm1, xmm13 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0x6e0f4166; BYTE $0xd1 // movd xmm2, r9d + QUAD $0x013e3a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 62], 1 + QUAD $0x023e0254c40f4266 // pinsrw xmm2, word [rdx + r8 + 62], 2 + QUAD $0x033e2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 62], 3 + QUAD $0x0000008024b48b4c // mov r14, qword [rsp + 128] + QUAD $0x043e2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 62], 4 + LONG $0x54c40f66; WORD $0x3e0a; BYTE $0x05 // pinsrw xmm2, word [rdx + rcx + 62], 5 + LONG $0x54c40f66; WORD $0x3e3a; BYTE $0x06 // pinsrw xmm2, word [rdx + rdi + 62], 6 + LONG $0x54c40f66; WORD $0x3e1a; BYTE $0x07 // pinsrw xmm2, word [rdx + rbx + 62], 7 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0xec650f66 // pcmpgtw xmm5, xmm4 + LONG $0x6f0f4166; BYTE $0xe7 // movdqa xmm4, xmm15 + LONG $0xe3650f66 // pcmpgtw xmm4, xmm3 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xf5710f66; BYTE $0x05 // psllw xmm5, 5 + LONG $0x6ddb0f66; BYTE $0x40 // pand xmm5, oword 64[rbp] /* [rip + .LCPI8_4] */ + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe0 // pand xmm4, xmm8 + LONG $0xf4710f66; BYTE $0x06 // psllw xmm4, 6 + LONG $0xdb0f4166; BYTE $0xe4 // pand xmm4, xmm12 + LONG $0xe5eb0f66 // por xmm4, xmm5 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xda650f66 // pcmpgtw xmm3, xmm2 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdceb0f66 // por xmm3, xmm4 + LONG $0xd9eb0f66 // por xmm3, xmm1 + LONG $0x6f0f4166; BYTE $0xc9 // movdqa xmm1, xmm9 + LONG $0x6c0f4166; BYTE $0xca // punpcklqdq xmm1, xmm10 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd36c0f66 // punpcklqdq xmm2, xmm3 + QUAD $0x00000090a56f0f66 // movdqa xmm4, oword 144[rbp] /* [rip + .LCPI8_9] */ + LONG $0x00380f66; BYTE $0xd4 // pshufb xmm2, xmm4 + LONG $0x00380f66; BYTE $0xcc // pshufb xmm1, xmm4 + LONG $0xca610f66 // punpcklwd xmm1, xmm2 + LONG $0xc3600f66 // punpcklbw xmm0, xmm3 + LONG $0x600f4566; BYTE $0xca // punpcklbw xmm9, xmm10 + LONG $0x610f4466; BYTE $0xc8 // punpcklwd xmm9, xmm0 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + LONG $0x7f0f45f3; WORD $0x8e0c // movdqu oword [r14 + 4*rcx], xmm9 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm1 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + LONG $0x244c3b48; BYTE $0x20 // cmp rcx, qword [rsp + 32] + JNE LBB8_198 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + LONG $0x247c3b4c; BYTE $0x20 // cmp r15, qword [rsp + 32] + QUAD $0x0000008824948b4c // mov r10, qword [rsp + 136] + LONG $0x246c8b44; BYTE $0x30 // mov r13d, dword [rsp + 48] + LONG $0x24248b4c // mov r12, qword [rsp] + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + JNE LBB8_101 + JMP LBB8_136 + +LBB8_200: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xd3 // add rbx, rdx + LONG $0x863c8d4f // lea r15, [r14 + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc28148; WORD $0x0001; BYTE $0x00 // add rdx, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI8_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI8_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI8_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI8_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI8_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI8_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI8_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI8_7] */ + +LBB8_201: + QUAD $0xfffffe04b2100ff3 // movss xmm6, dword [rdx - 508] + QUAD $0xfffffe08ba100ff3 // movss xmm7, dword [rdx - 504] + QUAD $0xfffffe0caa100ff3 // movss xmm5, dword [rdx - 500] + QUAD $0xfffffe10a2100ff3 // movss xmm4, dword [rdx - 496] + QUAD $0xfffe84b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 380], 16 + QUAD $0xffff04b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 252], 32 + LONG $0x213a0f66; WORD $0x8472; BYTE $0x30 // insertps xmm6, dword [rdx - 124], 48 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfffe88ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 376], 16 + QUAD $0xffff08ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 248], 32 + LONG $0x213a0f66; WORD $0x887a; BYTE $0x30 // insertps xmm7, dword [rdx - 120], 48 + QUAD $0xfffe8caa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 372], 16 + QUAD $0xffff0caa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 244], 32 + LONG $0x213a0f66; WORD $0x8c6a; BYTE $0x30 // insertps xmm5, dword [rdx - 116], 48 + QUAD $0xfffe90a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 368], 16 + QUAD $0xffff10a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 240], 32 + LONG $0x213a0f66; WORD $0x9062; BYTE $0x30 // insertps xmm4, dword [rdx - 112], 48 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffffe14ba100ff3 // movss xmm7, dword [rdx - 492] + QUAD $0xfffe94ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 364], 16 + QUAD $0xffff14ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 236], 32 + LONG $0x213a0f66; WORD $0x947a; BYTE $0x30 // insertps xmm7, dword [rdx - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe18b2100ff3 // movss xmm6, dword [rdx - 488] + QUAD $0xfffe98b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 360], 16 + QUAD $0xffff18b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 232], 32 + LONG $0x213a0f66; WORD $0x9872; BYTE $0x30 // insertps xmm6, dword [rdx - 104], 48 + LONG $0x01e9c20f // cmpltps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe1c9a100ff3 // movss xmm3, dword [rdx - 484] + QUAD $0xfffe9c9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 356], 16 + QUAD $0xffff1c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 228], 32 + LONG $0x213a0f66; WORD $0x9c5a; BYTE $0x30 // insertps xmm3, dword [rdx - 100], 48 + LONG $0x01e1c20f // cmpltps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffffe20a2100ff3 // movss xmm4, dword [rdx - 480] + QUAD $0xfffea0a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 352], 16 + QUAD $0xffff20a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 224], 32 + LONG $0x213a0f66; WORD $0xa062; BYTE $0x30 // insertps xmm4, dword [rdx - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe24aa100ff3 // movss xmm5, dword [rdx - 476] + QUAD $0xfffea4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 348], 16 + QUAD $0xffff24aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 220], 32 + LONG $0x213a0f66; WORD $0xa46a; BYTE $0x30 // insertps xmm5, dword [rdx - 92], 48 + LONG $0x01e9c20f // cmpltps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x01d9c20f // cmpltps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe2892100ff3 // movss xmm2, dword [rdx - 472] + QUAD $0xfffea892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 344], 16 + QUAD $0xffff2892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 216], 32 + LONG $0x213a0f66; WORD $0xa852; BYTE $0x30 // insertps xmm2, dword [rdx - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x01e1c20f // cmpltps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffffe2c9a100ff3 // movss xmm3, dword [rdx - 468] + QUAD $0xfffeac9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 340], 16 + QUAD $0xffff2c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0x213a0f66; WORD $0xac5a; BYTE $0x30 // insertps xmm3, dword [rdx - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe30ba100ff3 // movss xmm7, dword [rdx - 464] + QUAD $0xfffeb0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 336], 16 + QUAD $0xffff30ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 208], 32 + LONG $0x213a0f66; WORD $0xb07a; BYTE $0x30 // insertps xmm7, dword [rdx - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe34aa100ff3 // movss xmm5, dword [rdx - 460] + QUAD $0xfffeb4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 332], 16 + QUAD $0xffff34aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 204], 32 + LONG $0x213a0f66; WORD $0xb46a; BYTE $0x30 // insertps xmm5, dword [rdx - 76], 48 + LONG $0x01d9c20f // cmpltps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe38b2100ff3 // movss xmm6, dword [rdx - 456] + QUAD $0xfffeb8b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 328], 16 + QUAD $0xffff38b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 200], 32 + LONG $0x213a0f66; WORD $0xb872; BYTE $0x30 // insertps xmm6, dword [rdx - 72], 48 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x01e9c20f // cmpltps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffffe3c92100ff3 // movss xmm2, dword [rdx - 452] + QUAD $0xfffebc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 324], 16 + QUAD $0xffff3c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 196], 32 + LONG $0x213a0f66; WORD $0xbc52; BYTE $0x30 // insertps xmm2, dword [rdx - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffffe40ba100ff3 // movss xmm7, dword [rdx - 448] + QUAD $0xfffec0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 320], 16 + QUAD $0xffff40ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 192], 32 + LONG $0x213a0f66; WORD $0xc07a; BYTE $0x30 // insertps xmm7, dword [rdx - 64], 48 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe44b2100ff3 // movss xmm6, dword [rdx - 444] + QUAD $0xfffec4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 316], 16 + QUAD $0xffff44b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 188], 32 + LONG $0x213a0f66; WORD $0xc472; BYTE $0x30 // insertps xmm6, dword [rdx - 60], 48 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffffe4892100ff3 // movss xmm2, dword [rdx - 440] + QUAD $0xfffec892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 312], 16 + QUAD $0xffff4892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 184], 32 + LONG $0x213a0f66; WORD $0xc852; BYTE $0x30 // insertps xmm2, dword [rdx - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe4c9a100ff3 // movss xmm3, dword [rdx - 436] + QUAD $0xfffecc9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 308], 16 + QUAD $0xffff4c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x213a0f66; WORD $0xcc5a; BYTE $0x30 // insertps xmm3, dword [rdx - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffffe50aa100ff3 // movss xmm5, dword [rdx - 432] + QUAD $0xfffed0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 304], 16 + QUAD $0xffff50aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 176], 32 + LONG $0x213a0f66; WORD $0xd06a; BYTE $0x30 // insertps xmm5, dword [rdx - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffffe54b2100ff3 // movss xmm6, dword [rdx - 428] + QUAD $0xfffed4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 300], 16 + QUAD $0xffff54b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 172], 32 + LONG $0x213a0f66; WORD $0xd472; BYTE $0x30 // insertps xmm6, dword [rdx - 44], 48 + LONG $0x01d9c20f // cmpltps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffffe58ba100ff3 // movss xmm7, dword [rdx - 424] + QUAD $0xfffed8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 296], 16 + QUAD $0xffff58ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 168], 32 + LONG $0x213a0f66; WORD $0xd87a; BYTE $0x30 // insertps xmm7, dword [rdx - 40], 48 + LONG $0x01e9c20f // cmpltps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe5c92100ff3 // movss xmm2, dword [rdx - 420] + QUAD $0xfffedc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 292], 16 + QUAD $0xffff5c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 164], 32 + LONG $0x213a0f66; WORD $0xdc52; BYTE $0x30 // insertps xmm2, dword [rdx - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe60aa100ff3 // movss xmm5, dword [rdx - 416] + QUAD $0xfffee0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 288], 16 + QUAD $0xffff60aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 160], 32 + LONG $0x213a0f66; WORD $0xe06a; BYTE $0x30 // insertps xmm5, dword [rdx - 32], 48 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe64ba100ff3 // movss xmm7, dword [rdx - 412] + QUAD $0xfffee4ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 284], 16 + QUAD $0xffff64ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 156], 32 + LONG $0x213a0f66; WORD $0xe47a; BYTE $0x30 // insertps xmm7, dword [rdx - 28], 48 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x01e9c20f // cmpltps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe6892100ff3 // movss xmm2, dword [rdx - 408] + QUAD $0xfffee892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 280], 16 + QUAD $0xffff6892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0x213a0f66; WORD $0xe852; BYTE $0x30 // insertps xmm2, dword [rdx - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe6c9a100ff3 // movss xmm3, dword [rdx - 404] + QUAD $0xfffeec9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 276], 16 + QUAD $0xffff6c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 148], 32 + LONG $0x213a0f66; WORD $0xec5a; BYTE $0x30 // insertps xmm3, dword [rdx - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffffe7092100ff3 // movss xmm2, dword [rdx - 400] + QUAD $0xfffef092213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 272], 16 + QUAD $0xffff7092213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 144], 32 + LONG $0x213a0f66; WORD $0xf052; BYTE $0x30 // insertps xmm2, dword [rdx - 16], 48 + LONG $0x01d9c20f // cmpltps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe74b2100ff3 // movss xmm6, dword [rdx - 396] + QUAD $0xfffef4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 268], 16 + QUAD $0xffff74b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 140], 32 + LONG $0x213a0f66; WORD $0xf472; BYTE $0x30 // insertps xmm6, dword [rdx - 12], 48 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x01f1c20f // cmpltps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffffe78ba100ff3 // movss xmm7, dword [rdx - 392] + QUAD $0xfffef8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 264], 16 + QUAD $0xffff78ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 136], 32 + LONG $0x213a0f66; WORD $0xf87a; BYTE $0x30 // insertps xmm7, dword [rdx - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe7c92100ff3 // movss xmm2, dword [rdx - 388] + QUAD $0xfffefc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 260], 16 + QUAD $0xffff7c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 132], 32 + LONG $0x213a0f66; WORD $0xfc52; BYTE $0x30 // insertps xmm2, dword [rdx - 4], 48 + LONG $0x01f9c20f // cmpltps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x01d1c20f // cmpltps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe809a100ff3 // movss xmm3, dword [rdx - 384] + QUAD $0xffff009a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 256], 16 + LONG $0x213a0f66; WORD $0x805a; BYTE $0x20 // insertps xmm3, dword [rdx - 128], 32 + LONG $0x213a0f66; WORD $0x301a // insertps xmm3, dword [rdx], 48 + LONG $0x01d9c20f // cmpltps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c28148; WORD $0x0002; BYTE $0x00 // add rdx, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB8_201 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB8_124 + JMP LBB8_140 + +TEXT ·_comparison_greater_equal_arr_arr_sse4(SB), $80-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + ADDQ $8, SP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB9_29 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB9_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB9_68 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB9_79 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_22 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_20: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_20 + LONG $0x01c68349 // add r14, 1 + +LBB9_22: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_26 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_24: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd5930f41 // setae r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd0930f41 // setae r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd3930f41 // setae r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd7930f41 // setae r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x930f; BYTE $0xd3 // setae bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd2930f41 // setae r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd6930f41 // setae r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd4930f41 // setae r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd1930f41 // setae r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_24 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_26: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_28: + WORD $0x048b; BYTE $0x8e // mov eax, dword [rsi + 4*rcx] + WORD $0x043b; BYTE $0x8a // cmp eax, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_28 + JMP LBB9_123 + +LBB9_29: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB9_30 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB9_101 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB9_112 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_50 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_48: + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_48 + LONG $0x01c68349 // add r14, 1 + +LBB9_50: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_54 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB9_52: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + LONG $0x4e100ff2; BYTE $0x08 // movsd xmm1, qword [rsi + 8] + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x4a2e0f66; BYTE $0x08 // ucomisd xmm1, qword [rdx + 8] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x46100ff2; BYTE $0x10 // movsd xmm0, qword [rsi + 16] + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0x46100ff2; BYTE $0x18 // movsd xmm0, qword [rsi + 24] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x46100ff2; BYTE $0x20 // movsd xmm0, qword [rsi + 32] + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + LONG $0x46100ff2; BYTE $0x28 // movsd xmm0, qword [rsi + 40] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x46100ff2; BYTE $0x30 // movsd xmm0, qword [rsi + 48] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + LONG $0x46100ff2; BYTE $0x38 // movsd xmm0, qword [rsi + 56] + LONG $0xd5930f41 // setae r13b + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd7930f41 // setae r15b + LONG $0x46100ff2; BYTE $0x40 // movsd xmm0, qword [rsi + 64] + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x46100ff2; BYTE $0x48 // movsd xmm0, qword [rsi + 72] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x46100ff2; BYTE $0x50 // movsd xmm0, qword [rsi + 80] + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0x46100ff2; BYTE $0x58 // movsd xmm0, qword [rsi + 88] + LONG $0xd1930f41 // setae r9b + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd3930f41 // setae r11b + LONG $0x46100ff2; BYTE $0x60 // movsd xmm0, qword [rsi + 96] + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0x46100ff2; BYTE $0x68 // movsd xmm0, qword [rsi + 104] + LONG $0xd2930f41 // setae r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x46100ff2; BYTE $0x70 // movsd xmm0, qword [rsi + 112] + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + LONG $0x46100ff2; BYTE $0x78 // movsd xmm0, qword [rsi + 120] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x930f; BYTE $0xd3 // setae bl + QUAD $0x0000008086100ff2 // movsd xmm0, qword [rsi + 128] + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + QUAD $0x0000008886100ff2 // movsd xmm0, qword [rsi + 136] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + QUAD $0x0000009086100ff2 // movsd xmm0, qword [rsi + 144] + LONG $0xd6930f41 // setae r14b + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + QUAD $0x0000009886100ff2 // movsd xmm0, qword [rsi + 152] + LONG $0xd4930f41 // setae r12b + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + QUAD $0x000000a086100ff2 // movsd xmm0, qword [rsi + 160] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + QUAD $0x000000a886100ff2 // movsd xmm0, qword [rsi + 168] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + QUAD $0x000000b086100ff2 // movsd xmm0, qword [rsi + 176] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + QUAD $0x000000b886100ff2 // movsd xmm0, qword [rsi + 184] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + QUAD $0x000000c086100ff2 // movsd xmm0, qword [rsi + 192] + LONG $0xd0930f41 // setae r8b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + QUAD $0x000000c886100ff2 // movsd xmm0, qword [rsi + 200] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + QUAD $0x000000d086100ff2 // movsd xmm0, qword [rsi + 208] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + QUAD $0x000000d886100ff2 // movsd xmm0, qword [rsi + 216] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + QUAD $0x000000e086100ff2 // movsd xmm0, qword [rsi + 224] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + QUAD $0x000000e886100ff2 // movsd xmm0, qword [rsi + 232] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + QUAD $0x000000f086100ff2 // movsd xmm0, qword [rsi + 240] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + QUAD $0x000000f886100ff2 // movsd xmm0, qword [rsi + 248] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + LONG $0xd7930f40 // setae dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB9_52 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB9_54: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_56: + LONG $0x04100ff2; BYTE $0xce // movsd xmm0, qword [rsi + 8*rcx] + LONG $0x042e0f66; BYTE $0xca // ucomisd xmm0, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_56 + JMP LBB9_123 + +LBB9_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB9_57 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_6: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_6 + LONG $0x01c68349 // add r14, 1 + +LBB9_8: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_12 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB9_10: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd79d0f41 // setge r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd79d0f40 // setge dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd29d0f41 // setge r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd39d0f41 // setge r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd69d0f41 // setge r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd49d0f41 // setge r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd59d0f41 // setge r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd19d0f41 // setge r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd09d0f41 // setge r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB9_10 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB9_12: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_14: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x0e1cb60f // movzx ebx, byte [rsi + rcx] + WORD $0x1c3a; BYTE $0x0a // cmp bl, byte [rdx + rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_14 + JMP LBB9_123 + +LBB9_30: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB9_90 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB9_123 + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_36 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_34: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_34 + LONG $0x01c68349 // add r14, 1 + +LBB9_36: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_40 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_38: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd5930f41 // setae r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd0930f41 // setae r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd3930f41 // setae r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd7930f41 // setae r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd2930f41 // setae r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd6930f41 // setae r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd4930f41 // setae r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd1930f41 // setae r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_38 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_40: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_42: + LONG $0xce048b48 // mov rax, qword [rsi + 8*rcx] + LONG $0xca043b48 // cmp rax, qword [rdx + 8*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_42 + JMP LBB9_123 + +LBB9_68: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_72 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_70: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_70 + LONG $0x01c68349 // add r14, 1 + +LBB9_72: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_76 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_74: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd5930f41 // setae r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd0930f41 // setae r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd3930f41 // setae r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd7930f41 // setae r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd2930f41 // setae r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd6930f41 // setae r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd4930f41 // setae r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd1930f41 // setae r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_74 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_76: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_78: + LONG $0x4e04b70f // movzx eax, word [rsi + 2*rcx] + LONG $0x4a043b66 // cmp ax, word [rdx + 2*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_78 + JMP LBB9_123 + +LBB9_79: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_83 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_81: + WORD $0xb70f; BYTE $0x0e // movzx ecx, word [rsi] + LONG $0x02c68348 // add rsi, 2 + WORD $0x3b66; BYTE $0x0a // cmp cx, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_81 + LONG $0x01c68349 // add r14, 1 + +LBB9_83: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_87 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_85: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb70f; BYTE $0x06 // movzx eax, word [rsi] + LONG $0x024eb70f // movzx ecx, word [rsi + 2] + WORD $0x3b66; BYTE $0x02 // cmp ax, word [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x024a3b66 // cmp cx, word [rdx + 2] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x0446b70f // movzx eax, word [rsi + 4] + LONG $0x04423b66 // cmp ax, word [rdx + 4] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x0646b70f // movzx eax, word [rsi + 6] + LONG $0x06423b66 // cmp ax, word [rdx + 6] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x0846b70f // movzx eax, word [rsi + 8] + LONG $0x08423b66 // cmp ax, word [rdx + 8] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x0a46b70f // movzx eax, word [rsi + 10] + LONG $0x0a423b66 // cmp ax, word [rdx + 10] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x0c46b70f // movzx eax, word [rsi + 12] + LONG $0x0c423b66 // cmp ax, word [rdx + 12] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x0e46b70f // movzx eax, word [rsi + 14] + LONG $0x0e423b66 // cmp ax, word [rdx + 14] + LONG $0xd59d0f41 // setge r13b + LONG $0x1046b70f // movzx eax, word [rsi + 16] + LONG $0x10423b66 // cmp ax, word [rdx + 16] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x1246b70f // movzx eax, word [rsi + 18] + LONG $0x12423b66 // cmp ax, word [rdx + 18] + LONG $0xd09d0f41 // setge r8b + LONG $0x1446b70f // movzx eax, word [rsi + 20] + LONG $0x14423b66 // cmp ax, word [rdx + 20] + LONG $0xd39d0f41 // setge r11b + LONG $0x1646b70f // movzx eax, word [rsi + 22] + LONG $0x16423b66 // cmp ax, word [rdx + 22] + LONG $0xd79d0f41 // setge r15b + LONG $0x1846b70f // movzx eax, word [rsi + 24] + LONG $0x18423b66 // cmp ax, word [rdx + 24] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x1a46b70f // movzx eax, word [rsi + 26] + LONG $0x1a423b66 // cmp ax, word [rdx + 26] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x1c46b70f // movzx eax, word [rsi + 28] + LONG $0x1c423b66 // cmp ax, word [rdx + 28] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x1e46b70f // movzx eax, word [rsi + 30] + LONG $0x1e423b66 // cmp ax, word [rdx + 30] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x2046b70f // movzx eax, word [rsi + 32] + LONG $0x224eb70f // movzx ecx, word [rsi + 34] + LONG $0x20423b66 // cmp ax, word [rdx + 32] + LONG $0x2446b70f // movzx eax, word [rsi + 36] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x224a3b66 // cmp cx, word [rdx + 34] + LONG $0x264eb70f // movzx ecx, word [rsi + 38] + LONG $0xd29d0f41 // setge r10b + LONG $0x24423b66 // cmp ax, word [rdx + 36] + LONG $0x2846b70f // movzx eax, word [rsi + 40] + LONG $0xd69d0f41 // setge r14b + LONG $0x264a3b66 // cmp cx, word [rdx + 38] + LONG $0x2a4eb70f // movzx ecx, word [rsi + 42] + LONG $0xd49d0f41 // setge r12b + LONG $0x28423b66 // cmp ax, word [rdx + 40] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x2a4a3b66 // cmp cx, word [rdx + 42] + LONG $0x2c46b70f // movzx eax, word [rsi + 44] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0x2c423b66 // cmp ax, word [rdx + 44] + LONG $0x2e46b70f // movzx eax, word [rsi + 46] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0x2e423b66 // cmp ax, word [rdx + 46] + LONG $0x3046b70f // movzx eax, word [rsi + 48] + LONG $0xd19d0f41 // setge r9b + LONG $0x30423b66 // cmp ax, word [rdx + 48] + LONG $0x3246b70f // movzx eax, word [rsi + 50] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0x32423b66 // cmp ax, word [rdx + 50] + LONG $0x3446b70f // movzx eax, word [rsi + 52] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0x34423b66 // cmp ax, word [rdx + 52] + LONG $0x3646b70f // movzx eax, word [rsi + 54] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0x36423b66 // cmp ax, word [rdx + 54] + LONG $0x3846b70f // movzx eax, word [rsi + 56] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0x38423b66 // cmp ax, word [rdx + 56] + LONG $0x3a46b70f // movzx eax, word [rsi + 58] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x3a423b66 // cmp ax, word [rdx + 58] + LONG $0x3c46b70f // movzx eax, word [rsi + 60] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0x3c423b66 // cmp ax, word [rdx + 60] + LONG $0x3e46b70f // movzx eax, word [rsi + 62] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x40c68348 // add rsi, 64 + LONG $0x3e423b66 // cmp ax, word [rdx + 62] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_85 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_87: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_89: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x4e3cb70f // movzx edi, word [rsi + 2*rcx] + LONG $0x4a3c3b66 // cmp di, word [rdx + 2*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_89 + JMP LBB9_123 + +LBB9_101: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_105 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_103: + WORD $0x8b48; BYTE $0x0e // mov rcx, qword [rsi] + LONG $0x08c68348 // add rsi, 8 + WORD $0x3b48; BYTE $0x0a // cmp rcx, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_103 + LONG $0x01c68349 // add r14, 1 + +LBB9_105: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_109 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_107: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x8b48; BYTE $0x06 // mov rax, qword [rsi] + LONG $0x084e8b48 // mov rcx, qword [rsi + 8] + WORD $0x3b48; BYTE $0x02 // cmp rax, qword [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x084a3b48 // cmp rcx, qword [rdx + 8] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x10468b48 // mov rax, qword [rsi + 16] + LONG $0x10423b48 // cmp rax, qword [rdx + 16] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + LONG $0x18468b48 // mov rax, qword [rsi + 24] + LONG $0x18423b48 // cmp rax, qword [rdx + 24] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + LONG $0x20468b48 // mov rax, qword [rsi + 32] + LONG $0x20423b48 // cmp rax, qword [rdx + 32] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + LONG $0x28468b48 // mov rax, qword [rsi + 40] + LONG $0x28423b48 // cmp rax, qword [rdx + 40] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + LONG $0x30468b48 // mov rax, qword [rsi + 48] + LONG $0x30423b48 // cmp rax, qword [rdx + 48] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + LONG $0x38468b48 // mov rax, qword [rsi + 56] + LONG $0x38423b48 // cmp rax, qword [rdx + 56] + LONG $0xd59d0f41 // setge r13b + LONG $0x40468b48 // mov rax, qword [rsi + 64] + LONG $0x40423b48 // cmp rax, qword [rdx + 64] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + LONG $0x48468b48 // mov rax, qword [rsi + 72] + LONG $0x48423b48 // cmp rax, qword [rdx + 72] + LONG $0xd09d0f41 // setge r8b + LONG $0x50468b48 // mov rax, qword [rsi + 80] + LONG $0x50423b48 // cmp rax, qword [rdx + 80] + LONG $0xd39d0f41 // setge r11b + LONG $0x58468b48 // mov rax, qword [rsi + 88] + LONG $0x58423b48 // cmp rax, qword [rdx + 88] + LONG $0xd79d0f41 // setge r15b + LONG $0x60468b48 // mov rax, qword [rsi + 96] + LONG $0x60423b48 // cmp rax, qword [rdx + 96] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + LONG $0x68468b48 // mov rax, qword [rsi + 104] + LONG $0x68423b48 // cmp rax, qword [rdx + 104] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + LONG $0x70468b48 // mov rax, qword [rsi + 112] + LONG $0x70423b48 // cmp rax, qword [rdx + 112] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + LONG $0x78468b48 // mov rax, qword [rsi + 120] + LONG $0x78423b48 // cmp rax, qword [rdx + 120] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x80868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 128] + LONG $0x888e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 136] + LONG $0x80823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 128] + LONG $0x90868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 144] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + LONG $0x888a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 136] + LONG $0x988e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 152] + LONG $0xd29d0f41 // setge r10b + LONG $0x90823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 144] + LONG $0xa0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 160] + LONG $0xd69d0f41 // setge r14b + LONG $0x988a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 152] + LONG $0xa88e8b48; WORD $0x0000; BYTE $0x00 // mov rcx, qword [rsi + 168] + LONG $0xd49d0f41 // setge r12b + LONG $0xa0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 160] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0xa88a3b48; WORD $0x0000; BYTE $0x00 // cmp rcx, qword [rdx + 168] + LONG $0xb0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 176] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + LONG $0xb0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 176] + LONG $0xb8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 184] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + LONG $0xb8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 184] + LONG $0xc0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 192] + LONG $0xd19d0f41 // setge r9b + LONG $0xc0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 192] + LONG $0xc8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 200] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + LONG $0xc8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 200] + LONG $0xd0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 208] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + LONG $0xd0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 208] + LONG $0xd8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 216] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + LONG $0xd8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 216] + LONG $0xe0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 224] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + LONG $0xe0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 224] + LONG $0xe8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 232] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0xe8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 232] + LONG $0xf0868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 240] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + LONG $0xf0823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 240] + LONG $0xf8868b48; WORD $0x0000; BYTE $0x00 // mov rax, qword [rsi + 248] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0xf8823b48; WORD $0x0000; BYTE $0x00 // cmp rax, qword [rdx + 248] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_107 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_109: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_111: + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0xce3c8b48 // mov rdi, qword [rsi + 8*rcx] + LONG $0xca3c3b48 // cmp rdi, qword [rdx + 8*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_111 + JMP LBB9_123 + +LBB9_112: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_116 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_114: + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_114 + LONG $0x01c68349 // add r14, 1 + +LBB9_116: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_120 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + LONG $0x247c894c; BYTE $0x28 // mov qword [rsp + 40], r15 + +LBB9_118: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + LONG $0x4e100ff3; BYTE $0x04 // movss xmm1, dword [rsi + 4] + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x044a2e0f // ucomiss xmm1, dword [rdx + 4] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x46100ff3; BYTE $0x08 // movss xmm0, dword [rsi + 8] + LONG $0x08422e0f // ucomiss xmm0, dword [rdx + 8] + LONG $0x46100ff3; BYTE $0x0c // movss xmm0, dword [rsi + 12] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x0c422e0f // ucomiss xmm0, dword [rdx + 12] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x46100ff3; BYTE $0x10 // movss xmm0, dword [rsi + 16] + LONG $0x10422e0f // ucomiss xmm0, dword [rdx + 16] + LONG $0x46100ff3; BYTE $0x14 // movss xmm0, dword [rsi + 20] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x14422e0f // ucomiss xmm0, dword [rdx + 20] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x46100ff3; BYTE $0x18 // movss xmm0, dword [rsi + 24] + LONG $0x18422e0f // ucomiss xmm0, dword [rdx + 24] + LONG $0x46100ff3; BYTE $0x1c // movss xmm0, dword [rsi + 28] + LONG $0xd5930f41 // setae r13b + LONG $0x1c422e0f // ucomiss xmm0, dword [rdx + 28] + LONG $0xd7930f41 // setae r15b + LONG $0x46100ff3; BYTE $0x20 // movss xmm0, dword [rsi + 32] + LONG $0x20422e0f // ucomiss xmm0, dword [rdx + 32] + LONG $0x46100ff3; BYTE $0x24 // movss xmm0, dword [rsi + 36] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x24422e0f // ucomiss xmm0, dword [rdx + 36] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x46100ff3; BYTE $0x28 // movss xmm0, dword [rsi + 40] + LONG $0x28422e0f // ucomiss xmm0, dword [rdx + 40] + LONG $0x46100ff3; BYTE $0x2c // movss xmm0, dword [rsi + 44] + LONG $0xd1930f41 // setae r9b + LONG $0x2c422e0f // ucomiss xmm0, dword [rdx + 44] + LONG $0xd3930f41 // setae r11b + LONG $0x46100ff3; BYTE $0x30 // movss xmm0, dword [rsi + 48] + LONG $0x30422e0f // ucomiss xmm0, dword [rdx + 48] + LONG $0x46100ff3; BYTE $0x34 // movss xmm0, dword [rsi + 52] + LONG $0xd2930f41 // setae r10b + LONG $0x34422e0f // ucomiss xmm0, dword [rdx + 52] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x46100ff3; BYTE $0x38 // movss xmm0, dword [rsi + 56] + LONG $0x38422e0f // ucomiss xmm0, dword [rdx + 56] + LONG $0x46100ff3; BYTE $0x3c // movss xmm0, dword [rsi + 60] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x3c422e0f // ucomiss xmm0, dword [rdx + 60] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x46100ff3; BYTE $0x40 // movss xmm0, dword [rsi + 64] + LONG $0x40422e0f // ucomiss xmm0, dword [rdx + 64] + LONG $0x46100ff3; BYTE $0x44 // movss xmm0, dword [rsi + 68] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x44422e0f // ucomiss xmm0, dword [rdx + 68] + LONG $0x46100ff3; BYTE $0x48 // movss xmm0, dword [rsi + 72] + LONG $0xd6930f41 // setae r14b + LONG $0x48422e0f // ucomiss xmm0, dword [rdx + 72] + LONG $0x46100ff3; BYTE $0x4c // movss xmm0, dword [rsi + 76] + LONG $0xd4930f41 // setae r12b + LONG $0x4c422e0f // ucomiss xmm0, dword [rdx + 76] + LONG $0x46100ff3; BYTE $0x50 // movss xmm0, dword [rsi + 80] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x50422e0f // ucomiss xmm0, dword [rdx + 80] + LONG $0x46100ff3; BYTE $0x54 // movss xmm0, dword [rsi + 84] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x54422e0f // ucomiss xmm0, dword [rdx + 84] + LONG $0x46100ff3; BYTE $0x58 // movss xmm0, dword [rsi + 88] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x58422e0f // ucomiss xmm0, dword [rdx + 88] + LONG $0x46100ff3; BYTE $0x5c // movss xmm0, dword [rsi + 92] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x5c422e0f // ucomiss xmm0, dword [rdx + 92] + LONG $0x46100ff3; BYTE $0x60 // movss xmm0, dword [rsi + 96] + LONG $0xd0930f41 // setae r8b + LONG $0x60422e0f // ucomiss xmm0, dword [rdx + 96] + LONG $0x46100ff3; BYTE $0x64 // movss xmm0, dword [rsi + 100] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x64422e0f // ucomiss xmm0, dword [rdx + 100] + LONG $0x46100ff3; BYTE $0x68 // movss xmm0, dword [rsi + 104] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x68422e0f // ucomiss xmm0, dword [rdx + 104] + LONG $0x46100ff3; BYTE $0x6c // movss xmm0, dword [rsi + 108] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x6c422e0f // ucomiss xmm0, dword [rdx + 108] + LONG $0x46100ff3; BYTE $0x70 // movss xmm0, dword [rsi + 112] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x70422e0f // ucomiss xmm0, dword [rdx + 112] + LONG $0x46100ff3; BYTE $0x74 // movss xmm0, dword [rsi + 116] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x74422e0f // ucomiss xmm0, dword [rdx + 116] + LONG $0x46100ff3; BYTE $0x78 // movss xmm0, dword [rsi + 120] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x78422e0f // ucomiss xmm0, dword [rdx + 120] + LONG $0x46100ff3; BYTE $0x7c // movss xmm0, dword [rsi + 124] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x80ee8348 // sub rsi, -128 + LONG $0x7c422e0f // ucomiss xmm0, dword [rdx + 124] + LONG $0xd7930f40 // setae dil + WORD $0xc000 // add al, al + LONG $0x04244402 // add al, byte [rsp + 4] + LONG $0x06e5c041 // shl r13b, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0845; BYTE $0xef // or r15b, r13b + LONG $0x6cb60f44; WORD $0x0524 // movzx r13d, byte [rsp + 5] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0841; BYTE $0xc5 // or r13b, al + WORD $0x8944; BYTE $0xe8 // mov eax, r13d + WORD $0xc900 // add cl, cl + LONG $0x08244c02 // add cl, byte [rsp + 8] + LONG $0x6cb60f44; WORD $0x1624 // movzx r13d, byte [rsp + 22] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + WORD $0x8941; BYTE $0xcd // mov r13d, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xda // or r10b, r11b + LONG $0x2444b60f; BYTE $0x07 // movzx eax, byte [rsp + 7] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd0 // or al, r10b + LONG $0x4cb60f44; WORD $0x0624 // movzx r9d, byte [rsp + 6] + LONG $0x06e1c041 // shl r9b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xcb // or bl, r9b + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xf6 // add r14b, r14b + LONG $0x24740244; BYTE $0x0e // add r14b, byte [rsp + 14] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x14244402 // add al, byte [rsp + 20] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x13 // movzx ecx, byte [rsp + 19] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xc108 // or cl, al + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xc7 // or dil, al + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x02468845 // mov byte [r14 + 2], r8b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff28 // add qword [rsp + 40], -1 + JNE LBB9_118 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + +LBB9_120: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_122: + LONG $0x04100ff3; BYTE $0x8e // movss xmm0, dword [rsi + 4*rcx] + LONG $0x8a042e0f // ucomiss xmm0, dword [rdx + 4*rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_122 + JMP LBB9_123 + +LBB9_57: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_61 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_59: + WORD $0xb60f; BYTE $0x0e // movzx ecx, byte [rsi] + LONG $0x01c68348 // add rsi, 1 + WORD $0x0a3a // cmp cl, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0x0000ba41; WORD $0x0000 // mov r10d, 0 + LONG $0xffd28041 // adc r10b, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000dd0c8d44 // lea r9d, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2044; BYTE $0xd7 // and dil, r10b + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_59 + LONG $0x01c68349 // add r14, 1 + +LBB9_61: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_65 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + LONG $0x247c894c; BYTE $0x20 // mov qword [rsp + 32], r15 + +LBB9_63: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0xb60f; BYTE $0x06 // movzx eax, byte [rsi] + LONG $0x014eb60f // movzx ecx, byte [rsi + 1] + WORD $0x023a // cmp al, byte [rdx] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + WORD $0x4a3a; BYTE $0x01 // cmp cl, byte [rdx + 1] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x0246b60f // movzx eax, byte [rsi + 2] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + LONG $0x2454930f; BYTE $0x14 // setae byte [rsp + 20] + LONG $0x0346b60f // movzx eax, byte [rsi + 3] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0x2454930f; BYTE $0x15 // setae byte [rsp + 21] + LONG $0x0446b60f // movzx eax, byte [rsi + 4] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0x2454930f; BYTE $0x16 // setae byte [rsp + 22] + LONG $0x0546b60f // movzx eax, byte [rsi + 5] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0x2454930f; BYTE $0x17 // setae byte [rsp + 23] + LONG $0x0646b60f // movzx eax, byte [rsi + 6] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + LONG $0x2454930f; BYTE $0x04 // setae byte [rsp + 4] + LONG $0x0746b60f // movzx eax, byte [rsi + 7] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd7930f41 // setae r15b + LONG $0x0846b60f // movzx eax, byte [rsi + 8] + WORD $0x423a; BYTE $0x08 // cmp al, byte [rdx + 8] + LONG $0x2454930f; BYTE $0x07 // setae byte [rsp + 7] + LONG $0x0946b60f // movzx eax, byte [rsi + 9] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd7930f40 // setae dil + LONG $0x0a46b60f // movzx eax, byte [rsi + 10] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd2930f41 // setae r10b + LONG $0x0b46b60f // movzx eax, byte [rsi + 11] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd3930f41 // setae r11b + LONG $0x0c46b60f // movzx eax, byte [rsi + 12] + WORD $0x423a; BYTE $0x0c // cmp al, byte [rdx + 12] + LONG $0xd6930f41 // setae r14b + LONG $0x0d46b60f // movzx eax, byte [rsi + 13] + WORD $0x423a; BYTE $0x0d // cmp al, byte [rdx + 13] + LONG $0x2454930f; BYTE $0x05 // setae byte [rsp + 5] + LONG $0x0e46b60f // movzx eax, byte [rsi + 14] + WORD $0x423a; BYTE $0x0e // cmp al, byte [rdx + 14] + LONG $0x2454930f; BYTE $0x06 // setae byte [rsp + 6] + LONG $0x0f46b60f // movzx eax, byte [rsi + 15] + WORD $0x423a; BYTE $0x0f // cmp al, byte [rdx + 15] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x1046b60f // movzx eax, byte [rsi + 16] + WORD $0x423a; BYTE $0x10 // cmp al, byte [rdx + 16] + LONG $0x2454930f; BYTE $0x0d // setae byte [rsp + 13] + LONG $0x1146b60f // movzx eax, byte [rsi + 17] + WORD $0x423a; BYTE $0x11 // cmp al, byte [rdx + 17] + LONG $0xd4930f41 // setae r12b + LONG $0x1246b60f // movzx eax, byte [rsi + 18] + WORD $0x423a; BYTE $0x12 // cmp al, byte [rdx + 18] + LONG $0xd5930f41 // setae r13b + LONG $0x1346b60f // movzx eax, byte [rsi + 19] + WORD $0x423a; BYTE $0x13 // cmp al, byte [rdx + 19] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x1446b60f // movzx eax, byte [rsi + 20] + WORD $0x423a; BYTE $0x14 // cmp al, byte [rdx + 20] + LONG $0x2454930f; BYTE $0x09 // setae byte [rsp + 9] + LONG $0x1546b60f // movzx eax, byte [rsi + 21] + WORD $0x423a; BYTE $0x15 // cmp al, byte [rdx + 21] + LONG $0x2454930f; BYTE $0x0a // setae byte [rsp + 10] + LONG $0x1646b60f // movzx eax, byte [rsi + 22] + WORD $0x423a; BYTE $0x16 // cmp al, byte [rdx + 22] + LONG $0x2454930f; BYTE $0x0b // setae byte [rsp + 11] + LONG $0x1746b60f // movzx eax, byte [rsi + 23] + WORD $0x423a; BYTE $0x17 // cmp al, byte [rdx + 23] + LONG $0xd1930f41 // setae r9b + LONG $0x1846b60f // movzx eax, byte [rsi + 24] + WORD $0x423a; BYTE $0x18 // cmp al, byte [rdx + 24] + LONG $0x2454930f; BYTE $0x13 // setae byte [rsp + 19] + LONG $0x1946b60f // movzx eax, byte [rsi + 25] + WORD $0x423a; BYTE $0x19 // cmp al, byte [rdx + 25] + LONG $0x2454930f; BYTE $0x0c // setae byte [rsp + 12] + LONG $0x1a46b60f // movzx eax, byte [rsi + 26] + WORD $0x423a; BYTE $0x1a // cmp al, byte [rdx + 26] + LONG $0x2454930f; BYTE $0x0e // setae byte [rsp + 14] + LONG $0x1b46b60f // movzx eax, byte [rsi + 27] + WORD $0x423a; BYTE $0x1b // cmp al, byte [rdx + 27] + LONG $0x2454930f; BYTE $0x0f // setae byte [rsp + 15] + LONG $0x1c46b60f // movzx eax, byte [rsi + 28] + WORD $0x423a; BYTE $0x1c // cmp al, byte [rdx + 28] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x1d46b60f // movzx eax, byte [rsi + 29] + WORD $0x423a; BYTE $0x1d // cmp al, byte [rdx + 29] + LONG $0x2454930f; BYTE $0x11 // setae byte [rsp + 17] + LONG $0x1e46b60f // movzx eax, byte [rsi + 30] + WORD $0x423a; BYTE $0x1e // cmp al, byte [rdx + 30] + LONG $0x2454930f; BYTE $0x12 // setae byte [rsp + 18] + LONG $0x1f46b60f // movzx eax, byte [rsi + 31] + LONG $0x20c68348 // add rsi, 32 + WORD $0x423a; BYTE $0x1f // cmp al, byte [rdx + 31] + LONG $0xd0930f41 // setae r8b + WORD $0xc900 // add cl, cl + LONG $0x28244c02 // add cl, byte [rsp + 40] + WORD $0xc889 // mov eax, ecx + LONG $0x244cb60f; BYTE $0x04 // movzx ecx, byte [rsp + 4] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xcf // or r15b, cl + LONG $0x244cb60f; BYTE $0x14 // movzx ecx, byte [rsp + 20] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + WORD $0x0040; BYTE $0xff // add dil, dil + LONG $0x247c0240; BYTE $0x07 // add dil, byte [rsp + 7] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e2c041 // shl r10b, 2 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0xcf89 // mov edi, ecx + LONG $0x03e3c041 // shl r11b, 3 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf9 // or cl, dil + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x247cb60f; BYTE $0x06 // movzx edi, byte [rsp + 6] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xfb // or bl, dil + WORD $0x0841; BYTE $0xcf // or r15b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xe4 // add r12b, r12b + LONG $0x24640244; BYTE $0x0d // add r12b, byte [rsp + 13] + LONG $0x02e5c041 // shl r13b, 2 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xe8 // or al, r13b + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x09 // movzx eax, byte [rsp + 9] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0a // movzx eax, byte [rsp + 10] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x3e // mov byte [r14], r15b + LONG $0x244cb60f; BYTE $0x0b // movzx ecx, byte [rsp + 11] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0c // movzx eax, byte [rsp + 12] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x11 // movzx eax, byte [rsp + 17] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x12 // movzx ecx, byte [rsp + 18] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff20 // add qword [rsp + 32], -1 + JNE LBB9_63 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + +LBB9_65: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_67: + LONG $0x0e04b60f // movzx eax, byte [rsi + rcx] + WORD $0x043a; BYTE $0x0a // cmp al, byte [rdx + rcx] + LONG $0x01418d4c // lea r8, [rcx + 1] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x8948; BYTE $0xcb // mov rbx, rcx + LONG $0x03ebc148 // shr rbx, 3 + LONG $0x0cb60f45; BYTE $0x1e // movzx r9d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xcf // xor dil, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x1e048841 // mov byte [r14 + rbx], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_67 + JMP LBB9_123 + +LBB9_90: + LONG $0x1f7b8d4d // lea r15, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xfb490f4d // cmovns r15, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB9_94 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB9_92: + WORD $0x0e8b // mov ecx, dword [rsi] + LONG $0x04c68348 // add rsi, 4 + WORD $0x0a3b // cmp ecx, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x04b60f45; BYTE $0x3e // movzx r8d, byte [r14 + rdi] + WORD $0x3045; BYTE $0xc2 // xor r10b, r8b + QUAD $0x00000000fd0c8d44 // lea r9d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc9 // sub ecx, r9d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2044; BYTE $0xd3 // and bl, r10b + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB9_92 + LONG $0x01c68349 // add r14, 1 + +LBB9_94: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB9_98 + LONG $0x245c894c; BYTE $0x18 // mov qword [rsp + 24], r11 + LONG $0x247c894c; BYTE $0x40 // mov qword [rsp + 64], r15 + LONG $0x247c894c; BYTE $0x38 // mov qword [rsp + 56], r15 + +LBB9_96: + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + WORD $0x068b // mov eax, dword [rsi] + WORD $0x4e8b; BYTE $0x04 // mov ecx, dword [rsi + 4] + WORD $0x023b // cmp eax, dword [rdx] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + WORD $0x4a3b; BYTE $0x04 // cmp ecx, dword [rdx + 4] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + WORD $0x468b; BYTE $0x08 // mov eax, dword [rsi + 8] + WORD $0x423b; BYTE $0x08 // cmp eax, dword [rdx + 8] + LONG $0x24549d0f; BYTE $0x14 // setge byte [rsp + 20] + WORD $0x468b; BYTE $0x0c // mov eax, dword [rsi + 12] + WORD $0x423b; BYTE $0x0c // cmp eax, dword [rdx + 12] + LONG $0x24549d0f; BYTE $0x15 // setge byte [rsp + 21] + WORD $0x468b; BYTE $0x10 // mov eax, dword [rsi + 16] + WORD $0x423b; BYTE $0x10 // cmp eax, dword [rdx + 16] + LONG $0x24549d0f; BYTE $0x16 // setge byte [rsp + 22] + WORD $0x468b; BYTE $0x14 // mov eax, dword [rsi + 20] + WORD $0x423b; BYTE $0x14 // cmp eax, dword [rdx + 20] + LONG $0x24549d0f; BYTE $0x17 // setge byte [rsp + 23] + WORD $0x468b; BYTE $0x18 // mov eax, dword [rsi + 24] + WORD $0x423b; BYTE $0x18 // cmp eax, dword [rdx + 24] + LONG $0x24549d0f; BYTE $0x04 // setge byte [rsp + 4] + WORD $0x468b; BYTE $0x1c // mov eax, dword [rsi + 28] + WORD $0x423b; BYTE $0x1c // cmp eax, dword [rdx + 28] + LONG $0xd59d0f41 // setge r13b + WORD $0x468b; BYTE $0x20 // mov eax, dword [rsi + 32] + WORD $0x423b; BYTE $0x20 // cmp eax, dword [rdx + 32] + LONG $0x24549d0f; BYTE $0x09 // setge byte [rsp + 9] + WORD $0x468b; BYTE $0x24 // mov eax, dword [rsi + 36] + WORD $0x423b; BYTE $0x24 // cmp eax, dword [rdx + 36] + LONG $0xd09d0f41 // setge r8b + WORD $0x468b; BYTE $0x28 // mov eax, dword [rsi + 40] + WORD $0x423b; BYTE $0x28 // cmp eax, dword [rdx + 40] + LONG $0xd39d0f41 // setge r11b + WORD $0x468b; BYTE $0x2c // mov eax, dword [rsi + 44] + WORD $0x423b; BYTE $0x2c // cmp eax, dword [rdx + 44] + LONG $0xd79d0f41 // setge r15b + WORD $0x468b; BYTE $0x30 // mov eax, dword [rsi + 48] + WORD $0x423b; BYTE $0x30 // cmp eax, dword [rdx + 48] + LONG $0x24549d0f; BYTE $0x05 // setge byte [rsp + 5] + WORD $0x468b; BYTE $0x34 // mov eax, dword [rsi + 52] + WORD $0x423b; BYTE $0x34 // cmp eax, dword [rdx + 52] + LONG $0x24549d0f; BYTE $0x06 // setge byte [rsp + 6] + WORD $0x468b; BYTE $0x38 // mov eax, dword [rsi + 56] + WORD $0x423b; BYTE $0x38 // cmp eax, dword [rdx + 56] + LONG $0x24549d0f; BYTE $0x07 // setge byte [rsp + 7] + WORD $0x468b; BYTE $0x3c // mov eax, dword [rsi + 60] + WORD $0x423b; BYTE $0x3c // cmp eax, dword [rdx + 60] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0x468b; BYTE $0x40 // mov eax, dword [rsi + 64] + WORD $0x4e8b; BYTE $0x44 // mov ecx, dword [rsi + 68] + WORD $0x423b; BYTE $0x40 // cmp eax, dword [rdx + 64] + WORD $0x468b; BYTE $0x48 // mov eax, dword [rsi + 72] + LONG $0x24549d0f; BYTE $0x0a // setge byte [rsp + 10] + WORD $0x4a3b; BYTE $0x44 // cmp ecx, dword [rdx + 68] + WORD $0x4e8b; BYTE $0x4c // mov ecx, dword [rsi + 76] + LONG $0xd29d0f41 // setge r10b + WORD $0x423b; BYTE $0x48 // cmp eax, dword [rdx + 72] + WORD $0x468b; BYTE $0x50 // mov eax, dword [rsi + 80] + LONG $0xd69d0f41 // setge r14b + WORD $0x4a3b; BYTE $0x4c // cmp ecx, dword [rdx + 76] + WORD $0x4e8b; BYTE $0x54 // mov ecx, dword [rsi + 84] + LONG $0xd49d0f41 // setge r12b + WORD $0x423b; BYTE $0x50 // cmp eax, dword [rdx + 80] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + WORD $0x4a3b; BYTE $0x54 // cmp ecx, dword [rdx + 84] + WORD $0x468b; BYTE $0x58 // mov eax, dword [rsi + 88] + LONG $0x24549d0f; BYTE $0x0b // setge byte [rsp + 11] + WORD $0x423b; BYTE $0x58 // cmp eax, dword [rdx + 88] + WORD $0x468b; BYTE $0x5c // mov eax, dword [rsi + 92] + LONG $0x24549d0f; BYTE $0x0c // setge byte [rsp + 12] + WORD $0x423b; BYTE $0x5c // cmp eax, dword [rdx + 92] + WORD $0x468b; BYTE $0x60 // mov eax, dword [rsi + 96] + LONG $0xd19d0f41 // setge r9b + WORD $0x423b; BYTE $0x60 // cmp eax, dword [rdx + 96] + WORD $0x468b; BYTE $0x64 // mov eax, dword [rsi + 100] + LONG $0x24549d0f; BYTE $0x13 // setge byte [rsp + 19] + WORD $0x423b; BYTE $0x64 // cmp eax, dword [rdx + 100] + WORD $0x468b; BYTE $0x68 // mov eax, dword [rsi + 104] + LONG $0x24549d0f; BYTE $0x0d // setge byte [rsp + 13] + WORD $0x423b; BYTE $0x68 // cmp eax, dword [rdx + 104] + WORD $0x468b; BYTE $0x6c // mov eax, dword [rsi + 108] + LONG $0x24549d0f; BYTE $0x0e // setge byte [rsp + 14] + WORD $0x423b; BYTE $0x6c // cmp eax, dword [rdx + 108] + WORD $0x468b; BYTE $0x70 // mov eax, dword [rsi + 112] + LONG $0x24549d0f; BYTE $0x0f // setge byte [rsp + 15] + WORD $0x423b; BYTE $0x70 // cmp eax, dword [rdx + 112] + WORD $0x468b; BYTE $0x74 // mov eax, dword [rsi + 116] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + WORD $0x423b; BYTE $0x74 // cmp eax, dword [rdx + 116] + WORD $0x468b; BYTE $0x78 // mov eax, dword [rsi + 120] + LONG $0x24549d0f; BYTE $0x12 // setge byte [rsp + 18] + WORD $0x423b; BYTE $0x78 // cmp eax, dword [rdx + 120] + WORD $0x468b; BYTE $0x7c // mov eax, dword [rsi + 124] + LONG $0x24549d0f; BYTE $0x11 // setge byte [rsp + 17] + LONG $0x80ee8348 // sub rsi, -128 + WORD $0x423b; BYTE $0x7c // cmp eax, dword [rdx + 124] + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xc000 // add al, al + LONG $0x28244402 // add al, byte [rsp + 40] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x04 // movzx eax, byte [rsp + 4] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e5c041 // shl r13b, 7 + WORD $0x0841; BYTE $0xc5 // or r13b, al + LONG $0x2444b60f; BYTE $0x14 // movzx eax, byte [rsp + 20] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + LONG $0x24440244; BYTE $0x09 // add r8b, byte [rsp + 9] + LONG $0x244cb60f; BYTE $0x15 // movzx ecx, byte [rsp + 21] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xc108 // or cl, al + WORD $0xc889 // mov eax, ecx + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xc3 // or r11b, r8b + LONG $0x244cb60f; BYTE $0x16 // movzx ecx, byte [rsp + 22] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xdf // or r15b, r11b + LONG $0x244cb60f; BYTE $0x17 // movzx ecx, byte [rsp + 23] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x2444b60f; BYTE $0x05 // movzx eax, byte [rsp + 5] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xf8 // or al, r15b + WORD $0x8941; BYTE $0xc0 // mov r8d, eax + LONG $0x2444b60f; BYTE $0x06 // movzx eax, byte [rsp + 6] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xc0 // or al, r8b + LONG $0x44b60f44; WORD $0x0724 // movzx r8d, byte [rsp + 7] + LONG $0x06e0c041 // shl r8b, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0844; BYTE $0xc3 // or bl, r8b + WORD $0x0841; BYTE $0xcd // or r13b, cl + WORD $0xc308 // or bl, al + WORD $0x0045; BYTE $0xd2 // add r10b, r10b + LONG $0x24540244; BYTE $0x0a // add r10b, byte [rsp + 10] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xf4 // or r12b, r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + WORD $0xc189 // mov ecx, eax + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + LONG $0x2444b60f; BYTE $0x0b // movzx eax, byte [rsp + 11] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0x8845; BYTE $0x2e // mov byte [r14], r13b + LONG $0x244cb60f; BYTE $0x0c // movzx ecx, byte [rsp + 12] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc9 // or r9b, cl + LONG $0x015e8841 // mov byte [r14 + 1], bl + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x2444b60f; BYTE $0x0d // movzx eax, byte [rsp + 13] + WORD $0xc000 // add al, al + LONG $0x13244402 // add al, byte [rsp + 19] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0e // movzx eax, byte [rsp + 14] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x0f // movzx eax, byte [rsp + 15] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x12 // movzx eax, byte [rsp + 18] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + LONG $0x244cb60f; BYTE $0x11 // movzx ecx, byte [rsp + 17] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xcf // or dil, cl + WORD $0x0840; BYTE $0xc7 // or dil, al + LONG $0x024e8845 // mov byte [r14 + 2], r9b + LONG $0x037e8841 // mov byte [r14 + 3], dil + LONG $0x80c28148; WORD $0x0000; BYTE $0x00 // add rdx, 128 + LONG $0x04c68349 // add r14, 4 + LONG $0x24448348; WORD $0xff38 // add qword [rsp + 56], -1 + JNE LBB9_96 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + LONG $0x247c8b4c; BYTE $0x40 // mov r15, qword [rsp + 64] + +LBB9_98: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xdf // cmp r15, r11 + JGE LBB9_123 + WORD $0x294d; BYTE $0xfb // sub r11, r15 + WORD $0xc931 // xor ecx, ecx + +LBB9_100: + LONG $0x01418d4c // lea r8, [rcx + 1] + WORD $0x3c8b; BYTE $0x8e // mov edi, dword [rsi + 4*rcx] + WORD $0x3c3b; BYTE $0x8a // cmp edi, dword [rdx + 4*rcx] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xe180; BYTE $0x07 // and cl, 7 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB9_100 + +LBB9_123: + SUBQ $8, SP + RET + +DATA LCDATA7<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA7<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA7<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA7<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA7<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA7<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA7<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA7<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA7<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA7<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA7<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA7<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA7<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA7<>+0x080(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x090(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0a0(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x0a8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0b0(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0c0(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0d0(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x0d8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0e0(SB)/8, $0x8080808080808080 +DATA LCDATA7<>+0x0e8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x0f0(SB)/8, $0x0f070e060d050c04 +DATA LCDATA7<>+0x0f8(SB)/8, $0x0000000000000000 +DATA LCDATA7<>+0x100(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x108(SB)/8, $0x0202020202020202 +DATA LCDATA7<>+0x110(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x118(SB)/8, $0x0404040404040404 +DATA LCDATA7<>+0x120(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x128(SB)/8, $0x0808080808080808 +DATA LCDATA7<>+0x130(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x138(SB)/8, $0x1010101010101010 +DATA LCDATA7<>+0x140(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x148(SB)/8, $0x2020202020202020 +DATA LCDATA7<>+0x150(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x158(SB)/8, $0x4040404040404040 +DATA LCDATA7<>+0x160(SB)/8, $0xffffffffffffffff +DATA LCDATA7<>+0x168(SB)/8, $0xffffffffffffffff +GLOBL LCDATA7<>(SB), 8, $368 + +TEXT ·_comparison_greater_equal_arr_scalar_sse4(SB), $520-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 496(SP) + LEAQ LCDATA7<>(SB), BP + + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB10_16 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB10_31 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB10_81 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB10_92 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB10_182 + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_9 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_7: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_7 + LONG $0x01c68349 // add r14, 1 + +LBB10_9: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_13 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000170249c894c // mov qword [rsp + 368], r11 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + +LBB10_11: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd7930f40 // setae dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd6930f41 // setae r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x000001502494930f // setae byte [rsp + 336] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + QUAD $0x000000d02494930f // setae byte [rsp + 208] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x000001302494930f // setae byte [rsp + 304] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd1930f41 // setae r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd2930f41 // setae r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd3930f41 // setae r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd4930f41 // setae r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x000001002494930f // setae byte [rsp + 256] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + QUAD $0x000000f02494930f // setae byte [rsp + 240] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + QUAD $0x000000c02494930f // setae byte [rsp + 192] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd7930f41 // setae r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a024bc0240 // add dil, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000010024bcb60f // movzx edi, byte [rsp + 256] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001102494b60f // movzx edx, byte [rsp + 272] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd789 // mov edi, edx + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_11 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000170249c8b4c // mov r11, qword [rsp + 368] + +LBB10_13: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_162 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_164 + +LBB10_16: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB10_45 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB10_104 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB10_115 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB10_182 + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x02100ff2 // movsd xmm0, qword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_24 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_22: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x08c68348 // add rsi, 8 + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_22 + LONG $0x01c68349 // add r14, 1 + +LBB10_24: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_28 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB10_26: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + QUAD $0x000001502494960f // setbe byte [rsp + 336] + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + LONG $0xd1960f41 // setbe r9b + LONG $0x462e0f66; BYTE $0x10 // ucomisd xmm0, qword [rsi + 16] + LONG $0xd6960f41 // setbe r14b + LONG $0x462e0f66; BYTE $0x18 // ucomisd xmm0, qword [rsi + 24] + LONG $0xd5960f41 // setbe r13b + LONG $0x462e0f66; BYTE $0x20 // ucomisd xmm0, qword [rsi + 32] + QUAD $0x000000e02494960f // setbe byte [rsp + 224] + LONG $0x462e0f66; BYTE $0x28 // ucomisd xmm0, qword [rsi + 40] + QUAD $0x000000d02494960f // setbe byte [rsp + 208] + LONG $0x462e0f66; BYTE $0x30 // ucomisd xmm0, qword [rsi + 48] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x462e0f66; BYTE $0x38 // ucomisd xmm0, qword [rsi + 56] + WORD $0x960f; BYTE $0xd3 // setbe bl + LONG $0x462e0f66; BYTE $0x40 // ucomisd xmm0, qword [rsi + 64] + QUAD $0x000001002494960f // setbe byte [rsp + 256] + LONG $0x462e0f66; BYTE $0x48 // ucomisd xmm0, qword [rsi + 72] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x462e0f66; BYTE $0x50 // ucomisd xmm0, qword [rsi + 80] + LONG $0xd7960f40 // setbe dil + LONG $0x462e0f66; BYTE $0x58 // ucomisd xmm0, qword [rsi + 88] + LONG $0xd2960f41 // setbe r10b + LONG $0x462e0f66; BYTE $0x60 // ucomisd xmm0, qword [rsi + 96] + LONG $0xd3960f41 // setbe r11b + LONG $0x462e0f66; BYTE $0x68 // ucomisd xmm0, qword [rsi + 104] + LONG $0xd4960f41 // setbe r12b + LONG $0x462e0f66; BYTE $0x70 // ucomisd xmm0, qword [rsi + 112] + QUAD $0x000001102494960f // setbe byte [rsp + 272] + LONG $0x462e0f66; BYTE $0x78 // ucomisd xmm0, qword [rsi + 120] + WORD $0x960f; BYTE $0xd1 // setbe cl + QUAD $0x00000080862e0f66 // ucomisd xmm0, qword [rsi + 128] + QUAD $0x000000b02494960f // setbe byte [rsp + 176] + QUAD $0x00000088862e0f66 // ucomisd xmm0, qword [rsi + 136] + QUAD $0x000001302494960f // setbe byte [rsp + 304] + QUAD $0x00000090862e0f66 // ucomisd xmm0, qword [rsi + 144] + QUAD $0x000001202494960f // setbe byte [rsp + 288] + QUAD $0x00000098862e0f66 // ucomisd xmm0, qword [rsi + 152] + QUAD $0x000000f02494960f // setbe byte [rsp + 240] + QUAD $0x000000a0862e0f66 // ucomisd xmm0, qword [rsi + 160] + QUAD $0x000000c02494960f // setbe byte [rsp + 192] + QUAD $0x000000a8862e0f66 // ucomisd xmm0, qword [rsi + 168] + QUAD $0x000000902494960f // setbe byte [rsp + 144] + QUAD $0x000000b0862e0f66 // ucomisd xmm0, qword [rsi + 176] + QUAD $0x000000802494960f // setbe byte [rsp + 128] + QUAD $0x000000b8862e0f66 // ucomisd xmm0, qword [rsi + 184] + LONG $0xd7960f41 // setbe r15b + QUAD $0x000000c0862e0f66 // ucomisd xmm0, qword [rsi + 192] + LONG $0x2454960f; BYTE $0x30 // setbe byte [rsp + 48] + QUAD $0x000000c8862e0f66 // ucomisd xmm0, qword [rsi + 200] + LONG $0x2454960f; BYTE $0x70 // setbe byte [rsp + 112] + QUAD $0x000000d0862e0f66 // ucomisd xmm0, qword [rsi + 208] + LONG $0x2454960f; BYTE $0x60 // setbe byte [rsp + 96] + QUAD $0x000000d8862e0f66 // ucomisd xmm0, qword [rsi + 216] + LONG $0x2454960f; BYTE $0x50 // setbe byte [rsp + 80] + QUAD $0x000000e0862e0f66 // ucomisd xmm0, qword [rsi + 224] + LONG $0x2454960f; BYTE $0x20 // setbe byte [rsp + 32] + QUAD $0x000000e8862e0f66 // ucomisd xmm0, qword [rsi + 232] + LONG $0x2454960f; BYTE $0x10 // setbe byte [rsp + 16] + QUAD $0x000000f0862e0f66 // ucomisd xmm0, qword [rsi + 240] + LONG $0x2454960f; BYTE $0x08 // setbe byte [rsp + 8] + QUAD $0x000000f8862e0f66 // ucomisd xmm0, qword [rsi + 248] + LONG $0xd0960f41 // setbe r8b + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000150248c0244 // add r9b, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xce // or r14b, r9b + WORD $0xd200 // add dl, dl + LONG $0x00249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 256] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd1 // mov r9d, edx + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xca // or dl, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000011024bcb60f // movzx edi, byte [rsp + 272] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x000001302484b60f // movzx eax, byte [rsp + 304] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB10_26 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + +LBB10_28: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_166 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_168 + +LBB10_31: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB10_58 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB10_182 + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_37 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_35: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_35 + LONG $0x01c68349 // add r14, 1 + +LBB10_37: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_127 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x000001b024bc894c // mov qword [rsp + 432], r15 + JB LBB10_41 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB10_191 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB10_191 + +LBB10_41: + WORD $0xc031 // xor eax, eax + QUAD $0x000000a024848948 // mov qword [rsp + 160], rax + LONG $0x2474894c; BYTE $0x70 // mov qword [rsp + 112], r14 + +LBB10_42: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000000a024b42b4c // sub r14, qword [rsp + 160] + QUAD $0x0000017024b4894c // mov qword [rsp + 368], r14 + +LBB10_43: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x0000014024949d0f // setge byte [rsp + 320] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd69d0f40 // setge sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd79d0f41 // setge r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd49d0f41 // setge r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x0000015024949d0f // setge byte [rsp + 336] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd19d0f41 // setge r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x0000013024949d0f // setge byte [rsp + 304] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd79d0f40 // setge dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd29d0f41 // setge r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd69d0f41 // setge r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd59d0f41 // setge r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x0000010024949d0f // setge byte [rsp + 256] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd09d0f41 // setge r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + QUAD $0x000000f024949d0f // setge byte [rsp + 240] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + QUAD $0x000000c024949d0f // setge byte [rsp + 192] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd39d0f41 // setge r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x0000016024949d0f // setge byte [rsp + 352] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000014024b40240 // add sil, byte [rsp + 320] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x0000010024b4b60f // movzx esi, byte [rsp + 256] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xd200 // add dl, dl + LONG $0x10249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 272] + WORD $0xd689 // mov esi, edx + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + QUAD $0x000000c024bcb60f // movzx edi, byte [rsp + 192] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x80248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 128] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000016024b4b60f // movzx esi, byte [rsp + 352] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + LONG $0x24548948; BYTE $0x70 // mov qword [rsp + 112], rdx + QUAD $0x0000017024848348; BYTE $0xff // add qword [rsp + 368], -1 + JNE LBB10_43 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x000001b024bc8b4c // mov r15, qword [rsp + 432] + JMP LBB10_128 + +LBB10_45: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB10_70 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB10_182 + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_51 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_49: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_49 + LONG $0x01c68349 // add r14, 1 + +LBB10_51: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_55 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000170249c894c // mov qword [rsp + 368], r11 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + +LBB10_53: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd7930f40 // setae dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd6930f41 // setae r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x000001502494930f // setae byte [rsp + 336] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + QUAD $0x000000d02494930f // setae byte [rsp + 208] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x000001302494930f // setae byte [rsp + 304] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd1930f41 // setae r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd2930f41 // setae r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd3930f41 // setae r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd4930f41 // setae r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x000001002494930f // setae byte [rsp + 256] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + QUAD $0x000000f02494930f // setae byte [rsp + 240] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + QUAD $0x000000c02494930f // setae byte [rsp + 192] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd7930f41 // setae r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a024bc0240 // add dil, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000010024bcb60f // movzx edi, byte [rsp + 256] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001102494b60f // movzx edx, byte [rsp + 272] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd789 // mov edi, edx + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_53 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000170249c8b4c // mov r11, qword [rsp + 368] + +LBB10_55: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_143 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_145 + +LBB10_58: + WORD $0x8a44; BYTE $0x1a // mov r11b, byte [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_62 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_60: + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + LONG $0x01768d48 // lea rsi, [rsi + 1] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_60 + LONG $0x01c68349 // add r14, 1 + +LBB10_62: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_131 + LONG $0x10ff8349 // cmp r15, 16 + LONG $0x245c8844; BYTE $0x08 // mov byte [rsp + 8], r11b + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x000001d024bc894c // mov qword [rsp + 464], r15 + JB LBB10_66 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB10_194 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xc6 // cmp rsi, rax + JAE LBB10_194 + +LBB10_66: + WORD $0xc031 // xor eax, eax + QUAD $0x000001a024848948 // mov qword [rsp + 416], rax + QUAD $0x000000d024b4894c // mov qword [rsp + 208], r14 + +LBB10_67: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x000001a024b42b4c // sub r14, qword [rsp + 416] + QUAD $0x0000017024b4894c // mov qword [rsp + 368], r14 + +LBB10_68: + WORD $0x8948; BYTE $0xf1 // mov rcx, rsi + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + QUAD $0x000001402494930f // setae byte [rsp + 320] + LONG $0x015e3844 // cmp byte [rsi + 1], r11b + LONG $0xd6930f40 // setae sil + LONG $0x02593844 // cmp byte [rcx + 2], r11b + LONG $0xd7930f41 // setae r15b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x03 // cmp byte [rcx + 3], al + LONG $0xd4930f41 // setae r12b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x04 // cmp byte [rcx + 4], al + QUAD $0x000001502494930f // setae byte [rsp + 336] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x05 // cmp byte [rcx + 5], al + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x06 // cmp byte [rcx + 6], al + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x07 // cmp byte [rcx + 7], al + LONG $0xd1930f41 // setae r9b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x08 // cmp byte [rcx + 8], al + QUAD $0x000001302494930f // setae byte [rsp + 304] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x09 // cmp byte [rcx + 9], al + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0a // cmp byte [rcx + 10], al + LONG $0xd7930f40 // setae dil + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0b // cmp byte [rcx + 11], al + LONG $0xd2930f41 // setae r10b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0c // cmp byte [rcx + 12], al + LONG $0xd6930f41 // setae r14b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0d // cmp byte [rcx + 13], al + LONG $0xd5930f41 // setae r13b + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0e // cmp byte [rcx + 14], al + QUAD $0x000001002494930f // setae byte [rsp + 256] + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0x4138; BYTE $0x0f // cmp byte [rcx + 15], al + LONG $0xd0930f41 // setae r8b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x10 // cmp byte [rcx + 16], bl + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x11 // cmp byte [rcx + 17], bl + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x12 // cmp byte [rcx + 18], bl + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x13 // cmp byte [rcx + 19], bl + QUAD $0x000000f02494930f // setae byte [rsp + 240] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x14 // cmp byte [rcx + 20], bl + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x15 // cmp byte [rcx + 21], bl + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x16 // cmp byte [rcx + 22], bl + QUAD $0x000000c02494930f // setae byte [rsp + 192] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x17 // cmp byte [rcx + 23], bl + LONG $0xd3930f41 // setae r11b + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x18 // cmp byte [rcx + 24], bl + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x19 // cmp byte [rcx + 25], bl + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1a // cmp byte [rcx + 26], bl + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1b // cmp byte [rcx + 27], bl + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1c // cmp byte [rcx + 28], bl + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1d // cmp byte [rcx + 29], bl + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1e // cmp byte [rcx + 30], bl + QUAD $0x000001602494930f // setae byte [rsp + 352] + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0x5938; BYTE $0x1f // cmp byte [rcx + 31], bl + WORD $0x930f; BYTE $0xd3 // setae bl + WORD $0x0040; BYTE $0xf6 // add sil, sil + QUAD $0x0000014024b40240 // add sil, byte [rsp + 320] + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xc1 // or r9b, al + LONG $0x02e7c041 // shl r15b, 2 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + LONG $0x03e4c041 // shl r12b, 3 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x7cb60f44; WORD $0x0824 // movzx r15d, byte [rsp + 8] + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xd7 // or dil, dl + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0841; BYTE $0xfa // or r10b, dil + QUAD $0x000000802494b60f // movzx edx, byte [rsp + 128] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0xc208 // or dl, al + LONG $0x04e6c041 // shl r14b, 4 + WORD $0x0845; BYTE $0xd6 // or r14b, r10b + LONG $0x05e5c041 // shl r13b, 5 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + QUAD $0x0000010024b4b60f // movzx esi, byte [rsp + 256] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xf0 // or r8b, sil + WORD $0x0841; BYTE $0xd1 // or r9b, dl + WORD $0x0845; BYTE $0xe8 // or r8b, r13b + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xd200 // add dl, dl + LONG $0x10249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 272] + WORD $0xd689 // mov esi, edx + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000b02494b60f // movzx edx, byte [rsp + 176] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000d024948b48 // mov rdx, qword [rsp + 208] + WORD $0x8844; BYTE $0x0a // mov byte [rdx], r9b + QUAD $0x000000c024bcb60f // movzx edi, byte [rsp + 192] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xfb // or r11b, dil + LONG $0x01428844 // mov byte [rdx + 1], r8b + WORD $0x0841; BYTE $0xf3 // or r11b, sil + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xc000 // add al, al + LONG $0x70244402 // add al, byte [rsp + 112] + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0xc689 // mov esi, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0840; BYTE $0xf0 // or al, sil + QUAD $0x0000016024b4b60f // movzx esi, byte [rsp + 352] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xc308 // or bl, al + LONG $0x025a8844 // mov byte [rdx + 2], r11b + WORD $0x8945; BYTE $0xfb // mov r11d, r15d + WORD $0x5a88; BYTE $0x03 // mov byte [rdx + 3], bl + LONG $0x20718d48 // lea rsi, [rcx + 32] + LONG $0x04c28348 // add rdx, 4 + QUAD $0x000000d024948948 // mov qword [rsp + 208], rdx + QUAD $0x0000017024848348; BYTE $0xff // add qword [rsp + 368], -1 + JNE LBB10_68 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x000001d024bc8b4c // mov r15, qword [rsp + 464] + JMP LBB10_132 + +LBB10_70: + WORD $0x8b44; BYTE $0x2a // mov r13d, dword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_74 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_72: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x04768d48 // lea rsi, [rsi + 4] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_72 + LONG $0x01c68349 // add r14, 1 + +LBB10_74: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_78 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000170249c894c // mov qword [rsp + 368], r11 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + +LBB10_76: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0xd79d0f40 // setge dil + LONG $0x086e3944 // cmp dword [rsi + 8], r13d + LONG $0xd69d0f41 // setge r14b + LONG $0x0c6e3944 // cmp dword [rsi + 12], r13d + QUAD $0x0000015024949d0f // setge byte [rsp + 336] + LONG $0x106e3944 // cmp dword [rsi + 16], r13d + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x146e3944 // cmp dword [rsi + 20], r13d + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + LONG $0x186e3944 // cmp dword [rsi + 24], r13d + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x1c6e3944 // cmp dword [rsi + 28], r13d + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x206e3944 // cmp dword [rsi + 32], r13d + QUAD $0x0000013024949d0f // setge byte [rsp + 304] + LONG $0x246e3944 // cmp dword [rsi + 36], r13d + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x286e3944 // cmp dword [rsi + 40], r13d + LONG $0xd19d0f41 // setge r9b + LONG $0x2c6e3944 // cmp dword [rsi + 44], r13d + LONG $0xd29d0f41 // setge r10b + LONG $0x306e3944 // cmp dword [rsi + 48], r13d + LONG $0xd39d0f41 // setge r11b + LONG $0x346e3944 // cmp dword [rsi + 52], r13d + LONG $0xd49d0f41 // setge r12b + LONG $0x386e3944 // cmp dword [rsi + 56], r13d + QUAD $0x0000010024949d0f // setge byte [rsp + 256] + LONG $0x3c6e3944 // cmp dword [rsi + 60], r13d + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x406e3944 // cmp dword [rsi + 64], r13d + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x446e3944 // cmp dword [rsi + 68], r13d + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x486e3944 // cmp dword [rsi + 72], r13d + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x4c6e3944 // cmp dword [rsi + 76], r13d + QUAD $0x000000f024949d0f // setge byte [rsp + 240] + LONG $0x506e3944 // cmp dword [rsi + 80], r13d + QUAD $0x000000c024949d0f // setge byte [rsp + 192] + LONG $0x546e3944 // cmp dword [rsi + 84], r13d + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x586e3944 // cmp dword [rsi + 88], r13d + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x5c6e3944 // cmp dword [rsi + 92], r13d + LONG $0xd79d0f41 // setge r15b + LONG $0x606e3944 // cmp dword [rsi + 96], r13d + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x646e3944 // cmp dword [rsi + 100], r13d + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x686e3944 // cmp dword [rsi + 104], r13d + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x6c6e3944 // cmp dword [rsi + 108], r13d + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x706e3944 // cmp dword [rsi + 112], r13d + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x746e3944 // cmp dword [rsi + 116], r13d + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x786e3944 // cmp dword [rsi + 120], r13d + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x7c6e3944 // cmp dword [rsi + 124], r13d + LONG $0xd09d0f41 // setge r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a024bc0240 // add dil, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000010024bcb60f // movzx edi, byte [rsp + 256] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001102494b60f // movzx edx, byte [rsp + 272] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd789 // mov edi, edx + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x80c68148; WORD $0x0000; BYTE $0x00 // add rsi, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_76 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000170249c8b4c // mov r11, qword [rsp + 368] + +LBB10_78: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_147 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_149 + +LBB10_81: + LONG $0x2ab70f44 // movzx r13d, word [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_85 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_83: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_83 + LONG $0x01c68349 // add r14, 1 + +LBB10_85: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_89 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000170249c894c // mov qword [rsp + 368], r11 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + +LBB10_87: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + LONG $0x2e394466 // cmp word [rsi], r13w + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0xd7930f40 // setae dil + LONG $0x6e394466; BYTE $0x04 // cmp word [rsi + 4], r13w + LONG $0xd6930f41 // setae r14b + LONG $0x6e394466; BYTE $0x06 // cmp word [rsi + 6], r13w + QUAD $0x000001502494930f // setae byte [rsp + 336] + LONG $0x6e394466; BYTE $0x08 // cmp word [rsi + 8], r13w + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x6e394466; BYTE $0x0a // cmp word [rsi + 10], r13w + QUAD $0x000000d02494930f // setae byte [rsp + 208] + LONG $0x6e394466; BYTE $0x0c // cmp word [rsi + 12], r13w + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x6e394466; BYTE $0x0e // cmp word [rsi + 14], r13w + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x6e394466; BYTE $0x10 // cmp word [rsi + 16], r13w + QUAD $0x000001302494930f // setae byte [rsp + 304] + LONG $0x6e394466; BYTE $0x12 // cmp word [rsi + 18], r13w + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x6e394466; BYTE $0x14 // cmp word [rsi + 20], r13w + LONG $0xd1930f41 // setae r9b + LONG $0x6e394466; BYTE $0x16 // cmp word [rsi + 22], r13w + LONG $0xd2930f41 // setae r10b + LONG $0x6e394466; BYTE $0x18 // cmp word [rsi + 24], r13w + LONG $0xd3930f41 // setae r11b + LONG $0x6e394466; BYTE $0x1a // cmp word [rsi + 26], r13w + LONG $0xd4930f41 // setae r12b + LONG $0x6e394466; BYTE $0x1c // cmp word [rsi + 28], r13w + QUAD $0x000001002494930f // setae byte [rsp + 256] + LONG $0x6e394466; BYTE $0x1e // cmp word [rsi + 30], r13w + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x6e394466; BYTE $0x20 // cmp word [rsi + 32], r13w + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x6e394466; BYTE $0x22 // cmp word [rsi + 34], r13w + QUAD $0x000001102494930f // setae byte [rsp + 272] + LONG $0x6e394466; BYTE $0x24 // cmp word [rsi + 36], r13w + QUAD $0x000001202494930f // setae byte [rsp + 288] + LONG $0x6e394466; BYTE $0x26 // cmp word [rsi + 38], r13w + QUAD $0x000000f02494930f // setae byte [rsp + 240] + LONG $0x6e394466; BYTE $0x28 // cmp word [rsi + 40], r13w + QUAD $0x000000c02494930f // setae byte [rsp + 192] + LONG $0x6e394466; BYTE $0x2a // cmp word [rsi + 42], r13w + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x6e394466; BYTE $0x2c // cmp word [rsi + 44], r13w + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x6e394466; BYTE $0x2e // cmp word [rsi + 46], r13w + LONG $0xd7930f41 // setae r15b + LONG $0x6e394466; BYTE $0x30 // cmp word [rsi + 48], r13w + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x6e394466; BYTE $0x32 // cmp word [rsi + 50], r13w + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x6e394466; BYTE $0x34 // cmp word [rsi + 52], r13w + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x6e394466; BYTE $0x36 // cmp word [rsi + 54], r13w + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x6e394466; BYTE $0x38 // cmp word [rsi + 56], r13w + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x6e394466; BYTE $0x3a // cmp word [rsi + 58], r13w + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x6e394466; BYTE $0x3c // cmp word [rsi + 60], r13w + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x6e394466; BYTE $0x3e // cmp word [rsi + 62], r13w + LONG $0xd0930f41 // setae r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a024bc0240 // add dil, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000010024bcb60f // movzx edi, byte [rsp + 256] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001102494b60f // movzx edx, byte [rsp + 272] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd789 // mov edi, edx + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x40c68348 // add rsi, 64 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_87 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000170249c8b4c // mov r11, qword [rsp + 368] + +LBB10_89: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_170 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_172 + +LBB10_92: + LONG $0x1ab70f44 // movzx r11d, word [rdx] + LONG $0x1f7a8d4d // lea r15, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xfa490f4d // cmovns r15, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_96 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_94: + LONG $0x1e394466 // cmp word [rsi], r11w + LONG $0x02768d48 // lea rsi, [rsi + 2] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_94 + LONG $0x01c68349 // add r14, 1 + +LBB10_96: + LONG $0x05ffc149 // sar r15, 5 + LONG $0x20fa8349 // cmp r10, 32 + QUAD $0x00000188249c8944 // mov dword [rsp + 392], r11d + JL LBB10_135 + LONG $0x08ff8349 // cmp r15, 8 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x000001c824bc894c // mov qword [rsp + 456], r15 + JB LBB10_100 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB10_197 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB10_197 + +LBB10_100: + WORD $0xc031 // xor eax, eax + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + +LBB10_101: + LONG $0x2464894c; BYTE $0x08 // mov qword [rsp + 8], r12 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x0000019024b42b4c // sub r14, qword [rsp + 400] + QUAD $0x0000014024b4894c // mov qword [rsp + 320], r14 + QUAD $0x0000018824ac8b44 // mov r13d, dword [rsp + 392] + +LBB10_102: + LONG $0x2b394566 // cmp word [r11], r13w + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x6b394566; BYTE $0x02 // cmp word [r11 + 2], r13w + LONG $0xd09d0f41 // setge r8b + LONG $0x6b394566; BYTE $0x04 // cmp word [r11 + 4], r13w + LONG $0xd69d0f41 // setge r14b + LONG $0x6b394566; BYTE $0x06 // cmp word [r11 + 6], r13w + QUAD $0x0000015024949d0f // setge byte [rsp + 336] + LONG $0x6b394566; BYTE $0x08 // cmp word [r11 + 8], r13w + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x6b394566; BYTE $0x0a // cmp word [r11 + 10], r13w + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + LONG $0x6b394566; BYTE $0x0c // cmp word [r11 + 12], r13w + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x6b394566; BYTE $0x0e // cmp word [r11 + 14], r13w + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x6b394566; BYTE $0x10 // cmp word [r11 + 16], r13w + QUAD $0x0000013024949d0f // setge byte [rsp + 304] + LONG $0x6b394566; BYTE $0x12 // cmp word [r11 + 18], r13w + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x6b394566; BYTE $0x14 // cmp word [r11 + 20], r13w + LONG $0xd69d0f40 // setge sil + LONG $0x6b394566; BYTE $0x16 // cmp word [r11 + 22], r13w + LONG $0xd19d0f41 // setge r9b + LONG $0x6b394566; BYTE $0x18 // cmp word [r11 + 24], r13w + LONG $0xd29d0f41 // setge r10b + LONG $0x6b394566; BYTE $0x1a // cmp word [r11 + 26], r13w + LONG $0xd49d0f41 // setge r12b + LONG $0x6b394566; BYTE $0x1c // cmp word [r11 + 28], r13w + QUAD $0x0000010024949d0f // setge byte [rsp + 256] + LONG $0x6b394566; BYTE $0x1e // cmp word [r11 + 30], r13w + LONG $0xd79d0f40 // setge dil + LONG $0x6b394566; BYTE $0x20 // cmp word [r11 + 32], r13w + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x6b394566; BYTE $0x22 // cmp word [r11 + 34], r13w + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x6b394566; BYTE $0x24 // cmp word [r11 + 36], r13w + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x6b394566; BYTE $0x26 // cmp word [r11 + 38], r13w + QUAD $0x000000f024949d0f // setge byte [rsp + 240] + LONG $0x6b394566; BYTE $0x28 // cmp word [r11 + 40], r13w + QUAD $0x000000c024949d0f // setge byte [rsp + 192] + LONG $0x6b394566; BYTE $0x2a // cmp word [r11 + 42], r13w + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x6b394566; BYTE $0x2c // cmp word [r11 + 44], r13w + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x6b394566; BYTE $0x2e // cmp word [r11 + 46], r13w + LONG $0xd79d0f41 // setge r15b + LONG $0x6b394566; BYTE $0x30 // cmp word [r11 + 48], r13w + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x6b394566; BYTE $0x32 // cmp word [r11 + 50], r13w + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x6b394566; BYTE $0x34 // cmp word [r11 + 52], r13w + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x6b394566; BYTE $0x36 // cmp word [r11 + 54], r13w + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x6b394566; BYTE $0x38 // cmp word [r11 + 56], r13w + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x6b394566; BYTE $0x3a // cmp word [r11 + 58], r13w + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x6b394566; BYTE $0x3c // cmp word [r11 + 60], r13w + QUAD $0x0000016024949d0f // setge byte [rsp + 352] + LONG $0x6b394566; BYTE $0x3e // cmp word [r11 + 62], r13w + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x000000a024840244 // add r8b, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xc900 // add cl, cl + LONG $0x30248c02; WORD $0x0001; BYTE $0x00 // add cl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xce // or sil, cl + QUAD $0x000000e0248cb60f // movzx ecx, byte [rsp + 224] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xc108 // or cl, al + WORD $0x8941; BYTE $0xc8 // mov r8d, ecx + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + QUAD $0x000000d0248cb60f // movzx ecx, byte [rsp + 208] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0844; BYTE $0xc1 // or cl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000010024b4b60f // movzx esi, byte [rsp + 256] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0xcb08 // or bl, cl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + QUAD $0x00000110248cb60f // movzx ecx, byte [rsp + 272] + WORD $0xc900 // add cl, cl + LONG $0xb0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 176] + WORD $0xce89 // mov esi, ecx + QUAD $0x00000120248cb60f // movzx ecx, byte [rsp + 288] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + QUAD $0x000000f0248cb60f // movzx ecx, byte [rsp + 240] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + QUAD $0x000000c0248cb60f // movzx ecx, byte [rsp + 192] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + QUAD $0x00000090248cb60f // movzx ecx, byte [rsp + 144] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0xce89 // mov esi, ecx + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + WORD $0x1988 // mov byte [rcx], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x01798840 // mov byte [rcx + 1], dil + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x30244402 // add al, byte [rsp + 48] + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd808 // or al, bl + WORD $0xc389 // mov ebx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd808 // or al, bl + QUAD $0x00000160249cb60f // movzx ebx, byte [rsp + 352] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe2c0; BYTE $0x07 // shl dl, 7 + WORD $0xda08 // or dl, bl + WORD $0xc208 // or dl, al + LONG $0x02798844 // mov byte [rcx + 2], r15b + WORD $0x5188; BYTE $0x03 // mov byte [rcx + 3], dl + LONG $0x40c38349 // add r11, 64 + LONG $0x04c18348 // add rcx, 4 + LONG $0x244c8948; BYTE $0x08 // mov qword [rsp + 8], rcx + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_102 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x000001c824bc8b4c // mov r15, qword [rsp + 456] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + JMP LBB10_136 + +LBB10_104: + WORD $0x8b4c; BYTE $0x2a // mov r13, qword [rdx] + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_108 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_106: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1e // movzx r8d, byte [r14 + rbx] + WORD $0x3044; BYTE $0xc2 // xor dl, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xd7 // and dil, dl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1e3c8841 // mov byte [r14 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_106 + LONG $0x01c68349 // add r14, 1 + +LBB10_108: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_112 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000170249c894c // mov qword [rsp + 368], r11 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + +LBB10_110: + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0xd79d0f40 // setge dil + LONG $0x106e394c // cmp qword [rsi + 16], r13 + LONG $0xd69d0f41 // setge r14b + LONG $0x186e394c // cmp qword [rsi + 24], r13 + QUAD $0x0000015024949d0f // setge byte [rsp + 336] + LONG $0x206e394c // cmp qword [rsi + 32], r13 + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x286e394c // cmp qword [rsi + 40], r13 + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + LONG $0x306e394c // cmp qword [rsi + 48], r13 + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x386e394c // cmp qword [rsi + 56], r13 + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x406e394c // cmp qword [rsi + 64], r13 + QUAD $0x0000013024949d0f // setge byte [rsp + 304] + LONG $0x486e394c // cmp qword [rsi + 72], r13 + WORD $0x9d0f; BYTE $0xd2 // setge dl + LONG $0x506e394c // cmp qword [rsi + 80], r13 + LONG $0xd19d0f41 // setge r9b + LONG $0x586e394c // cmp qword [rsi + 88], r13 + LONG $0xd29d0f41 // setge r10b + LONG $0x606e394c // cmp qword [rsi + 96], r13 + LONG $0xd39d0f41 // setge r11b + LONG $0x686e394c // cmp qword [rsi + 104], r13 + LONG $0xd49d0f41 // setge r12b + LONG $0x706e394c // cmp qword [rsi + 112], r13 + QUAD $0x0000010024949d0f // setge byte [rsp + 256] + LONG $0x786e394c // cmp qword [rsi + 120], r13 + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x80ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 128], r13 + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x88ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 136], r13 + QUAD $0x0000011024949d0f // setge byte [rsp + 272] + LONG $0x90ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 144], r13 + QUAD $0x0000012024949d0f // setge byte [rsp + 288] + LONG $0x98ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 152], r13 + QUAD $0x000000f024949d0f // setge byte [rsp + 240] + LONG $0xa0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 160], r13 + QUAD $0x000000c024949d0f // setge byte [rsp + 192] + LONG $0xa8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 168], r13 + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0xb0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 176], r13 + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0xb8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 184], r13 + LONG $0xd79d0f41 // setge r15b + LONG $0xc0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 192], r13 + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0xc8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 200], r13 + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0xd0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 208], r13 + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0xd8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 216], r13 + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0xe0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 224], r13 + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0xe8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 232], r13 + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0xf0ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 240], r13 + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0xf8ae394c; WORD $0x0000; BYTE $0x00 // cmp qword [rsi + 248], r13 + LONG $0xd09d0f41 // setge r8b + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x000000a024bc0240 // add dil, byte [rsp + 160] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + WORD $0xe3c0; BYTE $0x07 // shl bl, 7 + WORD $0xc308 // or bl, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0841; BYTE $0xfe // or r14b, dil + WORD $0xd200 // add dl, dl + LONG $0x30249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 304] + QUAD $0x000001502484b60f // movzx eax, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0x0844; BYTE $0xf0 // or al, r14b + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xd1 // or r9b, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0xc208 // or dl, al + WORD $0xd789 // mov edi, edx + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xdc // or r12b, r11b + QUAD $0x0000010024bcb60f // movzx edi, byte [rsp + 256] + LONG $0x06e7c040 // shl dil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf9 // or cl, dil + WORD $0xd308 // or bl, dl + WORD $0x0844; BYTE $0xe1 // or cl, r12b + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x000001102494b60f // movzx edx, byte [rsp + 272] + WORD $0xd200 // add dl, dl + LONG $0xb0249402; WORD $0x0000; BYTE $0x00 // add dl, byte [rsp + 176] + WORD $0xd789 // mov edi, edx + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0xd789 // mov edi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xfa // or dl, dil + WORD $0x8841; BYTE $0x1e // mov byte [r14], bl + QUAD $0x00000080249cb60f // movzx ebx, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xdf // or r15b, bl + LONG $0x014e8841 // mov byte [r14 + 1], cl + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xc900 // add cl, cl + LONG $0x30244c02 // add cl, byte [rsp + 48] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + LONG $0x2454b60f; BYTE $0x08 // movzx edx, byte [rsp + 8] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xd0 // or r8b, dl + WORD $0x0841; BYTE $0xc8 // or r8b, cl + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x03468845 // mov byte [r14 + 3], r8b + LONG $0x00c68148; WORD $0x0001; BYTE $0x00 // add rsi, 256 + LONG $0x04c68349 // add r14, 4 + QUAD $0x0000014024848348; BYTE $0xff // add qword [rsp + 320], -1 + JNE LBB10_110 + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000170249c8b4c // mov r11, qword [rsp + 368] + +LBB10_112: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_175 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB10_177 + +LBB10_115: + LONG $0x1f5a8d4d // lea r11, [r10 + 31] + WORD $0x854d; BYTE $0xd2 // test r10, r10 + LONG $0xda490f4d // cmovns r11, r10 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x100f44f3; BYTE $0x1a // movss xmm11, dword [rdx] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB10_119 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB10_117: + LONG $0x1e2e0f44 // ucomiss xmm11, dword [rsi] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x04c68348 // add rsi, 4 + WORD $0xdaf6 // neg dl + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xca // xor dl, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB10_117 + LONG $0x01c68349 // add r14, 1 + +LBB10_119: + LONG $0x05fbc149 // sar r11, 5 + LONG $0x20fa8349 // cmp r10, 32 + JL LBB10_139 + LONG $0x04fb8349 // cmp r11, 4 + JB LBB10_123 + WORD $0x894c; BYTE $0xd8 // mov rax, r11 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + WORD $0x3949; BYTE $0xc6 // cmp r14, rax + JAE LBB10_200 + LONG $0x9e048d4b // lea rax, [r14 + 4*r11] + WORD $0x3948; BYTE $0xf0 // cmp rax, rsi + JBE LBB10_200 + +LBB10_123: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + +LBB10_124: + LONG $0x247c894c; BYTE $0x08 // mov qword [rsp + 8], r15 + LONG $0x2454894c; BYTE $0x48 // mov qword [rsp + 72], r10 + QUAD $0x00000140249c894c // mov qword [rsp + 320], r11 + WORD $0x294d; BYTE $0xc3 // sub r11, r8 + QUAD $0x000000a0249c894c // mov qword [rsp + 160], r11 + +LBB10_125: + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + QUAD $0x000001502494960f // setbe byte [rsp + 336] + LONG $0x5b2e0f44; BYTE $0x04 // ucomiss xmm11, dword [rbx + 4] + LONG $0xd0960f41 // setbe r8b + LONG $0x5b2e0f44; BYTE $0x08 // ucomiss xmm11, dword [rbx + 8] + LONG $0xd6960f41 // setbe r14b + LONG $0x5b2e0f44; BYTE $0x0c // ucomiss xmm11, dword [rbx + 12] + LONG $0xd5960f41 // setbe r13b + LONG $0x5b2e0f44; BYTE $0x10 // ucomiss xmm11, dword [rbx + 16] + QUAD $0x000000e02494960f // setbe byte [rsp + 224] + LONG $0x5b2e0f44; BYTE $0x14 // ucomiss xmm11, dword [rbx + 20] + QUAD $0x000000d02494960f // setbe byte [rsp + 208] + LONG $0x5b2e0f44; BYTE $0x18 // ucomiss xmm11, dword [rbx + 24] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x5b2e0f44; BYTE $0x1c // ucomiss xmm11, dword [rbx + 28] + LONG $0xd3960f41 // setbe r11b + LONG $0x5b2e0f44; BYTE $0x20 // ucomiss xmm11, dword [rbx + 32] + QUAD $0x000001002494960f // setbe byte [rsp + 256] + LONG $0x5b2e0f44; BYTE $0x24 // ucomiss xmm11, dword [rbx + 36] + WORD $0x960f; BYTE $0xd2 // setbe dl + LONG $0x5b2e0f44; BYTE $0x28 // ucomiss xmm11, dword [rbx + 40] + LONG $0xd6960f40 // setbe sil + LONG $0x5b2e0f44; BYTE $0x2c // ucomiss xmm11, dword [rbx + 44] + LONG $0xd7960f40 // setbe dil + LONG $0x5b2e0f44; BYTE $0x30 // ucomiss xmm11, dword [rbx + 48] + LONG $0xd2960f41 // setbe r10b + LONG $0x5b2e0f44; BYTE $0x34 // ucomiss xmm11, dword [rbx + 52] + LONG $0xd4960f41 // setbe r12b + LONG $0x5b2e0f44; BYTE $0x38 // ucomiss xmm11, dword [rbx + 56] + QUAD $0x000001102494960f // setbe byte [rsp + 272] + LONG $0x5b2e0f44; BYTE $0x3c // ucomiss xmm11, dword [rbx + 60] + LONG $0xd1960f41 // setbe r9b + LONG $0x5b2e0f44; BYTE $0x40 // ucomiss xmm11, dword [rbx + 64] + QUAD $0x000000b02494960f // setbe byte [rsp + 176] + LONG $0x5b2e0f44; BYTE $0x44 // ucomiss xmm11, dword [rbx + 68] + QUAD $0x000001302494960f // setbe byte [rsp + 304] + LONG $0x5b2e0f44; BYTE $0x48 // ucomiss xmm11, dword [rbx + 72] + QUAD $0x000001202494960f // setbe byte [rsp + 288] + LONG $0x5b2e0f44; BYTE $0x4c // ucomiss xmm11, dword [rbx + 76] + QUAD $0x000000f02494960f // setbe byte [rsp + 240] + LONG $0x5b2e0f44; BYTE $0x50 // ucomiss xmm11, dword [rbx + 80] + QUAD $0x000000c02494960f // setbe byte [rsp + 192] + LONG $0x5b2e0f44; BYTE $0x54 // ucomiss xmm11, dword [rbx + 84] + QUAD $0x000000902494960f // setbe byte [rsp + 144] + LONG $0x5b2e0f44; BYTE $0x58 // ucomiss xmm11, dword [rbx + 88] + QUAD $0x000000802494960f // setbe byte [rsp + 128] + LONG $0x5b2e0f44; BYTE $0x5c // ucomiss xmm11, dword [rbx + 92] + LONG $0xd7960f41 // setbe r15b + LONG $0x5b2e0f44; BYTE $0x60 // ucomiss xmm11, dword [rbx + 96] + LONG $0x2454960f; BYTE $0x30 // setbe byte [rsp + 48] + LONG $0x5b2e0f44; BYTE $0x64 // ucomiss xmm11, dword [rbx + 100] + LONG $0x2454960f; BYTE $0x70 // setbe byte [rsp + 112] + LONG $0x5b2e0f44; BYTE $0x68 // ucomiss xmm11, dword [rbx + 104] + LONG $0x2454960f; BYTE $0x60 // setbe byte [rsp + 96] + LONG $0x5b2e0f44; BYTE $0x6c // ucomiss xmm11, dword [rbx + 108] + LONG $0x2454960f; BYTE $0x50 // setbe byte [rsp + 80] + LONG $0x5b2e0f44; BYTE $0x70 // ucomiss xmm11, dword [rbx + 112] + LONG $0x2454960f; BYTE $0x20 // setbe byte [rsp + 32] + LONG $0x5b2e0f44; BYTE $0x74 // ucomiss xmm11, dword [rbx + 116] + LONG $0x2454960f; BYTE $0x10 // setbe byte [rsp + 16] + LONG $0x5b2e0f44; BYTE $0x78 // ucomiss xmm11, dword [rbx + 120] + QUAD $0x000001602494960f // setbe byte [rsp + 352] + LONG $0x5b2e0f44; BYTE $0x7c // ucomiss xmm11, dword [rbx + 124] + WORD $0x960f; BYTE $0xd1 // setbe cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x0000015024840244 // add r8b, byte [rsp + 336] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0x00249402; WORD $0x0001; BYTE $0x00 // add dl, byte [rsp + 256] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + QUAD $0x000000e02494b60f // movzx edx, byte [rsp + 224] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x000000d02494b60f // movzx edx, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0841; BYTE $0xfa // or r10b, dil + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x0000011024b4b60f // movzx esi, byte [rsp + 272] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e1c041 // shl r9b, 7 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0845; BYTE $0xe1 // or r9b, r12b + QUAD $0x000001302484b60f // movzx eax, byte [rsp + 304] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + QUAD $0x000001202494b60f // movzx edx, byte [rsp + 288] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + QUAD $0x000000f02494b60f // movzx edx, byte [rsp + 240] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000c02494b60f // movzx edx, byte [rsp + 192] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + WORD $0x8844; BYTE $0x1e // mov byte [rsi], r11b + QUAD $0x0000008024bcb60f // movzx edi, byte [rsp + 128] + LONG $0x06e7c040 // shl dil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xff // or r15b, dil + LONG $0x014e8844 // mov byte [rsi + 1], r9b + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xc000 // add al, al + LONG $0x30244402 // add al, byte [rsp + 48] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + QUAD $0x000001602494b60f // movzx edx, byte [rsp + 352] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8844 // mov byte [rsi + 2], r15b + WORD $0x4e88; BYTE $0x03 // mov byte [rsi + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68348 // add rsi, 4 + LONG $0x24748948; BYTE $0x08 // mov qword [rsp + 8], rsi + QUAD $0x000000a024848348; BYTE $0xff // add qword [rsp + 160], -1 + JNE LBB10_125 + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + QUAD $0x00000140249c8b4c // mov r11, qword [rsp + 320] + JMP LBB10_140 + +LBB10_127: + LONG $0x2474894c; BYTE $0x70 // mov qword [rsp + 112], r14 + +LBB10_128: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_151 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB10_154 + +LBB10_131: + QUAD $0x000000d024b4894c // mov qword [rsp + 208], r14 + +LBB10_132: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_156 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB10_159 + +LBB10_135: + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + WORD $0x8949; BYTE $0xf3 // mov r11, rsi + +LBB10_136: + LONG $0x05e7c149 // shl r15, 5 + WORD $0x394d; BYTE $0xd7 // cmp r15, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xf8 // sub r8, r15 + WORD $0xf749; BYTE $0xd7 // not r15 + WORD $0x014d; BYTE $0xd7 // add r15, r10 + JNE LBB10_183 + WORD $0xf631 // xor esi, esi + JMP LBB10_185 + +LBB10_139: + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + WORD $0x8948; BYTE $0xf3 // mov rbx, rsi + +LBB10_140: + LONG $0x05e3c149 // shl r11, 5 + WORD $0x394d; BYTE $0xd3 // cmp r11, r10 + JGE LBB10_182 + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + WORD $0x294d; BYTE $0xd8 // sub r8, r11 + WORD $0xf749; BYTE $0xd3 // not r11 + WORD $0x014d; BYTE $0xd3 // add r11, r10 + JNE LBB10_187 + WORD $0xf631 // xor esi, esi + JMP LBB10_189 + +LBB10_143: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_144: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x16 // movzx r10d, byte [r14 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x16048841 // mov byte [r14 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x161c8841 // mov byte [r14 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_144 + +LBB10_145: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0xc031 // xor eax, eax + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + JMP LBB10_174 + +LBB10_147: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_148: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_148 + +LBB10_149: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB10_179 + +LBB10_151: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + +LBB10_152: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB10_152 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB10_154: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + JMP LBB10_161 + +LBB10_156: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + QUAD $0x000000d024b48b4c // mov r14, qword [rsp + 208] + +LBB10_157: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0e1c3846 // cmp byte [rsi + r9], r11b + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3e148841 // mov byte [r14 + rdi], dl + LONG $0x065c3844; BYTE $0x01 // cmp byte [rsi + rax + 1], r11b + LONG $0x02488d4c // lea r9, [rax + 2] + LONG $0x000000bb; BYTE $0x00 // mov ebx, 0 + WORD $0xd380; BYTE $0xff // adc bl, -1 + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3e048841 // mov byte [r14 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB10_157 + WORD $0x014c; BYTE $0xce // add rsi, r9 + +LBB10_159: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0xc031 // xor eax, eax + WORD $0x3844; BYTE $0x1e // cmp byte [rsi], r11b + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + QUAD $0x000000d024848b4c // mov r8, qword [rsp + 208] + LONG $0x103c8a41 // mov dil, byte [r8 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + +LBB10_161: + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x101c8841 // mov byte [r8 + rdx], bl + JMP LBB10_182 + +LBB10_162: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_163: + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x16 // movzx r10d, byte [r14 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x16048841 // mov byte [r14 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x046e3944 // cmp dword [rsi + 4], r13d + LONG $0x08768d48 // lea rsi, [rsi + 8] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x161c8841 // mov byte [r14 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_163 + +LBB10_164: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0xc031 // xor eax, eax + WORD $0x3944; BYTE $0x2e // cmp dword [rsi], r13d + JMP LBB10_174 + +LBB10_166: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_167: + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0x960f; BYTE $0xd0 // setbe al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x462e0f66; BYTE $0x08 // ucomisd xmm0, qword [rsi + 8] + WORD $0x960f; BYTE $0xd0 // setbe al + LONG $0x10c68348 // add rsi, 16 + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_167 + +LBB10_168: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + LONG $0x062e0f66 // ucomisd xmm0, qword [rsi] + WORD $0x960f; BYTE $0xd0 // setbe al + JMP LBB10_180 + +LBB10_170: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_171: + LONG $0x2e394466 // cmp word [rsi], r13w + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x14b60f45; BYTE $0x16 // movzx r10d, byte [r14 + rdx] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x16048841 // mov byte [r14 + rdx], al + LONG $0x02c38349 // add r11, 2 + LONG $0x6e394466; BYTE $0x02 // cmp word [rsi + 2], r13w + LONG $0x04768d48 // lea rsi, [rsi + 4] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x161c8841 // mov byte [r14 + rdx], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB10_171 + +LBB10_172: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0xc031 // xor eax, eax + LONG $0x2e394466 // cmp word [rsi], r13w + +LBB10_174: + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB10_181 + +LBB10_175: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB10_176: + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3e1c8841 // mov byte [r14 + rdi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x086e394c // cmp qword [rsi + 8], r13 + LONG $0x10768d48 // lea rsi, [rsi + 16] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0xd830 // xor al, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0xc220 // and dl, al + WORD $0xda30 // xor dl, bl + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB10_176 + +LBB10_177: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + WORD $0x394c; BYTE $0x2e // cmp qword [rsi], r13 + +LBB10_179: + WORD $0x9d0f; BYTE $0xd0 // setge al + +LBB10_180: + WORD $0xd8f6 // neg al + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB10_181: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + +LBB10_182: + MOVQ 496(SP), SP + RET + +LBB10_183: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + QUAD $0x0000018824b48b44 // mov r14d, dword [rsp + 392] + +LBB10_184: + LONG $0x33394566 // cmp word [r11], r14w + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3c // movzx r9d, byte [r12 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x3044; BYTE $0xcb // xor bl, r9b + WORD $0xda20 // and dl, bl + WORD $0x3044; BYTE $0xca // xor dl, r9b + LONG $0x3c148841 // mov byte [r12 + rdi], dl + LONG $0x02c68348 // add rsi, 2 + LONG $0x73394566; BYTE $0x02 // cmp word [r11 + 2], r14w + LONG $0x045b8d4d // lea r11, [r11 + 4] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + WORD $0xd330 // xor bl, dl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0xd820 // and al, bl + WORD $0xd030 // xor al, dl + LONG $0x3c048841 // mov byte [r12 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB10_184 + +LBB10_185: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + LONG $0x8824848b; WORD $0x0001; BYTE $0x00 // mov eax, dword [rsp + 392] + LONG $0x03394166 // cmp word [r11], ax + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB10_182 + +LBB10_187: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + WORD $0x894d; BYTE $0xfb // mov r11, r15 + +LBB10_188: + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + WORD $0x960f; BYTE $0xd2 // setbe dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3b // movzx r9d, byte [r11 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3b048841 // mov byte [r11 + rdi], al + LONG $0x02c68348 // add rsi, 2 + LONG $0x5b2e0f44; BYTE $0x04 // ucomiss xmm11, dword [rbx + 4] + LONG $0xd1960f41 // setbe r9b + LONG $0x08c38348 // add rbx, 8 + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xc1 // xor r9b, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xca // and dl, r9b + WORD $0xc230 // xor dl, al + LONG $0x3b148841 // mov byte [r11 + rdi], dl + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB10_188 + +LBB10_189: + LONG $0x01c0f641 // test r8b, 1 + JE LBB10_182 + LONG $0x1b2e0f44 // ucomiss xmm11, dword [rbx] + WORD $0x960f; BYTE $0xd0 // setbe al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + LONG $0x173c8a41 // mov dil, byte [r15 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + JMP LBB10_182 + +LBB10_191: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000017024848948 // mov qword [rsp + 368], rax + QUAD $0x000000a024bc894c // mov qword [rsp + 160], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000140248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 320], xmm1 + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + +LBB10_192: + QUAD $0x000001202484894c // mov qword [rsp + 288], r8 + LONG $0x05e0c149 // shl r8, 5 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + QUAD $0x000000802484894c // mov qword [rsp + 128], r8 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + LONG $0x2444894c; BYTE $0x10 // mov qword [rsp + 16], r8 + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + WORD $0x894d; BYTE $0xc6 // mov r14, r8 + LONG $0x0cb60f42; BYTE $0x06 // movzx ecx, byte [rsi + r8] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x4cb60f42; WORD $0x0106 // movzx ecx, byte [rsi + r8 + 1] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x4cb60f42; WORD $0x0206 // movzx ecx, byte [rsi + r8 + 2] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x4cb60f42; WORD $0x0306 // movzx ecx, byte [rsi + r8 + 3] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x4cb60f42; WORD $0x0406 // movzx ecx, byte [rsi + r8 + 4] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x4cb60f42; WORD $0x0506 // movzx ecx, byte [rsi + r8 + 5] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00009024847f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm0 + LONG $0x4cb60f42; WORD $0x0606 // movzx ecx, byte [rsi + r8 + 6] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x4cb60f42; WORD $0x0706 // movzx ecx, byte [rsi + r8 + 7] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x00011024847f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm0 + LONG $0x4cb60f42; WORD $0x0806 // movzx ecx, byte [rsi + r8 + 8] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x4cb60f42; WORD $0x0906 // movzx ecx, byte [rsi + r8 + 9] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x4cb60f42; WORD $0x0a06 // movzx ecx, byte [rsi + r8 + 10] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x4cb60f42; WORD $0x0b06 // movzx ecx, byte [rsi + r8 + 11] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x4cb60f42; WORD $0x0c06 // movzx ecx, byte [rsi + r8 + 12] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x4cb60f42; WORD $0x1006 // movzx ecx, byte [rsi + r8 + 16] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + QUAD $0x000000d02484894c // mov qword [rsp + 208], r8 + LONG $0x4cb60f42; WORD $0x1806 // movzx ecx, byte [rsi + r8 + 24] + LONG $0xe96e0f66 // movd xmm5, ecx + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + LONG $0x20c98348 // or rcx, 32 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + LONG $0x244c8948; BYTE $0x50 // mov qword [rsp + 80], rcx + LONG $0x40c98349 // or r9, 64 + LONG $0x244c894c; BYTE $0x20 // mov qword [rsp + 32], r9 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0x60c98349 // or r9, 96 + QUAD $0x00000080248c8148; LONG $0x00000080 // or qword [rsp + 128], 128 + LONG $0xa0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 160 + LONG $0xc0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 192 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + LONG $0xe0cb8148; WORD $0x0000; BYTE $0x00 // or rbx, 224 + LONG $0x00cb8149; WORD $0x0001; BYTE $0x00 // or r11, 256 + LONG $0x20ca8149; WORD $0x0001; BYTE $0x00 // or r10, 288 + LONG $0x01400d48; WORD $0x0000 // or rax, 320 + LONG $0x60ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 352 + LONG $0x24548948; BYTE $0x30 // mov qword [rsp + 48], rdx + LONG $0x80ce8149; WORD $0x0001; BYTE $0x00 // or r14, 384 + QUAD $0x000000c024b4894c // mov qword [rsp + 192], r14 + LONG $0xa0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 416 + LONG $0x247c8948; BYTE $0x60 // mov qword [rsp + 96], rdi + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + LONG $0xc0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 448 + LONG $0x247c8948; BYTE $0x10 // mov qword [rsp + 16], rdi + WORD $0x894c; BYTE $0xc7 // mov rdi, r8 + LONG $0xe0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 480 + QUAD $0x012e0c203a0f4666 // pinsrb xmm9, byte [rsi + r13], 1 + QUAD $0x020e0c203a0f4466 // pinsrb xmm9, byte [rsi + rcx], 2 + QUAD $0x030e0c203a0f4666 // pinsrb xmm9, byte [rsi + r9], 3 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + QUAD $0x04060c203a0f4666 // pinsrb xmm9, byte [rsi + r8], 4 + QUAD $0x05260c203a0f4666 // pinsrb xmm9, byte [rsi + r12], 5 + QUAD $0x063e0c203a0f4666 // pinsrb xmm9, byte [rsi + r15], 6 + QUAD $0x071e0c203a0f4466 // pinsrb xmm9, byte [rsi + rbx], 7 + QUAD $0x081e0c203a0f4666 // pinsrb xmm9, byte [rsi + r11], 8 + QUAD $0x09160c203a0f4666 // pinsrb xmm9, byte [rsi + r10], 9 + QUAD $0x0a060c203a0f4466 // pinsrb xmm9, byte [rsi + rax], 10 + QUAD $0x0b160c203a0f4466 // pinsrb xmm9, byte [rsi + rdx], 11 + QUAD $0x0c360c203a0f4666 // pinsrb xmm9, byte [rsi + r14], 12 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x0d2e0c203a0f4666 // pinsrb xmm9, byte [rsi + r13], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e0e0c203a0f4466 // pinsrb xmm9, byte [rsi + rcx], 14 + QUAD $0x000000e024bc8948 // mov qword [rsp + 224], rdi + QUAD $0x0f3e0c203a0f4466 // pinsrb xmm9, byte [rsi + rdi], 15 + QUAD $0x014024bc6f0f4466; WORD $0x0000 // movdqa xmm15, oword [rsp + 320] + LONG $0x6f0f4566; BYTE $0xdf // movdqa xmm11, xmm15 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x01010e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 1], 1 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x02010e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 1], 2 + QUAD $0x010e54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r9 + 1], 3 + QUAD $0x010654203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rsi + r8 + 1], 4 + QUAD $0x012654203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r12 + 1], 5 + QUAD $0x013e54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r15 + 1], 6 + QUAD $0x07011e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 1], 7 + QUAD $0x011e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r11 + 1], 8 + QUAD $0x011654203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r10 + 1], 9 + QUAD $0x0a010654203a0f66 // pinsrb xmm2, byte [rsi + rax + 1], 10 + QUAD $0x0b011654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 1], 11 + QUAD $0x013654203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r14 + 1], 12 + LONG $0x246c8b4c; BYTE $0x60 // mov r13, qword [rsp + 96] + QUAD $0x012e54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r13 + 1], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e010e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 1], 14 + QUAD $0x0f013e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 1], 15 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x01020e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 2], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x022e5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r13 + 2], 2 + QUAD $0x020e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r9 + 2], 3 + QUAD $0x02065c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r8 + 2], 4 + QUAD $0x02265c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r12 + 2], 5 + QUAD $0x023e5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r15 + 2], 6 + QUAD $0x07021e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 2], 7 + QUAD $0x021e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r11 + 2], 8 + QUAD $0x02165c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r10 + 2], 9 + QUAD $0x0a02065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 2], 10 + QUAD $0x0b02165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 2], 11 + QUAD $0x02365c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r14 + 2], 12 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0d020e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 2], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e020e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 2], 14 + QUAD $0x0f023e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 2], 15 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x01030e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 3], 1 + QUAD $0x032e64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r13 + 3], 2 + QUAD $0x030e64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r9 + 3], 3 + QUAD $0x030664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r8 + 3], 4 + QUAD $0x032664203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r12 + 3], 5 + QUAD $0x033e64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r15 + 3], 6 + QUAD $0x07031e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 3], 7 + QUAD $0x031e64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r11 + 3], 8 + QUAD $0x031664203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r10 + 3], 9 + QUAD $0x0a030664203a0f66 // pinsrb xmm4, byte [rsi + rax + 3], 10 + QUAD $0x0b031664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 3], 11 + QUAD $0x033664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r14 + 3], 12 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0d030e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 3], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e030e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 3], 14 + QUAD $0x0f033e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 3], 15 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x01040e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 4], 1 + QUAD $0x042e74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r13 + 4], 2 + QUAD $0x040e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r9 + 4], 3 + QUAD $0x040674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r8 + 4], 4 + QUAD $0x042674203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r12 + 4], 5 + QUAD $0x043e74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r15 + 4], 6 + QUAD $0x07041e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 4], 7 + QUAD $0x041e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r11 + 4], 8 + QUAD $0x041674203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r10 + 4], 9 + QUAD $0x0a040674203a0f66 // pinsrb xmm6, byte [rsi + rax + 4], 10 + QUAD $0x0b041674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 4], 11 + QUAD $0x043674203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r14 + 4], 12 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0d040e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 4], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e040e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 4], 14 + QUAD $0x0f043e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 4], 15 + QUAD $0x000090249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 144] + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + QUAD $0x01050e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 5], 1 + QUAD $0x052e5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r13 + 5], 2 + QUAD $0x050e5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r9 + 5], 3 + QUAD $0x05065c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rsi + r8 + 5], 4 + QUAD $0x05265c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r12 + 5], 5 + QUAD $0x053e5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r15 + 5], 6 + QUAD $0x07051e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 5], 7 + QUAD $0x051e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r11 + 5], 8 + QUAD $0x05165c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r10 + 5], 9 + QUAD $0x0a05065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 5], 10 + QUAD $0x0b05165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 5], 11 + QUAD $0x05365c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r14 + 5], 12 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0d050e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 5], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e050e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 5], 14 + QUAD $0x0f053e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 5], 15 + QUAD $0x000090249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm3 + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x01063e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 6], 1 + WORD $0x894c; BYTE $0xe9 // mov rcx, r13 + QUAD $0x062e7c203a0f4266; BYTE $0x02 // pinsrb xmm7, byte [rsi + r13 + 6], 2 + QUAD $0x060e7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r9 + 6], 3 + QUAD $0x06067c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rsi + r8 + 6], 4 + QUAD $0x06267c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r12 + 6], 5 + QUAD $0x063e7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r15 + 6], 6 + QUAD $0x07061e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 6], 7 + QUAD $0x061e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r11 + 6], 8 + QUAD $0x06167c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r10 + 6], 9 + QUAD $0x0a06067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 6], 10 + QUAD $0x0b06167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 6], 11 + QUAD $0x06367c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r14 + 6], 12 + QUAD $0x083e6c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rdi + 8], 1 + WORD $0x8949; BYTE $0xfd // mov r13, rdi + QUAD $0x080e6c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rcx + 8], 2 + QUAD $0x080e6c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r9 + 8], 3 + QUAD $0x08066c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r8 + 8], 4 + QUAD $0x08266c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r12 + 8], 5 + QUAD $0x083e6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rsi + r15 + 8], 6 + QUAD $0x081e6c203a0f4466; BYTE $0x07 // pinsrb xmm13, byte [rsi + rbx + 8], 7 + QUAD $0x081e6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r11 + 8], 8 + QUAD $0x08166c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r10 + 8], 9 + QUAD $0x08066c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rsi + rax + 8], 10 + QUAD $0x08166c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rsi + rdx + 8], 11 + QUAD $0x08366c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r14 + 8], 12 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x08066c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rsi + r8 + 8], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x080e6c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rcx + 8], 14 + LONG $0x640f4566; BYTE $0xd9 // pcmpgtb xmm11, xmm9 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x083e6c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rsi + rdi + 8], 15 + LONG $0x6f0f4566; BYTE $0xcf // movdqa xmm9, xmm15 + LONG $0x640f4566; BYTE $0xcd // pcmpgtb xmm9, xmm13 + QUAD $0x102e74203a0f4666; BYTE $0x01 // pinsrb xmm14, byte [rsi + r13 + 16], 1 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x100e74203a0f4466; BYTE $0x02 // pinsrb xmm14, byte [rsi + rcx + 16], 2 + QUAD $0x100e74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r9 + 16], 3 + WORD $0x894d; BYTE $0xce // mov r14, r9 + QUAD $0x000000b0248c894c // mov qword [rsp + 176], r9 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + QUAD $0x100e74203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rsi + rcx + 16], 4 + QUAD $0x102674203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rsi + r12 + 16], 5 + QUAD $0x000000f024a4894c // mov qword [rsp + 240], r12 + QUAD $0x103e74203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rsi + r15 + 16], 6 + QUAD $0x101e74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rsi + rbx + 16], 7 + QUAD $0x101e74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r11 + 16], 8 + QUAD $0x101674203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r10 + 16], 9 + QUAD $0x100674203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rsi + rax + 16], 10 + WORD $0x8949; BYTE $0xc1 // mov r9, rax + QUAD $0x101674203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rsi + rdx + 16], 11 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x101674203a0f4466; BYTE $0x0c // pinsrb xmm14, byte [rsi + rdx + 16], 12 + QUAD $0x100674203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rsi + r8 + 16], 13 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x102e74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r13 + 16], 14 + QUAD $0x103e74203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rsi + rdi + 16], 15 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0118066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 24], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0218066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 24], 2 + QUAD $0x18366c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r14 + 24], 3 + QUAD $0x04180e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 24], 4 + QUAD $0x18266c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rsi + r12 + 24], 5 + QUAD $0x183e6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r15 + 24], 6 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x07181e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 24], 7 + QUAD $0x181e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r11 + 24], 8 + QUAD $0x18166c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r10 + 24], 9 + QUAD $0x180e6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r9 + 24], 10 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0b18066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 24], 11 + QUAD $0x0c18166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 24], 12 + QUAD $0x18066c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r8 + 24], 13 + QUAD $0x182e6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r13 + 24], 14 + QUAD $0x0f183e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 24], 15 + LONG $0x640f4166; BYTE $0xde // pcmpgtb xmm3, xmm14 + QUAD $0x000130249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm3 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xdd640f66 // pcmpgtb xmm3, xmm5 + QUAD $0x000100249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm3 + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + LONG $0xea640f66 // pcmpgtb xmm5, xmm2 + QUAD $0x000000d0248c8b48 // mov rcx, qword [rsp + 208] + LONG $0x0e54b60f; BYTE $0x0d // movzx edx, byte [rsi + rcx + 13] + LONG $0xd26e0f66 // movd xmm2, edx + QUAD $0x06067c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r8 + 6], 13 + QUAD $0x000001009d6f0f66 // movdqa xmm3, oword 256[rbp] /* [rip + .LCPI10_16] */ + LONG $0xebdf0f66 // pandn xmm5, xmm3 + LONG $0xfc0f4166; BYTE $0xeb // paddb xmm5, xmm11 + LONG $0x6f0f4566; BYTE $0xef // movdqa xmm13, xmm15 + LONG $0x640f4466; BYTE $0xe8 // pcmpgtb xmm13, xmm0 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xdc640f66 // pcmpgtb xmm3, xmm4 + LONG $0x0e54b60f; BYTE $0x0e // movzx edx, byte [rsi + rcx + 14] + LONG $0xe26e0f66 // movd xmm4, edx + QUAD $0x062e7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r13 + 6], 14 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI10_17] */ + LONG $0xdf0f4466; BYTE $0xe8 // pandn xmm13, xmm0 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xeb0f4166; BYTE $0xdd // por xmm3, xmm13 + LONG $0x6f0f4566; BYTE $0xf7 // movdqa xmm14, xmm15 + LONG $0x640f4466; BYTE $0xf6 // pcmpgtb xmm14, xmm6 + LONG $0x0e54b60f; BYTE $0x0f // movzx edx, byte [rsi + rcx + 15] + LONG $0xf26e0f66 // movd xmm6, edx + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI10_19] */ + LONG $0xdf0f4466; BYTE $0xf0 // pandn xmm14, xmm0 + LONG $0xeb0f4466; BYTE $0xf3 // por xmm14, xmm3 + LONG $0x0e54b60f; BYTE $0x11 // movzx edx, byte [rsi + rcx + 17] + LONG $0xda6e0f66 // movd xmm3, edx + QUAD $0x0f063e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 6], 15 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8f80f66 // psubb xmm5, xmm0 + LONG $0xeb0f4466; BYTE $0xf5 // por xmm14, xmm5 + LONG $0x6f0f4166; BYTE $0xef // movdqa xmm5, xmm15 + QUAD $0x00009024ac640f66; BYTE $0x00 // pcmpgtb xmm5, oword [rsp + 144] + LONG $0x6f0f4566; BYTE $0xef // movdqa xmm13, xmm15 + LONG $0x6f0f4566; BYTE $0xdf // movdqa xmm11, xmm15 + LONG $0x640f4466; BYTE $0xef // pcmpgtb xmm13, xmm7 + LONG $0x0e54b60f; BYTE $0x12 // movzx edx, byte [rsi + rcx + 18] + LONG $0xfa6e0f66 // movd xmm7, edx + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xdf0f4466; BYTE $0xe8 // pandn xmm13, xmm0 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x0e54b60f; BYTE $0x13 // movzx edx, byte [rsi + rcx + 19] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + QUAD $0x00011024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 272] + LONG $0x247c8b48; BYTE $0x50 // mov rdi, qword [rsp + 80] + QUAD $0x01073e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 7], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x02070644203a0f66 // pinsrb xmm0, byte [rsi + rax + 7], 2 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x03070e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 7], 3 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + QUAD $0x04070644203a0f66 // pinsrb xmm0, byte [rsi + rax + 7], 4 + QUAD $0x000000f024bc8b4c // mov r15, qword [rsp + 240] + QUAD $0x073e44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r15 + 7], 5 + QUAD $0x073644203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r14 + 7], 6 + QUAD $0x07071e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 7], 7 + QUAD $0x071e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r11 + 7], 8 + QUAD $0x071644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r10 + 7], 9 + QUAD $0x070e44203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r9 + 7], 10 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0b071644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 7], 11 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0c071644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 7], 12 + QUAD $0x070644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r8 + 7], 13 + QUAD $0x072e44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r13 + 7], 14 + QUAD $0x000000e024a48b4c // mov r12, qword [rsp + 224] + QUAD $0x072644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r12 + 7], 15 + QUAD $0x093e44203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rdi + 9], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x092e44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r13 + 9], 2 + QUAD $0x090e44203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rcx + 9], 3 + QUAD $0x090644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rax + 9], 4 + QUAD $0x093e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r15 + 9], 5 + QUAD $0x093644203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rsi + r14 + 9], 6 + QUAD $0x091e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rbx + 9], 7 + QUAD $0x091e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r11 + 9], 8 + QUAD $0x091644203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r10 + 9], 9 + QUAD $0x090e44203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r9 + 9], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x093e44203a0f4466; BYTE $0x0b // pinsrb xmm8, byte [rsi + rdi + 9], 11 + QUAD $0x091644203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rsi + rdx + 9], 12 + QUAD $0x090644203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r8 + 9], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x093e44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rdi + 9], 14 + QUAD $0x092644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r12 + 9], 15 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x0a2e54203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rsi + r13 + 10], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0a3e54203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rdi + 10], 2 + QUAD $0x0a0e54203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rcx + 10], 3 + QUAD $0x0a0654203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rax + 10], 4 + QUAD $0x0a3e54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rsi + r15 + 10], 5 + QUAD $0x0a3654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r14 + 10], 6 + QUAD $0x0a1e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rbx + 10], 7 + QUAD $0x0a1e54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r11 + 10], 8 + QUAD $0x0a1654203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r10 + 10], 9 + QUAD $0x0a0e54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r9 + 10], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0a3e54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rsi + rdi + 10], 11 + QUAD $0x0a1654203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rsi + rdx + 10], 12 + QUAD $0x0a0654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r8 + 10], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0a3e54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rdi + 10], 14 + QUAD $0x0a2654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r12 + 10], 15 + QUAD $0x0b2e4c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rsi + r13 + 11], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x020b3e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 11], 2 + QUAD $0x030b0e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 11], 3 + QUAD $0x040b064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 11], 4 + QUAD $0x0b3e4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rsi + r15 + 11], 5 + QUAD $0x0b364c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rsi + r14 + 11], 6 + QUAD $0x070b1e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 11], 7 + QUAD $0x0b1e4c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r11 + 11], 8 + QUAD $0x0b164c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r10 + 11], 9 + QUAD $0x0b0e4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r9 + 11], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b0b3e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 11], 11 + QUAD $0x0c0b164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 11], 12 + QUAD $0x0b064c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rsi + r8 + 11], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0b3e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 11], 14 + QUAD $0x0b264c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r12 + 11], 15 + QUAD $0x0c2e64203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rsi + r13 + 12], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x0c3e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rdi + 12], 2 + QUAD $0x0c0e64203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rcx + 12], 3 + QUAD $0x0c0664203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rax + 12], 4 + QUAD $0x0c3e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r15 + 12], 5 + QUAD $0x0c3664203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rsi + r14 + 12], 6 + QUAD $0x0c1e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rbx + 12], 7 + QUAD $0x0c1e64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r11 + 12], 8 + QUAD $0x0c1664203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r10 + 12], 9 + QUAD $0x0c0e64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r9 + 12], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0c3e64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rsi + rdi + 12], 11 + QUAD $0x0c1664203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rsi + rdx + 12], 12 + QUAD $0x0c0664203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rsi + r8 + 12], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0c3e64203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rdi + 12], 14 + QUAD $0x0c2664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r12 + 12], 15 + QUAD $0x0d2e54203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rsi + r13 + 13], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x020d3e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 13], 2 + QUAD $0x030d0e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 13], 3 + QUAD $0x040d0654203a0f66 // pinsrb xmm2, byte [rsi + rax + 13], 4 + QUAD $0x0d3e54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r15 + 13], 5 + QUAD $0x0d3654203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r14 + 13], 6 + QUAD $0x070d1e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 13], 7 + QUAD $0x0d1e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r11 + 13], 8 + QUAD $0x0d1654203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r10 + 13], 9 + QUAD $0x0d0e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r9 + 13], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b0d3e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 13], 11 + QUAD $0x0c0d1654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 13], 12 + QUAD $0x0d0654203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rsi + r8 + 13], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0d3e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 13], 14 + QUAD $0x0d2654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r12 + 13], 15 + QUAD $0x0e2e64203a0f4266; BYTE $0x01 // pinsrb xmm4, byte [rsi + r13 + 14], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x020e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 2 + QUAD $0x030e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 14], 3 + QUAD $0x040e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 14], 4 + QUAD $0x0e3e64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r15 + 14], 5 + QUAD $0x0e3664203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r14 + 14], 6 + QUAD $0x070e1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 14], 7 + QUAD $0x0e1e64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r11 + 14], 8 + QUAD $0x0e1664203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r10 + 14], 9 + QUAD $0x0e0e64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r9 + 14], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b0e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 11 + QUAD $0x0c0e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 14], 12 + QUAD $0x0e0664203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r8 + 14], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 14], 14 + QUAD $0x0e2664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r12 + 14], 15 + QUAD $0x0f2e74203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rsi + r13 + 15], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x020f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 2 + QUAD $0x030f0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 15], 3 + QUAD $0x040f0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 15], 4 + QUAD $0x0f3e74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rsi + r15 + 15], 5 + QUAD $0x0f3674203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r14 + 15], 6 + QUAD $0x070f1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 15], 7 + QUAD $0x0f1e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r11 + 15], 8 + QUAD $0x0f1674203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r10 + 15], 9 + QUAD $0x0f0e74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r9 + 15], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b0f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 11 + QUAD $0x0c0f1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 15], 12 + QUAD $0x0f0674203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r8 + 15], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e0f3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 15], 14 + QUAD $0x0f2674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r12 + 15], 15 + QUAD $0x112e5c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r13 + 17], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x02113e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 17], 2 + QUAD $0x03110e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 17], 3 + QUAD $0x0411065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 17], 4 + QUAD $0x113e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r15 + 17], 5 + QUAD $0x11365c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r14 + 17], 6 + QUAD $0x07111e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 17], 7 + QUAD $0x111e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r11 + 17], 8 + QUAD $0x11165c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r10 + 17], 9 + QUAD $0x110e5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r9 + 17], 10 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b113e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 17], 11 + QUAD $0x0c11165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 17], 12 + QUAD $0x11065c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r8 + 17], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e113e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 17], 14 + QUAD $0x11265c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r12 + 17], 15 + QUAD $0x122e7c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rsi + r13 + 18], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x02123e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 18], 2 + QUAD $0x03120e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 18], 3 + QUAD $0x0412067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 18], 4 + QUAD $0x123e7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rsi + r15 + 18], 5 + QUAD $0x12367c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rsi + r14 + 18], 6 + QUAD $0x07121e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 18], 7 + QUAD $0x121e7c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rsi + r11 + 18], 8 + QUAD $0x12167c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rsi + r10 + 18], 9 + QUAD $0x120e7c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r9 + 18], 10 + QUAD $0x00000150248c894c // mov qword [rsp + 336], r9 + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x0b123e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 18], 11 + QUAD $0x0c12167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 18], 12 + WORD $0x8949; BYTE $0xd7 // mov r15, rdx + QUAD $0x12067c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r8 + 18], 13 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x12067c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r8 + 18], 14 + QUAD $0x12267c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r12 + 18], 15 + QUAD $0x132e7c203a0f4666; BYTE $0x01 // pinsrb xmm15, byte [rsi + r13 + 19], 1 + LONG $0x246c8b4c; BYTE $0x20 // mov r13, qword [rsp + 32] + QUAD $0x132e7c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r13 + 19], 2 + QUAD $0x130e7c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rcx + 19], 3 + QUAD $0x13067c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rsi + rax + 19], 4 + QUAD $0x000000f0248c8b48 // mov rcx, qword [rsp + 240] + QUAD $0x130e7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rcx + 19], 5 + QUAD $0x13367c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rsi + r14 + 19], 6 + QUAD $0x131e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rbx + 19], 7 + QUAD $0x131e7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r11 + 19], 8 + QUAD $0x13167c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r10 + 19], 9 + QUAD $0x130e7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r9 + 19], 10 + QUAD $0x133e7c203a0f4466; BYTE $0x0b // pinsrb xmm15, byte [rsi + rdi + 19], 11 + LONG $0x6f0f4166; BYTE $0xeb // movdqa xmm5, xmm11 + LONG $0xe8640f66 // pcmpgtb xmm5, xmm0 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d024848b48 // mov rax, qword [rsp + 208] + LONG $0x0654b60f; BYTE $0x14 // movzx edx, byte [rsi + rax + 20] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0xeb0f4166; BYTE $0xee // por xmm5, xmm14 + QUAD $0x00009024ac7f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm5 + LONG $0x6f0f4566; BYTE $0xeb // movdqa xmm13, xmm11 + LONG $0x640f4566; BYTE $0xe8 // pcmpgtb xmm13, xmm8 + LONG $0x0654b60f; BYTE $0x15 // movzx edx, byte [rsi + rax + 21] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + QUAD $0x133e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 19], 12 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI10_16] */ + LONG $0xfc0f4566; BYTE $0xe9 // paddb xmm13, xmm9 + LONG $0x6f0f4166; BYTE $0xeb // movdqa xmm5, xmm11 + LONG $0x640f4166; BYTE $0xea // pcmpgtb xmm5, xmm10 + LONG $0x6f0f4566; BYTE $0xcb // movdqa xmm9, xmm11 + LONG $0x640f4466; BYTE $0xc9 // pcmpgtb xmm9, xmm1 + LONG $0x0654b60f; BYTE $0x16 // movzx edx, byte [rsi + rax + 22] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x13167c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rdx + 19], 13 + QUAD $0x00000110addf0f66 // pandn xmm5, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x0001208ddf0f4466; BYTE $0x00 // pandn xmm9, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xeb0f4466; BYTE $0xcd // por xmm9, xmm5 + LONG $0x6f0f4166; BYTE $0xcb // movdqa xmm1, xmm11 + LONG $0x640f4166; BYTE $0xcc // pcmpgtb xmm1, xmm12 + LONG $0x0654b60f; BYTE $0x17 // movzx edx, byte [rsi + rax + 23] + LONG $0xea6e0f66 // movd xmm5, edx + QUAD $0x000001308ddf0f66 // pandn xmm1, oword 304[rbp] /* [rip + .LCPI10_19] */ + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + LONG $0x0654b60f; BYTE $0x19 // movzx edx, byte [rsi + rax + 25] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + QUAD $0x13067c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r8 + 19], 14 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI10_22] */ + LONG $0xeb0f4166; BYTE $0xcd // por xmm1, xmm13 + LONG $0x6f0f4566; BYTE $0xf3 // movdqa xmm14, xmm11 + LONG $0x640f4466; BYTE $0xf2 // pcmpgtb xmm14, xmm2 + LONG $0x6f0f4566; BYTE $0xeb // movdqa xmm13, xmm11 + LONG $0x640f4466; BYTE $0xec // pcmpgtb xmm13, xmm4 + LONG $0x0654b60f; BYTE $0x1a // movzx edx, byte [rsi + rax + 26] + LONG $0x6e0f4466; BYTE $0xe2 // movd xmm12, edx + QUAD $0x13267c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r12 + 19], 15 + QUAD $0x000140b5df0f4466; BYTE $0x00 // pandn xmm14, oword 320[rbp] /* [rip + .LCPI10_20] */ + QUAD $0x000150addf0f4466; BYTE $0x00 // pandn xmm13, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xeb0f4566; BYTE $0xee // por xmm13, xmm14 + LONG $0x6f0f4166; BYTE $0xe3 // movdqa xmm4, xmm11 + LONG $0x6f0f4566; BYTE $0xf3 // movdqa xmm14, xmm11 + LONG $0x640f4466; BYTE $0xf6 // pcmpgtb xmm14, xmm6 + LONG $0x0654b60f; BYTE $0x1b // movzx edx, byte [rsi + rax + 27] + LONG $0xd26e0f66 // movd xmm2, edx + LONG $0xdf0f4466; WORD $0x6075 // pandn xmm14, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xeb0f4566; BYTE $0xf5 // por xmm14, xmm13 + LONG $0x0654b60f; BYTE $0x1c // movzx edx, byte [rsi + rax + 28] + LONG $0xf26e0f66 // movd xmm6, edx + LONG $0xeb0f4466; BYTE $0xf1 // por xmm14, xmm1 + LONG $0x640f4466; BYTE $0xdb // pcmpgtb xmm11, xmm3 + LONG $0x0654b60f; BYTE $0x1d // movzx edx, byte [rsi + rax + 29] + LONG $0xda6e0f66 // movd xmm3, edx + QUAD $0x0001009ddf0f4466; BYTE $0x00 // pandn xmm11, oword 256[rbp] /* [rip + .LCPI10_16] */ + QUAD $0x0130249cfc0f4466; WORD $0x0000 // paddb xmm11, oword [rsp + 304] + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xcf640f66 // pcmpgtb xmm1, xmm7 + LONG $0x6f0f4466; BYTE $0xec // movdqa xmm13, xmm4 + LONG $0xfc6f0f66 // movdqa xmm7, xmm4 + LONG $0x640f4566; BYTE $0xef // pcmpgtb xmm13, xmm15 + LONG $0x0654b60f; BYTE $0x1e // movzx edx, byte [rsi + rax + 30] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x0654b60f; BYTE $0x1f // movzx edx, byte [rsi + rax + 31] + QUAD $0x000001108ddf0f66 // pandn xmm1, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xeb0f4466; BYTE $0xe9 // por xmm13, xmm1 + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x01140644203a0f66 // pinsrb xmm0, byte [rsi + rax + 20], 1 + QUAD $0x150644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rax + 21], 1 + QUAD $0x160654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rax + 22], 1 + QUAD $0x0117066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 23], 1 + QUAD $0x19064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 25], 1 + QUAD $0x1a0664203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rax + 26], 1 + QUAD $0x011b0654203a0f66 // pinsrb xmm2, byte [rsi + rax + 27], 1 + QUAD $0x011c0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 28], 1 + QUAD $0x011d065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 29], 1 + QUAD $0x011e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 1 + QUAD $0x1f067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 31], 1 + QUAD $0x142e44203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rsi + r13 + 20], 2 + QUAD $0x152e44203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r13 + 21], 2 + QUAD $0x162e54203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r13 + 22], 2 + QUAD $0x172e6c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rsi + r13 + 23], 2 + QUAD $0x192e4c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rsi + r13 + 25], 2 + QUAD $0x1a2e64203a0f4666; BYTE $0x02 // pinsrb xmm12, byte [rsi + r13 + 26], 2 + QUAD $0x1b2e54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r13 + 27], 2 + QUAD $0x1c2e74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r13 + 28], 2 + QUAD $0x1d2e5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r13 + 29], 2 + QUAD $0x1e2e64203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r13 + 30], 2 + QUAD $0x1f2e7c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r13 + 31], 2 + QUAD $0x000000b024948b48 // mov rdx, qword [rsp + 176] + QUAD $0x03141644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 20], 3 + QUAD $0x151644203a0f4466; BYTE $0x03 // pinsrb xmm8, byte [rsi + rdx + 21], 3 + QUAD $0x161654203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rsi + rdx + 22], 3 + QUAD $0x0317166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 23], 3 + QUAD $0x19164c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rsi + rdx + 25], 3 + QUAD $0x1a1664203a0f4466; BYTE $0x03 // pinsrb xmm12, byte [rsi + rdx + 26], 3 + QUAD $0x031b1654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 27], 3 + QUAD $0x031c1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 28], 3 + QUAD $0x031d165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 29], 3 + QUAD $0x031e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 30], 3 + QUAD $0x1f167c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rsi + rdx + 31], 3 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + QUAD $0x04141644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 20], 4 + QUAD $0x151644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 21], 4 + QUAD $0x161654203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rdx + 22], 4 + QUAD $0x0417166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 23], 4 + QUAD $0x19164c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rdx + 25], 4 + QUAD $0x1a1664203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rsi + rdx + 26], 4 + QUAD $0x041b1654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 27], 4 + QUAD $0x041c1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 28], 4 + QUAD $0x041d165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 29], 4 + QUAD $0x041e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 30], 4 + QUAD $0x1f167c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rsi + rdx + 31], 4 + QUAD $0x05140e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 20], 5 + QUAD $0x150e44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rcx + 21], 5 + QUAD $0x160e54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rcx + 22], 5 + QUAD $0x05170e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 23], 5 + QUAD $0x190e4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rsi + rcx + 25], 5 + QUAD $0x1a0e64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rsi + rcx + 26], 5 + QUAD $0x051b0e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 27], 5 + QUAD $0x051c0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 28], 5 + QUAD $0x051d0e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 29], 5 + QUAD $0x051e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 30], 5 + QUAD $0x1f0e7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rcx + 31], 5 + QUAD $0x143644203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r14 + 20], 6 + QUAD $0x153644203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rsi + r14 + 21], 6 + QUAD $0x163654203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rsi + r14 + 22], 6 + QUAD $0x17366c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rsi + r14 + 23], 6 + QUAD $0x19364c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rsi + r14 + 25], 6 + QUAD $0x1a3664203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rsi + r14 + 26], 6 + QUAD $0x1b3654203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rsi + r14 + 27], 6 + QUAD $0x1c3674203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rsi + r14 + 28], 6 + QUAD $0x1d365c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r14 + 29], 6 + QUAD $0x1e3664203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r14 + 30], 6 + QUAD $0x1f367c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rsi + r14 + 31], 6 + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + QUAD $0x07141e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 20], 7 + QUAD $0x151e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rbx + 21], 7 + QUAD $0x161e54203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rsi + rbx + 22], 7 + QUAD $0x07171e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 23], 7 + QUAD $0x191e4c203a0f4466; BYTE $0x07 // pinsrb xmm9, byte [rsi + rbx + 25], 7 + QUAD $0x1a1e64203a0f4466; BYTE $0x07 // pinsrb xmm12, byte [rsi + rbx + 26], 7 + QUAD $0x071b1e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 27], 7 + QUAD $0x071c1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 28], 7 + QUAD $0x071d1e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 29], 7 + QUAD $0x071e1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 30], 7 + QUAD $0x1f1e7c203a0f4466; BYTE $0x07 // pinsrb xmm15, byte [rsi + rbx + 31], 7 + QUAD $0x141e44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rsi + r11 + 20], 8 + QUAD $0x151e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r11 + 21], 8 + QUAD $0x161e54203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r11 + 22], 8 + QUAD $0x171e6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r11 + 23], 8 + QUAD $0x191e4c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rsi + r11 + 25], 8 + QUAD $0x1a1e64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r11 + 26], 8 + QUAD $0x1b1e54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r11 + 27], 8 + QUAD $0x1c1e74203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r11 + 28], 8 + QUAD $0x1d1e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r11 + 29], 8 + QUAD $0x1e1e64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r11 + 30], 8 + QUAD $0x1f1e7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r11 + 31], 8 + QUAD $0x141644203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rsi + r10 + 20], 9 + QUAD $0x151644203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r10 + 21], 9 + QUAD $0x161654203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r10 + 22], 9 + QUAD $0x17166c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r10 + 23], 9 + QUAD $0x19164c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rsi + r10 + 25], 9 + QUAD $0x1a1664203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r10 + 26], 9 + QUAD $0x1b1654203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r10 + 27], 9 + QUAD $0x1c1674203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r10 + 28], 9 + QUAD $0x1d165c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r10 + 29], 9 + QUAD $0x1e1664203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r10 + 30], 9 + QUAD $0x1f167c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r10 + 31], 9 + QUAD $0x0000015024948b4c // mov r10, qword [rsp + 336] + QUAD $0x141644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r10 + 20], 10 + QUAD $0x151644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r10 + 21], 10 + QUAD $0x161654203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r10 + 22], 10 + QUAD $0x17166c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r10 + 23], 10 + QUAD $0x19164c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r10 + 25], 10 + QUAD $0x1a1664203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r10 + 26], 10 + QUAD $0x1b1654203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r10 + 27], 10 + QUAD $0x1c1674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r10 + 28], 10 + QUAD $0x1d165c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r10 + 29], 10 + QUAD $0x1e1664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r10 + 30], 10 + QUAD $0x1f167c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r10 + 31], 10 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x141644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r10 + 20], 11 + QUAD $0x151644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r10 + 21], 11 + QUAD $0x161654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r10 + 22], 11 + QUAD $0x17166c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r10 + 23], 11 + QUAD $0x19164c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r10 + 25], 11 + QUAD $0x1a1664203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rsi + r10 + 26], 11 + QUAD $0x1b1654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r10 + 27], 11 + QUAD $0x1c1674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r10 + 28], 11 + QUAD $0x1d165c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r10 + 29], 11 + QUAD $0x1e1664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r10 + 30], 11 + QUAD $0x1f167c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r10 + 31], 11 + QUAD $0x143e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 20], 12 + QUAD $0x153e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 21], 12 + QUAD $0x163e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 22], 12 + QUAD $0x173e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 23], 12 + QUAD $0x193e4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r15 + 25], 12 + QUAD $0x1a3e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 26], 12 + QUAD $0x1b3e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 27], 12 + QUAD $0x1c3e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r15 + 28], 12 + QUAD $0x1d3e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 29], 12 + QUAD $0x1e3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 30], 12 + QUAD $0x1f3e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 31], 12 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0d140644203a0f66 // pinsrb xmm0, byte [rsi + rax + 20], 13 + QUAD $0x150644203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rax + 21], 13 + QUAD $0x160654203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rax + 22], 13 + QUAD $0x0d17066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 23], 13 + QUAD $0x19064c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rsi + rax + 25], 13 + QUAD $0x1a0664203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rax + 26], 13 + QUAD $0x0d1b0654203a0f66 // pinsrb xmm2, byte [rsi + rax + 27], 13 + QUAD $0x0d1c0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 28], 13 + QUAD $0x0d1d065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 29], 13 + QUAD $0x0d1e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 13 + QUAD $0x1f067c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rax + 31], 13 + QUAD $0x140644203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r8 + 20], 14 + QUAD $0x150644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r8 + 21], 14 + QUAD $0x160654203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r8 + 22], 14 + QUAD $0x17066c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r8 + 23], 14 + QUAD $0x19064c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r8 + 25], 14 + QUAD $0x1a0664203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rsi + r8 + 26], 14 + QUAD $0x1b0654203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r8 + 27], 14 + QUAD $0x1c0674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r8 + 28], 14 + QUAD $0x1d065c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r8 + 29], 14 + QUAD $0x1e0664203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r8 + 30], 14 + QUAD $0x1f067c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r8 + 31], 14 + QUAD $0x142644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r12 + 20], 15 + QUAD $0x152644203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r12 + 21], 15 + QUAD $0x162654203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r12 + 22], 15 + QUAD $0x17266c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r12 + 23], 15 + QUAD $0x19264c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r12 + 25], 15 + QUAD $0x1a2664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r12 + 26], 15 + LONG $0xcf6f0f66 // movdqa xmm1, xmm7 + LONG $0xc8640f66 // pcmpgtb xmm1, xmm0 + QUAD $0x1b2654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r12 + 27], 15 + QUAD $0x000001308ddf0f66 // pandn xmm1, oword 304[rbp] /* [rip + .LCPI10_19] */ + LONG $0xeb0f4166; BYTE $0xcd // por xmm1, xmm13 + LONG $0x760f4566; BYTE $0xed // pcmpeqd xmm13, xmm13 + LONG $0xf80f4566; BYTE $0xdd // psubb xmm11, xmm13 + LONG $0xeb0f4166; BYTE $0xcb // por xmm1, xmm11 + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x640f4166; BYTE $0xc0 // pcmpgtb xmm0, xmm8 + LONG $0x6f0f4466; BYTE $0xc7 // movdqa xmm8, xmm7 + LONG $0x640f4166; BYTE $0xfa // pcmpgtb xmm7, xmm10 + QUAD $0x000140956f0f4466; BYTE $0x00 // movdqa xmm10, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xdf0f4166; BYTE $0xc2 // pandn xmm0, xmm10 + QUAD $0x0001509d6f0f4466; BYTE $0x00 // movdqa xmm11, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xdf0f4166; BYTE $0xfb // pandn xmm7, xmm11 + LONG $0xf8eb0f66 // por xmm7, xmm0 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc5640f66 // pcmpgtb xmm0, xmm5 + QUAD $0x1c2674203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r12 + 28], 15 + LONG $0x6d6f0f66; BYTE $0x60 // movdqa xmm5, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xc5df0f66 // pandn xmm0, xmm5 + LONG $0xc7eb0f66 // por xmm0, xmm7 + QUAD $0x1d265c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r12 + 29], 15 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0x640f4166; BYTE $0xc9 // pcmpgtb xmm1, xmm9 + QUAD $0x000001008ddf0f66 // pandn xmm1, oword 256[rbp] /* [rip + .LCPI10_16] */ + QUAD $0x000100248cfc0f66; BYTE $0x00 // paddb xmm1, oword [rsp + 256] + LONG $0x6f0f4166; BYTE $0xe8 // movdqa xmm5, xmm8 + LONG $0x640f4166; BYTE $0xec // pcmpgtb xmm5, xmm12 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0xfa640f66 // pcmpgtb xmm7, xmm2 + QUAD $0x00000110addf0f66 // pandn xmm5, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x00000120bddf0f66 // pandn xmm7, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0xd6640f66 // pcmpgtb xmm2, xmm6 + QUAD $0x1e2664203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r12 + 30], 15 + QUAD $0x0000013095df0f66 // pandn xmm2, oword 304[rbp] /* [rip + .LCPI10_19] */ + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0xf80f4166; BYTE $0xcd // psubb xmm1, xmm13 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xcb640f66 // pcmpgtb xmm1, xmm3 + LONG $0x6f0f4166; BYTE $0xd8 // movdqa xmm3, xmm8 + LONG $0xdc640f66 // pcmpgtb xmm3, xmm4 + QUAD $0x1f267c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r12 + 31], 15 + LONG $0xdf0f4166; BYTE $0xca // pandn xmm1, xmm10 + LONG $0xdf0f4166; BYTE $0xdb // pandn xmm3, xmm11 + LONG $0xd9eb0f66 // por xmm3, xmm1 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0x640f4166; BYTE $0xcf // pcmpgtb xmm1, xmm15 + LONG $0x4ddf0f66; BYTE $0x60 // pandn xmm1, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xcbeb0f66 // por xmm1, xmm3 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd1600f66 // punpcklbw xmm2, xmm1 + QUAD $0x00009024ac6f0f66; BYTE $0x00 // movdqa xmm5, oword [rsp + 144] + LONG $0xdd6f0f66 // movdqa xmm3, xmm5 + LONG $0x600f4166; BYTE $0xde // punpcklbw xmm3, xmm14 + LONG $0xe36f0f66 // movdqa xmm4, xmm3 + LONG $0xe2610f66 // punpcklwd xmm4, xmm2 + LONG $0xda690f66 // punpckhwd xmm3, xmm2 + LONG $0xc1680f66 // punpckhbw xmm0, xmm1 + LONG $0x680f4166; BYTE $0xee // punpckhbw xmm5, xmm14 + LONG $0xcd6f0f66 // movdqa xmm1, xmm5 + LONG $0xc8610f66 // punpcklwd xmm1, xmm0 + LONG $0xe8690f66 // punpckhwd xmm5, xmm0 + QUAD $0x00000120248c8b48 // mov rcx, qword [rsp + 288] + LONG $0x7f0f41f3; WORD $0x8e6c; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm5 + LONG $0x7f0f41f3; WORD $0x8e4c; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm1 + LONG $0x7f0f41f3; WORD $0x8e5c; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm3 + LONG $0x7f0f41f3; WORD $0x8e24 // movdqu oword [r14 + 4*rcx], xmm4 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8949; BYTE $0xc8 // mov r8, rcx + QUAD $0x000000a0248c3b48 // cmp rcx, qword [rsp + 160] + JNE LBB10_192 + QUAD $0x000001b024bc8b4c // mov r15, qword [rsp + 432] + QUAD $0x000000a024bc3b4c // cmp r15, qword [rsp + 160] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x0000017024b48b48 // mov rsi, qword [rsp + 368] + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + JNE LBB10_42 + JMP LBB10_128 + +LBB10_194: + LONG $0xf0e78349 // and r15, -16 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xf0 // add rax, rsi + QUAD $0x0000018824848948 // mov qword [rsp + 392], rax + QUAD $0x000001a024bc894c // mov qword [rsp + 416], r15 + LONG $0xbe048d4b // lea rax, [r14 + 4*r15] + QUAD $0x000000d024848948 // mov qword [rsp + 208], rax + LONG $0xc3b60f41 // movzx eax, r11b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000190248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 400], xmm1 + WORD $0xd231 // xor edx, edx + QUAD $0x0000016024b4894c // mov qword [rsp + 352], r14 + +LBB10_195: + QUAD $0x0000015024948948 // mov qword [rsp + 336], rdx + LONG $0x05e2c148 // shl rdx, 5 + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + WORD $0x8949; BYTE $0xd3 // mov r11, rdx + WORD $0x8949; BYTE $0xd4 // mov r12, rdx + QUAD $0x0000009024948948 // mov qword [rsp + 144], rdx + WORD $0x8949; BYTE $0xd0 // mov r8, rdx + WORD $0x8949; BYTE $0xd5 // mov r13, rdx + WORD $0x8949; BYTE $0xd1 // mov r9, rdx + WORD $0x8949; BYTE $0xd2 // mov r10, rdx + WORD $0x8949; BYTE $0xd6 // mov r14, rdx + WORD $0x8948; BYTE $0xd7 // mov rdi, rdx + WORD $0x8949; BYTE $0xd7 // mov r15, rdx + LONG $0x160cb60f // movzx ecx, byte [rsi + rdx] + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0x164cb60f; BYTE $0x01 // movzx ecx, byte [rsi + rdx + 1] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x164cb60f; BYTE $0x02 // movzx ecx, byte [rsi + rdx + 2] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x164cb60f; BYTE $0x03 // movzx ecx, byte [rsi + rdx + 3] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x164cb60f; BYTE $0x04 // movzx ecx, byte [rsi + rdx + 4] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x164cb60f; BYTE $0x05 // movzx ecx, byte [rsi + rdx + 5] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x164cb60f; BYTE $0x06 // movzx ecx, byte [rsi + rdx + 6] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x164cb60f; BYTE $0x07 // movzx ecx, byte [rsi + rdx + 7] + LONG $0xd16e0f66 // movd xmm2, ecx + QUAD $0x00017024947f0f66; BYTE $0x00 // movdqa oword [rsp + 368], xmm2 + LONG $0x164cb60f; BYTE $0x08 // movzx ecx, byte [rsi + rdx + 8] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x164cb60f; BYTE $0x09 // movzx ecx, byte [rsi + rdx + 9] + LONG $0xd16e0f66 // movd xmm2, ecx + QUAD $0x0000a024947f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm2 + LONG $0x164cb60f; BYTE $0x0a // movzx ecx, byte [rsi + rdx + 10] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x164cb60f; BYTE $0x0b // movzx ecx, byte [rsi + rdx + 11] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x164cb60f; BYTE $0x0c // movzx ecx, byte [rsi + rdx + 12] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x164cb60f; BYTE $0x10 // movzx ecx, byte [rsi + rdx + 16] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x164cb60f; BYTE $0x18 // movzx ecx, byte [rsi + rdx + 24] + LONG $0xd16e0f66 // movd xmm2, ecx + QUAD $0x0000008024948948 // mov qword [rsp + 128], rdx + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + LONG $0x20c88348 // or rax, 32 + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + LONG $0x40cb8348 // or rbx, 64 + LONG $0x60cb8349 // or r11, 96 + QUAD $0x00000120249c894c // mov qword [rsp + 288], r11 + LONG $0x80cc8149; WORD $0x0000; BYTE $0x00 // or r12, 128 + LONG $0x2464894c; BYTE $0x60 // mov qword [rsp + 96], r12 + QUAD $0x00000090248c8148; LONG $0x000000a0 // or qword [rsp + 144], 160 + LONG $0xc0c88149; WORD $0x0000; BYTE $0x00 // or r8, 192 + LONG $0xe0cd8149; WORD $0x0000; BYTE $0x00 // or r13, 224 + QUAD $0x0000013024ac894c // mov qword [rsp + 304], r13 + LONG $0x00c98149; WORD $0x0001; BYTE $0x00 // or r9, 256 + LONG $0x20ca8149; WORD $0x0001; BYTE $0x00 // or r10, 288 + QUAD $0x000001102494894c // mov qword [rsp + 272], r10 + LONG $0x40ce8149; WORD $0x0001; BYTE $0x00 // or r14, 320 + LONG $0x60cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 352 + LONG $0x247c8948; BYTE $0x50 // mov qword [rsp + 80], rdi + LONG $0x80cf8149; WORD $0x0001; BYTE $0x00 // or r15, 384 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + LONG $0x01a00d48; WORD $0x0000 // or rax, 416 + WORD $0x8948; BYTE $0xd1 // mov rcx, rdx + LONG $0x24548948; BYTE $0x10 // mov qword [rsp + 16], rdx + QUAD $0x0001c010244c8148; BYTE $0x00 // or qword [rsp + 16], 448 + LONG $0xe0ca8148; WORD $0x0001; BYTE $0x00 // or rdx, 480 + LONG $0x24548948; BYTE $0x30 // mov qword [rsp + 48], rdx + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0x203a0f66; WORD $0x0e04; BYTE $0x01 // pinsrb xmm0, byte [rsi + rcx], 1 + LONG $0x203a0f66; WORD $0x1e04; BYTE $0x02 // pinsrb xmm0, byte [rsi + rbx], 2 + QUAD $0x031e04203a0f4266 // pinsrb xmm0, byte [rsi + r11], 3 + QUAD $0x042604203a0f4266 // pinsrb xmm0, byte [rsi + r12], 4 + QUAD $0x00000090249c8b4c // mov r11, qword [rsp + 144] + QUAD $0x051e04203a0f4266 // pinsrb xmm0, byte [rsi + r11], 5 + WORD $0x894c; BYTE $0xc2 // mov rdx, r8 + QUAD $0x060604203a0f4266 // pinsrb xmm0, byte [rsi + r8], 6 + QUAD $0x072e04203a0f4266 // pinsrb xmm0, byte [rsi + r13], 7 + QUAD $0x080e04203a0f4266 // pinsrb xmm0, byte [rsi + r9], 8 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + QUAD $0x000000e0248c894c // mov qword [rsp + 224], r9 + QUAD $0x091604203a0f4266 // pinsrb xmm0, byte [rsi + r10], 9 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x0a3604203a0f4266 // pinsrb xmm0, byte [rsi + r14], 10 + LONG $0x203a0f66; WORD $0x3e04; BYTE $0x0b // pinsrb xmm0, byte [rsi + rdi], 11 + QUAD $0x0c3e04203a0f4266 // pinsrb xmm0, byte [rsi + r15], 12 + LONG $0x203a0f66; WORD $0x0604; BYTE $0x0d // pinsrb xmm0, byte [rsi + rax], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + LONG $0x203a0f66; WORD $0x0e04; BYTE $0x0e // pinsrb xmm0, byte [rsi + rcx], 14 + LONG $0x244c8b48; BYTE $0x30 // mov rcx, qword [rsp + 48] + LONG $0x203a0f66; WORD $0x0e04; BYTE $0x0f // pinsrb xmm0, byte [rsi + rcx], 15 + LONG $0x6f0f4466; BYTE $0xc8 // movdqa xmm9, xmm0 + QUAD $0x00019024bc6f0f66; BYTE $0x00 // movdqa xmm7, oword [rsp + 400] + LONG $0xde0f4466; BYTE $0xcf // pmaxub xmm9, xmm7 + LONG $0x6f0f4466; BYTE $0xff // movdqa xmm15, xmm7 + LONG $0x740f4466; BYTE $0xc8 // pcmpeqb xmm9, xmm0 + LONG $0x6f0f4166; BYTE $0xc1 // movdqa xmm0, xmm9 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x010e5c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rcx + 1], 1 + QUAD $0x011e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rbx + 1], 2 + QUAD $0x0000012024b48b4c // mov r14, qword [rsp + 288] + QUAD $0x01365c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r14 + 1], 3 + QUAD $0x01265c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r12 + 1], 4 + QUAD $0x011e5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rsi + r11 + 1], 5 + QUAD $0x01165c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rdx + 1], 6 + QUAD $0x012e5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r13 + 1], 7 + QUAD $0x01065c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r8 + 1], 8 + QUAD $0x01165c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rsi + r10 + 1], 9 + QUAD $0x010e5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r9 + 1], 10 + QUAD $0x013e5c203a0f4466; BYTE $0x0b // pinsrb xmm11, byte [rsi + rdi + 1], 11 + QUAD $0x013e5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rsi + r15 + 1], 12 + QUAD $0x01065c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rsi + rax + 1], 13 + LONG $0x24448b4c; BYTE $0x10 // mov r8, qword [rsp + 16] + QUAD $0x01065c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rsi + r8 + 1], 14 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x01065c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r8 + 1], 15 + QUAD $0x080e6c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rsi + rcx + 8], 1 + QUAD $0x081e6c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rsi + rbx + 8], 2 + QUAD $0x08366c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rsi + r14 + 8], 3 + QUAD $0x08266c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rsi + r12 + 8], 4 + QUAD $0x081e6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rsi + r11 + 8], 5 + QUAD $0x08166c203a0f4466; BYTE $0x06 // pinsrb xmm13, byte [rsi + rdx + 8], 6 + QUAD $0x082e6c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rsi + r13 + 8], 7 + QUAD $0x000000e024ac8b4c // mov r13, qword [rsp + 224] + QUAD $0x082e6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rsi + r13 + 8], 8 + QUAD $0x08166c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rsi + r10 + 8], 9 + QUAD $0x080e6c203a0f4666; BYTE $0x0a // pinsrb xmm13, byte [rsi + r9 + 8], 10 + QUAD $0x083e6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rsi + rdi + 8], 11 + QUAD $0x083e6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rsi + r15 + 8], 12 + QUAD $0x08066c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rsi + rax + 8], 13 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x080e6c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rsi + rcx + 8], 14 + QUAD $0x08066c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rsi + r8 + 8], 15 + LONG $0x6f0f4566; BYTE $0xcd // movdqa xmm9, xmm13 + LONG $0xde0f4466; BYTE $0xcf // pmaxub xmm9, xmm7 + LONG $0x740f4566; BYTE $0xcd // pcmpeqb xmm9, xmm13 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x103e64203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rsi + rdi + 16], 1 + QUAD $0x101e64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rsi + rbx + 16], 2 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x103664203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rsi + r14 + 16], 3 + QUAD $0x102664203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rsi + r12 + 16], 4 + QUAD $0x101e64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rsi + r11 + 16], 5 + QUAD $0x101664203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rsi + rdx + 16], 6 + WORD $0x8948; BYTE $0xd1 // mov rcx, rdx + QUAD $0x000000f024948948 // mov qword [rsp + 240], rdx + QUAD $0x00000130249c8b4c // mov r11, qword [rsp + 304] + QUAD $0x101e64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rsi + r11 + 16], 7 + QUAD $0x102e64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rsi + r13 + 16], 8 + WORD $0x894d; BYTE $0xe8 // mov r8, r13 + QUAD $0x0000011024ac8b4c // mov r13, qword [rsp + 272] + QUAD $0x102e64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rsi + r13 + 16], 9 + QUAD $0x100e64203a0f4666; BYTE $0x0a // pinsrb xmm12, byte [rsi + r9 + 16], 10 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x101664203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rsi + rdx + 16], 11 + QUAD $0x103e64203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rsi + r15 + 16], 12 + QUAD $0x100664203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rsi + rax + 16], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x101e64203a0f4466; BYTE $0x0e // pinsrb xmm12, byte [rsi + rbx + 16], 14 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x102664203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rsi + r12 + 16], 15 + LONG $0x6f0f4166; BYTE $0xfc // movdqa xmm7, xmm12 + LONG $0xde0f4166; BYTE $0xff // pmaxub xmm7, xmm15 + LONG $0x740f4166; BYTE $0xfc // pcmpeqb xmm7, xmm12 + QUAD $0x0001b024bc7f0f66; BYTE $0x00 // movdqa oword [rsp + 432], xmm7 + QUAD $0x01183e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 24], 1 + QUAD $0x181654203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rsi + r10 + 24], 2 + QUAD $0x183654203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r14 + 24], 3 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x04183e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 24], 4 + QUAD $0x0000009024b48b4c // mov r14, qword [rsp + 144] + QUAD $0x183654203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rsi + r14 + 24], 5 + QUAD $0x06180e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 24], 6 + QUAD $0x181e54203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rsi + r11 + 24], 7 + QUAD $0x180654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r8 + 24], 8 + QUAD $0x182e54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rsi + r13 + 24], 9 + QUAD $0x180e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r9 + 24], 10 + QUAD $0x0b181654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 24], 11 + QUAD $0x183e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 24], 12 + QUAD $0x0d180654203a0f66 // pinsrb xmm2, byte [rsi + rax + 24], 13 + QUAD $0x0e181e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 24], 14 + QUAD $0x182654203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r12 + 24], 15 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xde0f4166; BYTE $0xff // pmaxub xmm7, xmm15 + LONG $0xfa740f66 // pcmpeqb xmm7, xmm2 + QUAD $0x00014024bc7f0f66; BYTE $0x00 // movdqa oword [rsp + 320], xmm7 + LONG $0x6f0f4566; BYTE $0xe3 // movdqa xmm12, xmm11 + LONG $0x6f0f4566; BYTE $0xef // movdqa xmm13, xmm15 + LONG $0xde0f4566; BYTE $0xe7 // pmaxub xmm12, xmm15 + LONG $0x740f4566; BYTE $0xe3 // pcmpeqb xmm12, xmm11 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + LONG $0x1654b60f; BYTE $0x0d // movzx edx, byte [rsi + rdx + 13] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x020e74203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rcx + 2], 1 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x021674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r10 + 2], 2 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x021674203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r10 + 2], 3 + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + QUAD $0x023e74203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rsi + rdi + 2], 4 + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + QUAD $0x023674203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rsi + r14 + 2], 5 + QUAD $0x000000f024bc8b48 // mov rdi, qword [rsp + 240] + QUAD $0x023e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rdi + 2], 6 + QUAD $0x021e74203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rsi + r11 + 2], 7 + QUAD $0x020674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r8 + 2], 8 + QUAD $0x022e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r13 + 2], 9 + QUAD $0x020e74203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rsi + r9 + 2], 10 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x023674203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r14 + 2], 11 + QUAD $0x023e74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rsi + r15 + 2], 12 + LONG $0x24448948; BYTE $0x70 // mov qword [rsp + 112], rax + QUAD $0x020674203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rsi + rax + 2], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x020674203a0f4466; BYTE $0x0e // pinsrb xmm14, byte [rsi + rax + 2], 14 + QUAD $0x022674203a0f4666; BYTE $0x0f // pinsrb xmm14, byte [rsi + r12 + 2], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0103066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 3], 1 + QUAD $0x02031e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 3], 2 + QUAD $0x03166c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r10 + 3], 3 + QUAD $0x0403166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 3], 4 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + QUAD $0x05030e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 3], 5 + QUAD $0x06033e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 3], 6 + QUAD $0x031e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r11 + 3], 7 + QUAD $0x03066c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r8 + 3], 8 + QUAD $0x032e6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rsi + r13 + 3], 9 + QUAD $0x030e6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r9 + 3], 10 + QUAD $0x03366c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r14 + 3], 11 + QUAD $0x033e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 3], 12 + LONG $0x24748b4c; BYTE $0x70 // mov r14, qword [rsp + 112] + QUAD $0x03366c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r14 + 3], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0e03166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 3], 14 + QUAD $0x03266c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r12 + 3], 15 + QUAD $0x00000100956f0f66 // movdqa xmm2, oword 256[rbp] /* [rip + .LCPI10_16] */ + LONG $0xdb0f4466; BYTE $0xe2 // pand xmm12, xmm2 + LONG $0xf80f4466; BYTE $0xe0 // psubb xmm12, xmm0 + LONG $0x6f0f4566; BYTE $0xde // movdqa xmm11, xmm14 + LONG $0xde0f4566; BYTE $0xdd // pmaxub xmm11, xmm13 + LONG $0x740f4566; BYTE $0xde // pcmpeqb xmm11, xmm14 + LONG $0xd56f0f66 // movdqa xmm2, xmm5 + LONG $0xde0f4166; BYTE $0xd5 // pmaxub xmm2, xmm13 + LONG $0xd5740f66 // pcmpeqb xmm2, xmm5 + QUAD $0x0000008024948b48 // mov rdx, qword [rsp + 128] + LONG $0x1654b60f; BYTE $0x0e // movzx edx, byte [rsi + rdx + 14] + LONG $0x6e0f4466; BYTE $0xf2 // movd xmm14, edx + LONG $0x24648b4c; BYTE $0x20 // mov r12, qword [rsp + 32] + QUAD $0x04265c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r12 + 4], 1 + QUAD $0x02041e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 4], 2 + QUAD $0x04165c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r10 + 4], 3 + QUAD $0x0404065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 4], 4 + QUAD $0x05040e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 4], 5 + QUAD $0x06043e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 4], 6 + QUAD $0x041e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r11 + 4], 7 + QUAD $0x04065c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r8 + 4], 8 + QUAD $0x042e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r13 + 4], 9 + QUAD $0x040e5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r9 + 4], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b04065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 4], 11 + QUAD $0x000000c024bc894c // mov qword [rsp + 192], r15 + QUAD $0x043e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 4], 12 + QUAD $0x04365c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rsi + r14 + 4], 13 + LONG $0x24548b48; BYTE $0x10 // mov rdx, qword [rsp + 16] + QUAD $0x0e04165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 4], 14 + LONG $0x24748b4c; BYTE $0x30 // mov r14, qword [rsp + 48] + QUAD $0x04365c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r14 + 4], 15 + QUAD $0x05264c203a0f4266; BYTE $0x01 // pinsrb xmm1, byte [rsi + r12 + 5], 1 + QUAD $0x02051e4c203a0f66 // pinsrb xmm1, byte [rsi + rbx + 5], 2 + QUAD $0x05164c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rsi + r10 + 5], 3 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x05264c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rsi + r12 + 5], 4 + QUAD $0x05050e4c203a0f66 // pinsrb xmm1, byte [rsi + rcx + 5], 5 + QUAD $0x06053e4c203a0f66 // pinsrb xmm1, byte [rsi + rdi + 5], 6 + QUAD $0x051e4c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rsi + r11 + 5], 7 + QUAD $0x05064c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rsi + r8 + 5], 8 + QUAD $0x052e4c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rsi + r13 + 5], 9 + QUAD $0x050e4c203a0f4266; BYTE $0x0a // pinsrb xmm1, byte [rsi + r9 + 5], 10 + QUAD $0x0b05064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 5], 11 + QUAD $0x053e4c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rsi + r15 + 5], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0d05064c203a0f66 // pinsrb xmm1, byte [rsi + rax + 5], 13 + QUAD $0x0e05164c203a0f66 // pinsrb xmm1, byte [rsi + rdx + 5], 14 + QUAD $0x00000110ad6f0f66 // movdqa xmm5, oword 272[rbp] /* [rip + .LCPI10_17] */ + LONG $0xdb0f4466; BYTE $0xdd // pand xmm11, xmm5 + QUAD $0x00000120ad6f0f66 // movdqa xmm5, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xd5db0f66 // pand xmm2, xmm5 + LONG $0xeb0f4166; BYTE $0xd3 // por xmm2, xmm11 + QUAD $0x0000008024bc8b4c // mov r15, qword [rsp + 128] + LONG $0x54b60f42; WORD $0x0f3e // movzx edx, byte [rsi + r15 + 15] + LONG $0x6e0f4466; BYTE $0xda // movd xmm11, edx + QUAD $0x05364c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rsi + r14 + 5], 15 + LONG $0xeb0f4166; BYTE $0xd4 // por xmm2, xmm12 + LONG $0x6f0f4466; BYTE $0xe3 // movdqa xmm12, xmm3 + LONG $0xde0f4566; BYTE $0xe5 // pmaxub xmm12, xmm13 + LONG $0x740f4466; BYTE $0xe3 // pcmpeqb xmm12, xmm3 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xde0f4166; BYTE $0xed // pmaxub xmm5, xmm13 + LONG $0xe9740f66 // pcmpeqb xmm5, xmm1 + LONG $0x54b60f42; WORD $0x113e // movzx edx, byte [rsi + r15 + 17] + LONG $0xc26e0f66 // movd xmm0, edx + LONG $0x24548b48; BYTE $0x20 // mov rdx, qword [rsp + 32] + QUAD $0x01061664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 6], 1 + QUAD $0x000000b0249c8948 // mov qword [rsp + 176], rbx + QUAD $0x02061e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 6], 2 + QUAD $0x061664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r10 + 6], 3 + QUAD $0x062664203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rsi + r12 + 6], 4 + QUAD $0x05060e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 6], 5 + QUAD $0x06063e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 6], 6 + QUAD $0x061e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 6], 7 + QUAD $0x060664203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rsi + r8 + 6], 8 + QUAD $0x062e64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rsi + r13 + 6], 9 + QUAD $0x00000100248c894c // mov qword [rsp + 256], r9 + QUAD $0x060e64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r9 + 6], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x062664203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r12 + 6], 11 + QUAD $0x000000c024b48b4c // mov r14, qword [rsp + 192] + QUAD $0x063664203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r14 + 6], 12 + QUAD $0x0d060664203a0f66 // pinsrb xmm4, byte [rsi + rax + 6], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x063e64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r15 + 6], 14 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x063e64203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r15 + 6], 15 + QUAD $0x000170249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 368] + QUAD $0x0107165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 7], 1 + QUAD $0x02071e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 7], 2 + QUAD $0x07165c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r10 + 7], 3 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x0407165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 7], 4 + QUAD $0x05070e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 7], 5 + QUAD $0x06073e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 7], 6 + QUAD $0x071e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r11 + 7], 7 + QUAD $0x07065c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r8 + 7], 8 + QUAD $0x072e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r13 + 7], 9 + QUAD $0x070e5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r9 + 7], 10 + QUAD $0x07265c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r12 + 7], 11 + QUAD $0x07365c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r14 + 7], 12 + QUAD $0x0d07065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 7], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0e073e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 7], 14 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + QUAD $0x073e5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r15 + 7], 15 + QUAD $0x000001308d6f0f66 // movdqa xmm1, oword 304[rbp] /* [rip + .LCPI10_19] */ + LONG $0xdb0f4466; BYTE $0xe1 // pand xmm12, xmm1 + QUAD $0x000001408d6f0f66 // movdqa xmm1, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xe9db0f66 // pand xmm5, xmm1 + LONG $0xeb0f4166; BYTE $0xec // por xmm5, xmm12 + LONG $0xcc6f0f66 // movdqa xmm1, xmm4 + LONG $0xde0f4166; BYTE $0xcd // pmaxub xmm1, xmm13 + LONG $0xcc740f66 // pcmpeqb xmm1, xmm4 + QUAD $0x0000008024848b4c // mov r8, qword [rsp + 128] + LONG $0x54b60f42; WORD $0x1206 // movzx edx, byte [rsi + r8 + 18] + LONG $0xe26e0f66 // movd xmm4, edx + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xcfdb0f66 // pand xmm1, xmm7 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0x54b60f42; WORD $0x1306 // movzx edx, byte [rsi + r8 + 19] + LONG $0xea6e0f66 // movd xmm5, edx + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0xd36f0f66 // movdqa xmm2, xmm3 + LONG $0xde0f4166; BYTE $0xd5 // pmaxub xmm2, xmm13 + LONG $0xd3740f66 // pcmpeqb xmm2, xmm3 + LONG $0x6f0f4466; BYTE $0xe2 // movdqa xmm12, xmm2 + LONG $0x54b60f42; WORD $0x1406 // movzx edx, byte [rsi + r8 + 20] + LONG $0xd26e0f66 // movd xmm2, edx + QUAD $0x0000a0249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 160] + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x09365c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rsi + r14 + 9], 1 + QUAD $0x000000b024948b4c // mov r10, qword [rsp + 176] + QUAD $0x09165c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rsi + r10 + 9], 2 + QUAD $0x03091e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 9], 3 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0409065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 9], 4 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x090e5c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rsi + r9 + 9], 5 + QUAD $0x000000f0249c8b4c // mov r11, qword [rsp + 240] + QUAD $0x091e5c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rsi + r11 + 9], 6 + QUAD $0x00000130249c8b48 // mov rbx, qword [rsp + 304] + QUAD $0x07091e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 9], 7 + QUAD $0x000000e024bc8b4c // mov r15, qword [rsp + 224] + QUAD $0x093e5c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r15 + 9], 8 + QUAD $0x092e5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rsi + r13 + 9], 9 + QUAD $0x0000010024a48b4c // mov r12, qword [rsp + 256] + QUAD $0x09265c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r12 + 9], 10 + LONG $0x24548b48; BYTE $0x50 // mov rdx, qword [rsp + 80] + QUAD $0x0b09165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 9], 11 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0c09165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 9], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d09165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 9], 13 + QUAD $0x0e093e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 9], 14 + QUAD $0x0f090e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 9], 15 + LONG $0x7d6f0f66; BYTE $0x60 // movdqa xmm7, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xdb0f4466; BYTE $0xe7 // pand xmm12, xmm7 + LONG $0xeb0f4466; BYTE $0xe1 // por xmm12, xmm1 + QUAD $0x00a024a47f0f4466; WORD $0x0000 // movdqa oword [rsp + 160], xmm12 + LONG $0xfb6f0f66 // movdqa xmm7, xmm3 + LONG $0xde0f4166; BYTE $0xfd // pmaxub xmm7, xmm13 + LONG $0xfb740f66 // pcmpeqb xmm7, xmm3 + LONG $0x54b60f42; WORD $0x1506 // movzx edx, byte [rsi + r8 + 21] + LONG $0xda6e0f66 // movd xmm3, edx + QUAD $0x0a3644203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rsi + r14 + 10], 1 + WORD $0x894d; BYTE $0xd6 // mov r14, r10 + QUAD $0x0a1644203a0f4666; BYTE $0x02 // pinsrb xmm8, byte [rsi + r10 + 10], 2 + QUAD $0x0000012024948b4c // mov r10, qword [rsp + 288] + QUAD $0x0a1644203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r10 + 10], 3 + QUAD $0x0a0644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rax + 10], 4 + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + QUAD $0x0a0e44203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rsi + r9 + 10], 5 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + QUAD $0x0a1e44203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rsi + r11 + 10], 6 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + QUAD $0x0a1e44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rsi + rbx + 10], 7 + WORD $0x894d; BYTE $0xf8 // mov r8, r15 + QUAD $0x0a3e44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rsi + r15 + 10], 8 + QUAD $0x0a2e44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rsi + r13 + 10], 9 + WORD $0x894d; BYTE $0xe1 // mov r9, r12 + QUAD $0x0a2644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r12 + 10], 10 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + QUAD $0x0a2644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r12 + 10], 11 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x0a3e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 10], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0a0644203a0f4466; BYTE $0x0d // pinsrb xmm8, byte [rsi + rax + 10], 13 + LONG $0x245c8b48; BYTE $0x10 // mov rbx, qword [rsp + 16] + QUAD $0x0a1e44203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rsi + rbx + 10], 14 + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0a1644203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rsi + rdx + 10], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0b0654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rax + 11], 1 + QUAD $0x0b3654203a0f4666; BYTE $0x02 // pinsrb xmm10, byte [rsi + r14 + 11], 2 + QUAD $0x0b1654203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r10 + 11], 3 + LONG $0x24748b4c; BYTE $0x60 // mov r14, qword [rsp + 96] + QUAD $0x0b3654203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rsi + r14 + 11], 4 + QUAD $0x0b0e54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rcx + 11], 5 + QUAD $0x0b3e54203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rdi + 11], 6 + QUAD $0x0b1e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r11 + 11], 7 + QUAD $0x0b0654203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rsi + r8 + 11], 8 + QUAD $0x0b2e54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rsi + r13 + 11], 9 + QUAD $0x0b0e54203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r9 + 11], 10 + QUAD $0x0b2654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r12 + 11], 11 + QUAD $0x0b3e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 11], 12 + LONG $0x24448b48; BYTE $0x70 // mov rax, qword [rsp + 112] + QUAD $0x0b0654203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rsi + rax + 11], 13 + QUAD $0x0b1e54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rsi + rbx + 11], 14 + QUAD $0x0b1654203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rsi + rdx + 11], 15 + QUAD $0x00000100bddb0f66 // pand xmm7, oword 256[rbp] /* [rip + .LCPI10_16] */ + LONG $0xf80f4166; BYTE $0xf9 // psubb xmm7, xmm9 + LONG $0x6f0f4166; BYTE $0xc8 // movdqa xmm1, xmm8 + LONG $0xde0f4166; BYTE $0xcd // pmaxub xmm1, xmm13 + LONG $0x740f4166; BYTE $0xc8 // pcmpeqb xmm1, xmm8 + LONG $0x6f0f4566; BYTE $0xca // movdqa xmm9, xmm10 + LONG $0xde0f4566; BYTE $0xcd // pmaxub xmm9, xmm13 + LONG $0x740f4566; BYTE $0xca // pcmpeqb xmm9, xmm10 + QUAD $0x0000008024848b48 // mov rax, qword [rsp + 128] + LONG $0x0654b60f; BYTE $0x16 // movzx edx, byte [rsi + rax + 22] + LONG $0x6e0f4466; BYTE $0xd2 // movd xmm10, edx + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x010c0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 12], 1 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x0c2674203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rsi + r12 + 12], 2 + QUAD $0x0c1674203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r10 + 12], 3 + WORD $0x894c; BYTE $0xf2 // mov rdx, r14 + QUAD $0x0c3674203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rsi + r14 + 12], 4 + QUAD $0x050c0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 12], 5 + QUAD $0x060c3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 12], 6 + QUAD $0x0c1e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r11 + 12], 7 + QUAD $0x0c0674203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rsi + r8 + 12], 8 + QUAD $0x0c2e74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rsi + r13 + 12], 9 + QUAD $0x0c0e74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r9 + 12], 10 + LONG $0x24748b4c; BYTE $0x50 // mov r14, qword [rsp + 80] + QUAD $0x0c3674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r14 + 12], 11 + QUAD $0x0c3e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r15 + 12], 12 + LONG $0x245c8b48; BYTE $0x70 // mov rbx, qword [rsp + 112] + QUAD $0x0d0c1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 12], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e0c0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 12], 14 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x0f0c0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 12], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0d067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 13], 1 + QUAD $0x0d267c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rsi + r12 + 13], 2 + QUAD $0x0d167c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r10 + 13], 3 + QUAD $0x0d167c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rsi + rdx + 13], 4 + QUAD $0x0d0e7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rcx + 13], 5 + QUAD $0x0d3e7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rdi + 13], 6 + QUAD $0x0d1e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r11 + 13], 7 + QUAD $0x0d067c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rsi + r8 + 13], 8 + QUAD $0x0d2e7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rsi + r13 + 13], 9 + QUAD $0x0d0e7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r9 + 13], 10 + QUAD $0x0d367c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r14 + 13], 11 + QUAD $0x0d3e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 13], 12 + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + QUAD $0x0d1e7c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rsi + rbx + 13], 13 + LONG $0x247c8b4c; BYTE $0x10 // mov r15, qword [rsp + 16] + QUAD $0x0d3e7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r15 + 13], 14 + QUAD $0x000001108ddb0f66 // pand xmm1, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x0001208ddb0f4466; BYTE $0x00 // pand xmm9, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xeb0f4466; BYTE $0xc9 // por xmm9, xmm1 + QUAD $0x00000080249c8b48 // mov rbx, qword [rsp + 128] + LONG $0x1e54b60f; BYTE $0x17 // movzx edx, byte [rsi + rbx + 23] + LONG $0x6e0f4466; BYTE $0xc2 // movd xmm8, edx + LONG $0x24548b48; BYTE $0x30 // mov rdx, qword [rsp + 48] + QUAD $0x0d167c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rsi + rdx + 13], 15 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0xce6f0f66 // movdqa xmm1, xmm6 + LONG $0xde0f4166; BYTE $0xcd // pmaxub xmm1, xmm13 + LONG $0xce740f66 // pcmpeqb xmm1, xmm6 + LONG $0x6f0f4166; BYTE $0xff // movdqa xmm7, xmm15 + LONG $0xde0f4166; BYTE $0xfd // pmaxub xmm7, xmm13 + LONG $0x740f4166; BYTE $0xff // pcmpeqb xmm7, xmm15 + LONG $0x1e54b60f; BYTE $0x19 // movzx edx, byte [rsi + rbx + 25] + LONG $0x6e0f4466; BYTE $0xfa // movd xmm15, edx + LONG $0x245c8b48; BYTE $0x20 // mov rbx, qword [rsp + 32] + QUAD $0x0e1e74203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rsi + rbx + 14], 1 + QUAD $0x0e2674203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rsi + r12 + 14], 2 + QUAD $0x0e1674203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rsi + r10 + 14], 3 + LONG $0x24648b4c; BYTE $0x60 // mov r12, qword [rsp + 96] + QUAD $0x0e2674203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rsi + r12 + 14], 4 + QUAD $0x0e0e74203a0f4466; BYTE $0x05 // pinsrb xmm14, byte [rsi + rcx + 14], 5 + QUAD $0x0e3e74203a0f4466; BYTE $0x06 // pinsrb xmm14, byte [rsi + rdi + 14], 6 + QUAD $0x0e1e74203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rsi + r11 + 14], 7 + QUAD $0x0e0674203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rsi + r8 + 14], 8 + WORD $0x894c; BYTE $0xea // mov rdx, r13 + QUAD $0x0e2e74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rsi + r13 + 14], 9 + QUAD $0x0e0e74203a0f4666; BYTE $0x0a // pinsrb xmm14, byte [rsi + r9 + 14], 10 + QUAD $0x0e3674203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rsi + r14 + 14], 11 + QUAD $0x0e0674203a0f4466; BYTE $0x0c // pinsrb xmm14, byte [rsi + rax + 14], 12 + LONG $0x246c8b4c; BYTE $0x70 // mov r13, qword [rsp + 112] + QUAD $0x0e2e74203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rsi + r13 + 14], 13 + QUAD $0x0e3e74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rsi + r15 + 14], 14 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x0e3e74203a0f4666; BYTE $0x0f // pinsrb xmm14, byte [rsi + r15 + 14], 15 + QUAD $0x0f1e5c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rsi + rbx + 15], 1 + QUAD $0x000000b0249c8b48 // mov rbx, qword [rsp + 176] + QUAD $0x0f1e5c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rsi + rbx + 15], 2 + QUAD $0x0f165c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rsi + r10 + 15], 3 + QUAD $0x0f265c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rsi + r12 + 15], 4 + QUAD $0x0f0e5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rsi + rcx + 15], 5 + QUAD $0x0f3e5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rsi + rdi + 15], 6 + QUAD $0x0f1e5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rsi + r11 + 15], 7 + QUAD $0x0f065c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rsi + r8 + 15], 8 + QUAD $0x0f165c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rsi + rdx + 15], 9 + QUAD $0x0f0e5c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rsi + r9 + 15], 10 + QUAD $0x0f365c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rsi + r14 + 15], 11 + QUAD $0x0f065c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rsi + rax + 15], 12 + QUAD $0x0f2e5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rsi + r13 + 15], 13 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x0f3e5c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rsi + rdi + 15], 14 + QUAD $0x0f3e5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rsi + r15 + 15], 15 + WORD $0x894d; BYTE $0xfc // mov r12, r15 + QUAD $0x000001308ddb0f66 // pand xmm1, oword 304[rbp] /* [rip + .LCPI10_19] */ + QUAD $0x00000140bddb0f66 // pand xmm7, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x6f0f4166; BYTE $0xce // movdqa xmm1, xmm14 + LONG $0xde0f4166; BYTE $0xcd // pmaxub xmm1, xmm13 + LONG $0x740f4166; BYTE $0xce // pcmpeqb xmm1, xmm14 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + LONG $0x54b60f42; WORD $0x1a2e // movzx edx, byte [rsi + r13 + 26] + LONG $0xf26e0f66 // movd xmm6, edx + QUAD $0x000001508ddb0f66 // pand xmm1, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xcfeb0f66 // por xmm1, xmm7 + LONG $0x54b60f42; WORD $0x1b2e // movzx edx, byte [rsi + r13 + 27] + LONG $0xfa6e0f66 // movd xmm7, edx + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + LONG $0x6f0f4566; BYTE $0xf3 // movdqa xmm14, xmm11 + LONG $0xde0f4566; BYTE $0xf5 // pmaxub xmm14, xmm13 + LONG $0x740f4566; BYTE $0xf3 // pcmpeqb xmm14, xmm11 + LONG $0x54b60f42; WORD $0x1c2e // movzx edx, byte [rsi + r13 + 28] + LONG $0x6e0f4466; BYTE $0xca // movd xmm9, edx + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x01110e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 17], 1 + QUAD $0x02111e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 17], 2 + QUAD $0x111644203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r10 + 17], 3 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x04110644203a0f66 // pinsrb xmm0, byte [rsi + rax + 17], 4 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x110644203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rsi + r8 + 17], 5 + QUAD $0x000000f0248c8b4c // mov r9, qword [rsp + 240] + QUAD $0x110e44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rsi + r9 + 17], 6 + QUAD $0x111e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r11 + 17], 7 + QUAD $0x000000e0249c8b48 // mov rbx, qword [rsp + 224] + QUAD $0x08111e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 17], 8 + QUAD $0x0000011024948b48 // mov rdx, qword [rsp + 272] + QUAD $0x09111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 9 + QUAD $0x0000010024b48b4c // mov r14, qword [rsp + 256] + QUAD $0x113644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r14 + 17], 10 + LONG $0x247c8b4c; BYTE $0x50 // mov r15, qword [rsp + 80] + QUAD $0x113e44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r15 + 17], 11 + QUAD $0x000000c024948b48 // mov rdx, qword [rsp + 192] + QUAD $0x0c111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d111644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 17], 13 + QUAD $0x0e113e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 17], 14 + QUAD $0x112644203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r12 + 17], 15 + LONG $0xdb0f4466; WORD $0x6075 // pand xmm14, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xeb0f4466; BYTE $0xf1 // por xmm14, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0x6f0f4566; BYTE $0xe5 // movdqa xmm12, xmm13 + LONG $0xde0f4166; BYTE $0xcd // pmaxub xmm1, xmm13 + LONG $0xc8740f66 // pcmpeqb xmm1, xmm0 + LONG $0x54b60f42; WORD $0x1d2e // movzx edx, byte [rsi + r13 + 29] + LONG $0xc26e0f66 // movd xmm0, edx + QUAD $0x01120e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 18], 1 + QUAD $0x000000b024a48b4c // mov r12, qword [rsp + 176] + QUAD $0x122664203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rsi + r12 + 18], 2 + QUAD $0x121664203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r10 + 18], 3 + QUAD $0x04120664203a0f66 // pinsrb xmm4, byte [rsi + rax + 18], 4 + WORD $0x894c; BYTE $0xc1 // mov rcx, r8 + QUAD $0x120664203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rsi + r8 + 18], 5 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + QUAD $0x120e64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rsi + r9 + 18], 6 + QUAD $0x121e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 18], 7 + WORD $0x8949; BYTE $0xd8 // mov r8, rbx + QUAD $0x08121e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 18], 8 + QUAD $0x00000110249c8b48 // mov rbx, qword [rsp + 272] + QUAD $0x09121e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 18], 9 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x123664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r14 + 18], 10 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x123e64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rsi + r15 + 18], 11 + QUAD $0x000000c024bc8b4c // mov r15, qword [rsp + 192] + QUAD $0x123e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 18], 12 + LONG $0x24548b48; BYTE $0x70 // mov rdx, qword [rsp + 112] + QUAD $0x0d121664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 18], 13 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0e120664203a0f66 // pinsrb xmm4, byte [rsi + rax + 18], 14 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x122e64203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r13 + 18], 15 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0113066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 1 + QUAD $0x13266c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rsi + r12 + 19], 2 + QUAD $0x13166c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r10 + 19], 3 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x0413066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 19], 4 + QUAD $0x05130e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 19], 5 + QUAD $0x06133e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 19], 6 + QUAD $0x131e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r11 + 19], 7 + QUAD $0x13066c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rsi + r8 + 19], 8 + QUAD $0x09131e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 19], 9 + QUAD $0x130e6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r9 + 19], 10 + QUAD $0x13366c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rsi + r14 + 19], 11 + QUAD $0x133e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 19], 12 + QUAD $0x0d13166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 19], 13 + WORD $0x8948; BYTE $0xd7 // mov rdi, rdx + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x13266c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r12 + 19], 14 + QUAD $0x132e6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r13 + 19], 15 + QUAD $0x000001008ddb0f66 // pand xmm1, oword 256[rbp] /* [rip + .LCPI10_16] */ + QUAD $0x0001b0248cf80f66; BYTE $0x00 // psubb xmm1, oword [rsp + 432] + LONG $0x6f0f4466; BYTE $0xec // movdqa xmm13, xmm4 + LONG $0xde0f4566; BYTE $0xec // pmaxub xmm13, xmm12 + LONG $0x740f4466; BYTE $0xec // pcmpeqb xmm13, xmm4 + LONG $0x6f0f4466; BYTE $0xdd // movdqa xmm11, xmm5 + LONG $0xde0f4566; BYTE $0xdc // pmaxub xmm11, xmm12 + LONG $0x740f4466; BYTE $0xdd // pcmpeqb xmm11, xmm5 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + LONG $0x0e54b60f; BYTE $0x1e // movzx edx, byte [rsi + rcx + 30] + LONG $0xe26e0f66 // movd xmm4, edx + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x01140654203a0f66 // pinsrb xmm2, byte [rsi + rax + 20], 1 + QUAD $0x0115065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 21], 1 + QUAD $0x160654203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rsi + rax + 22], 1 + QUAD $0x170644203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rsi + rax + 23], 1 + QUAD $0x19067c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rsi + rax + 25], 1 + QUAD $0x011a0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 26], 1 + QUAD $0x011b067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 27], 1 + QUAD $0x1c064c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rsi + rax + 28], 1 + QUAD $0x011d0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 29], 1 + LONG $0x0e54b60f; BYTE $0x1f // movzx edx, byte [rsi + rcx + 31] + QUAD $0x011e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 1 + LONG $0xea6e0f66 // movd xmm5, edx + QUAD $0x011f066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 31], 1 + QUAD $0x000000b024848b48 // mov rax, qword [rsp + 176] + QUAD $0x02140654203a0f66 // pinsrb xmm2, byte [rsi + rax + 20], 2 + QUAD $0x0215065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 21], 2 + QUAD $0x160654203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rsi + rax + 22], 2 + QUAD $0x170644203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rsi + rax + 23], 2 + QUAD $0x19067c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rsi + rax + 25], 2 + QUAD $0x021a0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 26], 2 + QUAD $0x021b067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 27], 2 + QUAD $0x1c064c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rsi + rax + 28], 2 + QUAD $0x021d0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 29], 2 + QUAD $0x021e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 2 + QUAD $0x021f066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 31], 2 + QUAD $0x141654203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rsi + r10 + 20], 3 + LONG $0x24548b48; BYTE $0x60 // mov rdx, qword [rsp + 96] + QUAD $0x04141654203a0f66 // pinsrb xmm2, byte [rsi + rdx + 20], 4 + QUAD $0x00000090248c8b48 // mov rcx, qword [rsp + 144] + QUAD $0x05140e54203a0f66 // pinsrb xmm2, byte [rsi + rcx + 20], 5 + QUAD $0x000000f024848b48 // mov rax, qword [rsp + 240] + QUAD $0x06140654203a0f66 // pinsrb xmm2, byte [rsi + rax + 20], 6 + QUAD $0x141e54203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rsi + r11 + 20], 7 + QUAD $0x140654203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rsi + r8 + 20], 8 + QUAD $0x09141e54203a0f66 // pinsrb xmm2, byte [rsi + rbx + 20], 9 + QUAD $0x140e54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rsi + r9 + 20], 10 + QUAD $0x143654203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rsi + r14 + 20], 11 + QUAD $0x143e54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rsi + r15 + 20], 12 + QUAD $0x0d143e54203a0f66 // pinsrb xmm2, byte [rsi + rdi + 20], 13 + QUAD $0x142654203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rsi + r12 + 20], 14 + QUAD $0x142e54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rsi + r13 + 20], 15 + QUAD $0x15165c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rsi + r10 + 21], 3 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x0415165c203a0f66 // pinsrb xmm3, byte [rsi + rdx + 21], 4 + QUAD $0x05150e5c203a0f66 // pinsrb xmm3, byte [rsi + rcx + 21], 5 + QUAD $0x0615065c203a0f66 // pinsrb xmm3, byte [rsi + rax + 21], 6 + QUAD $0x151e5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rsi + r11 + 21], 7 + QUAD $0x15065c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rsi + r8 + 21], 8 + QUAD $0x09151e5c203a0f66 // pinsrb xmm3, byte [rsi + rbx + 21], 9 + QUAD $0x0000010024848b4c // mov r8, qword [rsp + 256] + QUAD $0x15065c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rsi + r8 + 21], 10 + QUAD $0x15365c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rsi + r14 + 21], 11 + QUAD $0x153e5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rsi + r15 + 21], 12 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + QUAD $0x0d153e5c203a0f66 // pinsrb xmm3, byte [rsi + rdi + 21], 13 + QUAD $0x15265c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rsi + r12 + 21], 14 + QUAD $0x000110addb0f4466; BYTE $0x00 // pand xmm13, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x0001209ddb0f4466; BYTE $0x00 // pand xmm11, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xeb0f4566; BYTE $0xdd // por xmm11, xmm13 + QUAD $0x152e5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rsi + r13 + 21], 15 + LONG $0xeb0f4466; BYTE $0xd9 // por xmm11, xmm1 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0xde0f4166; BYTE $0xcc // pmaxub xmm1, xmm12 + LONG $0xca740f66 // pcmpeqb xmm1, xmm2 + LONG $0xd36f0f66 // movdqa xmm2, xmm3 + LONG $0xde0f4166; BYTE $0xd4 // pmaxub xmm2, xmm12 + LONG $0xd3740f66 // pcmpeqb xmm2, xmm3 + QUAD $0x160e54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rsi + r9 + 22], 3 + QUAD $0x161654203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rsi + rdx + 22], 4 + QUAD $0x160e54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rsi + rcx + 22], 5 + QUAD $0x160654203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rsi + rax + 22], 6 + QUAD $0x161e54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rsi + r11 + 22], 7 + QUAD $0x000000e024bc8b48 // mov rdi, qword [rsp + 224] + QUAD $0x163e54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rsi + rdi + 22], 8 + QUAD $0x161e54203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rsi + rbx + 22], 9 + QUAD $0x160654203a0f4666; BYTE $0x0a // pinsrb xmm10, byte [rsi + r8 + 22], 10 + QUAD $0x163654203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rsi + r14 + 22], 11 + QUAD $0x163e54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rsi + r15 + 22], 12 + QUAD $0x161654203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rsi + r10 + 22], 13 + QUAD $0x162654203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rsi + r12 + 22], 14 + QUAD $0x162e54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rsi + r13 + 22], 15 + QUAD $0x170e44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rsi + r9 + 23], 3 + QUAD $0x171644203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rsi + rdx + 23], 4 + QUAD $0x170e44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rsi + rcx + 23], 5 + QUAD $0x170644203a0f4466; BYTE $0x06 // pinsrb xmm8, byte [rsi + rax + 23], 6 + QUAD $0x171e44203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rsi + r11 + 23], 7 + QUAD $0x173e44203a0f4466; BYTE $0x08 // pinsrb xmm8, byte [rsi + rdi + 23], 8 + QUAD $0x171e44203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rsi + rbx + 23], 9 + QUAD $0x170644203a0f4666; BYTE $0x0a // pinsrb xmm8, byte [rsi + r8 + 23], 10 + QUAD $0x173644203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rsi + r14 + 23], 11 + QUAD $0x173e44203a0f4666; BYTE $0x0c // pinsrb xmm8, byte [rsi + r15 + 23], 12 + QUAD $0x171644203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rsi + r10 + 23], 13 + QUAD $0x000001308ddb0f66 // pand xmm1, oword 304[rbp] /* [rip + .LCPI10_19] */ + QUAD $0x0000014095db0f66 // pand xmm2, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6f0f4166; BYTE $0xca // movdqa xmm1, xmm10 + LONG $0xde0f4166; BYTE $0xcc // pmaxub xmm1, xmm12 + LONG $0x740f4166; BYTE $0xca // pcmpeqb xmm1, xmm10 + QUAD $0x172644203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rsi + r12 + 23], 14 + QUAD $0x000001508ddb0f66 // pand xmm1, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x172e44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rsi + r13 + 23], 15 + LONG $0xeb0f4166; BYTE $0xcb // por xmm1, xmm11 + LONG $0x6f0f4566; BYTE $0xd0 // movdqa xmm10, xmm8 + LONG $0xde0f4566; BYTE $0xd4 // pmaxub xmm10, xmm12 + LONG $0x740f4566; BYTE $0xd0 // pcmpeqb xmm10, xmm8 + QUAD $0x190e7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rsi + r9 + 25], 3 + QUAD $0x19167c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rsi + rdx + 25], 4 + QUAD $0x190e7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rsi + rcx + 25], 5 + QUAD $0x19067c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rsi + rax + 25], 6 + QUAD $0x191e7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rsi + r11 + 25], 7 + QUAD $0x193e7c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rsi + rdi + 25], 8 + QUAD $0x191e7c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rsi + rbx + 25], 9 + QUAD $0x19067c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rsi + r8 + 25], 10 + QUAD $0x19367c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rsi + r14 + 25], 11 + QUAD $0x193e7c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rsi + r15 + 25], 12 + QUAD $0x19167c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rsi + r10 + 25], 13 + QUAD $0x19267c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rsi + r12 + 25], 14 + QUAD $0x192e7c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rsi + r13 + 25], 15 + LONG $0x6f0f4466; WORD $0x605d // movdqa xmm11, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xdb0f4566; BYTE $0xd3 // pand xmm10, xmm11 + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + LONG $0x6f0f4166; BYTE $0xdf // movdqa xmm3, xmm15 + LONG $0xde0f4166; BYTE $0xdc // pmaxub xmm3, xmm12 + LONG $0x740f4166; BYTE $0xdf // pcmpeqb xmm3, xmm15 + QUAD $0x1a0e74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rsi + r9 + 26], 3 + QUAD $0x041a1674203a0f66 // pinsrb xmm6, byte [rsi + rdx + 26], 4 + QUAD $0x051a0e74203a0f66 // pinsrb xmm6, byte [rsi + rcx + 26], 5 + QUAD $0x061a0674203a0f66 // pinsrb xmm6, byte [rsi + rax + 26], 6 + QUAD $0x1a1e74203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rsi + r11 + 26], 7 + QUAD $0x081a3e74203a0f66 // pinsrb xmm6, byte [rsi + rdi + 26], 8 + QUAD $0x091a1e74203a0f66 // pinsrb xmm6, byte [rsi + rbx + 26], 9 + QUAD $0x1a0674203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rsi + r8 + 26], 10 + QUAD $0x1a3674203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rsi + r14 + 26], 11 + QUAD $0x1a3e74203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rsi + r15 + 26], 12 + QUAD $0x1a1674203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rsi + r10 + 26], 13 + QUAD $0x1a2674203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rsi + r12 + 26], 14 + QUAD $0x1a2e74203a0f4266; BYTE $0x0f // pinsrb xmm6, byte [rsi + r13 + 26], 15 + QUAD $0x1b0e7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rsi + r9 + 27], 3 + QUAD $0x041b167c203a0f66 // pinsrb xmm7, byte [rsi + rdx + 27], 4 + QUAD $0x051b0e7c203a0f66 // pinsrb xmm7, byte [rsi + rcx + 27], 5 + QUAD $0x061b067c203a0f66 // pinsrb xmm7, byte [rsi + rax + 27], 6 + QUAD $0x1b1e7c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rsi + r11 + 27], 7 + QUAD $0x081b3e7c203a0f66 // pinsrb xmm7, byte [rsi + rdi + 27], 8 + QUAD $0x091b1e7c203a0f66 // pinsrb xmm7, byte [rsi + rbx + 27], 9 + QUAD $0x1b067c203a0f4266; BYTE $0x0a // pinsrb xmm7, byte [rsi + r8 + 27], 10 + QUAD $0x1b367c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rsi + r14 + 27], 11 + QUAD $0x1b3e7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rsi + r15 + 27], 12 + QUAD $0x1b167c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rsi + r10 + 27], 13 + QUAD $0x1b267c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rsi + r12 + 27], 14 + QUAD $0x1b2e7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rsi + r13 + 27], 15 + QUAD $0x000001009ddb0f66 // pand xmm3, oword 256[rbp] /* [rip + .LCPI10_16] */ + QUAD $0x000140249cf80f66; BYTE $0x00 // psubb xmm3, oword [rsp + 320] + LONG $0xd66f0f66 // movdqa xmm2, xmm6 + LONG $0xde0f4166; BYTE $0xd4 // pmaxub xmm2, xmm12 + LONG $0xd6740f66 // pcmpeqb xmm2, xmm6 + LONG $0xcf6f0f66 // movdqa xmm1, xmm7 + LONG $0xde0f4166; BYTE $0xcc // pmaxub xmm1, xmm12 + LONG $0xcf740f66 // pcmpeqb xmm1, xmm7 + QUAD $0x1c0e4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rsi + r9 + 28], 3 + QUAD $0x1c164c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rsi + rdx + 28], 4 + QUAD $0x1c0e4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rsi + rcx + 28], 5 + QUAD $0x1c064c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rsi + rax + 28], 6 + QUAD $0x1c1e4c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rsi + r11 + 28], 7 + QUAD $0x1c3e4c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rsi + rdi + 28], 8 + QUAD $0x1c1e4c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rsi + rbx + 28], 9 + QUAD $0x1c064c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rsi + r8 + 28], 10 + QUAD $0x1c364c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rsi + r14 + 28], 11 + QUAD $0x1c3e4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rsi + r15 + 28], 12 + QUAD $0x1c164c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rsi + r10 + 28], 13 + QUAD $0x1c264c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rsi + r12 + 28], 14 + QUAD $0x1c2e4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rsi + r13 + 28], 15 + QUAD $0x1d0e44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rsi + r9 + 29], 3 + QUAD $0x041d1644203a0f66 // pinsrb xmm0, byte [rsi + rdx + 29], 4 + QUAD $0x051d0e44203a0f66 // pinsrb xmm0, byte [rsi + rcx + 29], 5 + QUAD $0x061d0644203a0f66 // pinsrb xmm0, byte [rsi + rax + 29], 6 + QUAD $0x1d1e44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rsi + r11 + 29], 7 + QUAD $0x081d3e44203a0f66 // pinsrb xmm0, byte [rsi + rdi + 29], 8 + QUAD $0x091d1e44203a0f66 // pinsrb xmm0, byte [rsi + rbx + 29], 9 + QUAD $0x1d0644203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rsi + r8 + 29], 10 + QUAD $0x1d3644203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rsi + r14 + 29], 11 + QUAD $0x1d3e44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rsi + r15 + 29], 12 + QUAD $0x1d1644203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rsi + r10 + 29], 13 + QUAD $0x1d2644203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rsi + r12 + 29], 14 + QUAD $0x1d2e44203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rsi + r13 + 29], 15 + QUAD $0x0000011095db0f66 // pand xmm2, oword 272[rbp] /* [rip + .LCPI10_17] */ + QUAD $0x000001208ddb0f66 // pand xmm1, oword 288[rbp] /* [rip + .LCPI10_18] */ + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0xcbeb0f66 // por xmm1, xmm3 + LONG $0x6f0f4166; BYTE $0xd1 // movdqa xmm2, xmm9 + LONG $0xde0f4166; BYTE $0xd4 // pmaxub xmm2, xmm12 + LONG $0x740f4166; BYTE $0xd1 // pcmpeqb xmm2, xmm9 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xde0f4166; BYTE $0xdc // pmaxub xmm3, xmm12 + LONG $0xd8740f66 // pcmpeqb xmm3, xmm0 + QUAD $0x1e0e64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rsi + r9 + 30], 3 + QUAD $0x1f0e6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rsi + r9 + 31], 3 + QUAD $0x041e1664203a0f66 // pinsrb xmm4, byte [rsi + rdx + 30], 4 + QUAD $0x041f166c203a0f66 // pinsrb xmm5, byte [rsi + rdx + 31], 4 + QUAD $0x051e0e64203a0f66 // pinsrb xmm4, byte [rsi + rcx + 30], 5 + QUAD $0x051f0e6c203a0f66 // pinsrb xmm5, byte [rsi + rcx + 31], 5 + QUAD $0x061e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 6 + QUAD $0x061f066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 31], 6 + QUAD $0x1e1e64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rsi + r11 + 30], 7 + QUAD $0x1f1e6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rsi + r11 + 31], 7 + WORD $0x8948; BYTE $0xf8 // mov rax, rdi + QUAD $0x081e3e64203a0f66 // pinsrb xmm4, byte [rsi + rdi + 30], 8 + QUAD $0x081f3e6c203a0f66 // pinsrb xmm5, byte [rsi + rdi + 31], 8 + QUAD $0x091e1e64203a0f66 // pinsrb xmm4, byte [rsi + rbx + 30], 9 + QUAD $0x091f1e6c203a0f66 // pinsrb xmm5, byte [rsi + rbx + 31], 9 + QUAD $0x0000016024b48b4c // mov r14, qword [rsp + 352] + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x1e0664203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rsi + r8 + 30], 10 + QUAD $0x1f066c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rsi + r8 + 31], 10 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0b1e0664203a0f66 // pinsrb xmm4, byte [rsi + rax + 30], 11 + QUAD $0x0b1f066c203a0f66 // pinsrb xmm5, byte [rsi + rax + 31], 11 + QUAD $0x1e3e64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rsi + r15 + 30], 12 + QUAD $0x1f3e6c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rsi + r15 + 31], 12 + QUAD $0x1e1664203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rsi + r10 + 30], 13 + QUAD $0x1f166c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rsi + r10 + 31], 13 + QUAD $0x1e2664203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rsi + r12 + 30], 14 + QUAD $0x1f266c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rsi + r12 + 31], 14 + QUAD $0x1e2e64203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rsi + r13 + 30], 15 + QUAD $0x0000013095db0f66 // pand xmm2, oword 304[rbp] /* [rip + .LCPI10_19] */ + QUAD $0x000001409ddb0f66 // pand xmm3, oword 320[rbp] /* [rip + .LCPI10_20] */ + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0xde0f4166; BYTE $0xc4 // pmaxub xmm0, xmm12 + LONG $0xc4740f66 // pcmpeqb xmm0, xmm4 + QUAD $0x1f2e6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rsi + r13 + 31], 15 + QUAD $0x0000015085db0f66 // pand xmm0, oword 336[rbp] /* [rip + .LCPI10_21] */ + LONG $0xc3eb0f66 // por xmm0, xmm3 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0xcd6f0f66 // movdqa xmm1, xmm5 + LONG $0xde0f4166; BYTE $0xcc // pmaxub xmm1, xmm12 + LONG $0xcd740f66 // pcmpeqb xmm1, xmm5 + LONG $0xdb0f4166; BYTE $0xcb // pand xmm1, xmm11 + LONG $0xc8eb0f66 // por xmm1, xmm0 + LONG $0x6f0f4166; BYTE $0xc2 // movdqa xmm0, xmm10 + LONG $0xc1600f66 // punpcklbw xmm0, xmm1 + QUAD $0x0000a024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 160] + LONG $0xd46f0f66 // movdqa xmm2, xmm4 + LONG $0x600f4166; BYTE $0xd6 // punpcklbw xmm2, xmm14 + LONG $0xda6f0f66 // movdqa xmm3, xmm2 + LONG $0xd8610f66 // punpcklwd xmm3, xmm0 + LONG $0xd0690f66 // punpckhwd xmm2, xmm0 + LONG $0x680f4466; BYTE $0xd1 // punpckhbw xmm10, xmm1 + LONG $0x680f4166; BYTE $0xe6 // punpckhbw xmm4, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x610f4166; BYTE $0xc2 // punpcklwd xmm0, xmm10 + LONG $0x690f4166; BYTE $0xe2 // punpckhwd xmm4, xmm10 + QUAD $0x00000150248c8b48 // mov rcx, qword [rsp + 336] + LONG $0x7f0f41f3; WORD $0x8e64; BYTE $0x30 // movdqu oword [r14 + 4*rcx + 48], xmm4 + LONG $0x7f0f41f3; WORD $0x8e44; BYTE $0x20 // movdqu oword [r14 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8e54; BYTE $0x10 // movdqu oword [r14 + 4*rcx + 16], xmm2 + LONG $0x7f0f41f3; WORD $0x8e1c // movdqu oword [r14 + 4*rcx], xmm3 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xca // mov rdx, rcx + QUAD $0x000001a0248c3b48 // cmp rcx, qword [rsp + 416] + JNE LBB10_195 + QUAD $0x000001d024bc8b4c // mov r15, qword [rsp + 464] + QUAD $0x000001a024bc3b4c // cmp r15, qword [rsp + 416] + LONG $0x245c8a44; BYTE $0x08 // mov r11b, byte [rsp + 8] + QUAD $0x0000018824b48b48 // mov rsi, qword [rsp + 392] + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + JNE LBB10_67 + JMP LBB10_132 + +LBB10_197: + WORD $0x894c; BYTE $0xf8 // mov rax, r15 + LONG $0xf8e08348 // and rax, -8 + WORD $0x8949; BYTE $0xc3 // mov r11, rax + LONG $0x06e3c149 // shl r11, 6 + WORD $0x0149; BYTE $0xf3 // add r11, rsi + QUAD $0x0000019024848948 // mov qword [rsp + 400], rax + LONG $0x86048d49 // lea rax, [r14 + 4*rax] + LONG $0x24448948; BYTE $0x08 // mov qword [rsp + 8], rax + QUAD $0x00018824846e0f66; BYTE $0x00 // movd xmm0, dword [rsp + 392] + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0xc0700f66; BYTE $0x00 // pshufd xmm0, xmm0, 0 + QUAD $0x0001d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 464], xmm0 + WORD $0x3145; BYTE $0xd2 // xor r10d, r10d + +LBB10_198: + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + LONG $0x06e1c149 // shl r9, 6 + WORD $0x894d; BYTE $0xc8 // mov r8, r9 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + WORD $0x894c; BYTE $0xcb // mov rbx, r9 + WORD $0x894d; BYTE $0xcf // mov r15, r9 + WORD $0x894d; BYTE $0xcc // mov r12, r9 + WORD $0x894d; BYTE $0xcd // mov r13, r9 + LONG $0x0cb70f42; BYTE $0x0e // movzx ecx, word [rsi + r9] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x4cb70f42; WORD $0x020e // movzx ecx, word [rsi + r9 + 2] + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0x447f0f66; WORD $0x1024 // movdqa oword [rsp + 16], xmm0 + LONG $0x4cb70f42; WORD $0x040e // movzx ecx, word [rsi + r9 + 4] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x4cb70f42; WORD $0x060e // movzx ecx, word [rsi + r9 + 6] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x4cb70f42; WORD $0x080e // movzx ecx, word [rsi + r9 + 8] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x4cb70f42; WORD $0x0a0e // movzx ecx, word [rsi + r9 + 10] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x4cb70f42; WORD $0x0c0e // movzx ecx, word [rsi + r9 + 12] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x4cb70f42; WORD $0x0e0e // movzx ecx, word [rsi + r9 + 14] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x4cb70f42; WORD $0x100e // movzx ecx, word [rsi + r9 + 16] + LONG $0xc96e0f66 // movd xmm1, ecx + LONG $0x4cb70f42; WORD $0x120e // movzx ecx, word [rsi + r9 + 18] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x4cb70f42; WORD $0x140e // movzx ecx, word [rsi + r9 + 20] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x4cb70f42; WORD $0x160e // movzx ecx, word [rsi + r9 + 22] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x4cb70f42; WORD $0x180e // movzx ecx, word [rsi + r9 + 24] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x4cb70f42; WORD $0x1a0e // movzx ecx, word [rsi + r9 + 26] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x44b70f42; WORD $0x1c0e // movzx eax, word [rsi + r9 + 28] + LONG $0x54b70f42; WORD $0x1e0e // movzx edx, word [rsi + r9 + 30] + WORD $0x894c; BYTE $0xc9 // mov rcx, r9 + LONG $0x40c98348 // or rcx, 64 + LONG $0x80c88149; WORD $0x0000; BYTE $0x00 // or r8, 128 + LONG $0xc0cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 192 + LONG $0x00cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 256 + LONG $0x40cf8149; WORD $0x0001; BYTE $0x00 // or r15, 320 + LONG $0x80cc8149; WORD $0x0001; BYTE $0x00 // or r12, 384 + LONG $0xc0cd8149; WORD $0x0001; BYTE $0x00 // or r13, 448 + LONG $0xc40f4466; WORD $0x0e1c; BYTE $0x01 // pinsrw xmm11, word [rsi + rcx], 1 + LONG $0xc40f4666; WORD $0x061c; BYTE $0x02 // pinsrw xmm11, word [rsi + r8], 2 + LONG $0xc40f4466; WORD $0x3e1c; BYTE $0x03 // pinsrw xmm11, word [rsi + rdi], 3 + LONG $0xc40f4466; WORD $0x1e1c; BYTE $0x04 // pinsrw xmm11, word [rsi + rbx], 4 + LONG $0xc40f4666; WORD $0x3e1c; BYTE $0x05 // pinsrw xmm11, word [rsi + r15], 5 + LONG $0xc40f4666; WORD $0x261c; BYTE $0x06 // pinsrw xmm11, word [rsi + r12], 6 + LONG $0xc40f4666; WORD $0x2e1c; BYTE $0x07 // pinsrw xmm11, word [rsi + r13], 7 + LONG $0x6e0f4466; BYTE $0xf8 // movd xmm15, eax + QUAD $0x0001d024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 464] + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0x650f4166; BYTE $0xfb // pcmpgtw xmm7, xmm11 + QUAD $0x00016024bc7f0f66; BYTE $0x00 // movdqa oword [rsp + 352], xmm7 + LONG $0x7c6f0f66; WORD $0x1024 // movdqa xmm7, oword [rsp + 16] + LONG $0x7cc40f66; WORD $0x020e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 2], 1 + QUAD $0x0202067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 2], 2 + LONG $0x7cc40f66; WORD $0x023e; BYTE $0x03 // pinsrw xmm7, word [rsi + rdi + 2], 3 + LONG $0x7cc40f66; WORD $0x021e; BYTE $0x04 // pinsrw xmm7, word [rsi + rbx + 2], 4 + QUAD $0x05023e7cc40f4266 // pinsrw xmm7, word [rsi + r15 + 2], 5 + QUAD $0x0602267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 2], 6 + QUAD $0x07022e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 2], 7 + LONG $0x6f0f4466; BYTE $0xd8 // movdqa xmm11, xmm0 + QUAD $0x01040e4cc40f4466 // pinsrw xmm9, word [rsi + rcx + 4], 1 + QUAD $0x0204064cc40f4666 // pinsrw xmm9, word [rsi + r8 + 4], 2 + QUAD $0x03043e4cc40f4466 // pinsrw xmm9, word [rsi + rdi + 4], 3 + QUAD $0x04041e4cc40f4466 // pinsrw xmm9, word [rsi + rbx + 4], 4 + QUAD $0x05043e4cc40f4666 // pinsrw xmm9, word [rsi + r15 + 4], 5 + QUAD $0x0604264cc40f4666 // pinsrw xmm9, word [rsi + r12 + 4], 6 + LONG $0x650f4466; BYTE $0xdf // pcmpgtw xmm11, xmm7 + QUAD $0x07042e4cc40f4666 // pinsrw xmm9, word [rsi + r13 + 4], 7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0x650f4166; BYTE $0xf9 // pcmpgtw xmm7, xmm9 + LONG $0x7c7f0f66; WORD $0x5024 // movdqa oword [rsp + 80], xmm7 + QUAD $0x01060e54c40f4466 // pinsrw xmm10, word [rsi + rcx + 6], 1 + QUAD $0x02060654c40f4666 // pinsrw xmm10, word [rsi + r8 + 6], 2 + QUAD $0x03063e54c40f4466 // pinsrw xmm10, word [rsi + rdi + 6], 3 + QUAD $0x04061e54c40f4466 // pinsrw xmm10, word [rsi + rbx + 6], 4 + QUAD $0x05063e54c40f4666 // pinsrw xmm10, word [rsi + r15 + 6], 5 + QUAD $0x06062654c40f4666 // pinsrw xmm10, word [rsi + r12 + 6], 6 + QUAD $0x07062e54c40f4666 // pinsrw xmm10, word [rsi + r13 + 6], 7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + QUAD $0x01080e64c40f4466 // pinsrw xmm12, word [rsi + rcx + 8], 1 + QUAD $0x02080664c40f4666 // pinsrw xmm12, word [rsi + r8 + 8], 2 + QUAD $0x03083e64c40f4466 // pinsrw xmm12, word [rsi + rdi + 8], 3 + QUAD $0x04081e64c40f4466 // pinsrw xmm12, word [rsi + rbx + 8], 4 + QUAD $0x05083e64c40f4666 // pinsrw xmm12, word [rsi + r15 + 8], 5 + QUAD $0x06082664c40f4666 // pinsrw xmm12, word [rsi + r12 + 8], 6 + QUAD $0x07082e64c40f4666 // pinsrw xmm12, word [rsi + r13 + 8], 7 + LONG $0x650f4166; BYTE $0xfa // pcmpgtw xmm7, xmm10 + LONG $0x7c7f0f66; WORD $0x7024 // movdqa oword [rsp + 112], xmm7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0x650f4166; BYTE $0xfc // pcmpgtw xmm7, xmm12 + LONG $0x7c7f0f66; WORD $0x2024 // movdqa oword [rsp + 32], xmm7 + QUAD $0x010a0e6cc40f4466 // pinsrw xmm13, word [rsi + rcx + 10], 1 + QUAD $0x020a066cc40f4666 // pinsrw xmm13, word [rsi + r8 + 10], 2 + QUAD $0x030a3e6cc40f4466 // pinsrw xmm13, word [rsi + rdi + 10], 3 + QUAD $0x040a1e6cc40f4466 // pinsrw xmm13, word [rsi + rbx + 10], 4 + QUAD $0x050a3e6cc40f4666 // pinsrw xmm13, word [rsi + r15 + 10], 5 + QUAD $0x060a266cc40f4666 // pinsrw xmm13, word [rsi + r12 + 10], 6 + QUAD $0x070a2e6cc40f4666 // pinsrw xmm13, word [rsi + r13 + 10], 7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + QUAD $0x010c0e74c40f4466 // pinsrw xmm14, word [rsi + rcx + 12], 1 + QUAD $0x020c0674c40f4666 // pinsrw xmm14, word [rsi + r8 + 12], 2 + QUAD $0x030c3e74c40f4466 // pinsrw xmm14, word [rsi + rdi + 12], 3 + QUAD $0x040c1e74c40f4466 // pinsrw xmm14, word [rsi + rbx + 12], 4 + QUAD $0x050c3e74c40f4666 // pinsrw xmm14, word [rsi + r15 + 12], 5 + QUAD $0x060c2674c40f4666 // pinsrw xmm14, word [rsi + r12 + 12], 6 + LONG $0x650f4166; BYTE $0xfd // pcmpgtw xmm7, xmm13 + QUAD $0x00008024bc7f0f66; BYTE $0x00 // movdqa oword [rsp + 128], xmm7 + QUAD $0x070c2e74c40f4666 // pinsrw xmm14, word [rsi + r13 + 12], 7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0x650f4166; BYTE $0xfe // pcmpgtw xmm7, xmm14 + LONG $0x6f0f4466; BYTE $0xf7 // movdqa xmm14, xmm7 + QUAD $0x010e0e44c40f4466 // pinsrw xmm8, word [rsi + rcx + 14], 1 + QUAD $0x020e0644c40f4666 // pinsrw xmm8, word [rsi + r8 + 14], 2 + QUAD $0x030e3e44c40f4466 // pinsrw xmm8, word [rsi + rdi + 14], 3 + QUAD $0x040e1e44c40f4466 // pinsrw xmm8, word [rsi + rbx + 14], 4 + QUAD $0x050e3e44c40f4666 // pinsrw xmm8, word [rsi + r15 + 14], 5 + QUAD $0x060e2644c40f4666 // pinsrw xmm8, word [rsi + r12 + 14], 6 + QUAD $0x070e2e44c40f4666 // pinsrw xmm8, word [rsi + r13 + 14], 7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0x4cc40f66; WORD $0x100e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 16], 1 + QUAD $0x0210064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 16], 2 + LONG $0x4cc40f66; WORD $0x103e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 16], 3 + LONG $0x4cc40f66; WORD $0x101e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 16], 4 + QUAD $0x05103e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 16], 5 + QUAD $0x0610264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 16], 6 + QUAD $0x07102e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 16], 7 + LONG $0x650f4166; BYTE $0xf8 // pcmpgtw xmm7, xmm8 + LONG $0x7c7f0f66; WORD $0x6024 // movdqa oword [rsp + 96], xmm7 + LONG $0xf86f0f66 // movdqa xmm7, xmm0 + LONG $0xf9650f66 // pcmpgtw xmm7, xmm1 + QUAD $0x0001b024bc7f0f66; BYTE $0x00 // movdqa oword [rsp + 432], xmm7 + LONG $0x54c40f66; WORD $0x120e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 18], 1 + QUAD $0x02120654c40f4266 // pinsrw xmm2, word [rsi + r8 + 18], 2 + LONG $0x54c40f66; WORD $0x123e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 18], 3 + LONG $0x54c40f66; WORD $0x121e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 18], 4 + QUAD $0x05123e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 18], 5 + QUAD $0x06122654c40f4266 // pinsrw xmm2, word [rsi + r12 + 18], 6 + QUAD $0x07122e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 18], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0x5cc40f66; WORD $0x140e; BYTE $0x01 // pinsrw xmm3, word [rsi + rcx + 20], 1 + QUAD $0x0214065cc40f4266 // pinsrw xmm3, word [rsi + r8 + 20], 2 + LONG $0x5cc40f66; WORD $0x143e; BYTE $0x03 // pinsrw xmm3, word [rsi + rdi + 20], 3 + LONG $0x5cc40f66; WORD $0x141e; BYTE $0x04 // pinsrw xmm3, word [rsi + rbx + 20], 4 + QUAD $0x05143e5cc40f4266 // pinsrw xmm3, word [rsi + r15 + 20], 5 + QUAD $0x0614265cc40f4266 // pinsrw xmm3, word [rsi + r12 + 20], 6 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + QUAD $0x07142e5cc40f4266 // pinsrw xmm3, word [rsi + r13 + 20], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcb650f66 // pcmpgtw xmm1, xmm3 + LONG $0x4c7f0f66; WORD $0x3024 // movdqa oword [rsp + 48], xmm1 + LONG $0x64c40f66; WORD $0x160e; BYTE $0x01 // pinsrw xmm4, word [rsi + rcx + 22], 1 + QUAD $0x02160664c40f4266 // pinsrw xmm4, word [rsi + r8 + 22], 2 + LONG $0x64c40f66; WORD $0x163e; BYTE $0x03 // pinsrw xmm4, word [rsi + rdi + 22], 3 + LONG $0x64c40f66; WORD $0x161e; BYTE $0x04 // pinsrw xmm4, word [rsi + rbx + 22], 4 + QUAD $0x05163e64c40f4266 // pinsrw xmm4, word [rsi + r15 + 22], 5 + QUAD $0x06162664c40f4266 // pinsrw xmm4, word [rsi + r12 + 22], 6 + QUAD $0x07162e64c40f4266 // pinsrw xmm4, word [rsi + r13 + 22], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0x6cc40f66; WORD $0x180e; BYTE $0x01 // pinsrw xmm5, word [rsi + rcx + 24], 1 + QUAD $0x0218066cc40f4266 // pinsrw xmm5, word [rsi + r8 + 24], 2 + LONG $0x6cc40f66; WORD $0x183e; BYTE $0x03 // pinsrw xmm5, word [rsi + rdi + 24], 3 + LONG $0x6cc40f66; WORD $0x181e; BYTE $0x04 // pinsrw xmm5, word [rsi + rbx + 24], 4 + QUAD $0x05183e6cc40f4266 // pinsrw xmm5, word [rsi + r15 + 24], 5 + QUAD $0x0618266cc40f4266 // pinsrw xmm5, word [rsi + r12 + 24], 6 + QUAD $0x07182e6cc40f4266 // pinsrw xmm5, word [rsi + r13 + 24], 7 + LONG $0xcc650f66 // pcmpgtw xmm1, xmm4 + QUAD $0x0000c0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xcd650f66 // pcmpgtw xmm1, xmm5 + LONG $0x4c7f0f66; WORD $0x1024 // movdqa oword [rsp + 16], xmm1 + LONG $0x74c40f66; WORD $0x1a0e; BYTE $0x01 // pinsrw xmm6, word [rsi + rcx + 26], 1 + QUAD $0x021a0674c40f4266 // pinsrw xmm6, word [rsi + r8 + 26], 2 + LONG $0x74c40f66; WORD $0x1a3e; BYTE $0x03 // pinsrw xmm6, word [rsi + rdi + 26], 3 + LONG $0x74c40f66; WORD $0x1a1e; BYTE $0x04 // pinsrw xmm6, word [rsi + rbx + 26], 4 + QUAD $0x051a3e74c40f4266 // pinsrw xmm6, word [rsi + r15 + 26], 5 + QUAD $0x061a2674c40f4266 // pinsrw xmm6, word [rsi + r12 + 26], 6 + QUAD $0x071a2e74c40f4266 // pinsrw xmm6, word [rsi + r13 + 26], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + QUAD $0x011c0e7cc40f4466 // pinsrw xmm15, word [rsi + rcx + 28], 1 + QUAD $0x021c067cc40f4666 // pinsrw xmm15, word [rsi + r8 + 28], 2 + QUAD $0x031c3e7cc40f4466 // pinsrw xmm15, word [rsi + rdi + 28], 3 + QUAD $0x041c1e7cc40f4466 // pinsrw xmm15, word [rsi + rbx + 28], 4 + QUAD $0x051c3e7cc40f4666 // pinsrw xmm15, word [rsi + r15 + 28], 5 + QUAD $0x061c267cc40f4666 // pinsrw xmm15, word [rsi + r12 + 28], 6 + LONG $0xce650f66 // pcmpgtw xmm1, xmm6 + QUAD $0x0000d0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm1 + QUAD $0x071c2e7cc40f4666 // pinsrw xmm15, word [rsi + r13 + 28], 7 + LONG $0xca6e0f66 // movd xmm1, edx + LONG $0x4cc40f66; WORD $0x1e0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 30], 1 + QUAD $0x021e064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 30], 2 + LONG $0x4cc40f66; WORD $0x1e3e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 30], 3 + LONG $0x4cc40f66; WORD $0x1e1e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 30], 4 + QUAD $0x051e3e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 30], 5 + QUAD $0x061e264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 30], 6 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0x650f4166; BYTE $0xd7 // pcmpgtw xmm2, xmm15 + QUAD $0x0000f024947f0f66; BYTE $0x00 // movdqa oword [rsp + 240], xmm2 + QUAD $0x071e2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 30], 7 + LONG $0xd06f0f66 // movdqa xmm2, xmm0 + LONG $0xd1650f66 // pcmpgtw xmm2, xmm1 + QUAD $0x00009024947f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm2 + LONG $0x44b70f42; WORD $0x200e // movzx eax, word [rsi + r9 + 32] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x200e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 32], 1 + QUAD $0x0220064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 32], 2 + LONG $0x4cc40f66; WORD $0x203e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 32], 3 + LONG $0x4cc40f66; WORD $0x201e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 32], 4 + QUAD $0x05203e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 32], 5 + QUAD $0x0620264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 32], 6 + QUAD $0x07202e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 32], 7 + LONG $0x44b70f42; WORD $0x220e // movzx eax, word [rsi + r9 + 34] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x220e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 34], 1 + QUAD $0x02220654c40f4266 // pinsrw xmm2, word [rsi + r8 + 34], 2 + LONG $0x54c40f66; WORD $0x223e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 34], 3 + LONG $0x54c40f66; WORD $0x221e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 34], 4 + QUAD $0x05223e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 34], 5 + QUAD $0x06222654c40f4266 // pinsrw xmm2, word [rsi + r12 + 34], 6 + QUAD $0x07222e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 34], 7 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9650f66 // pcmpgtw xmm3, xmm1 + QUAD $0x0000e0249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm3 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x000120248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 288], xmm1 + LONG $0x44b70f42; WORD $0x240e // movzx eax, word [rsi + r9 + 36] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x240e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 36], 1 + QUAD $0x0224064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 36], 2 + LONG $0x4cc40f66; WORD $0x243e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 36], 3 + LONG $0x4cc40f66; WORD $0x241e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 36], 4 + QUAD $0x05243e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 36], 5 + QUAD $0x0624264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 36], 6 + LONG $0x44b70f42; WORD $0x260e // movzx eax, word [rsi + r9 + 38] + QUAD $0x07242e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 36], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x260e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 38], 1 + QUAD $0x02260654c40f4266 // pinsrw xmm2, word [rsi + r8 + 38], 2 + LONG $0x54c40f66; WORD $0x263e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 38], 3 + LONG $0x54c40f66; WORD $0x261e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 38], 4 + QUAD $0x05263e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 38], 5 + QUAD $0x06262654c40f4266 // pinsrw xmm2, word [rsi + r12 + 38], 6 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9650f66 // pcmpgtw xmm3, xmm1 + QUAD $0x000100249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm3 + QUAD $0x07262e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 38], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x000110248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 272], xmm1 + LONG $0x44b70f42; WORD $0x280e // movzx eax, word [rsi + r9 + 40] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x280e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 40], 1 + QUAD $0x0228064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 40], 2 + LONG $0x4cc40f66; WORD $0x283e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 40], 3 + LONG $0x4cc40f66; WORD $0x281e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 40], 4 + QUAD $0x05283e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 40], 5 + QUAD $0x0628264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 40], 6 + QUAD $0x07282e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 40], 7 + LONG $0x44b70f42; WORD $0x2a0e // movzx eax, word [rsi + r9 + 42] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x2a0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 42], 1 + QUAD $0x022a0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 42], 2 + LONG $0x54c40f66; WORD $0x2a3e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 42], 3 + LONG $0x54c40f66; WORD $0x2a1e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 42], 4 + QUAD $0x052a3e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 42], 5 + QUAD $0x062a2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 42], 6 + QUAD $0x072a2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 42], 7 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9650f66 // pcmpgtw xmm3, xmm1 + QUAD $0x000130249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 304], xmm3 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x000150248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 336], xmm1 + LONG $0x44b70f42; WORD $0x2c0e // movzx eax, word [rsi + r9 + 44] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x2c0e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 44], 1 + QUAD $0x022c064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 44], 2 + LONG $0x4cc40f66; WORD $0x2c3e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 44], 3 + LONG $0x4cc40f66; WORD $0x2c1e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 44], 4 + QUAD $0x052c3e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 44], 5 + QUAD $0x062c264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 44], 6 + LONG $0x44b70f42; WORD $0x2e0e // movzx eax, word [rsi + r9 + 46] + QUAD $0x072c2e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 44], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x2e0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 46], 1 + QUAD $0x022e0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 46], 2 + LONG $0x54c40f66; WORD $0x2e3e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 46], 3 + LONG $0x54c40f66; WORD $0x2e1e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 46], 4 + QUAD $0x052e3e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 46], 5 + QUAD $0x062e2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 46], 6 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9650f66 // pcmpgtw xmm3, xmm1 + QUAD $0x000140249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 320], xmm3 + QUAD $0x072e2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 46], 7 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x0000a0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm1 + LONG $0x44b70f42; WORD $0x300e // movzx eax, word [rsi + r9 + 48] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x300e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 48], 1 + QUAD $0x0230064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 48], 2 + LONG $0x4cc40f66; WORD $0x303e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 48], 3 + LONG $0x4cc40f66; WORD $0x301e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 48], 4 + QUAD $0x05303e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 48], 5 + QUAD $0x0630264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 48], 6 + QUAD $0x07302e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 48], 7 + LONG $0x44b70f42; WORD $0x320e // movzx eax, word [rsi + r9 + 50] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x320e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 50], 1 + QUAD $0x02320654c40f4266 // pinsrw xmm2, word [rsi + r8 + 50], 2 + LONG $0x54c40f66; WORD $0x323e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 50], 3 + LONG $0x54c40f66; WORD $0x321e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 50], 4 + QUAD $0x05323e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 50], 5 + QUAD $0x06322654c40f4266 // pinsrw xmm2, word [rsi + r12 + 50], 6 + QUAD $0x07322e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 50], 7 + LONG $0x6f0f4466; BYTE $0xe8 // movdqa xmm13, xmm0 + LONG $0x650f4466; BYTE $0xe9 // pcmpgtw xmm13, xmm1 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xca650f66 // pcmpgtw xmm1, xmm2 + QUAD $0x000170248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 368], xmm1 + LONG $0x44b70f42; WORD $0x340e // movzx eax, word [rsi + r9 + 52] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x340e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 52], 1 + QUAD $0x0234064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 52], 2 + LONG $0x4cc40f66; WORD $0x343e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 52], 3 + LONG $0x4cc40f66; WORD $0x341e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 52], 4 + QUAD $0x05343e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 52], 5 + QUAD $0x0634264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 52], 6 + LONG $0x44b70f42; WORD $0x360e // movzx eax, word [rsi + r9 + 54] + QUAD $0x07342e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 52], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x360e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 54], 1 + QUAD $0x02360654c40f4266 // pinsrw xmm2, word [rsi + r8 + 54], 2 + LONG $0x54c40f66; WORD $0x363e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 54], 3 + LONG $0x54c40f66; WORD $0x361e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 54], 4 + QUAD $0x05363e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 54], 5 + QUAD $0x06362654c40f4266 // pinsrw xmm2, word [rsi + r12 + 54], 6 + LONG $0xd86f0f66 // movdqa xmm3, xmm0 + LONG $0xd9650f66 // pcmpgtw xmm3, xmm1 + QUAD $0x0001a0249c7f0f66; BYTE $0x00 // movdqa oword [rsp + 416], xmm3 + QUAD $0x07362e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 54], 7 + LONG $0x6f0f4466; BYTE $0xf8 // movdqa xmm15, xmm0 + LONG $0x650f4466; BYTE $0xfa // pcmpgtw xmm15, xmm2 + LONG $0x44b70f42; WORD $0x380e // movzx eax, word [rsi + r9 + 56] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x4cc40f66; WORD $0x380e; BYTE $0x01 // pinsrw xmm1, word [rsi + rcx + 56], 1 + QUAD $0x0238064cc40f4266 // pinsrw xmm1, word [rsi + r8 + 56], 2 + LONG $0x4cc40f66; WORD $0x383e; BYTE $0x03 // pinsrw xmm1, word [rsi + rdi + 56], 3 + LONG $0x4cc40f66; WORD $0x381e; BYTE $0x04 // pinsrw xmm1, word [rsi + rbx + 56], 4 + QUAD $0x05383e4cc40f4266 // pinsrw xmm1, word [rsi + r15 + 56], 5 + QUAD $0x0638264cc40f4266 // pinsrw xmm1, word [rsi + r12 + 56], 6 + QUAD $0x07382e4cc40f4266 // pinsrw xmm1, word [rsi + r13 + 56], 7 + LONG $0x44b70f42; WORD $0x3a0e // movzx eax, word [rsi + r9 + 58] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x3a0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 58], 1 + QUAD $0x023a0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 58], 2 + LONG $0x54c40f66; WORD $0x3a3e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 58], 3 + LONG $0x54c40f66; WORD $0x3a1e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 58], 4 + QUAD $0x053a3e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 58], 5 + QUAD $0x063a2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 58], 6 + QUAD $0x073a2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 58], 7 + LONG $0x6f0f4466; BYTE $0xc8 // movdqa xmm9, xmm0 + LONG $0x650f4466; BYTE $0xc9 // pcmpgtw xmm9, xmm1 + LONG $0x6f0f4466; BYTE $0xe0 // movdqa xmm12, xmm0 + LONG $0x650f4466; BYTE $0xe2 // pcmpgtw xmm12, xmm2 + LONG $0x44b70f42; WORD $0x3c0e // movzx eax, word [rsi + r9 + 60] + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x54c40f66; WORD $0x3c0e; BYTE $0x01 // pinsrw xmm2, word [rsi + rcx + 60], 1 + QUAD $0x023c0654c40f4266 // pinsrw xmm2, word [rsi + r8 + 60], 2 + LONG $0x54c40f66; WORD $0x3c3e; BYTE $0x03 // pinsrw xmm2, word [rsi + rdi + 60], 3 + LONG $0x54c40f66; WORD $0x3c1e; BYTE $0x04 // pinsrw xmm2, word [rsi + rbx + 60], 4 + QUAD $0x053c3e54c40f4266 // pinsrw xmm2, word [rsi + r15 + 60], 5 + QUAD $0x063c2654c40f4266 // pinsrw xmm2, word [rsi + r12 + 60], 6 + LONG $0x44b70f42; WORD $0x3e0e // movzx eax, word [rsi + r9 + 62] + QUAD $0x073c2e54c40f4266 // pinsrw xmm2, word [rsi + r13 + 60], 7 + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x7cc40f66; WORD $0x3e0e; BYTE $0x01 // pinsrw xmm7, word [rsi + rcx + 62], 1 + QUAD $0x023e067cc40f4266 // pinsrw xmm7, word [rsi + r8 + 62], 2 + LONG $0x7cc40f66; WORD $0x3e3e; BYTE $0x03 // pinsrw xmm7, word [rsi + rdi + 62], 3 + LONG $0x7cc40f66; WORD $0x3e1e; BYTE $0x04 // pinsrw xmm7, word [rsi + rbx + 62], 4 + QUAD $0x053e3e7cc40f4266 // pinsrw xmm7, word [rsi + r15 + 62], 5 + QUAD $0x063e267cc40f4266 // pinsrw xmm7, word [rsi + r12 + 62], 6 + LONG $0xe86f0f66 // movdqa xmm5, xmm0 + LONG $0xea650f66 // pcmpgtw xmm5, xmm2 + QUAD $0x073e2e7cc40f4266 // pinsrw xmm7, word [rsi + r13 + 62], 7 + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0xf7650f66 // pcmpgtw xmm6, xmm7 + LONG $0x630f4566; BYTE $0xdb // packsswb xmm11, xmm11 + QUAD $0x000000808d6f0f66 // movdqa xmm1, oword 128[rbp] /* [rip + .LCPI10_8] */ + LONG $0xf96f0f66 // movdqa xmm7, xmm1 + LONG $0xd96f0f66 // movdqa xmm3, xmm1 + LONG $0x6f0f4166; BYTE $0xc3 // movdqa xmm0, xmm11 + LONG $0xe4ef0f66 // pxor xmm4, xmm4 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0x546f0f66; WORD $0x5024 // movdqa xmm2, oword [rsp + 80] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x000000908d6f0f66 // movdqa xmm1, oword 144[rbp] /* [rip + .LCPI10_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xd2760f66 // pcmpeqd xmm2, xmm2 + QUAD $0x00016024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 352] + LONG $0xc2ef0f66 // pxor xmm0, xmm2 + LONG $0x760f4566; BYTE $0xc0 // pcmpeqd xmm8, xmm8 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf8f80f66 // psubb xmm7, xmm0 + LONG $0x546f0f66; WORD $0x7024 // movdqa xmm2, oword [rsp + 112] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x0000a09d6f0f4466; BYTE $0x00 // movdqa xmm11, oword 160[rbp] /* [rip + .LCPI10_10] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4466; WORD $0xdc10 // pblendvb xmm11, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xd9 // por xmm11, xmm1 + LONG $0x546f0f66; WORD $0x2024 // movdqa xmm2, oword [rsp + 32] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x000000b08d6f0f66 // movdqa xmm1, oword 176[rbp] /* [rip + .LCPI10_11] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xdf // por xmm11, xmm7 + QUAD $0x00008024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 128] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x0000c0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 192[rbp] /* [rip + .LCPI10_12] */ + LONG $0x6f0f4166; BYTE $0xfa // movdqa xmm7, xmm10 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0x630f4566; BYTE $0xf6 // packsswb xmm14, xmm14 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI10_13] */ + LONG $0x6f0f4166; BYTE $0xc6 // movdqa xmm0, xmm14 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xcfeb0f66 // por xmm1, xmm7 + LONG $0x546f0f66; WORD $0x6024 // movdqa xmm2, oword [rsp + 96] + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x0000e0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 224[rbp] /* [rip + .LCPI10_14] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4466; WORD $0xf410 // pblendvb xmm14, xmm4, xmm0 + LONG $0xeb0f4166; BYTE $0xcb // por xmm1, xmm11 + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x6f0f4466; BYTE $0xdb // movdqa xmm11, xmm3 + LONG $0xfb6f0f66 // movdqa xmm7, xmm3 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xf1 // por xmm14, xmm1 + QUAD $0x0001b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 432] + LONG $0xef0f4166; BYTE $0xc0 // pxor xmm0, xmm8 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf8f80f66 // psubb xmm7, xmm0 + LONG $0x446f0f66; WORD $0x3024 // movdqa xmm0, oword [rsp + 48] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000909d6f0f66 // movdqa xmm3, oword 144[rbp] /* [rip + .LCPI10_9] */ + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + QUAD $0x0000c024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 192] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x0000a0856f0f4466; BYTE $0x00 // movdqa xmm8, oword 160[rbp] /* [rip + .LCPI10_10] */ + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x446f0f66; WORD $0x1024 // movdqa xmm0, oword [rsp + 16] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000b08d6f0f66 // movdqa xmm1, oword 176[rbp] /* [rip + .LCPI10_11] */ + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + QUAD $0x0000d024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 208] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x380f4466; WORD $0xd410 // pblendvb xmm10, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x0000f024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 240] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI10_13] */ + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xeb0f4166; BYTE $0xca // por xmm1, xmm10 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x00009024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 144] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x0000e0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 224[rbp] /* [rip + .LCPI10_14] */ + LONG $0x380f4466; WORD $0xd410 // pblendvb xmm10, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + QUAD $0x00012024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 288] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x6f0f4166; BYTE $0xcb // movdqa xmm1, xmm11 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + QUAD $0x00010024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 256] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xd36f0f66 // movdqa xmm2, xmm3 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + QUAD $0x0000e024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 224] + QUAD $0x0000016085ef0f66 // pxor xmm0, oword 352[rbp] /* [rip + .LCPI10_22] */ + LONG $0xdb760f66 // pcmpeqd xmm3, xmm3 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + QUAD $0x00011024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 272] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x6f0f4166; BYTE $0xf8 // movdqa xmm7, xmm8 + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0x00013024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 304] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x0150249c6f0f4466; WORD $0x0000 // movdqa xmm11, oword [rsp + 336] + LONG $0x630f4566; BYTE $0xdb // packsswb xmm11, xmm11 + LONG $0xf9eb0f66 // por xmm7, xmm1 + QUAD $0x000000b08d6f0f66 // movdqa xmm1, oword 176[rbp] /* [rip + .LCPI10_11] */ + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI10_12] */ + LONG $0x6f0f4166; BYTE $0xc3 // movdqa xmm0, xmm11 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + QUAD $0x00014024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 320] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xd1eb0f66 // por xmm2, xmm1 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI10_13] */ + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x0000a024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 160] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + QUAD $0x0170249c6f0f4466; WORD $0x0000 // movdqa xmm11, oword [rsp + 368] + LONG $0x630f4566; BYTE $0xdb // packsswb xmm11, xmm11 + LONG $0xcfeb0f66 // por xmm1, xmm7 + QUAD $0x000000e0bd6f0f66 // movdqa xmm7, oword 224[rbp] /* [rip + .LCPI10_14] */ + LONG $0x10380f66; BYTE $0xfc // pblendvb xmm7, xmm4, xmm0 + QUAD $0x00000080956f0f66 // movdqa xmm2, oword 128[rbp] /* [rip + .LCPI10_8] */ + LONG $0x6f0f4166; BYTE $0xc3 // movdqa xmm0, xmm11 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xf9eb0f66 // por xmm7, xmm1 + LONG $0xef0f4466; BYTE $0xeb // pxor xmm13, xmm3 + LONG $0x630f4566; BYTE $0xed // packsswb xmm13, xmm13 + QUAD $0x0001a024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 416] + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x630f4566; BYTE $0xff // packsswb xmm15, xmm15 + LONG $0xf80f4166; BYTE $0xd5 // psubb xmm2, xmm13 + QUAD $0x000000908d6f0f66 // movdqa xmm1, oword 144[rbp] /* [rip + .LCPI10_9] */ + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0x6f0f4166; BYTE $0xc7 // movdqa xmm0, xmm15 + LONG $0x380f4466; WORD $0xc410 // pblendvb xmm8, xmm4, xmm0 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0x630f4566; BYTE $0xc9 // packsswb xmm9, xmm9 + LONG $0x630f4566; BYTE $0xe4 // packsswb xmm12, xmm12 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + QUAD $0x000000b08d6f0f66 // movdqa xmm1, oword 176[rbp] /* [rip + .LCPI10_11] */ + LONG $0x6f0f4166; BYTE $0xc1 // movdqa xmm0, xmm9 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + QUAD $0x000000c0956f0f66 // movdqa xmm2, oword 192[rbp] /* [rip + .LCPI10_12] */ + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xd1eb0f66 // por xmm2, xmm1 + QUAD $0x000000d08d6f0f66 // movdqa xmm1, oword 208[rbp] /* [rip + .LCPI10_13] */ + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0x10380f66; BYTE $0xcc // pblendvb xmm1, xmm4, xmm0 + LONG $0xcaeb0f66 // por xmm1, xmm2 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + QUAD $0x000000e0956f0f66 // movdqa xmm2, oword 224[rbp] /* [rip + .LCPI10_14] */ + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x10380f66; BYTE $0xd4 // pblendvb xmm2, xmm4, xmm0 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0x6f0f4166; BYTE $0xc6 // movdqa xmm0, xmm14 + LONG $0x6c0f4166; BYTE $0xc2 // punpcklqdq xmm0, xmm10 + LONG $0xcf6f0f66 // movdqa xmm1, xmm7 + LONG $0xca6c0f66 // punpcklqdq xmm1, xmm2 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI10_15] */ + LONG $0x00380f66; BYTE $0xcb // pshufb xmm1, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc1610f66 // punpcklwd xmm0, xmm1 + LONG $0xfa600f66 // punpcklbw xmm7, xmm2 + LONG $0x600f4566; BYTE $0xf2 // punpcklbw xmm14, xmm10 + LONG $0x610f4466; BYTE $0xf7 // punpcklwd xmm14, xmm7 + LONG $0x7f0f47f3; WORD $0x9634 // movdqu oword [r14 + 4*r10], xmm14 + LONG $0x7f0f43f3; WORD $0x9644; BYTE $0x10 // movdqu oword [r14 + 4*r10 + 16], xmm0 + LONG $0x08c28349 // add r10, 8 + QUAD $0x0000019024943b4c // cmp r10, qword [rsp + 400] + JNE LBB10_198 + QUAD $0x000001c824bc8b4c // mov r15, qword [rsp + 456] + QUAD $0x0000019024bc3b4c // cmp r15, qword [rsp + 400] + LONG $0x24548b4c; BYTE $0x48 // mov r10, qword [rsp + 72] + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + JNE LBB10_101 + JMP LBB10_136 + +LBB10_200: + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xf3 // add rbx, rsi + LONG $0x863c8d4f // lea r15, [r14 + 4*r8] + LONG $0xeb280f45 // movaps xmm13, xmm11 + LONG $0xebc60f45; BYTE $0x00 // shufps xmm13, xmm11, 0 + LONG $0xfcc68148; WORD $0x0001; BYTE $0x00 // add rsi, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI10_0] */ + +LBB10_201: + QUAD $0xfffffe049e100ff3 // movss xmm3, dword [rsi - 508] + QUAD $0xfffe0896100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 504] + QUAD $0xfffe0c8e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 500] + QUAD $0xfffffe108e100ff3 // movss xmm1, dword [rsi - 496] + QUAD $0xfffe849e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 380], 16 + QUAD $0xffff049e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 252], 32 + LONG $0x213a0f66; WORD $0x845e; BYTE $0x30 // insertps xmm3, dword [rsi - 124], 48 + QUAD $0xfe8896213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 376], 16 + QUAD $0xff0896213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 248], 32 + QUAD $0x308856213a0f4466 // insertps xmm10, dword [rsi - 120], 48 + QUAD $0xfe8c8e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 372], 16 + QUAD $0xff0c8e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 244], 32 + QUAD $0x308c4e213a0f4466 // insertps xmm9, dword [rsi - 116], 48 + QUAD $0xfffe908e213a0f66; WORD $0x10ff // insertps xmm1, dword [rsi - 368], 16 + QUAD $0xffff108e213a0f66; WORD $0x20ff // insertps xmm1, dword [rsi - 240], 32 + LONG $0x213a0f66; WORD $0x904e; BYTE $0x30 // insertps xmm1, dword [rsi - 112], 48 + QUAD $0xfffe1486100f44f3; BYTE $0xff // movss xmm8, dword [rsi - 492] + QUAD $0xfe9486213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm8, dword [rsi - 364], 16 + QUAD $0xff1486213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm8, dword [rsi - 236], 32 + LONG $0xe5280f45 // movaps xmm12, xmm13 + QUAD $0x309446213a0f4466 // insertps xmm8, dword [rsi - 108], 48 + QUAD $0xfffffe1896100ff3 // movss xmm2, dword [rsi - 488] + QUAD $0xfffe9896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 360], 16 + QUAD $0xffff1896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 232], 32 + LONG $0xe3c20f44; BYTE $0x02 // cmpleps xmm12, xmm3 + LONG $0x213a0f66; WORD $0x9856; BYTE $0x30 // insertps xmm2, dword [rsi - 104], 48 + QUAD $0xfffffe1c9e100ff3 // movss xmm3, dword [rsi - 484] + QUAD $0xfffe9c9e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 356], 16 + QUAD $0xffff1c9e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 228], 32 + LONG $0x6b0f4566; BYTE $0xe4 // packssdw xmm12, xmm12 + LONG $0x213a0f66; WORD $0x9c5e; BYTE $0x30 // insertps xmm3, dword [rsi - 100], 48 + QUAD $0xfffffe24a6100ff3 // movss xmm4, dword [rsi - 476] + QUAD $0xfffea4a6213a0f66; WORD $0x10ff // insertps xmm4, dword [rsi - 348], 16 + QUAD $0xffff24a6213a0f66; WORD $0x20ff // insertps xmm4, dword [rsi - 220], 32 + LONG $0x630f4566; BYTE $0xe4 // packsswb xmm12, xmm12 + LONG $0x213a0f66; WORD $0xa466; BYTE $0x30 // insertps xmm4, dword [rsi - 92], 48 + LONG $0xfd280f41 // movaps xmm7, xmm13 + QUAD $0xfffffe44ae100ff3 // movss xmm5, dword [rsi - 444] + QUAD $0xfffec4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 316], 16 + QUAD $0xffff44ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 188], 32 + LONG $0x02fcc20f // cmpleps xmm7, xmm4 + LONG $0x213a0f66; WORD $0xc46e; BYTE $0x30 // insertps xmm5, dword [rsi - 60], 48 + LONG $0xf5280f41 // movaps xmm6, xmm13 + QUAD $0xfffffe6486100ff3 // movss xmm0, dword [rsi - 412] + QUAD $0xfffee486213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 284], 16 + QUAD $0xffff6486213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 156], 32 + LONG $0x02f5c20f // cmpleps xmm6, xmm5 + LONG $0x213a0f66; WORD $0xe446; BYTE $0x30 // insertps xmm0, dword [rsi - 28], 48 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x02e0c20f // cmpleps xmm4, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc2c20f41; BYTE $0x02 // cmpleps xmm0, xmm10 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x6f0f4466; BYTE $0xf0 // movdqa xmm14, xmm0 + LONG $0xdb0f4566; BYTE $0xf7 // pand xmm14, xmm15 + LONG $0xf80f4466; BYTE $0xf0 // psubb xmm14, xmm0 + QUAD $0xfffe2096100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 480] + QUAD $0xfea096213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 352], 16 + LONG $0xdb0f4566; BYTE $0xe7 // pand xmm12, xmm15 + QUAD $0xff2096213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 224], 32 + LONG $0xeb0f4566; BYTE $0xf4 // por xmm14, xmm12 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xe9c20f41; BYTE $0x02 // cmpleps xmm5, xmm9 + QUAD $0x30a056213a0f4466 // insertps xmm10, dword [rsi - 96], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI10_1] */ + LONG $0xe8db0f66 // pand xmm5, xmm0 + LONG $0xeb0f4166; BYTE $0xee // por xmm5, xmm14 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c1c20f // cmpleps xmm0, xmm1 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0xc8c20f41; BYTE $0x02 // cmpleps xmm1, xmm8 + QUAD $0xfffe288e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 472] + QUAD $0xfea88e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 344], 16 + QUAD $0xff288e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 216], 32 + QUAD $0x30a84e213a0f4466 // insertps xmm9, dword [rsi - 88], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0x6f0f4466; WORD $0x2075 // movdqa xmm14, oword 32[rbp] /* [rip + .LCPI10_2] */ + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x6f0f4466; WORD $0x3075 // movdqa xmm14, oword 48[rbp] /* [rip + .LCPI10_3] */ + LONG $0xdb0f4166; BYTE $0xce // pand xmm1, xmm14 + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffe2ca6100f44f3; BYTE $0xff // movss xmm12, dword [rsi - 468] + QUAD $0xfeaca6213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm12, dword [rsi - 340], 16 + QUAD $0xff2ca6213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm12, dword [rsi - 212], 32 + QUAD $0x30ac66213a0f4466 // insertps xmm12, dword [rsi - 84], 48 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c2c20f // cmpleps xmm0, xmm2 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0x02ebc20f // cmpleps xmm5, xmm3 + QUAD $0xfffffe3096100ff3 // movss xmm2, dword [rsi - 464] + QUAD $0xfffeb096213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 336], 16 + QUAD $0xffff3096213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 208], 32 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0x213a0f66; WORD $0xb056; BYTE $0x30 // insertps xmm2, dword [rsi - 80], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0x6f0f4466; WORD $0x4075 // movdqa xmm14, oword 64[rbp] /* [rip + .LCPI10_4] */ + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x06 // psllw xmm5, 6 + LONG $0x5d6f0f66; BYTE $0x50 // movdqa xmm3, oword 80[rbp] /* [rip + .LCPI10_5] */ + LONG $0xebdb0f66 // pand xmm5, xmm3 + LONG $0xe8eb0f66 // por xmm5, xmm0 + LONG $0xc5280f45 // movaps xmm8, xmm13 + LONG $0xc2c20f45; BYTE $0x02 // cmpleps xmm8, xmm10 + QUAD $0xfffffe349e100ff3 // movss xmm3, dword [rsi - 460] + QUAD $0xfffeb49e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 332], 16 + QUAD $0xffff349e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 204], 32 + LONG $0x213a0f66; WORD $0xb45e; BYTE $0x30 // insertps xmm3, dword [rsi - 76], 48 + LONG $0x6b0f4566; BYTE $0xc0 // packssdw xmm8, xmm8 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0x710f4166; WORD $0x07f0 // psllw xmm8, 7 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xdb0f4466; BYTE $0xc0 // pand xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc5 // por xmm8, xmm5 + QUAD $0xfffe3896100f44f3; BYTE $0xff // movss xmm10, dword [rsi - 456] + QUAD $0xfeb896213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm10, dword [rsi - 328], 16 + QUAD $0xff3896213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm10, dword [rsi - 200], 32 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x30b856213a0f4466 // insertps xmm10, dword [rsi - 72], 48 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc1c20f41; BYTE $0x02 // cmpleps xmm0, xmm9 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + QUAD $0xfffe3c8e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 452] + QUAD $0xfebc8e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 324], 16 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + QUAD $0xff3c8e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 196], 32 + LONG $0xcfeb0f66 // por xmm1, xmm7 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xecc20f41; BYTE $0x02 // cmpleps xmm5, xmm12 + QUAD $0x30bc4e213a0f4466 // insertps xmm9, dword [rsi - 68], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0x6ddb0f66; BYTE $0x10 // pand xmm5, oword 16[rbp] /* [rip + .LCPI10_1] */ + LONG $0xe9eb0f66 // por xmm5, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c2c20f // cmpleps xmm0, xmm2 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x02cbc20f // cmpleps xmm1, xmm3 + QUAD $0xfffffe409e100ff3 // movss xmm3, dword [rsi - 448] + QUAD $0xfffec09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 320], 16 + QUAD $0xffff409e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 192], 32 + LONG $0x213a0f66; WORD $0xc05e; BYTE $0x30 // insertps xmm3, dword [rsi - 64], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0x6f0f4466; WORD $0x2065 // movdqa xmm12, oword 32[rbp] /* [rip + .LCPI10_2] */ + LONG $0xdb0f4166; BYTE $0xc4 // pand xmm0, xmm12 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x4ddb0f66; BYTE $0x30 // pand xmm1, oword 48[rbp] /* [rip + .LCPI10_3] */ + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffffe4896100ff3 // movss xmm2, dword [rsi - 440] + QUAD $0xfffec896213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 312], 16 + QUAD $0xffff4896213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 184], 32 + LONG $0x213a0f66; WORD $0xc856; BYTE $0x30 // insertps xmm2, dword [rsi - 56], 48 + LONG $0xcdeb0f66 // por xmm1, xmm5 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc2c20f41; BYTE $0x02 // cmpleps xmm0, xmm10 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0xe9c20f41; BYTE $0x02 // cmpleps xmm5, xmm9 + QUAD $0xfffffe4cbe100ff3 // movss xmm7, dword [rsi - 436] + QUAD $0xfffeccbe213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 308], 16 + QUAD $0xffff4cbe213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 180], 32 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0x213a0f66; WORD $0xcc7e; BYTE $0x30 // insertps xmm7, dword [rsi - 52], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x06 // psllw xmm5, 6 + LONG $0x6ddb0f66; BYTE $0x50 // pand xmm5, oword 80[rbp] /* [rip + .LCPI10_5] */ + LONG $0xe8eb0f66 // por xmm5, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c3c20f // cmpleps xmm0, xmm3 + QUAD $0xfffffe509e100ff3 // movss xmm3, dword [rsi - 432] + QUAD $0xfffed09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 304], 16 + QUAD $0xffff509e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 176], 32 + LONG $0x213a0f66; WORD $0xd05e; BYTE $0x30 // insertps xmm3, dword [rsi - 48], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0x6f0f4466; WORD $0x6055 // movdqa xmm10, oword 96[rbp] /* [rip + .LCPI10_6] */ + LONG $0xdb0f4166; BYTE $0xc2 // pand xmm0, xmm10 + LONG $0xc5eb0f66 // por xmm0, xmm5 + QUAD $0xfffffe54ae100ff3 // movss xmm5, dword [rsi - 428] + QUAD $0xfffed4ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 300], 16 + QUAD $0xffff54ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 172], 32 + LONG $0x213a0f66; WORD $0xd46e; BYTE $0x30 // insertps xmm5, dword [rsi - 44], 48 + LONG $0xc1eb0f66 // por xmm0, xmm1 + QUAD $0xfffe588e100f44f3; BYTE $0xff // movss xmm9, dword [rsi - 424] + QUAD $0xfed88e213a0f4466; WORD $0xffff; BYTE $0x10 // insertps xmm9, dword [rsi - 296], 16 + QUAD $0xff588e213a0f4466; WORD $0xffff; BYTE $0x20 // insertps xmm9, dword [rsi - 168], 32 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + QUAD $0x30d84e213a0f4466 // insertps xmm9, dword [rsi - 40], 48 + LONG $0x620f4466; BYTE $0xc0 // punpckldq xmm8, xmm0 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c2c20f // cmpleps xmm0, xmm2 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xc86f0f66 // movdqa xmm1, xmm0 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xc8f80f66 // psubb xmm1, xmm0 + QUAD $0xfffffe5c96100ff3 // movss xmm2, dword [rsi - 420] + QUAD $0xfffedc96213a0f66; WORD $0x10ff // insertps xmm2, dword [rsi - 292], 16 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xffff5c96213a0f66; WORD $0x20ff // insertps xmm2, dword [rsi - 164], 32 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0xf5280f41 // movaps xmm6, xmm13 + LONG $0x02f7c20f // cmpleps xmm6, xmm7 + LONG $0x213a0f66; WORD $0xdc56; BYTE $0x30 // insertps xmm2, dword [rsi - 36], 48 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x02 // psllw xmm6, 2 + LONG $0x456f0f66; BYTE $0x10 // movdqa xmm0, oword 16[rbp] /* [rip + .LCPI10_1] */ + LONG $0xf0db0f66 // pand xmm6, xmm0 + LONG $0xf1eb0f66 // por xmm6, xmm1 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c3c20f // cmpleps xmm0, xmm3 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x02cdc20f // cmpleps xmm1, xmm5 + QUAD $0xfffffe609e100ff3 // movss xmm3, dword [rsi - 416] + QUAD $0xfffee09e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 288], 16 + QUAD $0xffff609e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 160], 32 + LONG $0x213a0f66; WORD $0xe05e; BYTE $0x30 // insertps xmm3, dword [rsi - 32], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x03 // psllw xmm0, 3 + LONG $0xdb0f4166; BYTE $0xc4 // pand xmm0, xmm12 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0x6f0f4466; WORD $0x3065 // movdqa xmm12, oword 48[rbp] /* [rip + .LCPI10_3] */ + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xc8eb0f66 // por xmm1, xmm0 + QUAD $0xfffffe68ae100ff3 // movss xmm5, dword [rsi - 408] + QUAD $0xfffee8ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 280], 16 + QUAD $0xffff68ae213a0f66; WORD $0x20ff // insertps xmm5, dword [rsi - 152], 32 + LONG $0x213a0f66; WORD $0xe86e; BYTE $0x30 // insertps xmm5, dword [rsi - 24], 48 + LONG $0xceeb0f66 // por xmm1, xmm6 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0xc1c20f41; BYTE $0x02 // cmpleps xmm0, xmm9 + LONG $0xf5280f41 // movaps xmm6, xmm13 + LONG $0x02f2c20f // cmpleps xmm6, xmm2 + QUAD $0xfffffe6cbe100ff3 // movss xmm7, dword [rsi - 404] + QUAD $0xfffeecbe213a0f66; WORD $0x10ff // insertps xmm7, dword [rsi - 276], 16 + QUAD $0xffff6cbe213a0f66; WORD $0x20ff // insertps xmm7, dword [rsi - 148], 32 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0x213a0f66; WORD $0xec7e; BYTE $0x30 // insertps xmm7, dword [rsi - 20], 48 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xdb0f4166; BYTE $0xc7 // pand xmm0, xmm15 + LONG $0xf0710f66; BYTE $0x05 // psllw xmm0, 5 + LONG $0xdb0f4166; BYTE $0xc6 // pand xmm0, xmm14 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x06 // psllw xmm6, 6 + LONG $0x6f0f4466; WORD $0x504d // movdqa xmm9, oword 80[rbp] /* [rip + .LCPI10_5] */ + LONG $0xdb0f4166; BYTE $0xf1 // pand xmm6, xmm9 + LONG $0xf0eb0f66 // por xmm6, xmm0 + LONG $0xd5280f41 // movaps xmm2, xmm13 + LONG $0x02d3c20f // cmpleps xmm2, xmm3 + QUAD $0xfffffe7086100ff3 // movss xmm0, dword [rsi - 400] + QUAD $0xfffef086213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 272], 16 + QUAD $0xffff7086213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 144], 32 + LONG $0x213a0f66; WORD $0xf046; BYTE $0x30 // insertps xmm0, dword [rsi - 16], 48 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf2710f66; BYTE $0x07 // psllw xmm2, 7 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe74b6100ff3 // movss xmm6, dword [rsi - 396] + QUAD $0xfffef4b6213a0f66; WORD $0x10ff // insertps xmm6, dword [rsi - 268], 16 + QUAD $0xffff74b6213a0f66; WORD $0x20ff // insertps xmm6, dword [rsi - 140], 32 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0x213a0f66; WORD $0xf476; BYTE $0x30 // insertps xmm6, dword [rsi - 12], 48 + LONG $0xd1eb0f66 // por xmm2, xmm1 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x02cdc20f // cmpleps xmm1, xmm5 + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xe96f0f66 // movdqa xmm5, xmm1 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xe9f80f66 // psubb xmm5, xmm1 + QUAD $0xfffffe789e100ff3 // movss xmm3, dword [rsi - 392] + QUAD $0xfffef89e213a0f66; WORD $0x10ff // insertps xmm3, dword [rsi - 264], 16 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + QUAD $0xffff789e213a0f66; WORD $0x20ff // insertps xmm3, dword [rsi - 136], 32 + LONG $0xeceb0f66 // por xmm5, xmm4 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x02e7c20f // cmpleps xmm4, xmm7 + LONG $0x213a0f66; WORD $0xf85e; BYTE $0x30 // insertps xmm3, dword [rsi - 8], 48 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x02 // psllw xmm4, 2 + LONG $0x65db0f66; BYTE $0x10 // pand xmm4, oword 16[rbp] /* [rip + .LCPI10_1] */ + LONG $0xe5eb0f66 // por xmm4, xmm5 + LONG $0xed280f41 // movaps xmm5, xmm13 + LONG $0x02e8c20f // cmpleps xmm5, xmm0 + LONG $0xcd280f41 // movaps xmm1, xmm13 + LONG $0x02cec20f // cmpleps xmm1, xmm6 + QUAD $0xfffffe7c86100ff3 // movss xmm0, dword [rsi - 388] + QUAD $0xfffefc86213a0f66; WORD $0x10ff // insertps xmm0, dword [rsi - 260], 16 + QUAD $0xffff7c86213a0f66; WORD $0x20ff // insertps xmm0, dword [rsi - 132], 32 + LONG $0x213a0f66; WORD $0xfc46; BYTE $0x30 // insertps xmm0, dword [rsi - 4], 48 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0x6ddb0f66; BYTE $0x20 // pand xmm5, oword 32[rbp] /* [rip + .LCPI10_2] */ + LONG $0xc96b0f66 // packssdw xmm1, xmm1 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xdb0f4166; BYTE $0xcf // pand xmm1, xmm15 + LONG $0xf1710f66; BYTE $0x04 // psllw xmm1, 4 + LONG $0xdb0f4166; BYTE $0xcc // pand xmm1, xmm12 + LONG $0xcdeb0f66 // por xmm1, xmm5 + QUAD $0xfffffe80ae100ff3 // movss xmm5, dword [rsi - 384] + QUAD $0xffff00ae213a0f66; WORD $0x10ff // insertps xmm5, dword [rsi - 256], 16 + LONG $0x213a0f66; WORD $0x806e; BYTE $0x20 // insertps xmm5, dword [rsi - 128], 32 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0xe5280f41 // movaps xmm4, xmm13 + LONG $0x02e3c20f // cmpleps xmm4, xmm3 + LONG $0xdd280f41 // movaps xmm3, xmm13 + LONG $0x02d8c20f // cmpleps xmm3, xmm0 + LONG $0x213a0f66; WORD $0x302e // insertps xmm5, dword [rsi], 48 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x05 // psllw xmm4, 5 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xd9 // pand xmm3, xmm9 + LONG $0xdceb0f66 // por xmm3, xmm4 + LONG $0xc5280f41 // movaps xmm0, xmm13 + LONG $0x02c5c20f // cmpleps xmm0, xmm5 + LONG $0xc06b0f66 // packssdw xmm0, xmm0 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xf0710f66; BYTE $0x07 // psllw xmm0, 7 + LONG $0xdb0f4166; BYTE $0xc2 // pand xmm0, xmm10 + LONG $0xc3eb0f66 // por xmm0, xmm3 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0xd0620f66 // punpckldq xmm2, xmm0 + LONG $0x600f4466; BYTE $0xc2 // punpcklbw xmm8, xmm2 + LONG $0x380f4466; WORD $0x4500; BYTE $0x70 // pshufb xmm8, oword 112[rbp] /* [rip + .LCPI10_7] */ + LONG $0x7f0f45f3; WORD $0x8e04 // movdqu oword [r14 + 4*rcx], xmm8 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c68148; WORD $0x0002; BYTE $0x00 // add rsi, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB10_201 + WORD $0x394d; BYTE $0xc3 // cmp r11, r8 + JNE LBB10_124 + JMP LBB10_140 + +DATA LCDATA8<>+0x000(SB)/8, $0x0000000001010101 +DATA LCDATA8<>+0x008(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x010(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA8<>+0x018(SB)/8, $0xfcfcfcfcfcfcfcfc +DATA LCDATA8<>+0x020(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA8<>+0x028(SB)/8, $0xf8f8f8f8f8f8f8f8 +DATA LCDATA8<>+0x030(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA8<>+0x038(SB)/8, $0xf0f0f0f0f0f0f0f0 +DATA LCDATA8<>+0x040(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA8<>+0x048(SB)/8, $0xe0e0e0e0e0e0e0e0 +DATA LCDATA8<>+0x050(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA8<>+0x058(SB)/8, $0xc0c0c0c0c0c0c0c0 +DATA LCDATA8<>+0x060(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x068(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x070(SB)/8, $0x0b030a0209010800 +DATA LCDATA8<>+0x078(SB)/8, $0x0f070e060d050c04 +DATA LCDATA8<>+0x080(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x088(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x090(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x098(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0a0(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x0a8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0b0(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x0b8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0c0(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x0c8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0d0(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x0d8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0e0(SB)/8, $0x8080808080808080 +DATA LCDATA8<>+0x0e8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x0f0(SB)/8, $0x0f070e060d050c04 +DATA LCDATA8<>+0x0f8(SB)/8, $0x0000000000000000 +DATA LCDATA8<>+0x100(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x108(SB)/8, $0x0202020202020202 +DATA LCDATA8<>+0x110(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x118(SB)/8, $0x0404040404040404 +DATA LCDATA8<>+0x120(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x128(SB)/8, $0x0808080808080808 +DATA LCDATA8<>+0x130(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x138(SB)/8, $0x1010101010101010 +DATA LCDATA8<>+0x140(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x148(SB)/8, $0x2020202020202020 +DATA LCDATA8<>+0x150(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x158(SB)/8, $0x4040404040404040 +DATA LCDATA8<>+0x160(SB)/8, $0xffffffffffffffff +DATA LCDATA8<>+0x168(SB)/8, $0xffffffffffffffff +GLOBL LCDATA8<>(SB), 8, $368 + +TEXT ·_comparison_greater_equal_scalar_arr_sse4(SB), $328-48 + + MOVQ typ+0(FP), DI + MOVQ left+8(FP), SI + MOVQ right+16(FP), DX + MOVQ out+24(FP), CX + MOVQ length+32(FP), R8 + MOVQ offset+40(FP), R9 + MOVQ SP, BP + ADDQ $16, SP + ANDQ $-16, SP + MOVQ BP, 304(SP) + LEAQ LCDATA8<>(SB), BP + + WORD $0x894d; BYTE $0xc3 // mov r11, r8 + WORD $0x8949; BYTE $0xcf // mov r15, rcx + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JG LBB11_26 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JLE LBB11_2 + WORD $0xff83; BYTE $0x04 // cmp edi, 4 + JE LBB11_99 + WORD $0xff83; BYTE $0x05 // cmp edi, 5 + JE LBB11_114 + WORD $0xff83; BYTE $0x06 // cmp edi, 6 + JNE LBB11_201 + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_17 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_15: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_15 + LONG $0x01c78349 // add r15, 1 + +LBB11_17: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_21 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB11_19: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x2414930f // setae byte [rsp] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd0930f41 // setae r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd3930f41 // setae r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd2930f41 // setae r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd1930f41 // setae r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd7930f40 // setae dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd6930f40 // setae sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd5930f41 // setae r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd4930f41 // setae r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd7930f41 // setae r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + QUAD $0x000000902494930f // setae byte [rsp + 144] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000e024bc0244 // add r15b, byte [rsp + 224] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x000000a0248cb60f // movzx ecx, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB11_19 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + +LBB11_21: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_137 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_24 + +LBB11_26: + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JLE LBB11_27 + WORD $0xff83; BYTE $0x09 // cmp edi, 9 + JE LBB11_157 + WORD $0xff83; BYTE $0x0b // cmp edi, 11 + JE LBB11_172 + WORD $0xff83; BYTE $0x0c // cmp edi, 12 + JNE LBB11_201 + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff2 // movsd xmm0, qword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_49 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_47: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_47 + LONG $0x01c78349 // add r15, 1 + +LBB11_49: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_53 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB11_51: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0xd1930f41 // setae r9b + LONG $0x422e0f66; BYTE $0x10 // ucomisd xmm0, qword [rdx + 16] + LONG $0xd3930f41 // setae r11b + LONG $0x422e0f66; BYTE $0x18 // ucomisd xmm0, qword [rdx + 24] + LONG $0xd5930f41 // setae r13b + LONG $0x422e0f66; BYTE $0x20 // ucomisd xmm0, qword [rdx + 32] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x422e0f66; BYTE $0x28 // ucomisd xmm0, qword [rdx + 40] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x422e0f66; BYTE $0x30 // ucomisd xmm0, qword [rdx + 48] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x422e0f66; BYTE $0x38 // ucomisd xmm0, qword [rdx + 56] + LONG $0xd4930f41 // setae r12b + LONG $0x422e0f66; BYTE $0x40 // ucomisd xmm0, qword [rdx + 64] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x422e0f66; BYTE $0x48 // ucomisd xmm0, qword [rdx + 72] + LONG $0xd6930f40 // setae sil + LONG $0x422e0f66; BYTE $0x50 // ucomisd xmm0, qword [rdx + 80] + LONG $0xd7930f40 // setae dil + LONG $0x422e0f66; BYTE $0x58 // ucomisd xmm0, qword [rdx + 88] + LONG $0xd0930f41 // setae r8b + LONG $0x422e0f66; BYTE $0x60 // ucomisd xmm0, qword [rdx + 96] + LONG $0xd2930f41 // setae r10b + LONG $0x422e0f66; BYTE $0x68 // ucomisd xmm0, qword [rdx + 104] + LONG $0xd7930f41 // setae r15b + LONG $0x422e0f66; BYTE $0x70 // ucomisd xmm0, qword [rdx + 112] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x422e0f66; BYTE $0x78 // ucomisd xmm0, qword [rdx + 120] + WORD $0x930f; BYTE $0xd1 // setae cl + QUAD $0x00000080822e0f66 // ucomisd xmm0, qword [rdx + 128] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + QUAD $0x00000088822e0f66 // ucomisd xmm0, qword [rdx + 136] + QUAD $0x000000902494930f // setae byte [rsp + 144] + QUAD $0x00000090822e0f66 // ucomisd xmm0, qword [rdx + 144] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + QUAD $0x00000098822e0f66 // ucomisd xmm0, qword [rdx + 152] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + QUAD $0x000000a0822e0f66 // ucomisd xmm0, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + QUAD $0x000000a8822e0f66 // ucomisd xmm0, qword [rdx + 168] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + QUAD $0x000000b0822e0f66 // ucomisd xmm0, qword [rdx + 176] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + QUAD $0x000000b8822e0f66 // ucomisd xmm0, qword [rdx + 184] + LONG $0xd6930f41 // setae r14b + QUAD $0x000000c0822e0f66 // ucomisd xmm0, qword [rdx + 192] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + QUAD $0x000000c8822e0f66 // ucomisd xmm0, qword [rdx + 200] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + QUAD $0x000000d0822e0f66 // ucomisd xmm0, qword [rdx + 208] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + QUAD $0x000000d8822e0f66 // ucomisd xmm0, qword [rdx + 216] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + QUAD $0x000000e0822e0f66 // ucomisd xmm0, qword [rdx + 224] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + QUAD $0x000000e8822e0f66 // ucomisd xmm0, qword [rdx + 232] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + QUAD $0x000000f0822e0f66 // ucomisd xmm0, qword [rdx + 240] + LONG $0x2414930f // setae byte [rsp] + QUAD $0x000000f8822e0f66 // ucomisd xmm0, qword [rdx + 248] + WORD $0x930f; BYTE $0xd0 // setae al + WORD $0x0045; BYTE $0xc9 // add r9b, r9b + QUAD $0x00000080248c0244 // add r9b, byte [rsp + 128] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x07e4c041 // shl r12b, 7 + WORD $0x0841; BYTE $0xdc // or r12b, bl + LONG $0x02e3c041 // shl r11b, 2 + WORD $0x0845; BYTE $0xcb // or r11b, r9b + WORD $0x0040; BYTE $0xf6 // add sil, sil + LONG $0x24740240; BYTE $0x70 // add sil, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xdd // or r13b, r11b + LONG $0x02e7c040 // shl dil, 2 + WORD $0x0840; BYTE $0xf7 // or dil, sil + QUAD $0x000000b0249cb60f // movzx ebx, byte [rsp + 176] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0844; BYTE $0xeb // or bl, r13b + WORD $0xde89 // mov esi, ebx + LONG $0x03e0c041 // shl r8b, 3 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xc2 // or r10b, r8b + LONG $0x05e7c041 // shl r15b, 5 + WORD $0x0845; BYTE $0xd7 // or r15b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0x0840; BYTE $0xf1 // or cl, sil + WORD $0x0841; BYTE $0xdc // or r12b, bl + WORD $0x0844; BYTE $0xf9 // or cl, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x00000090249cb60f // movzx ebx, byte [rsp + 144] + WORD $0xdb00 // add bl, bl + LONG $0x60245c02 // add bl, byte [rsp + 96] + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x68 // movzx ebx, byte [rsp + 104] + WORD $0xe3c0; BYTE $0x02 // shl bl, 2 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x58 // movzx ebx, byte [rsp + 88] + WORD $0xe3c0; BYTE $0x03 // shl bl, 3 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x50 // movzx ebx, byte [rsp + 80] + WORD $0xe3c0; BYTE $0x04 // shl bl, 4 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0xde89 // mov esi, ebx + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x05 // shl bl, 5 + WORD $0x0840; BYTE $0xf3 // or bl, sil + WORD $0x8845; BYTE $0x27 // mov byte [r15], r12b + LONG $0x2474b60f; BYTE $0x30 // movzx esi, byte [rsp + 48] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e6c041 // shl r14b, 7 + WORD $0x0841; BYTE $0xf6 // or r14b, sil + LONG $0x014f8841 // mov byte [r15 + 1], cl + WORD $0x0841; BYTE $0xde // or r14b, bl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0x18244c02 // add cl, byte [rsp + 24] + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x08 // movzx ecx, byte [rsp + 8] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd908 // or cl, bl + WORD $0xcb89 // mov ebx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd908 // or cl, bl + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02778845 // mov byte [r15 + 2], r14b + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB11_51 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + +LBB11_53: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_195 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_197 + +LBB11_2: + WORD $0xff83; BYTE $0x02 // cmp edi, 2 + JE LBB11_56 + WORD $0xff83; BYTE $0x03 // cmp edi, 3 + JNE LBB11_201 + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_8 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_6: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_6 + LONG $0x01c78349 // add r15, 1 + +LBB11_8: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_9 + LONG $0x10fa8349 // cmp r10, 16 + LONG $0x24348844 // mov byte [rsp], r14b + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + JB LBB11_82 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_85 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB11_85 + +LBB11_82: + WORD $0xc031 // xor eax, eax + QUAD $0x0000010024848948 // mov qword [rsp + 256], rax + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_88: + QUAD $0x0000010024942b4c // sub r10, qword [rsp + 256] + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + +LBB11_89: + LONG $0x1f723a44 // cmp r14b, byte [rdx + 31] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x1e723a44 // cmp r14b, byte [rdx + 30] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x1d723a44 // cmp r14b, byte [rdx + 29] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x1c723a44 // cmp r14b, byte [rdx + 28] + LONG $0x24549d0f; BYTE $0x18 // setge byte [rsp + 24] + LONG $0x1b723a44 // cmp r14b, byte [rdx + 27] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x1a723a44 // cmp r14b, byte [rdx + 26] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x19723a44 // cmp r14b, byte [rdx + 25] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x17723a44 // cmp r14b, byte [rdx + 23] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x16723a44 // cmp r14b, byte [rdx + 22] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x15723a44 // cmp r14b, byte [rdx + 21] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x14723a44 // cmp r14b, byte [rdx + 20] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x13723a44 // cmp r14b, byte [rdx + 19] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x12723a44 // cmp r14b, byte [rdx + 18] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x11723a44 // cmp r14b, byte [rdx + 17] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x0f723a44 // cmp r14b, byte [rdx + 15] + LONG $0xd29d0f41 // setge r10b + LONG $0x0e723a44 // cmp r14b, byte [rdx + 14] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x0d723a44 // cmp r14b, byte [rdx + 13] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x0c723a44 // cmp r14b, byte [rdx + 12] + LONG $0xd49d0f41 // setge r12b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd79d0f41 // setge r15b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd69d0f41 // setge r14b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd39d0f41 // setge r11b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd69d0f40 // setge sil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0xd19d0f41 // setge r9b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0xd09d0f41 // setge r8b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0xd79d0f40 // setge dil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x023a // cmp al, byte [rdx] + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x01 // cmp al, byte [rdx + 1] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x2cb60f44; BYTE $0x24 // movzx r13d, byte [rsp] + LONG $0x086a3a44 // cmp r13b, byte [rdx + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5a3a; BYTE $0x10 // cmp bl, byte [rdx + 16] + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5a3a; BYTE $0x18 // cmp bl, byte [rdx + 24] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0xd0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 208] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + LONG $0x00758841 // mov byte [r13], sil + WORD $0x0045; BYTE $0xdb // add r11b, r11b + QUAD $0x000000e0249c0244 // add r11b, byte [rsp + 224] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xf7 // or r15b, r14b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x34b60f44; BYTE $0x24 // movzx r14d, byte [rsp] + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0841; BYTE $0xc2 // or r10b, al + LONG $0x01558845 // mov byte [r13 + 1], r10b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0xa0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 160] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB11_89 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + JMP LBB11_91 + +LBB11_27: + WORD $0xff83; BYTE $0x07 // cmp edi, 7 + JE LBB11_139 + WORD $0xff83; BYTE $0x08 // cmp edi, 8 + JNE LBB11_201 + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_33 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_31: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_31 + LONG $0x01c78349 // add r15, 1 + +LBB11_33: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_37 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB11_35: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x2414930f // setae byte [rsp] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd0930f41 // setae r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd3930f41 // setae r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd2930f41 // setae r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd1930f41 // setae r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd7930f40 // setae dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd6930f40 // setae sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd5930f41 // setae r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd4930f41 // setae r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd7930f41 // setae r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + QUAD $0x000000902494930f // setae byte [rsp + 144] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000e024bc0244 // add r15b, byte [rsp + 224] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x000000a0248cb60f // movzx ecx, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB11_35 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + +LBB11_37: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_155 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_40 + +LBB11_56: + WORD $0x8a44; BYTE $0x36 // mov r14b, byte [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_60 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_58: + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + LONG $0x01528d48 // lea rdx, [rdx + 1] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_58 + LONG $0x01c78349 // add r15, 1 + +LBB11_60: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_61 + LONG $0x10fa8349 // cmp r10, 16 + LONG $0x24348844 // mov byte [rsp], r14b + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000f82494894c // mov qword [rsp + 248], r10 + JB LBB11_63 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_66 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + WORD $0x3948; BYTE $0xc2 // cmp rdx, rax + JAE LBB11_66 + +LBB11_63: + WORD $0xc031 // xor eax, eax + QUAD $0x000000c024848948 // mov qword [rsp + 192], rax + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_69: + QUAD $0x000000c024942b4c // sub r10, qword [rsp + 192] + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + +LBB11_70: + LONG $0x1f723a44 // cmp r14b, byte [rdx + 31] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x1e723a44 // cmp r14b, byte [rdx + 30] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x1d723a44 // cmp r14b, byte [rdx + 29] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x1c723a44 // cmp r14b, byte [rdx + 28] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + LONG $0x1b723a44 // cmp r14b, byte [rdx + 27] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x1a723a44 // cmp r14b, byte [rdx + 26] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x19723a44 // cmp r14b, byte [rdx + 25] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x17723a44 // cmp r14b, byte [rdx + 23] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x16723a44 // cmp r14b, byte [rdx + 22] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x15723a44 // cmp r14b, byte [rdx + 21] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x14723a44 // cmp r14b, byte [rdx + 20] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x13723a44 // cmp r14b, byte [rdx + 19] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x12723a44 // cmp r14b, byte [rdx + 18] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x11723a44 // cmp r14b, byte [rdx + 17] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x0f723a44 // cmp r14b, byte [rdx + 15] + LONG $0xd2930f41 // setae r10b + LONG $0x0e723a44 // cmp r14b, byte [rdx + 14] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x0d723a44 // cmp r14b, byte [rdx + 13] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x0c723a44 // cmp r14b, byte [rdx + 12] + LONG $0xd4930f41 // setae r12b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x0b // cmp al, byte [rdx + 11] + LONG $0xd7930f41 // setae r15b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x0a // cmp al, byte [rdx + 10] + LONG $0xd6930f41 // setae r14b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x09 // cmp al, byte [rdx + 9] + LONG $0xd3930f41 // setae r11b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x07 // cmp al, byte [rdx + 7] + LONG $0xd6930f40 // setae sil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x06 // cmp al, byte [rdx + 6] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x05 // cmp al, byte [rdx + 5] + LONG $0xd1930f41 // setae r9b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x04 // cmp al, byte [rdx + 4] + LONG $0xd0930f41 // setae r8b + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x03 // cmp al, byte [rdx + 3] + LONG $0xd7930f40 // setae dil + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x02 // cmp al, byte [rdx + 2] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x023a // cmp al, byte [rdx] + QUAD $0x000000d02494930f // setae byte [rsp + 208] + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0x423a; BYTE $0x01 // cmp al, byte [rdx + 1] + WORD $0x930f; BYTE $0xd0 // setae al + WORD $0x894c; BYTE $0xeb // mov rbx, r13 + LONG $0x2cb60f44; BYTE $0x24 // movzx r13d, byte [rsp] + LONG $0x086a3a44 // cmp r13b, byte [rdx + 8] + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5a3a; BYTE $0x10 // cmp bl, byte [rdx + 16] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x241cb60f // movzx ebx, byte [rsp] + WORD $0x5a3a; BYTE $0x18 // cmp bl, byte [rdx + 24] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0xd0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 208] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xc108 // or cl, al + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xcf // or dil, cl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + LONG $0x00758841 // mov byte [r13], sil + WORD $0x0045; BYTE $0xdb // add r11b, r11b + QUAD $0x000000e0249c0244 // add r11b, byte [rsp + 224] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xf7 // or r15b, r14b + LONG $0x04e4c041 // shl r12b, 4 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe0 // or al, r12b + LONG $0x34b60f44; BYTE $0x24 // movzx r14d, byte [rsp] + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xca // or r10b, cl + WORD $0x0841; BYTE $0xc2 // or r10b, al + LONG $0x01558845 // mov byte [r13 + 1], r10b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02458841 // mov byte [r13 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0xa0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 160] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x78 // movzx eax, byte [rsp + 120] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03458841 // mov byte [r13 + 3], al + LONG $0x20c28348 // add rdx, 32 + LONG $0x04c58349 // add r13, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB11_70 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + JMP LBB11_72 + +LBB11_139: + WORD $0x8b44; BYTE $0x36 // mov r14d, dword [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_143 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_141: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_141 + LONG $0x01c78349 // add r15, 1 + +LBB11_143: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_147 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB11_145: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0x7c723b44 // cmp r14d, dword [rdx + 124] + LONG $0x24149d0f // setge byte [rsp] + LONG $0x78723b44 // cmp r14d, dword [rdx + 120] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x74723b44 // cmp r14d, dword [rdx + 116] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x70723b44 // cmp r14d, dword [rdx + 112] + LONG $0x24549d0f; BYTE $0x18 // setge byte [rsp + 24] + LONG $0x6c723b44 // cmp r14d, dword [rdx + 108] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x68723b44 // cmp r14d, dword [rdx + 104] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x64723b44 // cmp r14d, dword [rdx + 100] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x5c723b44 // cmp r14d, dword [rdx + 92] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x58723b44 // cmp r14d, dword [rdx + 88] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x54723b44 // cmp r14d, dword [rdx + 84] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x50723b44 // cmp r14d, dword [rdx + 80] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x4c723b44 // cmp r14d, dword [rdx + 76] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x48723b44 // cmp r14d, dword [rdx + 72] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x44723b44 // cmp r14d, dword [rdx + 68] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x3c723b44 // cmp r14d, dword [rdx + 60] + LONG $0xd09d0f41 // setge r8b + LONG $0x38723b44 // cmp r14d, dword [rdx + 56] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x34723b44 // cmp r14d, dword [rdx + 52] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x30723b44 // cmp r14d, dword [rdx + 48] + LONG $0xd39d0f41 // setge r11b + LONG $0x2c723b44 // cmp r14d, dword [rdx + 44] + LONG $0xd29d0f41 // setge r10b + LONG $0x28723b44 // cmp r14d, dword [rdx + 40] + LONG $0xd19d0f41 // setge r9b + LONG $0x24723b44 // cmp r14d, dword [rdx + 36] + LONG $0xd79d0f40 // setge dil + LONG $0x1c723b44 // cmp r14d, dword [rdx + 28] + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x18723b44 // cmp r14d, dword [rdx + 24] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x14723b44 // cmp r14d, dword [rdx + 20] + LONG $0xd69d0f40 // setge sil + LONG $0x10723b44 // cmp r14d, dword [rdx + 16] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x0c723b44 // cmp r14d, dword [rdx + 12] + LONG $0xd59d0f41 // setge r13b + LONG $0x08723b44 // cmp r14d, dword [rdx + 8] + LONG $0xd49d0f41 // setge r12b + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0xd79d0f41 // setge r15b + LONG $0x20723b44 // cmp r14d, dword [rdx + 32] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x40723b44 // cmp r14d, dword [rdx + 64] + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0x60723b44 // cmp r14d, dword [rdx + 96] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000e024bc0244 // add r15b, byte [rsp + 224] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x000000a0248cb60f // movzx ecx, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x80ea8348 // sub rdx, -128 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB11_145 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + +LBB11_147: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_153 + WORD $0xff31 // xor edi, edi + JMP LBB11_150 + +LBB11_99: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_103 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_101: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07588d48 // lea rbx, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xd8490f48 // cmovns rbx, rax + LONG $0x03fbc148 // sar rbx, 3 + LONG $0x04b60f45; BYTE $0x1f // movzx r8d, byte [r15 + rbx] + WORD $0x3044; BYTE $0xc6 // xor sil, r8b + LONG $0x00dd3c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rbx] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xf7 // and dil, sil + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x1f3c8841 // mov byte [r15 + rbx], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_101 + LONG $0x01c78349 // add r15, 1 + +LBB11_103: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_107 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB11_105: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0x723b4466; BYTE $0x3e // cmp r14w, word [rdx + 62] + LONG $0x2414930f // setae byte [rsp] + LONG $0x723b4466; BYTE $0x3c // cmp r14w, word [rdx + 60] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x723b4466; BYTE $0x3a // cmp r14w, word [rdx + 58] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x723b4466; BYTE $0x38 // cmp r14w, word [rdx + 56] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + LONG $0x723b4466; BYTE $0x36 // cmp r14w, word [rdx + 54] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x723b4466; BYTE $0x34 // cmp r14w, word [rdx + 52] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x723b4466; BYTE $0x32 // cmp r14w, word [rdx + 50] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x723b4466; BYTE $0x2e // cmp r14w, word [rdx + 46] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x723b4466; BYTE $0x2c // cmp r14w, word [rdx + 44] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x723b4466; BYTE $0x2a // cmp r14w, word [rdx + 42] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x723b4466; BYTE $0x28 // cmp r14w, word [rdx + 40] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x723b4466; BYTE $0x26 // cmp r14w, word [rdx + 38] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x723b4466; BYTE $0x24 // cmp r14w, word [rdx + 36] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x723b4466; BYTE $0x22 // cmp r14w, word [rdx + 34] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x723b4466; BYTE $0x1e // cmp r14w, word [rdx + 30] + LONG $0xd0930f41 // setae r8b + LONG $0x723b4466; BYTE $0x1c // cmp r14w, word [rdx + 28] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x723b4466; BYTE $0x1a // cmp r14w, word [rdx + 26] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x723b4466; BYTE $0x18 // cmp r14w, word [rdx + 24] + LONG $0xd3930f41 // setae r11b + LONG $0x723b4466; BYTE $0x16 // cmp r14w, word [rdx + 22] + LONG $0xd2930f41 // setae r10b + LONG $0x723b4466; BYTE $0x14 // cmp r14w, word [rdx + 20] + LONG $0xd1930f41 // setae r9b + LONG $0x723b4466; BYTE $0x12 // cmp r14w, word [rdx + 18] + LONG $0xd7930f40 // setae dil + LONG $0x723b4466; BYTE $0x0e // cmp r14w, word [rdx + 14] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x723b4466; BYTE $0x0c // cmp r14w, word [rdx + 12] + WORD $0x930f; BYTE $0xd3 // setae bl + LONG $0x723b4466; BYTE $0x0a // cmp r14w, word [rdx + 10] + LONG $0xd6930f40 // setae sil + LONG $0x723b4466; BYTE $0x08 // cmp r14w, word [rdx + 8] + WORD $0x930f; BYTE $0xd1 // setae cl + LONG $0x723b4466; BYTE $0x06 // cmp r14w, word [rdx + 6] + LONG $0xd5930f41 // setae r13b + LONG $0x723b4466; BYTE $0x04 // cmp r14w, word [rdx + 4] + LONG $0xd4930f41 // setae r12b + LONG $0x323b4466 // cmp r14w, word [rdx] + QUAD $0x000000e02494930f // setae byte [rsp + 224] + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0xd7930f41 // setae r15b + LONG $0x723b4466; BYTE $0x10 // cmp r14w, word [rdx + 16] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x723b4466; BYTE $0x20 // cmp r14w, word [rdx + 32] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x723b4466; BYTE $0x30 // cmp r14w, word [rdx + 48] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000e024bc0244 // add r15b, byte [rsp + 224] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + LONG $0x244cb60f; BYTE $0x70 // movzx ecx, byte [rsp + 112] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + QUAD $0x000000a02484b60f // movzx eax, byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + WORD $0xc189 // mov ecx, eax + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x48 // movzx eax, byte [rsp + 72] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xc000 // add al, al + LONG $0x20244402 // add al, byte [rsp + 32] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x40c28348 // add rdx, 64 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB11_105 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + +LBB11_107: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_112 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_110 + +LBB11_114: + LONG $0x36b70f44 // movzx r14d, word [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_118 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_116: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x02528d48 // lea rdx, [rdx + 2] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xcb // xor bl, r9b + QUAD $0x00000000f5048d44 // lea r8d, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xcf // xor dil, r9b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_116 + LONG $0x01c78349 // add r15, 1 + +LBB11_118: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_119 + LONG $0x08fa8349 // cmp r10, 8 + LONG $0x24348944 // mov dword [rsp], r14d + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000001002494894c // mov qword [rsp + 256], r10 + JB LBB11_121 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_124 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB11_124 + +LBB11_121: + WORD $0xc031 // xor eax, eax + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + WORD $0x894d; BYTE $0xfc // mov r12, r15 + +LBB11_127: + LONG $0x24542b4c; BYTE $0x20 // sub r10, qword [rsp + 32] + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + +LBB11_128: + LONG $0x703b4466; BYTE $0x3e // cmp r14w, word [rax + 62] + LONG $0x24549d0f; BYTE $0x78 // setge byte [rsp + 120] + LONG $0x703b4466; BYTE $0x3c // cmp r14w, word [rax + 60] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0x703b4466; BYTE $0x3a // cmp r14w, word [rax + 58] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0x703b4466; BYTE $0x38 // cmp r14w, word [rax + 56] + LONG $0x24549d0f; BYTE $0x18 // setge byte [rsp + 24] + LONG $0x703b4466; BYTE $0x36 // cmp r14w, word [rax + 54] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0x703b4466; BYTE $0x34 // cmp r14w, word [rax + 52] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0x703b4466; BYTE $0x32 // cmp r14w, word [rax + 50] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0x703b4466; BYTE $0x2e // cmp r14w, word [rax + 46] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0x703b4466; BYTE $0x2c // cmp r14w, word [rax + 44] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0x703b4466; BYTE $0x2a // cmp r14w, word [rax + 42] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0x703b4466; BYTE $0x28 // cmp r14w, word [rax + 40] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x703b4466; BYTE $0x26 // cmp r14w, word [rax + 38] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x703b4466; BYTE $0x24 // cmp r14w, word [rax + 36] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x703b4466; BYTE $0x22 // cmp r14w, word [rax + 34] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x703b4466; BYTE $0x1e // cmp r14w, word [rax + 30] + LONG $0xd29d0f41 // setge r10b + LONG $0x703b4466; BYTE $0x1c // cmp r14w, word [rax + 28] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x703b4466; BYTE $0x1a // cmp r14w, word [rax + 26] + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + LONG $0x703b4466; BYTE $0x18 // cmp r14w, word [rax + 24] + LONG $0xd59d0f41 // setge r13b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x16413b66 // cmp ax, word [rcx + 22] + LONG $0xd79d0f41 // setge r15b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x14413b66 // cmp ax, word [rcx + 20] + LONG $0xd69d0f41 // setge r14b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x12413b66 // cmp ax, word [rcx + 18] + LONG $0xd39d0f41 // setge r11b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x0e413b66 // cmp ax, word [rcx + 14] + LONG $0xd69d0f40 // setge sil + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x0c413b66 // cmp ax, word [rcx + 12] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x0a413b66 // cmp ax, word [rcx + 10] + LONG $0xd19d0f41 // setge r9b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x08413b66 // cmp ax, word [rcx + 8] + LONG $0xd09d0f41 // setge r8b + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x06413b66 // cmp ax, word [rcx + 6] + LONG $0xd79d0f40 // setge dil + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x04413b66 // cmp ax, word [rcx + 4] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + WORD $0x3b66; BYTE $0x01 // cmp ax, word [rcx] + QUAD $0x000000d024949d0f // setge byte [rsp + 208] + WORD $0x048b; BYTE $0x24 // mov eax, dword [rsp] + LONG $0x02413b66 // cmp ax, word [rcx + 2] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0x894c; BYTE $0xe3 // mov rbx, r12 + LONG $0x24248b44 // mov r12d, dword [rsp] + LONG $0x613b4466; BYTE $0x10 // cmp r12w, word [rcx + 16] + WORD $0x8949; BYTE $0xdc // mov r12, rbx + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + WORD $0x1c8b; BYTE $0x24 // mov ebx, dword [rsp] + LONG $0x20593b66 // cmp bx, word [rcx + 32] + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + WORD $0x1c8b; BYTE $0x24 // mov ebx, dword [rsp] + LONG $0x30593b66 // cmp bx, word [rcx + 48] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + WORD $0xc000 // add al, al + LONG $0xd0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 208] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + LONG $0x03e7c040 // shl dil, 3 + WORD $0x0840; BYTE $0xd7 // or dil, dl + LONG $0x04e0c041 // shl r8b, 4 + WORD $0x0841; BYTE $0xf8 // or r8b, dil + LONG $0x05e1c041 // shl r9b, 5 + WORD $0x0845; BYTE $0xc1 // or r9b, r8b + QUAD $0x000000802484b60f // movzx eax, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e6c040 // shl sil, 7 + WORD $0x0840; BYTE $0xc6 // or sil, al + WORD $0x0844; BYTE $0xce // or sil, r9b + LONG $0x24348841 // mov byte [r12], sil + WORD $0x0045; BYTE $0xdb // add r11b, r11b + QUAD $0x000000e0249c0244 // add r11b, byte [rsp + 224] + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xde // or r14b, r11b + LONG $0x03e7c041 // shl r15b, 3 + WORD $0x0845; BYTE $0xf7 // or r15b, r14b + LONG $0x04e5c041 // shl r13b, 4 + WORD $0x0845; BYTE $0xfd // or r13b, r15b + QUAD $0x000000902484b60f // movzx eax, byte [rsp + 144] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xe8 // or al, r13b + LONG $0x24348b44 // mov r14d, dword [rsp] + LONG $0x2454b60f; BYTE $0x70 // movzx edx, byte [rsp + 112] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + LONG $0x07e2c041 // shl r10b, 7 + WORD $0x0841; BYTE $0xd2 // or r10b, dl + WORD $0x0841; BYTE $0xc2 // or r10b, al + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + LONG $0x24548845; BYTE $0x01 // mov byte [r12 + 1], r10b + LONG $0x244cb60f; BYTE $0x68 // movzx ecx, byte [rsp + 104] + WORD $0xc900 // add cl, cl + LONG $0xb0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 176] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x58 // movzx ecx, byte [rsp + 88] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x60 // movzx ecx, byte [rsp + 96] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x50 // movzx ecx, byte [rsp + 80] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x48 // movzx ecx, byte [rsp + 72] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x40 // movzx ebx, byte [rsp + 64] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x244cb60f; BYTE $0x30 // movzx ecx, byte [rsp + 48] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + LONG $0x244c8841; BYTE $0x02 // mov byte [r12 + 2], cl + LONG $0x244cb60f; BYTE $0x38 // movzx ecx, byte [rsp + 56] + WORD $0xc900 // add cl, cl + LONG $0xa0248c02; WORD $0x0000; BYTE $0x00 // add cl, byte [rsp + 160] + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x20 // movzx ecx, byte [rsp + 32] + WORD $0xe1c0; BYTE $0x02 // shl cl, 2 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x28 // movzx ecx, byte [rsp + 40] + WORD $0xe1c0; BYTE $0x03 // shl cl, 3 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x18 // movzx ecx, byte [rsp + 24] + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x244cb60f; BYTE $0x10 // movzx ecx, byte [rsp + 16] + WORD $0xe1c0; BYTE $0x05 // shl cl, 5 + WORD $0xd108 // or cl, dl + WORD $0xca89 // mov edx, ecx + LONG $0x245cb60f; BYTE $0x08 // movzx ebx, byte [rsp + 8] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x244cb60f; BYTE $0x78 // movzx ecx, byte [rsp + 120] + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd908 // or cl, bl + WORD $0xd108 // or cl, dl + LONG $0x244c8841; BYTE $0x03 // mov byte [r12 + 3], cl + LONG $0x40c08348 // add rax, 64 + LONG $0x04c48349 // add r12, 4 + QUAD $0x000000c024848348; BYTE $0xff // add qword [rsp + 192], -1 + JNE LBB11_128 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + JMP LBB11_130 + +LBB11_157: + WORD $0x8b4c; BYTE $0x36 // mov r14, qword [rsi] + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_161 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_159: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x08528d48 // lea rdx, [rdx + 8] + WORD $0x9d0f; BYTE $0xd3 // setge bl + WORD $0xdbf6 // neg bl + LONG $0x07708d48 // lea rsi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf0490f48 // cmovns rsi, rax + LONG $0x03fec148 // sar rsi, 3 + LONG $0x04b60f45; BYTE $0x37 // movzx r8d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xc3 // xor bl, r8b + LONG $0x00f53c8d; WORD $0x0000; BYTE $0x00 // lea edi, [8*rsi] + WORD $0xc189 // mov ecx, eax + WORD $0xf929 // sub ecx, edi + LONG $0x000001bf; BYTE $0x00 // mov edi, 1 + WORD $0xe7d3 // shl edi, cl + WORD $0x2040; BYTE $0xdf // and dil, bl + WORD $0x3044; BYTE $0xc7 // xor dil, r8b + LONG $0x373c8841 // mov byte [r15 + rsi], dil + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_159 + LONG $0x01c78349 // add r15, 1 + +LBB11_161: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_165 + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + +LBB11_163: + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0xf8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 248] + LONG $0x24149d0f // setge byte [rsp] + LONG $0xf0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 240] + LONG $0x24549d0f; BYTE $0x10 // setge byte [rsp + 16] + LONG $0xe8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 232] + LONG $0x24549d0f; BYTE $0x08 // setge byte [rsp + 8] + LONG $0xe0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 224] + LONG $0x24549d0f; BYTE $0x18 // setge byte [rsp + 24] + LONG $0xd8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 216] + LONG $0x24549d0f; BYTE $0x28 // setge byte [rsp + 40] + LONG $0xd0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 208] + LONG $0x24549d0f; BYTE $0x20 // setge byte [rsp + 32] + LONG $0xc8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 200] + LONG $0x24549d0f; BYTE $0x38 // setge byte [rsp + 56] + LONG $0xb8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 184] + LONG $0x24549d0f; BYTE $0x30 // setge byte [rsp + 48] + LONG $0xb0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 176] + LONG $0x24549d0f; BYTE $0x48 // setge byte [rsp + 72] + LONG $0xa8b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 168] + LONG $0x24549d0f; BYTE $0x40 // setge byte [rsp + 64] + LONG $0xa0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 160] + LONG $0x24549d0f; BYTE $0x50 // setge byte [rsp + 80] + LONG $0x98b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 152] + LONG $0x24549d0f; BYTE $0x60 // setge byte [rsp + 96] + LONG $0x90b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 144] + LONG $0x24549d0f; BYTE $0x58 // setge byte [rsp + 88] + LONG $0x88b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 136] + LONG $0x24549d0f; BYTE $0x68 // setge byte [rsp + 104] + LONG $0x78723b4c // cmp r14, qword [rdx + 120] + LONG $0xd09d0f41 // setge r8b + LONG $0x70723b4c // cmp r14, qword [rdx + 112] + QUAD $0x000000a024949d0f // setge byte [rsp + 160] + LONG $0x68723b4c // cmp r14, qword [rdx + 104] + LONG $0x24549d0f; BYTE $0x70 // setge byte [rsp + 112] + LONG $0x60723b4c // cmp r14, qword [rdx + 96] + LONG $0xd39d0f41 // setge r11b + LONG $0x58723b4c // cmp r14, qword [rdx + 88] + LONG $0xd29d0f41 // setge r10b + LONG $0x50723b4c // cmp r14, qword [rdx + 80] + LONG $0xd19d0f41 // setge r9b + LONG $0x48723b4c // cmp r14, qword [rdx + 72] + LONG $0xd79d0f40 // setge dil + LONG $0x38723b4c // cmp r14, qword [rdx + 56] + WORD $0x9d0f; BYTE $0xd0 // setge al + LONG $0x30723b4c // cmp r14, qword [rdx + 48] + WORD $0x9d0f; BYTE $0xd3 // setge bl + LONG $0x28723b4c // cmp r14, qword [rdx + 40] + LONG $0xd69d0f40 // setge sil + LONG $0x20723b4c // cmp r14, qword [rdx + 32] + WORD $0x9d0f; BYTE $0xd1 // setge cl + LONG $0x18723b4c // cmp r14, qword [rdx + 24] + LONG $0xd59d0f41 // setge r13b + LONG $0x10723b4c // cmp r14, qword [rdx + 16] + LONG $0xd49d0f41 // setge r12b + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + QUAD $0x000000e024949d0f // setge byte [rsp + 224] + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0xd79d0f41 // setge r15b + LONG $0x40723b4c // cmp r14, qword [rdx + 64] + QUAD $0x0000008024949d0f // setge byte [rsp + 128] + LONG $0x80b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 128] + QUAD $0x000000b024949d0f // setge byte [rsp + 176] + LONG $0xc0b23b4c; WORD $0x0000; BYTE $0x00 // cmp r14, qword [rdx + 192] + QUAD $0x0000009024949d0f // setge byte [rsp + 144] + WORD $0x0045; BYTE $0xff // add r15b, r15b + QUAD $0x000000e024bc0244 // add r15b, byte [rsp + 224] + LONG $0x02e4c041 // shl r12b, 2 + WORD $0x0845; BYTE $0xfc // or r12b, r15b + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xe5 // or r13b, r12b + WORD $0xe1c0; BYTE $0x04 // shl cl, 4 + WORD $0x0844; BYTE $0xe9 // or cl, r13b + LONG $0x05e6c040 // shl sil, 5 + WORD $0x0840; BYTE $0xce // or sil, cl + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0x0840; BYTE $0xf0 // or al, sil + WORD $0x8841; BYTE $0x07 // mov byte [r15], al + WORD $0x0040; BYTE $0xff // add dil, dil + QUAD $0x0000008024bc0240 // add dil, byte [rsp + 128] + LONG $0x02e1c041 // shl r9b, 2 + WORD $0x0841; BYTE $0xf9 // or r9b, dil + LONG $0x03e2c041 // shl r10b, 3 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x04e3c041 // shl r11b, 4 + WORD $0x0845; BYTE $0xd3 // or r11b, r10b + LONG $0x2444b60f; BYTE $0x70 // movzx eax, byte [rsp + 112] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0x0844; BYTE $0xd8 // or al, r11b + QUAD $0x000000a0248cb60f // movzx ecx, byte [rsp + 160] + WORD $0xe1c0; BYTE $0x06 // shl cl, 6 + LONG $0x07e0c041 // shl r8b, 7 + WORD $0x0841; BYTE $0xc8 // or r8b, cl + WORD $0x0841; BYTE $0xc0 // or r8b, al + LONG $0x01478845 // mov byte [r15 + 1], r8b + LONG $0x2444b60f; BYTE $0x68 // movzx eax, byte [rsp + 104] + WORD $0xc000 // add al, al + LONG $0xb0248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 176] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x58 // movzx eax, byte [rsp + 88] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x60 // movzx eax, byte [rsp + 96] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x50 // movzx eax, byte [rsp + 80] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x40 // movzx eax, byte [rsp + 64] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x48 // movzx ebx, byte [rsp + 72] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2444b60f; BYTE $0x30 // movzx eax, byte [rsp + 48] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x02478841 // mov byte [r15 + 2], al + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x90248402; WORD $0x0000; BYTE $0x00 // add al, byte [rsp + 144] + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x18 // movzx eax, byte [rsp + 24] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xc808 // or al, cl + WORD $0xc189 // mov ecx, eax + LONG $0x245cb60f; BYTE $0x10 // movzx ebx, byte [rsp + 16] + WORD $0xe3c0; BYTE $0x06 // shl bl, 6 + LONG $0x2404b60f // movzx eax, byte [rsp] + WORD $0xe0c0; BYTE $0x07 // shl al, 7 + WORD $0xd808 // or al, bl + WORD $0xc808 // or al, cl + LONG $0x03478841 // mov byte [r15 + 3], al + LONG $0x00c28148; WORD $0x0001; BYTE $0x00 // add rdx, 256 + LONG $0x04c78349 // add r15, 4 + QUAD $0x000000d024848348; BYTE $0xff // add qword [rsp + 208], -1 + JNE LBB11_163 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000c024948b4c // mov r10, qword [rsp + 192] + +LBB11_165: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_170 + WORD $0xff31 // xor edi, edi + JMP LBB11_168 + +LBB11_172: + LONG $0x1f538d4d // lea r10, [r11 + 31] + WORD $0x854d; BYTE $0xdb // test r11, r11 + LONG $0xd3490f4d // cmovns r10, r11 + LONG $0x07418d41 // lea eax, [r9 + 7] + WORD $0x8545; BYTE $0xc9 // test r9d, r9d + LONG $0xc1490f41 // cmovns eax, r9d + WORD $0xe083; BYTE $0xf8 // and eax, -8 + LONG $0x06100ff3 // movss xmm0, dword [rsi] + WORD $0x2941; BYTE $0xc1 // sub r9d, eax + JE LBB11_176 + WORD $0x6349; BYTE $0xc1 // movsxd rax, r9d + +LBB11_174: + WORD $0x2e0f; BYTE $0x02 // ucomiss xmm0, dword [rdx] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + LONG $0x07788d48 // lea rdi, [rax + 7] + WORD $0x8548; BYTE $0xc0 // test rax, rax + LONG $0xf8490f48 // cmovns rdi, rax + LONG $0x03ffc148 // sar rdi, 3 + LONG $0x0cb60f45; BYTE $0x3f // movzx r9d, byte [r15 + rdi] + WORD $0x3044; BYTE $0xce // xor sil, r9b + QUAD $0x00000000fd048d44 // lea r8d, [8*rdi] + WORD $0xc189 // mov ecx, eax + WORD $0x2944; BYTE $0xc1 // sub ecx, r8d + LONG $0x000001bb; BYTE $0x00 // mov ebx, 1 + WORD $0xe3d3 // shl ebx, cl + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3f1c8841 // mov byte [r15 + rdi], bl + LONG $0x01c08348 // add rax, 1 + LONG $0x08f88348 // cmp rax, 8 + JNE LBB11_174 + LONG $0x01c78349 // add r15, 1 + +LBB11_176: + LONG $0x05fac149 // sar r10, 5 + LONG $0x20fb8349 // cmp r11, 32 + JL LBB11_177 + LONG $0x04fa8349 // cmp r10, 4 + JB LBB11_179 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x07e0c148 // shl rax, 7 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + WORD $0x3949; BYTE $0xc7 // cmp r15, rax + JAE LBB11_182 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + WORD $0x3948; BYTE $0xd0 // cmp rax, rdx + JBE LBB11_182 + +LBB11_179: + WORD $0x3145; BYTE $0xc0 // xor r8d, r8d + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + WORD $0x894d; BYTE $0xfe // mov r14, r15 + +LBB11_185: + QUAD $0x00000088249c894c // mov qword [rsp + 136], r11 + QUAD $0x000000d02494894c // mov qword [rsp + 208], r10 + WORD $0x294d; BYTE $0xc2 // sub r10, r8 + QUAD $0x000000e02494894c // mov qword [rsp + 224], r10 + +LBB11_186: + LONG $0x2434894c // mov qword [rsp], r14 + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + QUAD $0x000000802494930f // setae byte [rsp + 128] + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0xd0930f41 // setae r8b + LONG $0x08432e0f // ucomiss xmm0, dword [rbx + 8] + LONG $0xd6930f41 // setae r14b + LONG $0x0c432e0f // ucomiss xmm0, dword [rbx + 12] + LONG $0xd5930f41 // setae r13b + LONG $0x10432e0f // ucomiss xmm0, dword [rbx + 16] + LONG $0x2454930f; BYTE $0x68 // setae byte [rsp + 104] + LONG $0x14432e0f // ucomiss xmm0, dword [rbx + 20] + LONG $0x2454930f; BYTE $0x40 // setae byte [rsp + 64] + LONG $0x18432e0f // ucomiss xmm0, dword [rbx + 24] + WORD $0x930f; BYTE $0xd0 // setae al + LONG $0x1c432e0f // ucomiss xmm0, dword [rbx + 28] + LONG $0xd3930f41 // setae r11b + LONG $0x20432e0f // ucomiss xmm0, dword [rbx + 32] + LONG $0x2454930f; BYTE $0x70 // setae byte [rsp + 112] + LONG $0x24432e0f // ucomiss xmm0, dword [rbx + 36] + WORD $0x930f; BYTE $0xd2 // setae dl + LONG $0x28432e0f // ucomiss xmm0, dword [rbx + 40] + LONG $0xd6930f40 // setae sil + LONG $0x2c432e0f // ucomiss xmm0, dword [rbx + 44] + LONG $0xd1930f41 // setae r9b + LONG $0x30432e0f // ucomiss xmm0, dword [rbx + 48] + LONG $0xd2930f41 // setae r10b + LONG $0x34432e0f // ucomiss xmm0, dword [rbx + 52] + LONG $0xd4930f41 // setae r12b + LONG $0x38432e0f // ucomiss xmm0, dword [rbx + 56] + QUAD $0x000000a02494930f // setae byte [rsp + 160] + LONG $0x3c432e0f // ucomiss xmm0, dword [rbx + 60] + LONG $0xd7930f40 // setae dil + LONG $0x40432e0f // ucomiss xmm0, dword [rbx + 64] + LONG $0x2454930f; BYTE $0x60 // setae byte [rsp + 96] + LONG $0x44432e0f // ucomiss xmm0, dword [rbx + 68] + QUAD $0x000000b02494930f // setae byte [rsp + 176] + LONG $0x48432e0f // ucomiss xmm0, dword [rbx + 72] + QUAD $0x000000902494930f // setae byte [rsp + 144] + LONG $0x4c432e0f // ucomiss xmm0, dword [rbx + 76] + LONG $0x2454930f; BYTE $0x58 // setae byte [rsp + 88] + LONG $0x50432e0f // ucomiss xmm0, dword [rbx + 80] + LONG $0x2454930f; BYTE $0x50 // setae byte [rsp + 80] + LONG $0x54432e0f // ucomiss xmm0, dword [rbx + 84] + LONG $0x2454930f; BYTE $0x48 // setae byte [rsp + 72] + LONG $0x58432e0f // ucomiss xmm0, dword [rbx + 88] + LONG $0x2454930f; BYTE $0x30 // setae byte [rsp + 48] + LONG $0x5c432e0f // ucomiss xmm0, dword [rbx + 92] + LONG $0xd7930f41 // setae r15b + LONG $0x60432e0f // ucomiss xmm0, dword [rbx + 96] + LONG $0x2454930f; BYTE $0x18 // setae byte [rsp + 24] + LONG $0x64432e0f // ucomiss xmm0, dword [rbx + 100] + LONG $0x2454930f; BYTE $0x38 // setae byte [rsp + 56] + LONG $0x68432e0f // ucomiss xmm0, dword [rbx + 104] + LONG $0x2454930f; BYTE $0x20 // setae byte [rsp + 32] + LONG $0x6c432e0f // ucomiss xmm0, dword [rbx + 108] + LONG $0x2454930f; BYTE $0x28 // setae byte [rsp + 40] + LONG $0x70432e0f // ucomiss xmm0, dword [rbx + 112] + LONG $0x2454930f; BYTE $0x08 // setae byte [rsp + 8] + LONG $0x74432e0f // ucomiss xmm0, dword [rbx + 116] + LONG $0x2454930f; BYTE $0x10 // setae byte [rsp + 16] + LONG $0x78432e0f // ucomiss xmm0, dword [rbx + 120] + LONG $0x2454930f; BYTE $0x78 // setae byte [rsp + 120] + LONG $0x7c432e0f // ucomiss xmm0, dword [rbx + 124] + WORD $0x930f; BYTE $0xd1 // setae cl + WORD $0x0045; BYTE $0xc0 // add r8b, r8b + QUAD $0x0000008024840244 // add r8b, byte [rsp + 128] + WORD $0xe0c0; BYTE $0x06 // shl al, 6 + LONG $0x07e3c041 // shl r11b, 7 + WORD $0x0841; BYTE $0xc3 // or r11b, al + LONG $0x02e6c041 // shl r14b, 2 + WORD $0x0845; BYTE $0xc6 // or r14b, r8b + WORD $0xd200 // add dl, dl + LONG $0x70245402 // add dl, byte [rsp + 112] + LONG $0x03e5c041 // shl r13b, 3 + WORD $0x0845; BYTE $0xf5 // or r13b, r14b + LONG $0x02e6c040 // shl sil, 2 + WORD $0x0840; BYTE $0xd6 // or sil, dl + LONG $0x2454b60f; BYTE $0x68 // movzx edx, byte [rsp + 104] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0844; BYTE $0xea // or dl, r13b + WORD $0x8941; BYTE $0xd0 // mov r8d, edx + LONG $0x24348b4c // mov r14, qword [rsp] + LONG $0x03e1c041 // shl r9b, 3 + WORD $0x0841; BYTE $0xf1 // or r9b, sil + LONG $0x2454b60f; BYTE $0x40 // movzx edx, byte [rsp + 64] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0844; BYTE $0xc2 // or dl, r8b + LONG $0x04e2c041 // shl r10b, 4 + WORD $0x0845; BYTE $0xca // or r10b, r9b + LONG $0x05e4c041 // shl r12b, 5 + WORD $0x0845; BYTE $0xd4 // or r12b, r10b + QUAD $0x000000a024b4b60f // movzx esi, byte [rsp + 160] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c040 // shl dil, 7 + WORD $0x0840; BYTE $0xf7 // or dil, sil + WORD $0x0841; BYTE $0xd3 // or r11b, dl + WORD $0x0844; BYTE $0xe7 // or dil, r12b + QUAD $0x000000b02484b60f // movzx eax, byte [rsp + 176] + WORD $0xc000 // add al, al + LONG $0x60244402 // add al, byte [rsp + 96] + QUAD $0x000000902494b60f // movzx edx, byte [rsp + 144] + WORD $0xe2c0; BYTE $0x02 // shl dl, 2 + WORD $0xc208 // or dl, al + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x58 // movzx edx, byte [rsp + 88] + WORD $0xe2c0; BYTE $0x03 // shl dl, 3 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x50 // movzx edx, byte [rsp + 80] + WORD $0xe2c0; BYTE $0x04 // shl dl, 4 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0xd689 // mov esi, edx + LONG $0x2454b60f; BYTE $0x48 // movzx edx, byte [rsp + 72] + WORD $0xe2c0; BYTE $0x05 // shl dl, 5 + WORD $0x0840; BYTE $0xf2 // or dl, sil + WORD $0x8845; BYTE $0x1e // mov byte [r14], r11b + LONG $0x2474b60f; BYTE $0x30 // movzx esi, byte [rsp + 48] + LONG $0x06e6c040 // shl sil, 6 + LONG $0x07e7c041 // shl r15b, 7 + WORD $0x0841; BYTE $0xf7 // or r15b, sil + LONG $0x017e8841 // mov byte [r14 + 1], dil + WORD $0x0841; BYTE $0xd7 // or r15b, dl + LONG $0x2444b60f; BYTE $0x38 // movzx eax, byte [rsp + 56] + WORD $0xc000 // add al, al + LONG $0x18244402 // add al, byte [rsp + 24] + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x20 // movzx eax, byte [rsp + 32] + WORD $0xe0c0; BYTE $0x02 // shl al, 2 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x28 // movzx eax, byte [rsp + 40] + WORD $0xe0c0; BYTE $0x03 // shl al, 3 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x08 // movzx eax, byte [rsp + 8] + WORD $0xe0c0; BYTE $0x04 // shl al, 4 + WORD $0xd008 // or al, dl + WORD $0xc289 // mov edx, eax + LONG $0x2444b60f; BYTE $0x10 // movzx eax, byte [rsp + 16] + WORD $0xe0c0; BYTE $0x05 // shl al, 5 + WORD $0xd008 // or al, dl + LONG $0x2454b60f; BYTE $0x78 // movzx edx, byte [rsp + 120] + WORD $0xe2c0; BYTE $0x06 // shl dl, 6 + WORD $0xe1c0; BYTE $0x07 // shl cl, 7 + WORD $0xd108 // or cl, dl + WORD $0xc108 // or cl, al + LONG $0x027e8845 // mov byte [r14 + 2], r15b + LONG $0x034e8841 // mov byte [r14 + 3], cl + LONG $0x80c38148; WORD $0x0000; BYTE $0x00 // add rbx, 128 + LONG $0x04c68349 // add r14, 4 + QUAD $0x000000e024848348; BYTE $0xff // add qword [rsp + 224], -1 + JNE LBB11_186 + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + QUAD $0x000000d024948b4c // mov r10, qword [rsp + 208] + JMP LBB11_188 + +LBB11_9: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_91: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_94 + WORD $0xf631 // xor esi, esi + JMP LBB11_97 + +LBB11_61: + WORD $0x894d; BYTE $0xfd // mov r13, r15 + +LBB11_72: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_75 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + JMP LBB11_78 + +LBB11_119: + WORD $0x894d; BYTE $0xfc // mov r12, r15 + WORD $0x8948; BYTE $0xd0 // mov rax, rdx + +LBB11_130: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_135 + WORD $0xf631 // xor esi, esi + JMP LBB11_133 + +LBB11_177: + WORD $0x894d; BYTE $0xfe // mov r14, r15 + WORD $0x8948; BYTE $0xd3 // mov rbx, rdx + +LBB11_188: + LONG $0x05e2c149 // shl r10, 5 + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JGE LBB11_201 + WORD $0x894d; BYTE $0xd8 // mov r8, r11 + WORD $0x294d; BYTE $0xd0 // sub r8, r10 + WORD $0xf749; BYTE $0xd2 // not r10 + WORD $0x014d; BYTE $0xda // add r10, r11 + JNE LBB11_193 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + JMP LBB11_191 + +LBB11_155: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_156: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_156 + +LBB11_40: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + JMP LBB11_199 + +LBB11_153: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB11_154: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB11_154 + +LBB11_150: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + JMP LBB11_152 + +LBB11_94: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xf631 // xor esi, esi + +LBB11_95: + LONG $0x32343a44 // cmp r14b, byte [rdx + rsi] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x32743a44; BYTE $0x01 // cmp r14b, byte [rdx + rsi + 1] + LONG $0x02768d48 // lea rsi, [rsi + 2] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x3d448841; BYTE $0x00 // mov byte [r13 + rdi], al + WORD $0x3949; BYTE $0xf2 // cmp r10, rsi + JNE LBB11_95 + WORD $0x0148; BYTE $0xf2 // add rdx, rsi + +LBB11_97: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x157c8a41; BYTE $0x00 // mov dil, byte [r13 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + JMP LBB11_80 + +LBB11_75: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xc9 // xor r9d, r9d + +LBB11_76: + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + LONG $0x0a343a46 // cmp r14b, byte [rdx + r9] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x4cb60f45; WORD $0x003d // movzx r9d, byte [r13 + rdi] + WORD $0xc189 // mov ecx, eax + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xce // xor sil, r9b + WORD $0x2040; BYTE $0xf3 // and bl, sil + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x3d5c8841; BYTE $0x00 // mov byte [r13 + rdi], bl + LONG $0x02743a44; BYTE $0x01 // cmp r14b, byte [rdx + rax + 1] + LONG $0x02488d4c // lea r9, [rax + 2] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + WORD $0x3040; BYTE $0xde // xor sil, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf0 // and al, sil + WORD $0xd830 // xor al, bl + LONG $0x3d448841; BYTE $0x00 // mov byte [r13 + rdi], al + WORD $0x394d; BYTE $0xca // cmp r10, r9 + JNE LBB11_76 + WORD $0x014c; BYTE $0xca // add rdx, r9 + +LBB11_78: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + WORD $0x3a44; BYTE $0x32 // cmp r14b, byte [rdx] + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xca // mov rdx, r9 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x157c8a41; BYTE $0x00 // mov dil, byte [r13 + rdx] + LONG $0x07e18041 // and r9b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xc9 // mov ecx, r9d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + +LBB11_80: + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x155c8841; BYTE $0x00 // mov byte [r13 + rdx], bl + JMP LBB11_201 + +LBB11_137: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_138: + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x04723b44 // cmp r14d, dword [rdx + 4] + LONG $0x08528d48 // lea rdx, [rdx + 8] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_138 + +LBB11_24: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + WORD $0x3b44; BYTE $0x32 // cmp r14d, dword [rdx] + JMP LBB11_199 + +LBB11_195: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_196: + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + LONG $0x000000b8; BYTE $0x00 // mov eax, 0 + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c38349 // add r11, 2 + LONG $0x422e0f66; BYTE $0x08 // ucomisd xmm0, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xdf // xor dil, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB11_196 + +LBB11_197: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + LONG $0x022e0f66 // ucomisd xmm0, qword [rdx] + JMP LBB11_199 + +LBB11_112: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_113: + LONG $0x323b4466 // cmp r14w, word [rdx] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + LONG $0x03eec148 // shr rsi, 3 + LONG $0x14b60f45; BYTE $0x37 // movzx r10d, byte [r15 + rsi] + WORD $0x3044; BYTE $0xd7 // xor dil, r10b + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2040; BYTE $0xf8 // and al, dil + WORD $0x3044; BYTE $0xd0 // xor al, r10b + LONG $0x37048841 // mov byte [r15 + rsi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x723b4466; BYTE $0x02 // cmp r14w, word [rdx + 2] + LONG $0x04528d48 // lea rdx, [rdx + 4] + LONG $0x000000bf; BYTE $0x00 // mov edi, 0 + LONG $0xffd78040 // adc dil, -1 + WORD $0x3040; BYTE $0xc7 // xor dil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x2040; BYTE $0xfb // and bl, dil + WORD $0xc330 // xor bl, al + LONG $0x371c8841 // mov byte [r15 + rsi], bl + WORD $0x394d; BYTE $0xd9 // cmp r9, r11 + JNE LBB11_113 + +LBB11_110: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + LONG $0x323b4466 // cmp r14w, word [rdx] + +LBB11_199: + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x17348a41 // mov sil, byte [r15 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + JMP LBB11_200 + +LBB11_170: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0xff31 // xor edi, edi + +LBB11_171: + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfe // mov rsi, rdi + LONG $0x03eec148 // shr rsi, 3 + LONG $0x0cb60f45; BYTE $0x37 // movzx r9d, byte [r15 + rsi] + WORD $0xf989 // mov ecx, edi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + WORD $0xc320 // and bl, al + WORD $0x3044; BYTE $0xcb // xor bl, r9b + LONG $0x371c8841 // mov byte [r15 + rsi], bl + LONG $0x02c78348 // add rdi, 2 + LONG $0x08723b4c // cmp r14, qword [rdx + 8] + LONG $0x10528d48 // lea rdx, [rdx + 16] + LONG $0xd19d0f41 // setge r9b + WORD $0xf641; BYTE $0xd9 // neg r9b + WORD $0x3041; BYTE $0xd9 // xor r9b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x2044; BYTE $0xc8 // and al, r9b + WORD $0xd830 // xor al, bl + LONG $0x37048841 // mov byte [r15 + rsi], al + WORD $0x3949; BYTE $0xfa // cmp r10, rdi + JNE LBB11_171 + +LBB11_168: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0x3b4c; BYTE $0x32 // cmp r14, qword [rdx] + +LBB11_152: + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xfa // mov rdx, rdi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x17348a41 // mov sil, byte [r15 + rdx] + LONG $0x07e78040 // and dil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf989 // mov ecx, edi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + +LBB11_200: + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x171c8841 // mov byte [r15 + rdx], bl + +LBB11_201: + MOVQ 304(SP), SP + RET + +LBB11_135: + WORD $0x894d; BYTE $0xc1 // mov r9, r8 + LONG $0xfee18349 // and r9, -2 + WORD $0xf631 // xor esi, esi + +LBB11_136: + LONG $0x303b4466 // cmp r14w, word [rax] + WORD $0x9d0f; BYTE $0xd2 // setge dl + WORD $0xdaf6 // neg dl + WORD $0x8948; BYTE $0xf7 // mov rdi, rsi + LONG $0x03efc148 // shr rdi, 3 + LONG $0x14b60f45; BYTE $0x3c // movzx r10d, byte [r12 + rdi] + WORD $0xf189 // mov ecx, esi + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b3 // mov bl, 1 + WORD $0xe3d2 // shl bl, cl + WORD $0x3044; BYTE $0xd2 // xor dl, r10b + WORD $0xd320 // and bl, dl + WORD $0x3044; BYTE $0xd3 // xor bl, r10b + LONG $0x3c1c8841 // mov byte [r12 + rdi], bl + LONG $0x02c68348 // add rsi, 2 + LONG $0x703b4466; BYTE $0x02 // cmp r14w, word [rax + 2] + LONG $0x04408d48 // lea rax, [rax + 4] + LONG $0xd29d0f41 // setge r10b + WORD $0xf641; BYTE $0xda // neg r10b + WORD $0x3041; BYTE $0xda // xor r10b, bl + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2044; BYTE $0xd2 // and dl, r10b + WORD $0xda30 // xor dl, bl + LONG $0x3c148841 // mov byte [r12 + rdi], dl + WORD $0x3949; BYTE $0xf1 // cmp r9, rsi + JNE LBB11_136 + +LBB11_133: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + LONG $0x303b4466 // cmp r14w, word [rax] + WORD $0x9d0f; BYTE $0xd0 // setge al + WORD $0xd8f6 // neg al + WORD $0x8948; BYTE $0xf2 // mov rdx, rsi + LONG $0x03eac148 // shr rdx, 3 + LONG $0x143c8a41 // mov dil, byte [r12 + rdx] + LONG $0x07e68040 // and sil, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0xf189 // mov ecx, esi + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf8 // xor al, dil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xfb // xor bl, dil + LONG $0x141c8841 // mov byte [r12 + rdx], bl + JMP LBB11_201 + +LBB11_193: + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0xfee28349 // and r10, -2 + WORD $0x3145; BYTE $0xdb // xor r11d, r11d + +LBB11_194: + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + LONG $0x000000ba; BYTE $0x00 // mov edx, 0 + WORD $0xd280; BYTE $0xff // adc dl, -1 + WORD $0x894c; BYTE $0xdf // mov rdi, r11 + LONG $0x03efc148 // shr rdi, 3 + LONG $0x0cb60f45; BYTE $0x3e // movzx r9d, byte [r14 + rdi] + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe180; BYTE $0x06 // and cl, 6 + WORD $0x01b0 // mov al, 1 + WORD $0xe0d2 // shl al, cl + WORD $0x3044; BYTE $0xca // xor dl, r9b + WORD $0xd020 // and al, dl + WORD $0x3044; BYTE $0xc8 // xor al, r9b + LONG $0x3e048841 // mov byte [r14 + rdi], al + LONG $0x02c38349 // add r11, 2 + LONG $0x04432e0f // ucomiss xmm0, dword [rbx + 4] + LONG $0x085b8d48 // lea rbx, [rbx + 8] + LONG $0x000000be; BYTE $0x00 // mov esi, 0 + LONG $0xffd68040 // adc sil, -1 + WORD $0x3040; BYTE $0xc6 // xor sil, al + WORD $0xc980; BYTE $0x01 // or cl, 1 + WORD $0x01b2 // mov dl, 1 + WORD $0xe2d2 // shl dl, cl + WORD $0x2040; BYTE $0xf2 // and dl, sil + WORD $0xc230 // xor dl, al + LONG $0x3e148841 // mov byte [r14 + rdi], dl + WORD $0x394d; BYTE $0xda // cmp r10, r11 + JNE LBB11_194 + +LBB11_191: + LONG $0x01c0f641 // test r8b, 1 + JE LBB11_201 + WORD $0xc031 // xor eax, eax + WORD $0x2e0f; BYTE $0x03 // ucomiss xmm0, dword [rbx] + WORD $0xff14 // adc al, -1 + WORD $0x894c; BYTE $0xda // mov rdx, r11 + LONG $0x03eac148 // shr rdx, 3 + LONG $0x16348a41 // mov sil, byte [r14 + rdx] + LONG $0x07e38041 // and r11b, 7 + WORD $0x01b3 // mov bl, 1 + WORD $0x8944; BYTE $0xd9 // mov ecx, r11d + WORD $0xe3d2 // shl bl, cl + WORD $0x3040; BYTE $0xf0 // xor al, sil + WORD $0xc320 // and bl, al + WORD $0x3040; BYTE $0xf3 // xor bl, sil + LONG $0x161c8841 // mov byte [r14 + rdx], bl + JMP LBB11_201 + +LBB11_85: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000011824848948 // mov qword [rsp + 280], rax + QUAD $0x000001002494894c // mov qword [rsp + 256], r10 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + LONG $0xc6b60f41 // movzx eax, r14b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000090248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 144], xmm1 + WORD $0xc031 // xor eax, eax + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + +LBB11_86: + QUAD $0x000000e024848948 // mov qword [rsp + 224], rax + LONG $0x05e0c148 // shl rax, 5 + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8949; BYTE $0xc6 // mov r14, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + WORD $0x8949; BYTE $0xc5 // mov r13, rax + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x020cb60f // movzx ecx, byte [rdx + rax] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x024cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rax + 1] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x024cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rax + 2] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x024cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rax + 3] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x024cb60f; BYTE $0x04 // movzx ecx, byte [rdx + rax + 4] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x024cb60f; BYTE $0x05 // movzx ecx, byte [rdx + rax + 5] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x024cb60f; BYTE $0x06 // movzx ecx, byte [rdx + rax + 6] + LONG $0x6e0f4466; BYTE $0xc1 // movd xmm8, ecx + LONG $0x024cb60f; BYTE $0x07 // movzx ecx, byte [rdx + rax + 7] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x024cb60f; BYTE $0x08 // movzx ecx, byte [rdx + rax + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000c024847f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm0 + LONG $0x024cb60f; BYTE $0x09 // movzx ecx, byte [rdx + rax + 9] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x024cb60f; BYTE $0x0a // movzx ecx, byte [rdx + rax + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x024cb60f; BYTE $0x0b // movzx ecx, byte [rdx + rax + 11] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x024cb60f; BYTE $0x0c // movzx ecx, byte [rdx + rax + 12] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000d024847f0f66; BYTE $0x00 // movdqa oword [rsp + 208], xmm0 + LONG $0x024cb60f; BYTE $0x0d // movzx ecx, byte [rdx + rax + 13] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x024cb60f; BYTE $0x0e // movzx ecx, byte [rdx + rax + 14] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x024cb60f; BYTE $0x0f // movzx ecx, byte [rdx + rax + 15] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000a024847f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm0 + LONG $0x24448948; BYTE $0x48 // mov qword [rsp + 72], rax + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + LONG $0x20cb8348 // or rbx, 32 + LONG $0x245c8948; BYTE $0x08 // mov qword [rsp + 8], rbx + LONG $0x40cf8348 // or rdi, 64 + LONG $0x247c8948; BYTE $0x20 // mov qword [rsp + 32], rdi + LONG $0x60ce8348 // or rsi, 96 + LONG $0x24748948; BYTE $0x18 // mov qword [rsp + 24], rsi + LONG $0x80c98149; WORD $0x0000; BYTE $0x00 // or r9, 128 + LONG $0xa0ca8149; WORD $0x0000; BYTE $0x00 // or r10, 160 + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0x2464894c; BYTE $0x40 // mov qword [rsp + 64], r12 + LONG $0xe0ce8149; WORD $0x0000; BYTE $0x00 // or r14, 224 + LONG $0x00cf8149; WORD $0x0001; BYTE $0x00 // or r15, 256 + LONG $0x247c894c; BYTE $0x58 // mov qword [rsp + 88], r15 + LONG $0x20cd8149; WORD $0x0001; BYTE $0x00 // or r13, 288 + LONG $0x246c894c; BYTE $0x50 // mov qword [rsp + 80], r13 + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x40cc8149; WORD $0x0001; BYTE $0x00 // or r12, 320 + LONG $0x60cb8149; WORD $0x0001; BYTE $0x00 // or r11, 352 + LONG $0x80c88149; WORD $0x0001; BYTE $0x00 // or r8, 384 + LONG $0x2444894c; BYTE $0x60 // mov qword [rsp + 96], r8 + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0xa0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 416 + LONG $0x244c8948; BYTE $0x30 // mov qword [rsp + 48], rcx + WORD $0x8948; BYTE $0xc1 // mov rcx, rax + LONG $0xc0c98148; WORD $0x0001; BYTE $0x00 // or rcx, 448 + LONG $0x244c8948; BYTE $0x28 // mov qword [rsp + 40], rcx + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0xe0ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 480 + LONG $0x24748948; BYTE $0x10 // mov qword [rsp + 16], rsi + LONG $0x203a0f66; WORD $0x1a24; BYTE $0x01 // pinsrb xmm4, byte [rdx + rbx], 1 + LONG $0x203a0f66; WORD $0x3a24; BYTE $0x02 // pinsrb xmm4, byte [rdx + rdi], 2 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + LONG $0x203a0f66; WORD $0x1a24; BYTE $0x03 // pinsrb xmm4, byte [rdx + rbx], 3 + QUAD $0x040a24203a0f4266 // pinsrb xmm4, byte [rdx + r9], 4 + QUAD $0x051224203a0f4266 // pinsrb xmm4, byte [rdx + r10], 5 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + LONG $0x203a0f66; WORD $0x0224; BYTE $0x06 // pinsrb xmm4, byte [rdx + rax], 6 + QUAD $0x073224203a0f4266 // pinsrb xmm4, byte [rdx + r14], 7 + QUAD $0x083a24203a0f4266 // pinsrb xmm4, byte [rdx + r15], 8 + QUAD $0x092a24203a0f4266 // pinsrb xmm4, byte [rdx + r13], 9 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + LONG $0x2464894c; BYTE $0x38 // mov qword [rsp + 56], r12 + QUAD $0x0a2224203a0f4266 // pinsrb xmm4, byte [rdx + r12], 10 + QUAD $0x0b1a24203a0f4266 // pinsrb xmm4, byte [rdx + r11], 11 + QUAD $0x0c0224203a0f4266 // pinsrb xmm4, byte [rdx + r8], 12 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + LONG $0x203a0f66; WORD $0x0224; BYTE $0x0d // pinsrb xmm4, byte [rdx + rax], 13 + LONG $0x203a0f66; WORD $0x0a24; BYTE $0x0e // pinsrb xmm4, byte [rdx + rcx], 14 + LONG $0x203a0f66; WORD $0x3224; BYTE $0x0f // pinsrb xmm4, byte [rdx + rsi], 15 + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + QUAD $0x01225c203a0f4266; BYTE $0x01 // pinsrb xmm3, byte [rdx + r12 + 1], 1 + QUAD $0x02013a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 1], 2 + QUAD $0x03011a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 1], 3 + QUAD $0x010a5c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r9 + 1], 4 + QUAD $0x01125c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rdx + r10 + 1], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x06011a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 1], 6 + QUAD $0x01325c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r14 + 1], 7 + LONG $0x247c8b48; BYTE $0x58 // mov rdi, qword [rsp + 88] + QUAD $0x08013a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 1], 8 + QUAD $0x012a5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rdx + r13 + 1], 9 + QUAD $0x013a5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r15 + 1], 10 + QUAD $0x011a5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r11 + 1], 11 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x01025c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r8 + 1], 12 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x012a5c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r13 + 1], 13 + QUAD $0x0e010a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 1], 14 + QUAD $0x000090248c6f0f66; BYTE $0x00 // movdqa xmm1, oword [rsp + 144] + LONG $0xe1640f66 // pcmpgtb xmm4, xmm1 + QUAD $0x0f01325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 1], 15 + LONG $0xd9640f66 // pcmpgtb xmm3, xmm1 + QUAD $0x00000100856f0f66 // movdqa xmm0, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xd8df0f66 // pandn xmm3, xmm0 + LONG $0xdcfc0f66 // paddb xmm3, xmm4 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0274b60f; BYTE $0x10 // movzx esi, byte [rdx + rax + 16] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0102026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 2], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0202026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 2], 2 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x021a6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r11 + 2], 3 + QUAD $0x020a6c203a0f4266; BYTE $0x04 // pinsrb xmm5, byte [rdx + r9 + 2], 4 + QUAD $0x02126c203a0f4266; BYTE $0x05 // pinsrb xmm5, byte [rdx + r10 + 2], 5 + QUAD $0x06021a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 2], 6 + LONG $0x2474894c; BYTE $0x68 // mov qword [rsp + 104], r14 + QUAD $0x02326c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r14 + 2], 7 + WORD $0x8949; BYTE $0xfc // mov r12, rdi + QUAD $0x08023a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 2], 8 + LONG $0x24448b4c; BYTE $0x50 // mov r8, qword [rsp + 80] + QUAD $0x02026c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r8 + 2], 9 + LONG $0x247c8b48; BYTE $0x38 // mov rdi, qword [rsp + 56] + QUAD $0x0a023a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 2], 10 + QUAD $0x000000b024bc894c // mov qword [rsp + 176], r15 + QUAD $0x023a6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r15 + 2], 11 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0c020a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 2], 12 + WORD $0x894c; BYTE $0xee // mov rsi, r13 + QUAD $0x022a6c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r13 + 2], 13 + LONG $0x246c8b4c; BYTE $0x28 // mov r13, qword [rsp + 40] + QUAD $0x022a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r13 + 2], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f02026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 2], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0103027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 3], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0203027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 3], 2 + QUAD $0x031a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r11 + 3], 3 + QUAD $0x030a7c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r9 + 3], 4 + QUAD $0x03127c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rdx + r10 + 3], 5 + QUAD $0x06031a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 3], 6 + QUAD $0x03327c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rdx + r14 + 3], 7 + QUAD $0x03227c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r12 + 3], 8 + QUAD $0x03027c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r8 + 3], 9 + QUAD $0x0a033a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 3], 10 + QUAD $0x033a7c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r15 + 3], 11 + QUAD $0x0c030a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 3], 12 + QUAD $0x0d03327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 3], 13 + QUAD $0x032a7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r13 + 3], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f03027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 3], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x04024c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rax + 4], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x04024c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rax + 4], 2 + QUAD $0x041a4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r11 + 4], 3 + QUAD $0x040a4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r9 + 4], 4 + QUAD $0x00000080248c894c // mov qword [rsp + 128], r9 + QUAD $0x04124c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rdx + r10 + 4], 5 + QUAD $0x041a4c203a0f4466; BYTE $0x06 // pinsrb xmm9, byte [rdx + rbx + 4], 6 + QUAD $0x04324c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r14 + 4], 7 + QUAD $0x04224c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r12 + 4], 8 + QUAD $0x04024c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r8 + 4], 9 + QUAD $0x043a4c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rdx + rdi + 4], 10 + QUAD $0x043a4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r15 + 4], 11 + QUAD $0x040a4c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rdx + rcx + 4], 12 + QUAD $0x04324c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rsi + 4], 13 + QUAD $0x042a4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r13 + 4], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x04024c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rdx + rax + 4], 15 + WORD $0x8949; BYTE $0xc5 // mov r13, rax + LONG $0xe9640f66 // pcmpgtb xmm5, xmm1 + QUAD $0x00000110856f0f66 // movdqa xmm0, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xe8df0f66 // pandn xmm5, xmm0 + LONG $0xf9640f66 // pcmpgtb xmm7, xmm1 + QUAD $0x00000120856f0f66 // movdqa xmm0, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xf8df0f66 // pandn xmm7, xmm0 + LONG $0xfdeb0f66 // por xmm7, xmm5 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0274b60f; BYTE $0x11 // movzx esi, byte [rdx + rax + 17] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x640f4466; BYTE $0xc9 // pcmpgtb xmm9, xmm1 + QUAD $0x00000130856f0f66 // movdqa xmm0, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xdf0f4466; BYTE $0xc8 // pandn xmm9, xmm0 + LONG $0xeb0f4466; BYTE $0xcf // por xmm9, xmm7 + LONG $0x0274b60f; BYTE $0x12 // movzx esi, byte [rdx + rax + 18] + LONG $0xfe6e0f66 // movd xmm7, esi + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xd8f80f66 // psubb xmm3, xmm0 + LONG $0xeb0f4466; BYTE $0xcb // por xmm9, xmm3 + LONG $0x0274b60f; BYTE $0x13 // movzx esi, byte [rdx + rax + 19] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x050254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r8 + 5], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x02053a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 5], 2 + QUAD $0x051a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r11 + 5], 3 + QUAD $0x050a54203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r9 + 5], 4 + QUAD $0x051254203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r10 + 5], 5 + WORD $0x894d; BYTE $0xd4 // mov r12, r10 + WORD $0x8949; BYTE $0xde // mov r14, rbx + QUAD $0x06051a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 5], 6 + LONG $0x245c8b48; BYTE $0x68 // mov rbx, qword [rsp + 104] + QUAD $0x07051a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 5], 7 + LONG $0x247c8b4c; BYTE $0x58 // mov r15, qword [rsp + 88] + QUAD $0x053a54203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r15 + 5], 8 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + QUAD $0x050a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r9 + 5], 9 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0a053254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 5], 10 + QUAD $0x000000b0249c8b4c // mov r11, qword [rsp + 176] + QUAD $0x051a54203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r11 + 5], 11 + QUAD $0x0c050a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 5], 12 + LONG $0x24548b4c; BYTE $0x30 // mov r10, qword [rsp + 48] + QUAD $0x051254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r10 + 5], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e050254203a0f66 // pinsrb xmm2, byte [rdx + rax + 5], 14 + QUAD $0x052a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r13 + 5], 15 + QUAD $0x060244203a0f4666; BYTE $0x01 // pinsrb xmm8, byte [rdx + r8 + 6], 1 + QUAD $0x063a44203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rdi + 6], 2 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x062a44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r13 + 6], 3 + QUAD $0x0000008024ac8b4c // mov r13, qword [rsp + 128] + QUAD $0x062a44203a0f4666; BYTE $0x04 // pinsrb xmm8, byte [rdx + r13 + 6], 4 + QUAD $0x062244203a0f4666; BYTE $0x05 // pinsrb xmm8, byte [rdx + r12 + 6], 5 + QUAD $0x063244203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rdx + r14 + 6], 6 + QUAD $0x061a44203a0f4466; BYTE $0x07 // pinsrb xmm8, byte [rdx + rbx + 6], 7 + QUAD $0x063a44203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r15 + 6], 8 + QUAD $0x060a44203a0f4666; BYTE $0x09 // pinsrb xmm8, byte [rdx + r9 + 6], 9 + QUAD $0x063244203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rdx + rsi + 6], 10 + QUAD $0x061a44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r11 + 6], 11 + WORD $0x894d; BYTE $0xdf // mov r15, r11 + QUAD $0x060a44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rdx + rcx + 6], 12 + QUAD $0x061244203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rdx + r10 + 6], 13 + QUAD $0x060244203a0f4466; BYTE $0x0e // pinsrb xmm8, byte [rdx + rax + 6], 14 + WORD $0x8949; BYTE $0xc2 // mov r10, rax + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x060244203a0f4466; BYTE $0x0f // pinsrb xmm8, byte [rdx + rax + 6], 15 + QUAD $0x070274203a0f4666; BYTE $0x01 // pinsrb xmm14, byte [rdx + r8 + 7], 1 + QUAD $0x073a74203a0f4466; BYTE $0x02 // pinsrb xmm14, byte [rdx + rdi + 7], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x070274203a0f4466; BYTE $0x03 // pinsrb xmm14, byte [rdx + rax + 7], 3 + WORD $0x894d; BYTE $0xe9 // mov r9, r13 + QUAD $0x072a74203a0f4666; BYTE $0x04 // pinsrb xmm14, byte [rdx + r13 + 7], 4 + WORD $0x894c; BYTE $0xe7 // mov rdi, r12 + QUAD $0x072274203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rdx + r12 + 7], 5 + QUAD $0x073274203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r14 + 7], 6 + QUAD $0x071a74203a0f4466; BYTE $0x07 // pinsrb xmm14, byte [rdx + rbx + 7], 7 + WORD $0x8949; BYTE $0xdb // mov r11, rbx + LONG $0x24648b4c; BYTE $0x58 // mov r12, qword [rsp + 88] + QUAD $0x072274203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r12 + 7], 8 + LONG $0x246c8b4c; BYTE $0x50 // mov r13, qword [rsp + 80] + QUAD $0x072a74203a0f4666; BYTE $0x09 // pinsrb xmm14, byte [rdx + r13 + 7], 9 + QUAD $0x073274203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rdx + rsi + 7], 10 + QUAD $0x073a74203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rdx + r15 + 7], 11 + QUAD $0x070a74203a0f4466; BYTE $0x0c // pinsrb xmm14, byte [rdx + rcx + 7], 12 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x071a74203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rbx + 7], 13 + QUAD $0x071274203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r10 + 7], 14 + LONG $0x6f0f4166; BYTE $0xce // movdqa xmm1, xmm14 + QUAD $0x009024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 144] + LONG $0x640f4166; BYTE $0xd6 // pcmpgtb xmm2, xmm14 + QUAD $0x00000140856f0f66 // movdqa xmm0, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0xd0df0f66 // pandn xmm2, xmm0 + LONG $0x640f4566; BYTE $0xc6 // pcmpgtb xmm8, xmm14 + QUAD $0x00000150856f0f66 // movdqa xmm0, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xdf0f4466; BYTE $0xc0 // pandn xmm8, xmm0 + LONG $0xeb0f4466; BYTE $0xc2 // por xmm8, xmm2 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0274b60f; BYTE $0x14 // movzx esi, byte [rdx + rax + 20] + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0f070a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 7], 15 + LONG $0x640f4166; BYTE $0xce // pcmpgtb xmm1, xmm14 + LONG $0x456f0f66; BYTE $0x60 // movdqa xmm0, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xc8df0f66 // pandn xmm1, xmm0 + LONG $0xeb0f4166; BYTE $0xc8 // por xmm1, xmm8 + LONG $0x0274b60f; BYTE $0x15 // movzx esi, byte [rdx + rax + 21] + LONG $0xd66e0f66 // movd xmm2, esi + QUAD $0x0000c024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 192] + QUAD $0x080244203a0f4266; BYTE $0x01 // pinsrb xmm0, byte [rdx + r8 + 8], 1 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x083244203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r14 + 8], 2 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x03083244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 8], 3 + QUAD $0x080a44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r9 + 8], 4 + QUAD $0x05083a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 8], 5 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + LONG $0x247c8b48; BYTE $0x40 // mov rdi, qword [rsp + 64] + QUAD $0x06083a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 8], 6 + QUAD $0x081a44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r11 + 8], 7 + QUAD $0x082244203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r12 + 8], 8 + QUAD $0x082a44203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rdx + r13 + 8], 9 + LONG $0x24448b4c; BYTE $0x38 // mov r8, qword [rsp + 56] + QUAD $0x080244203a0f4266; BYTE $0x0a // pinsrb xmm0, byte [rdx + r8 + 8], 10 + QUAD $0x083a44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r15 + 8], 11 + LONG $0x24748b48; BYTE $0x60 // mov rsi, qword [rsp + 96] + QUAD $0x0c083244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 8], 12 + QUAD $0x0d081a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 8], 13 + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0e083244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 8], 14 + QUAD $0x0f080a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 8], 15 + LONG $0xeb0f4166; BYTE $0xc9 // por xmm1, xmm9 + QUAD $0x0000c0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 192], xmm1 + LONG $0x0274b60f; BYTE $0x16 // movzx esi, byte [rdx + rax + 22] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x640f4166; BYTE $0xc6 // pcmpgtb xmm0, xmm14 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x091a5c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r11 + 9], 1 + WORD $0x894c; BYTE $0xdb // mov rbx, r11 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + QUAD $0x09325c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rdx + r14 + 9], 2 + LONG $0x245c8b4c; BYTE $0x18 // mov r11, qword [rsp + 24] + QUAD $0x091a5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r11 + 9], 3 + QUAD $0x090a5c203a0f4666; BYTE $0x04 // pinsrb xmm11, byte [rdx + r9 + 9], 4 + LONG $0x2454894c; BYTE $0x70 // mov qword [rsp + 112], r10 + QUAD $0x09125c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r10 + 9], 5 + QUAD $0x093a5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rdx + rdi + 9], 6 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x09325c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r14 + 9], 7 + QUAD $0x09225c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r12 + 9], 8 + QUAD $0x092a5c203a0f4666; BYTE $0x09 // pinsrb xmm11, byte [rdx + r13 + 9], 9 + WORD $0x894c; BYTE $0xc6 // mov rsi, r8 + QUAD $0x09025c203a0f4666; BYTE $0x0a // pinsrb xmm11, byte [rdx + r8 + 9], 10 + WORD $0x894c; BYTE $0xf9 // mov rcx, r15 + QUAD $0x093a5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r15 + 9], 11 + LONG $0x24448b4c; BYTE $0x60 // mov r8, qword [rsp + 96] + QUAD $0x09025c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r8 + 9], 12 + LONG $0x247c8b4c; BYTE $0x30 // mov r15, qword [rsp + 48] + QUAD $0x093a5c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rdx + r15 + 9], 13 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x093a5c203a0f4466; BYTE $0x0e // pinsrb xmm11, byte [rdx + rdi + 9], 14 + LONG $0x247c8b48; BYTE $0x10 // mov rdi, qword [rsp + 16] + QUAD $0x093a5c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rdx + rdi + 9], 15 + QUAD $0x0a1a64203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rbx + 10], 1 + QUAD $0x0a0264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rax + 10], 2 + QUAD $0x0a1a64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r11 + 10], 3 + QUAD $0x0a0a64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rdx + r9 + 10], 4 + QUAD $0x0a1264203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rdx + r10 + 10], 5 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0a1a64203a0f4466; BYTE $0x06 // pinsrb xmm12, byte [rdx + rbx + 10], 6 + QUAD $0x0a3264203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r14 + 10], 7 + QUAD $0x0a2264203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r12 + 10], 8 + QUAD $0x0a2a64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r13 + 10], 9 + QUAD $0x0a3264203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rsi + 10], 10 + QUAD $0x0a0a64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rdx + rcx + 10], 11 + QUAD $0x0a0264203a0f4666; BYTE $0x0c // pinsrb xmm12, byte [rdx + r8 + 10], 12 + QUAD $0x0a3a64203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r15 + 10], 13 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0a3a64203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r15 + 10], 14 + QUAD $0x0a3a64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rdi + 10], 15 + LONG $0x245c8b48; BYTE $0x08 // mov rbx, qword [rsp + 8] + QUAD $0x0b1a6c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rdx + rbx + 11], 1 + QUAD $0x0b026c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rax + 11], 2 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0b026c203a0f4466; BYTE $0x03 // pinsrb xmm13, byte [rdx + rax + 11], 3 + QUAD $0x0b0a6c203a0f4666; BYTE $0x04 // pinsrb xmm13, byte [rdx + r9 + 11], 4 + QUAD $0x0b126c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rdx + r10 + 11], 5 + LONG $0x24548b4c; BYTE $0x40 // mov r10, qword [rsp + 64] + QUAD $0x0b126c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r10 + 11], 6 + QUAD $0x0b326c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r14 + 11], 7 + QUAD $0x0b226c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r12 + 11], 8 + QUAD $0x0b2a6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rdx + r13 + 11], 9 + QUAD $0x0b326c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rsi + 11], 10 + QUAD $0x0b0a6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rdx + rcx + 11], 11 + QUAD $0x0b026c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r8 + 11], 12 + QUAD $0x0b1a6c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r11 + 11], 13 + QUAD $0x0b3a6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r15 + 11], 14 + QUAD $0x0b3a6c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rdi + 11], 15 + LONG $0x640f4566; BYTE $0xde // pcmpgtb xmm11, xmm14 + QUAD $0x0001009ddf0f4466; BYTE $0x00 // pandn xmm11, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xfc0f4466; BYTE $0xd8 // paddb xmm11, xmm0 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + LONG $0x0a74b60f; BYTE $0x17 // movzx esi, byte [rdx + rcx + 23] + LONG $0x6e0f4466; BYTE $0xc6 // movd xmm8, esi + LONG $0x640f4566; BYTE $0xe6 // pcmpgtb xmm12, xmm14 + QUAD $0x000110a5df0f4466; BYTE $0x00 // pandn xmm12, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0x640f4566; BYTE $0xee // pcmpgtb xmm13, xmm14 + QUAD $0x000120addf0f4466; BYTE $0x00 // pandn xmm13, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + LONG $0x0a74b60f; BYTE $0x18 // movzx esi, byte [rdx + rcx + 24] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x00d0248c6f0f4466; WORD $0x0000 // movdqa xmm9, oword [rsp + 208] + QUAD $0x0c1a4c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rbx + 12], 1 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0c3a4c203a0f4666; BYTE $0x02 // pinsrb xmm9, byte [rdx + r15 + 12], 2 + WORD $0x8949; BYTE $0xc3 // mov r11, rax + QUAD $0x0c024c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rdx + rax + 12], 3 + WORD $0x894c; BYTE $0xcf // mov rdi, r9 + QUAD $0x0c0a4c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r9 + 12], 4 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x0c0a4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rdx + r9 + 12], 5 + WORD $0x894c; BYTE $0xd3 // mov rbx, r10 + QUAD $0x0c124c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r10 + 12], 6 + WORD $0x894d; BYTE $0xf2 // mov r10, r14 + QUAD $0x0c324c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r14 + 12], 7 + WORD $0x894d; BYTE $0xe6 // mov r14, r12 + QUAD $0x0c224c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r12 + 12], 8 + WORD $0x894d; BYTE $0xec // mov r12, r13 + QUAD $0x0c2a4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r13 + 12], 9 + LONG $0x246c8b4c; BYTE $0x38 // mov r13, qword [rsp + 56] + QUAD $0x0c2a4c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r13 + 12], 10 + QUAD $0x000000b0248c8b48 // mov rcx, qword [rsp + 176] + QUAD $0x0c0a4c203a0f4466; BYTE $0x0b // pinsrb xmm9, byte [rdx + rcx + 12], 11 + QUAD $0x0c024c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r8 + 12], 12 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0c324c203a0f4466; BYTE $0x0d // pinsrb xmm9, byte [rdx + rsi + 12], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0c024c203a0f4466; BYTE $0x0e // pinsrb xmm9, byte [rdx + rax + 12], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0c024c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rdx + rax + 12], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x010d0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 13], 1 + QUAD $0x0d3a74203a0f4266; BYTE $0x02 // pinsrb xmm6, byte [rdx + r15 + 13], 2 + QUAD $0x0d1a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 13], 3 + QUAD $0x040d3a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 13], 4 + QUAD $0x0d0a74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r9 + 13], 5 + QUAD $0x060d1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 13], 6 + QUAD $0x0d1274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r10 + 13], 7 + QUAD $0x0d3274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r14 + 13], 8 + QUAD $0x0d2274203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r12 + 13], 9 + QUAD $0x0d2a74203a0f4266; BYTE $0x0a // pinsrb xmm6, byte [rdx + r13 + 13], 10 + QUAD $0x0b0d0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 13], 11 + QUAD $0x0d0274203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r8 + 13], 12 + QUAD $0x0d0d3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 13], 13 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x0e0d0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 13], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0f0d0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 13], 15 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0e027c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rax + 14], 1 + QUAD $0x0e3a7c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rdx + r15 + 14], 2 + QUAD $0x0e1a7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r11 + 14], 3 + QUAD $0x0e3a7c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rdx + rdi + 14], 4 + WORD $0x8949; BYTE $0xfb // mov r11, rdi + QUAD $0x0e0a7c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rdx + r9 + 14], 5 + QUAD $0x0e1a7c203a0f4466; BYTE $0x06 // pinsrb xmm15, byte [rdx + rbx + 14], 6 + QUAD $0x0e127c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r10 + 14], 7 + QUAD $0x0e327c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r14 + 14], 8 + QUAD $0x0e227c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r12 + 14], 9 + QUAD $0x0e2a7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rdx + r13 + 14], 10 + QUAD $0x0e0a7c203a0f4466; BYTE $0x0b // pinsrb xmm15, byte [rdx + rcx + 14], 11 + WORD $0x8949; BYTE $0xcd // mov r13, rcx + QUAD $0x0e027c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r8 + 14], 12 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x0e327c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rsi + 14], 13 + LONG $0x247c8b4c; BYTE $0x28 // mov r15, qword [rsp + 40] + QUAD $0x0e3a7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rdx + r15 + 14], 14 + LONG $0x640f4566; BYTE $0xce // pcmpgtb xmm9, xmm14 + QUAD $0x0001308ddf0f4466; BYTE $0x00 // pandn xmm9, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xeb0f4566; BYTE $0xcd // por xmm9, xmm13 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + QUAD $0x0001609df80f4466; BYTE $0x00 // psubb xmm11, oword 352[rbp] /* [rip + .LCPI11_22] */ + LONG $0xeb0f4566; BYTE $0xcb // por xmm9, xmm11 + LONG $0x0274b60f; BYTE $0x1a // movzx esi, byte [rdx + rax + 26] + LONG $0xc66e0f66 // movd xmm0, esi + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e0a7c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rdx + rcx + 14], 15 + LONG $0x640f4166; BYTE $0xf6 // pcmpgtb xmm6, xmm14 + QUAD $0x00000140b5df0f66 // pandn xmm6, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0x640f4566; BYTE $0xfe // pcmpgtb xmm15, xmm14 + QUAD $0x000150bddf0f4466; BYTE $0x00 // pandn xmm15, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xeb0f4466; BYTE $0xfe // por xmm15, xmm6 + LONG $0x0274b60f; BYTE $0x1b // movzx esi, byte [rdx + rax + 27] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x0000a024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 160] + LONG $0x24448b4c; BYTE $0x08 // mov r8, qword [rsp + 8] + QUAD $0x0f0274203a0f4266; BYTE $0x01 // pinsrb xmm6, byte [rdx + r8 + 15], 1 + LONG $0x247c8b48; BYTE $0x20 // mov rdi, qword [rsp + 32] + QUAD $0x020f3a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 15], 2 + LONG $0x24748b48; BYTE $0x18 // mov rsi, qword [rsp + 24] + QUAD $0x030f3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 15], 3 + QUAD $0x0f1a74203a0f4266; BYTE $0x04 // pinsrb xmm6, byte [rdx + r11 + 15], 4 + QUAD $0x0f0a74203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r9 + 15], 5 + WORD $0x8949; BYTE $0xd9 // mov r9, rbx + QUAD $0x060f1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 15], 6 + QUAD $0x0f1274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r10 + 15], 7 + QUAD $0x0f3274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r14 + 15], 8 + WORD $0x894d; BYTE $0xf2 // mov r10, r14 + LONG $0x245c8b4c; BYTE $0x50 // mov r11, qword [rsp + 80] + QUAD $0x0f1a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r11 + 15], 9 + LONG $0x245c8b48; BYTE $0x38 // mov rbx, qword [rsp + 56] + QUAD $0x0a0f1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 15], 10 + QUAD $0x0f2a74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r13 + 15], 11 + QUAD $0x0f2274203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r12 + 15], 12 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x0f2274203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rdx + r12 + 15], 13 + QUAD $0x0f3a74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r15 + 15], 14 + QUAD $0x0f0f0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 15], 15 + LONG $0x640f4166; BYTE $0xf6 // pcmpgtb xmm6, xmm14 + LONG $0x75df0f66; BYTE $0x60 // pandn xmm6, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x0274b60f; BYTE $0x1c // movzx esi, byte [rdx + rax + 28] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + LONG $0xeb0f4166; BYTE $0xf1 // por xmm6, xmm9 + QUAD $0x0000a024b47f0f66; BYTE $0x00 // movdqa oword [rsp + 160], xmm6 + LONG $0x0274b60f; BYTE $0x1d // movzx esi, byte [rdx + rax + 29] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x100254203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r8 + 16], 1 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x103a54203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rdi + 16], 2 + LONG $0x244c8b48; BYTE $0x18 // mov rcx, qword [rsp + 24] + QUAD $0x100a54203a0f4466; BYTE $0x03 // pinsrb xmm10, byte [rdx + rcx + 16], 3 + QUAD $0x0000008024bc8b48 // mov rdi, qword [rsp + 128] + QUAD $0x103a54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rdx + rdi + 16], 4 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x100254203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r8 + 16], 5 + QUAD $0x100a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r9 + 16], 6 + LONG $0x244c8b4c; BYTE $0x68 // mov r9, qword [rsp + 104] + QUAD $0x100a54203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r9 + 16], 7 + QUAD $0x101254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r10 + 16], 8 + QUAD $0x101a54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rdx + r11 + 16], 9 + QUAD $0x101a54203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rbx + 16], 10 + QUAD $0x102a54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r13 + 16], 11 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x103a54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r15 + 16], 12 + QUAD $0x102254203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r12 + 16], 13 + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x100a54203a0f4466; BYTE $0x0e // pinsrb xmm10, byte [rdx + rcx + 16], 14 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x103254203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rsi + 16], 15 + QUAD $0x01110264203a0f66 // pinsrb xmm4, byte [rdx + rax + 17], 1 + QUAD $0x113264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r14 + 17], 2 + LONG $0x24748b4c; BYTE $0x18 // mov r14, qword [rsp + 24] + QUAD $0x113264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r14 + 17], 3 + QUAD $0x04113a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 17], 4 + QUAD $0x110264203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rdx + r8 + 17], 5 + LONG $0x24648b4c; BYTE $0x40 // mov r12, qword [rsp + 64] + QUAD $0x112264203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r12 + 17], 6 + QUAD $0x110a64203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r9 + 17], 7 + QUAD $0x111264203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r10 + 17], 8 + QUAD $0x111a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r11 + 17], 9 + QUAD $0x0a111a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 17], 10 + QUAD $0x112a64203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r13 + 17], 11 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x113a64203a0f4266; BYTE $0x0c // pinsrb xmm4, byte [rdx + r15 + 17], 12 + LONG $0x24448b4c; BYTE $0x30 // mov r8, qword [rsp + 48] + QUAD $0x110264203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r8 + 17], 13 + QUAD $0x0e110a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 17], 14 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + QUAD $0x0f113264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 17], 15 + WORD $0x8949; BYTE $0xf7 // mov r15, rsi + LONG $0x640f4566; BYTE $0xd6 // pcmpgtb xmm10, xmm14 + LONG $0x640f4166; BYTE $0xe6 // pcmpgtb xmm4, xmm14 + QUAD $0x00000100b56f0f66 // movdqa xmm6, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xe6df0f66 // pandn xmm4, xmm6 + LONG $0xfc0f4166; BYTE $0xe2 // paddb xmm4, xmm10 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + LONG $0x0274b60f; BYTE $0x1e // movzx esi, byte [rdx + rax + 30] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0112327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 18], 1 + QUAD $0x0113326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 19], 1 + QUAD $0x0114325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 20], 1 + QUAD $0x01153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 1 + QUAD $0x0116324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 22], 1 + QUAD $0x173244203a0f4466; BYTE $0x01 // pinsrb xmm8, byte [rdx + rsi + 23], 1 + QUAD $0x183264203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rsi + 24], 1 + QUAD $0x19326c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rdx + rsi + 25], 1 + QUAD $0x011a3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 26], 1 + QUAD $0x1b325c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rsi + 27], 1 + QUAD $0x1c327c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rsi + 28], 1 + QUAD $0x1d324c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rsi + 29], 1 + QUAD $0x1e3254203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rdx + rsi + 30], 1 + LONG $0x0244b60f; BYTE $0x1f // movzx eax, byte [rdx + rax + 31] + LONG $0xf06e0f66 // movd xmm6, eax + QUAD $0x011f3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 31], 1 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0212027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 18], 2 + QUAD $0x0213026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 19], 2 + QUAD $0x0214025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 20], 2 + QUAD $0x02150254203a0f66 // pinsrb xmm2, byte [rdx + rax + 21], 2 + QUAD $0x0216024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 22], 2 + QUAD $0x170244203a0f4466; BYTE $0x02 // pinsrb xmm8, byte [rdx + rax + 23], 2 + QUAD $0x180264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rax + 24], 2 + QUAD $0x19026c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rax + 25], 2 + QUAD $0x021a0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 26], 2 + QUAD $0x1b025c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rax + 27], 2 + QUAD $0x1c027c203a0f4466; BYTE $0x02 // pinsrb xmm15, byte [rdx + rax + 28], 2 + QUAD $0x1d024c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rax + 29], 2 + QUAD $0x1e0254203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rax + 30], 2 + QUAD $0x021f0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 31], 2 + WORD $0x894d; BYTE $0xf3 // mov r11, r14 + QUAD $0x12327c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r14 + 18], 3 + QUAD $0x04123a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 18], 4 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x05120a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 18], 5 + QUAD $0x12227c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r12 + 18], 6 + LONG $0x24548b4c; BYTE $0x68 // mov r10, qword [rsp + 104] + QUAD $0x12127c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rdx + r10 + 18], 7 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x12327c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r14 + 18], 8 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + QUAD $0x0912027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 18], 9 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0a12327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 18], 10 + QUAD $0x122a7c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r13 + 18], 11 + QUAD $0x0c121a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 18], 12 + QUAD $0x12027c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rdx + r8 + 18], 13 + QUAD $0x120a7c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r9 + 18], 14 + QUAD $0x123a7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r15 + 18], 15 + QUAD $0x131a6c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r11 + 19], 3 + QUAD $0x04133a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 19], 4 + QUAD $0x05130a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 19], 5 + QUAD $0x13226c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r12 + 19], 6 + QUAD $0x13126c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r10 + 19], 7 + QUAD $0x13326c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r14 + 19], 8 + QUAD $0x0913026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 19], 9 + QUAD $0x0a13326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 19], 10 + QUAD $0x132a6c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r13 + 19], 11 + QUAD $0x0c131a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 19], 12 + QUAD $0x13026c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r8 + 19], 13 + QUAD $0x130a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r9 + 19], 14 + QUAD $0x133a6c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r15 + 19], 15 + QUAD $0x141a5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r11 + 20], 3 + QUAD $0x04143a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 20], 4 + QUAD $0x05140a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 20], 5 + QUAD $0x14225c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r12 + 20], 6 + QUAD $0x14125c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r10 + 20], 7 + QUAD $0x14325c203a0f4266; BYTE $0x08 // pinsrb xmm3, byte [rdx + r14 + 20], 8 + QUAD $0x0914025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 20], 9 + QUAD $0x0a14325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 20], 10 + QUAD $0x142a5c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r13 + 20], 11 + QUAD $0x0c141a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 20], 12 + QUAD $0x14025c203a0f4266; BYTE $0x0d // pinsrb xmm3, byte [rdx + r8 + 20], 13 + QUAD $0x140a5c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r9 + 20], 14 + LONG $0x640f4166; BYTE $0xfe // pcmpgtb xmm7, xmm14 + QUAD $0x000110b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xdf0f4166; BYTE $0xfe // pandn xmm7, xmm14 + QUAD $0x00009024ac640f66; BYTE $0x00 // pcmpgtb xmm5, oword [rsp + 144] + QUAD $0x000120b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xdf0f4166; BYTE $0xee // pandn xmm5, xmm14 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0x143a5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r15 + 20], 15 + QUAD $0x009024b46f0f4466; WORD $0x0000 // movdqa xmm14, oword [rsp + 144] + LONG $0x640f4166; BYTE $0xde // pcmpgtb xmm3, xmm14 + QUAD $0x00000130bd6f0f66 // movdqa xmm7, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xdfdf0f66 // pandn xmm3, xmm7 + LONG $0xddeb0f66 // por xmm3, xmm5 + LONG $0xed760f66 // pcmpeqd xmm5, xmm5 + LONG $0xe5f80f66 // psubb xmm4, xmm5 + LONG $0xdceb0f66 // por xmm3, xmm4 + QUAD $0x151a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r11 + 21], 3 + QUAD $0x04153a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 21], 4 + QUAD $0x05150a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 21], 5 + QUAD $0x152254203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r12 + 21], 6 + QUAD $0x151254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r10 + 21], 7 + QUAD $0x153254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r14 + 21], 8 + QUAD $0x09150254203a0f66 // pinsrb xmm2, byte [rdx + rax + 21], 9 + QUAD $0x0a153254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 21], 10 + QUAD $0x152a54203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r13 + 21], 11 + QUAD $0x0c151a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 21], 12 + QUAD $0x150254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r8 + 21], 13 + QUAD $0x150a54203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r9 + 21], 14 + QUAD $0x153a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r15 + 21], 15 + QUAD $0x161a4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r11 + 22], 3 + QUAD $0x04163a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 22], 4 + QUAD $0x05160a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 22], 5 + QUAD $0x16224c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r12 + 22], 6 + QUAD $0x16124c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r10 + 22], 7 + QUAD $0x16324c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r14 + 22], 8 + QUAD $0x0916024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 22], 9 + QUAD $0x0a16324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 22], 10 + QUAD $0x162a4c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r13 + 22], 11 + QUAD $0x0c161a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 22], 12 + QUAD $0x16024c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r8 + 22], 13 + QUAD $0x160a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r9 + 22], 14 + QUAD $0x163a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r15 + 22], 15 + QUAD $0x171a44203a0f4666; BYTE $0x03 // pinsrb xmm8, byte [rdx + r11 + 23], 3 + QUAD $0x173a44203a0f4466; BYTE $0x04 // pinsrb xmm8, byte [rdx + rdi + 23], 4 + QUAD $0x170a44203a0f4466; BYTE $0x05 // pinsrb xmm8, byte [rdx + rcx + 23], 5 + QUAD $0x172244203a0f4666; BYTE $0x06 // pinsrb xmm8, byte [rdx + r12 + 23], 6 + QUAD $0x171244203a0f4666; BYTE $0x07 // pinsrb xmm8, byte [rdx + r10 + 23], 7 + QUAD $0x173244203a0f4666; BYTE $0x08 // pinsrb xmm8, byte [rdx + r14 + 23], 8 + QUAD $0x170244203a0f4466; BYTE $0x09 // pinsrb xmm8, byte [rdx + rax + 23], 9 + QUAD $0x173244203a0f4466; BYTE $0x0a // pinsrb xmm8, byte [rdx + rsi + 23], 10 + QUAD $0x172a44203a0f4666; BYTE $0x0b // pinsrb xmm8, byte [rdx + r13 + 23], 11 + QUAD $0x171a44203a0f4466; BYTE $0x0c // pinsrb xmm8, byte [rdx + rbx + 23], 12 + QUAD $0x170244203a0f4666; BYTE $0x0d // pinsrb xmm8, byte [rdx + r8 + 23], 13 + QUAD $0x170a44203a0f4666; BYTE $0x0e // pinsrb xmm8, byte [rdx + r9 + 23], 14 + LONG $0x640f4166; BYTE $0xd6 // pcmpgtb xmm2, xmm14 + QUAD $0x00000140ad6f0f66 // movdqa xmm5, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0xd5df0f66 // pandn xmm2, xmm5 + LONG $0x640f4166; BYTE $0xce // pcmpgtb xmm1, xmm14 + QUAD $0x00000150bd6f0f66 // movdqa xmm7, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xcfdf0f66 // pandn xmm1, xmm7 + LONG $0xcaeb0f66 // por xmm1, xmm2 + QUAD $0x173a44203a0f4666; BYTE $0x0f // pinsrb xmm8, byte [rdx + r15 + 23], 15 + LONG $0x640f4566; BYTE $0xc6 // pcmpgtb xmm8, xmm14 + LONG $0x656f0f66; BYTE $0x60 // movdqa xmm4, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xdf0f4466; BYTE $0xc4 // pandn xmm8, xmm4 + LONG $0xeb0f4466; BYTE $0xc1 // por xmm8, xmm1 + QUAD $0x181a64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r11 + 24], 3 + QUAD $0x183a64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rdi + 24], 4 + QUAD $0x180a64203a0f4466; BYTE $0x05 // pinsrb xmm12, byte [rdx + rcx + 24], 5 + QUAD $0x182264203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r12 + 24], 6 + QUAD $0x181264203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r10 + 24], 7 + QUAD $0x183264203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r14 + 24], 8 + QUAD $0x180264203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rdx + rax + 24], 9 + QUAD $0x183264203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rsi + 24], 10 + QUAD $0x182a64203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r13 + 24], 11 + QUAD $0x181a64203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rdx + rbx + 24], 12 + QUAD $0x180264203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r8 + 24], 13 + QUAD $0x180a64203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r9 + 24], 14 + QUAD $0x183a64203a0f4666; BYTE $0x0f // pinsrb xmm12, byte [rdx + r15 + 24], 15 + LONG $0xeb0f4466; BYTE $0xc3 // por xmm8, xmm3 + LONG $0x640f4566; BYTE $0xe6 // pcmpgtb xmm12, xmm14 + QUAD $0x191a6c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r11 + 25], 3 + QUAD $0x193a6c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rdx + rdi + 25], 4 + QUAD $0x190a6c203a0f4466; BYTE $0x05 // pinsrb xmm13, byte [rdx + rcx + 25], 5 + QUAD $0x19226c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r12 + 25], 6 + QUAD $0x19126c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r10 + 25], 7 + QUAD $0x19326c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r14 + 25], 8 + QUAD $0x19026c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rdx + rax + 25], 9 + QUAD $0x19326c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rsi + 25], 10 + QUAD $0x192a6c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rdx + r13 + 25], 11 + QUAD $0x191a6c203a0f4466; BYTE $0x0c // pinsrb xmm13, byte [rdx + rbx + 25], 12 + QUAD $0x19026c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r8 + 25], 13 + QUAD $0x190a6c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r9 + 25], 14 + QUAD $0x193a6c203a0f4666; BYTE $0x0f // pinsrb xmm13, byte [rdx + r15 + 25], 15 + QUAD $0x1a1a44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r11 + 26], 3 + QUAD $0x041a3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 26], 4 + QUAD $0x051a0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 26], 5 + QUAD $0x1a2244203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rdx + r12 + 26], 6 + QUAD $0x1a1244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r10 + 26], 7 + QUAD $0x1a3244203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r14 + 26], 8 + QUAD $0x091a0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 26], 9 + QUAD $0x0a1a3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 26], 10 + QUAD $0x1a2a44203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r13 + 26], 11 + QUAD $0x0c1a1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 26], 12 + QUAD $0x1a0244203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rdx + r8 + 26], 13 + QUAD $0x1a0a44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r9 + 26], 14 + QUAD $0x1a3a44203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r15 + 26], 15 + QUAD $0x1b1a5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r11 + 27], 3 + QUAD $0x1b3a5c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rdx + rdi + 27], 4 + QUAD $0x1b0a5c203a0f4466; BYTE $0x05 // pinsrb xmm11, byte [rdx + rcx + 27], 5 + QUAD $0x1b225c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r12 + 27], 6 + QUAD $0x1b125c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r10 + 27], 7 + QUAD $0x1b325c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r14 + 27], 8 + QUAD $0x1b025c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rax + 27], 9 + QUAD $0x1b325c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rdx + rsi + 27], 10 + QUAD $0x1b2a5c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r13 + 27], 11 + QUAD $0x1b1a5c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rdx + rbx + 27], 12 + QUAD $0x1b025c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rdx + r8 + 27], 13 + QUAD $0x1b0a5c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r9 + 27], 14 + LONG $0x640f4566; BYTE $0xee // pcmpgtb xmm13, xmm14 + QUAD $0x000100addf0f4466; BYTE $0x00 // pandn xmm13, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xfc0f4566; BYTE $0xec // paddb xmm13, xmm12 + QUAD $0x1b3a5c203a0f4666; BYTE $0x0f // pinsrb xmm11, byte [rdx + r15 + 27], 15 + LONG $0x640f4166; BYTE $0xc6 // pcmpgtb xmm0, xmm14 + QUAD $0x0000011085df0f66 // pandn xmm0, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0x640f4566; BYTE $0xde // pcmpgtb xmm11, xmm14 + QUAD $0x0001209ddf0f4466; BYTE $0x00 // pandn xmm11, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xeb0f4466; BYTE $0xd8 // por xmm11, xmm0 + QUAD $0x1c1a7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r11 + 28], 3 + QUAD $0x1d1a4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r11 + 29], 3 + QUAD $0x1e1a54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r11 + 30], 3 + QUAD $0x1f1a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 31], 3 + QUAD $0x1c3a7c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rdx + rdi + 28], 4 + QUAD $0x1d3a4c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rdx + rdi + 29], 4 + QUAD $0x1e3a54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rdx + rdi + 30], 4 + QUAD $0x041f3a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 31], 4 + WORD $0x8948; BYTE $0xcf // mov rdi, rcx + QUAD $0x1c0a7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rcx + 28], 5 + QUAD $0x1d0a4c203a0f4466; BYTE $0x05 // pinsrb xmm9, byte [rdx + rcx + 29], 5 + QUAD $0x1e0a54203a0f4466; BYTE $0x05 // pinsrb xmm10, byte [rdx + rcx + 30], 5 + QUAD $0x051f0a74203a0f66 // pinsrb xmm6, byte [rdx + rcx + 31], 5 + QUAD $0x1c227c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r12 + 28], 6 + QUAD $0x1d224c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r12 + 29], 6 + QUAD $0x1e2254203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r12 + 30], 6 + QUAD $0x1f2274203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r12 + 31], 6 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + WORD $0x894c; BYTE $0xd7 // mov rdi, r10 + QUAD $0x1c127c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r10 + 28], 7 + QUAD $0x1d124c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r10 + 29], 7 + QUAD $0x1e1254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r10 + 30], 7 + QUAD $0x1f1274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r10 + 31], 7 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + QUAD $0x1c327c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r14 + 28], 8 + QUAD $0x1d324c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r14 + 29], 8 + QUAD $0x1e3254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r14 + 30], 8 + QUAD $0x1f3274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r14 + 31], 8 + QUAD $0x1c027c203a0f4466; BYTE $0x09 // pinsrb xmm15, byte [rdx + rax + 28], 9 + QUAD $0x1d024c203a0f4466; BYTE $0x09 // pinsrb xmm9, byte [rdx + rax + 29], 9 + QUAD $0x1e0254203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rax + 30], 9 + QUAD $0x091f0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 31], 9 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + QUAD $0x1c327c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rdx + rsi + 28], 10 + QUAD $0x1d324c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rdx + rsi + 29], 10 + QUAD $0x1e3254203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rsi + 30], 10 + QUAD $0x0a1f3274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 31], 10 + QUAD $0x1c2a7c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r13 + 28], 11 + QUAD $0x1d2a4c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r13 + 29], 11 + QUAD $0x1e2a54203a0f4666; BYTE $0x0b // pinsrb xmm10, byte [rdx + r13 + 30], 11 + QUAD $0x1f2a74203a0f4266; BYTE $0x0b // pinsrb xmm6, byte [rdx + r13 + 31], 11 + QUAD $0x1c1a7c203a0f4466; BYTE $0x0c // pinsrb xmm15, byte [rdx + rbx + 28], 12 + QUAD $0x1d1a4c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rdx + rbx + 29], 12 + QUAD $0x1e1a54203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rbx + 30], 12 + QUAD $0x0c1f1a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 31], 12 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x1c027c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rdx + r8 + 28], 13 + QUAD $0x1d024c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rdx + r8 + 29], 13 + QUAD $0x1e0254203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r8 + 30], 13 + QUAD $0x1f0274203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rdx + r8 + 31], 13 + WORD $0x894c; BYTE $0xc8 // mov rax, r9 + QUAD $0x1c0a7c203a0f4666; BYTE $0x0e // pinsrb xmm15, byte [rdx + r9 + 28], 14 + QUAD $0x1d0a4c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r9 + 29], 14 + QUAD $0x1e0a54203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r9 + 30], 14 + QUAD $0x1f0a74203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r9 + 31], 14 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x1c027c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rdx + rax + 28], 15 + QUAD $0x1d024c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rdx + rax + 29], 15 + QUAD $0x1e0254203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rax + 30], 15 + LONG $0x640f4566; BYTE $0xfe // pcmpgtb xmm15, xmm14 + QUAD $0x000130bddf0f4466; BYTE $0x00 // pandn xmm15, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xeb0f4566; BYTE $0xfb // por xmm15, xmm11 + QUAD $0x0f1f0274203a0f66 // pinsrb xmm6, byte [rdx + rax + 31], 15 + QUAD $0x000160adf80f4466; BYTE $0x00 // psubb xmm13, oword 352[rbp] /* [rip + .LCPI11_22] */ + LONG $0xeb0f4566; BYTE $0xfd // por xmm15, xmm13 + LONG $0x640f4566; BYTE $0xce // pcmpgtb xmm9, xmm14 + LONG $0xdf0f4466; BYTE $0xcd // pandn xmm9, xmm5 + LONG $0x640f4566; BYTE $0xd6 // pcmpgtb xmm10, xmm14 + LONG $0xdf0f4466; BYTE $0xd7 // pandn xmm10, xmm7 + LONG $0xeb0f4566; BYTE $0xd1 // por xmm10, xmm9 + LONG $0x640f4166; BYTE $0xf6 // pcmpgtb xmm6, xmm14 + LONG $0xf4df0f66 // pandn xmm6, xmm4 + LONG $0xeb0f4166; BYTE $0xf2 // por xmm6, xmm10 + LONG $0xeb0f4166; BYTE $0xf7 // por xmm6, xmm15 + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0xc6600f66 // punpcklbw xmm0, xmm6 + QUAD $0x0000c0249c6f0f66; BYTE $0x00 // movdqa xmm3, oword [rsp + 192] + LONG $0xcb6f0f66 // movdqa xmm1, xmm3 + QUAD $0x0000a024a46f0f66; BYTE $0x00 // movdqa xmm4, oword [rsp + 160] + LONG $0xcc600f66 // punpcklbw xmm1, xmm4 + LONG $0xd16f0f66 // movdqa xmm2, xmm1 + LONG $0xd0610f66 // punpcklwd xmm2, xmm0 + LONG $0xc8690f66 // punpckhwd xmm1, xmm0 + LONG $0x680f4466; BYTE $0xc6 // punpckhbw xmm8, xmm6 + LONG $0xdc680f66 // punpckhbw xmm3, xmm4 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x610f4166; BYTE $0xc0 // punpcklwd xmm0, xmm8 + LONG $0x690f4166; BYTE $0xd8 // punpckhwd xmm3, xmm8 + QUAD $0x000000e0248c8b48 // mov rcx, qword [rsp + 224] + LONG $0x7f0f41f3; WORD $0x8f5c; BYTE $0x30 // movdqu oword [r15 + 4*rcx + 48], xmm3 + LONG $0x7f0f41f3; WORD $0x8f44; BYTE $0x20 // movdqu oword [r15 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8f4c; BYTE $0x10 // movdqu oword [r15 + 4*rcx + 16], xmm1 + LONG $0x7f0f41f3; WORD $0x8f14 // movdqu oword [r15 + 4*rcx], xmm2 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x00000100248c3b48 // cmp rcx, qword [rsp + 256] + JNE LBB11_86 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x0000010024943b4c // cmp r10, qword [rsp + 256] + LONG $0x24348a44 // mov r14b, byte [rsp] + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0000011824948b48 // mov rdx, qword [rsp + 280] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + JNE LBB11_88 + JMP LBB11_91 + +LBB11_66: + LONG $0xf0e28349 // and r10, -16 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x05e0c148 // shl rax, 5 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + QUAD $0x0000011824848948 // mov qword [rsp + 280], rax + QUAD $0x000000c02494894c // mov qword [rsp + 192], r10 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + QUAD $0x0000012024848948 // mov qword [rsp + 288], rax + LONG $0xc6b60f41 // movzx eax, r14b + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0xc0ef0f66 // pxor xmm0, xmm0 + LONG $0x00380f66; BYTE $0xc8 // pshufb xmm1, xmm0 + QUAD $0x000100248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 256], xmm1 + WORD $0xc031 // xor eax, eax + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + QUAD $0x010024846f0f4466; WORD $0x0000 // movdqa xmm8, oword [rsp + 256] + +LBB11_67: + QUAD $0x0000008024848948 // mov qword [rsp + 128], rax + LONG $0x05e0c148 // shl rax, 5 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + WORD $0x8948; BYTE $0xc3 // mov rbx, rax + WORD $0x8949; BYTE $0xc7 // mov r15, rax + LONG $0x24448948; BYTE $0x20 // mov qword [rsp + 32], rax + WORD $0x8949; BYTE $0xc4 // mov r12, rax + WORD $0x8949; BYTE $0xc0 // mov r8, rax + WORD $0x8949; BYTE $0xc3 // mov r11, rax + WORD $0x8949; BYTE $0xc1 // mov r9, rax + WORD $0x8949; BYTE $0xc2 // mov r10, rax + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0x020cb60f // movzx ecx, byte [rdx + rax] + LONG $0xf16e0f66 // movd xmm6, ecx + LONG $0x024cb60f; BYTE $0x01 // movzx ecx, byte [rdx + rax + 1] + LONG $0x6e0f4466; BYTE $0xf9 // movd xmm15, ecx + LONG $0x024cb60f; BYTE $0x02 // movzx ecx, byte [rdx + rax + 2] + LONG $0xe96e0f66 // movd xmm5, ecx + LONG $0x024cb60f; BYTE $0x03 // movzx ecx, byte [rdx + rax + 3] + LONG $0xe16e0f66 // movd xmm4, ecx + LONG $0x024cb60f; BYTE $0x04 // movzx ecx, byte [rdx + rax + 4] + LONG $0xd96e0f66 // movd xmm3, ecx + LONG $0x024cb60f; BYTE $0x05 // movzx ecx, byte [rdx + rax + 5] + LONG $0xf96e0f66 // movd xmm7, ecx + LONG $0x024cb60f; BYTE $0x06 // movzx ecx, byte [rdx + rax + 6] + LONG $0xd16e0f66 // movd xmm2, ecx + LONG $0x024cb60f; BYTE $0x07 // movzx ecx, byte [rdx + rax + 7] + LONG $0x6e0f4466; BYTE $0xc9 // movd xmm9, ecx + LONG $0x024cb60f; BYTE $0x08 // movzx ecx, byte [rdx + rax + 8] + LONG $0xc16e0f66 // movd xmm0, ecx + QUAD $0x0000e024847f0f66; BYTE $0x00 // movdqa oword [rsp + 224], xmm0 + LONG $0x024cb60f; BYTE $0x09 // movzx ecx, byte [rdx + rax + 9] + LONG $0x6e0f4466; BYTE $0xd1 // movd xmm10, ecx + LONG $0x024cb60f; BYTE $0x0a // movzx ecx, byte [rdx + rax + 10] + LONG $0x6e0f4466; BYTE $0xe1 // movd xmm12, ecx + LONG $0x024cb60f; BYTE $0x0b // movzx ecx, byte [rdx + rax + 11] + LONG $0x6e0f4466; BYTE $0xd9 // movd xmm11, ecx + LONG $0x024cb60f; BYTE $0x0c // movzx ecx, byte [rdx + rax + 12] + LONG $0x6e0f4466; BYTE $0xe9 // movd xmm13, ecx + LONG $0x024cb60f; BYTE $0x0d // movzx ecx, byte [rdx + rax + 13] + LONG $0xc16e0f66 // movd xmm0, ecx + LONG $0x024cb60f; BYTE $0x0e // movzx ecx, byte [rdx + rax + 14] + LONG $0x6e0f4466; BYTE $0xf1 // movd xmm14, ecx + LONG $0x024cb60f; BYTE $0x0f // movzx ecx, byte [rdx + rax + 15] + LONG $0xc96e0f66 // movd xmm1, ecx + QUAD $0x0000b0248c7f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm1 + LONG $0x24448948; BYTE $0x50 // mov qword [rsp + 80], rax + WORD $0x8949; BYTE $0xc5 // mov r13, rax + LONG $0x20cd8349 // or r13, 32 + LONG $0x246c894c; BYTE $0x28 // mov qword [rsp + 40], r13 + LONG $0x40ce8349 // or r14, 64 + LONG $0x60cb8348 // or rbx, 96 + LONG $0x80cf8149; WORD $0x0000; BYTE $0x00 // or r15, 128 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + LONG $0xa0c98148; WORD $0x0000; BYTE $0x00 // or rcx, 160 + LONG $0x244c8948; BYTE $0x20 // mov qword [rsp + 32], rcx + LONG $0xc0cc8149; WORD $0x0000; BYTE $0x00 // or r12, 192 + LONG $0xe0c88149; WORD $0x0000; BYTE $0x00 // or r8, 224 + LONG $0x00cb8149; WORD $0x0001; BYTE $0x00 // or r11, 256 + LONG $0x20c98149; WORD $0x0001; BYTE $0x00 // or r9, 288 + LONG $0x40ca8149; WORD $0x0001; BYTE $0x00 // or r10, 320 + LONG $0x60ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 352 + LONG $0x24748948; BYTE $0x58 // mov qword [rsp + 88], rsi + WORD $0x8948; BYTE $0xc6 // mov rsi, rax + LONG $0x80ce8148; WORD $0x0001; BYTE $0x00 // or rsi, 384 + LONG $0x24748948; BYTE $0x70 // mov qword [rsp + 112], rsi + LONG $0xa0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 416 + LONG $0x247c8948; BYTE $0x10 // mov qword [rsp + 16], rdi + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0xc0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 448 + LONG $0x247c8948; BYTE $0x18 // mov qword [rsp + 24], rdi + WORD $0x8948; BYTE $0xc7 // mov rdi, rax + LONG $0xe0cf8148; WORD $0x0001; BYTE $0x00 // or rdi, 480 + LONG $0x247c8948; BYTE $0x08 // mov qword [rsp + 8], rdi + QUAD $0x012a34203a0f4266 // pinsrb xmm6, byte [rdx + r13], 1 + QUAD $0x023234203a0f4266 // pinsrb xmm6, byte [rdx + r14], 2 + LONG $0x245c8948; BYTE $0x68 // mov qword [rsp + 104], rbx + LONG $0x203a0f66; WORD $0x1a34; BYTE $0x03 // pinsrb xmm6, byte [rdx + rbx], 3 + QUAD $0x043a34203a0f4266 // pinsrb xmm6, byte [rdx + r15], 4 + LONG $0x203a0f66; WORD $0x0a34; BYTE $0x05 // pinsrb xmm6, byte [rdx + rcx], 5 + QUAD $0x062234203a0f4266 // pinsrb xmm6, byte [rdx + r12], 6 + LONG $0x2444894c; BYTE $0x38 // mov qword [rsp + 56], r8 + QUAD $0x070234203a0f4266 // pinsrb xmm6, byte [rdx + r8], 7 + LONG $0x245c894c; BYTE $0x48 // mov qword [rsp + 72], r11 + QUAD $0x081a34203a0f4266 // pinsrb xmm6, byte [rdx + r11], 8 + WORD $0x894d; BYTE $0xcb // mov r11, r9 + LONG $0x244c894c; BYTE $0x60 // mov qword [rsp + 96], r9 + QUAD $0x090a34203a0f4266 // pinsrb xmm6, byte [rdx + r9], 9 + WORD $0x894d; BYTE $0xd1 // mov r9, r10 + QUAD $0x0a1234203a0f4266 // pinsrb xmm6, byte [rdx + r10], 10 + LONG $0x24548b4c; BYTE $0x58 // mov r10, qword [rsp + 88] + QUAD $0x0b1234203a0f4266 // pinsrb xmm6, byte [rdx + r10], 11 + LONG $0x203a0f66; WORD $0x3234; BYTE $0x0c // pinsrb xmm6, byte [rdx + rsi], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + LONG $0x203a0f66; WORD $0x0234; BYTE $0x0d // pinsrb xmm6, byte [rdx + rax], 13 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0e2a34203a0f4266 // pinsrb xmm6, byte [rdx + r13], 14 + LONG $0x203a0f66; WORD $0x3a34; BYTE $0x0f // pinsrb xmm6, byte [rdx + rdi], 15 + LONG $0xde0f4166; BYTE $0xf0 // pmaxub xmm6, xmm8 + LONG $0x740f4166; BYTE $0xf0 // pcmpeqb xmm6, xmm8 + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x013a7c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rdi + 1], 1 + QUAD $0x01327c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rdx + r14 + 1], 2 + QUAD $0x011a7c203a0f4466; BYTE $0x03 // pinsrb xmm15, byte [rdx + rbx + 1], 3 + QUAD $0x013a7c203a0f4666; BYTE $0x04 // pinsrb xmm15, byte [rdx + r15 + 1], 4 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x010a7c203a0f4466; BYTE $0x05 // pinsrb xmm15, byte [rdx + rcx + 1], 5 + QUAD $0x01227c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r12 + 1], 6 + WORD $0x894d; BYTE $0xe7 // mov r15, r12 + QUAD $0x01027c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r8 + 1], 7 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x012a7c203a0f4666; BYTE $0x08 // pinsrb xmm15, byte [rdx + r13 + 1], 8 + QUAD $0x011a7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r11 + 1], 9 + QUAD $0x010a7c203a0f4666; BYTE $0x0a // pinsrb xmm15, byte [rdx + r9 + 1], 10 + LONG $0x244c894c; BYTE $0x40 // mov qword [rsp + 64], r9 + QUAD $0x01127c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r10 + 1], 11 + WORD $0x894c; BYTE $0xd1 // mov rcx, r10 + QUAD $0x01327c203a0f4466; BYTE $0x0c // pinsrb xmm15, byte [rdx + rsi + 1], 12 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x01227c203a0f4666; BYTE $0x0d // pinsrb xmm15, byte [rdx + r12 + 1], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x01027c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rdx + rax + 1], 14 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x01027c203a0f4466; BYTE $0x0f // pinsrb xmm15, byte [rdx + rax + 1], 15 + LONG $0xde0f4566; BYTE $0xf8 // pmaxub xmm15, xmm8 + LONG $0x740f4566; BYTE $0xf8 // pcmpeqb xmm15, xmm8 + QUAD $0x000001008d6f0f66 // movdqa xmm1, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xdb0f4466; BYTE $0xf9 // pand xmm15, xmm1 + LONG $0xf80f4466; BYTE $0xfe // psubb xmm15, xmm6 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x0274b60f; BYTE $0x10 // movzx esi, byte [rdx + rax + 16] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x01023a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 2], 1 + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + LONG $0x2474894c; BYTE $0x30 // mov qword [rsp + 48], r14 + QUAD $0x02326c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rdx + r14 + 2], 2 + LONG $0x24748b4c; BYTE $0x68 // mov r14, qword [rsp + 104] + QUAD $0x02326c203a0f4266; BYTE $0x03 // pinsrb xmm5, byte [rdx + r14 + 2], 3 + WORD $0x8949; BYTE $0xda // mov r10, rbx + QUAD $0x04021a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 2], 4 + LONG $0x24448b48; BYTE $0x20 // mov rax, qword [rsp + 32] + QUAD $0x0502026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 2], 5 + WORD $0x894c; BYTE $0xfb // mov rbx, r15 + QUAD $0x023a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r15 + 2], 6 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x0702326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 2], 7 + WORD $0x894d; BYTE $0xeb // mov r11, r13 + QUAD $0x022a6c203a0f4266; BYTE $0x08 // pinsrb xmm5, byte [rdx + r13 + 2], 8 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x023a6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r15 + 2], 9 + QUAD $0x020a6c203a0f4266; BYTE $0x0a // pinsrb xmm5, byte [rdx + r9 + 2], 10 + QUAD $0x0b020a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 2], 11 + LONG $0x244c8b48; BYTE $0x70 // mov rcx, qword [rsp + 112] + QUAD $0x0c020a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 2], 12 + WORD $0x894d; BYTE $0xe5 // mov r13, r12 + QUAD $0x02226c203a0f4266; BYTE $0x0d // pinsrb xmm5, byte [rdx + r12 + 2], 13 + LONG $0x244c8b4c; BYTE $0x18 // mov r9, qword [rsp + 24] + QUAD $0x020a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r9 + 2], 14 + LONG $0x24648b4c; BYTE $0x08 // mov r12, qword [rsp + 8] + QUAD $0x02226c203a0f4266; BYTE $0x0f // pinsrb xmm5, byte [rdx + r12 + 2], 15 + QUAD $0x01033a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 3], 1 + QUAD $0x030264203a0f4266; BYTE $0x02 // pinsrb xmm4, byte [rdx + r8 + 3], 2 + QUAD $0x033264203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r14 + 3], 3 + QUAD $0x031264203a0f4266; BYTE $0x04 // pinsrb xmm4, byte [rdx + r10 + 3], 4 + QUAD $0x05030264203a0f66 // pinsrb xmm4, byte [rdx + rax + 3], 5 + QUAD $0x06031a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 3], 6 + QUAD $0x07033264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 3], 7 + QUAD $0x031a64203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r11 + 3], 8 + QUAD $0x033a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r15 + 3], 9 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x031a64203a0f4266; BYTE $0x0a // pinsrb xmm4, byte [rdx + r11 + 3], 10 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x030264203a0f4266; BYTE $0x0b // pinsrb xmm4, byte [rdx + r8 + 3], 11 + QUAD $0x0c030a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 3], 12 + QUAD $0x032a64203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r13 + 3], 13 + QUAD $0x030a64203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r9 + 3], 14 + QUAD $0x032264203a0f4266; BYTE $0x0f // pinsrb xmm4, byte [rdx + r12 + 3], 15 + LONG $0xde0f4166; BYTE $0xe8 // pmaxub xmm5, xmm8 + LONG $0x740f4166; BYTE $0xe8 // pcmpeqb xmm5, xmm8 + QUAD $0x00000110b56f0f66 // movdqa xmm6, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xeedb0f66 // pand xmm5, xmm6 + LONG $0xde0f4166; BYTE $0xe0 // pmaxub xmm4, xmm8 + LONG $0x740f4166; BYTE $0xe0 // pcmpeqb xmm4, xmm8 + QUAD $0x00000120b56f0f66 // movdqa xmm6, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xe6db0f66 // pand xmm4, xmm6 + LONG $0xe5eb0f66 // por xmm4, xmm5 + LONG $0x244c8b48; BYTE $0x50 // mov rcx, qword [rsp + 80] + LONG $0x0a74b60f; BYTE $0x11 // movzx esi, byte [rdx + rcx + 17] + LONG $0xee6e0f66 // movd xmm5, esi + LONG $0xeb0f4166; BYTE $0xe7 // por xmm4, xmm15 + LONG $0x0a74b60f; BYTE $0x12 // movzx esi, byte [rdx + rcx + 18] + LONG $0x6e0f4466; BYTE $0xfe // movd xmm15, esi + WORD $0x8949; BYTE $0xfe // mov r14, rdi + QUAD $0x01043a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 4], 1 + LONG $0x246c8b4c; BYTE $0x30 // mov r13, qword [rsp + 48] + QUAD $0x042a5c203a0f4266; BYTE $0x02 // pinsrb xmm3, byte [rdx + r13 + 4], 2 + LONG $0x24648b4c; BYTE $0x68 // mov r12, qword [rsp + 104] + QUAD $0x04225c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r12 + 4], 3 + QUAD $0x000000902494894c // mov qword [rsp + 144], r10 + QUAD $0x04125c203a0f4266; BYTE $0x04 // pinsrb xmm3, byte [rdx + r10 + 4], 4 + QUAD $0x0504025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 4], 5 + QUAD $0x06041a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 4], 6 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x07040a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 4], 7 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x08040a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 4], 8 + QUAD $0x043a5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rdx + r15 + 4], 9 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + QUAD $0x041a5c203a0f4266; BYTE $0x0a // pinsrb xmm3, byte [rdx + r11 + 4], 10 + QUAD $0x04025c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r8 + 4], 11 + LONG $0x244c8b4c; BYTE $0x70 // mov r9, qword [rsp + 112] + QUAD $0x040a5c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r9 + 4], 12 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0d040a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 4], 13 + LONG $0x247c8b48; BYTE $0x18 // mov rdi, qword [rsp + 24] + QUAD $0x0e043a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 4], 14 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x041a5c203a0f4266; BYTE $0x0f // pinsrb xmm3, byte [rdx + r11 + 4], 15 + QUAD $0x05327c203a0f4266; BYTE $0x01 // pinsrb xmm7, byte [rdx + r14 + 5], 1 + QUAD $0x052a7c203a0f4266; BYTE $0x02 // pinsrb xmm7, byte [rdx + r13 + 5], 2 + QUAD $0x05227c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r12 + 5], 3 + QUAD $0x05127c203a0f4266; BYTE $0x04 // pinsrb xmm7, byte [rdx + r10 + 5], 4 + QUAD $0x0505027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 5], 5 + QUAD $0x06051a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 5], 6 + LONG $0x244c8b48; BYTE $0x38 // mov rcx, qword [rsp + 56] + QUAD $0x07050a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 5], 7 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x08050a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 5], 8 + QUAD $0x053a7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r15 + 5], 9 + QUAD $0x0a05327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 5], 10 + QUAD $0x05027c203a0f4266; BYTE $0x0b // pinsrb xmm7, byte [rdx + r8 + 5], 11 + QUAD $0x050a7c203a0f4266; BYTE $0x0c // pinsrb xmm7, byte [rdx + r9 + 5], 12 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0d050a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 5], 13 + QUAD $0x0e053a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 5], 14 + QUAD $0x051a7c203a0f4266; BYTE $0x0f // pinsrb xmm7, byte [rdx + r11 + 5], 15 + QUAD $0x063254203a0f4266; BYTE $0x01 // pinsrb xmm2, byte [rdx + r14 + 6], 1 + QUAD $0x062a54203a0f4266; BYTE $0x02 // pinsrb xmm2, byte [rdx + r13 + 6], 2 + QUAD $0x062254203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r12 + 6], 3 + QUAD $0x061254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r10 + 6], 4 + QUAD $0x05060254203a0f66 // pinsrb xmm2, byte [rdx + rax + 6], 5 + WORD $0x8949; BYTE $0xc2 // mov r10, rax + QUAD $0x06061a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 6], 6 + WORD $0x8949; BYTE $0xdd // mov r13, rbx + QUAD $0x000000a0249c8948 // mov qword [rsp + 160], rbx + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x07060254203a0f66 // pinsrb xmm2, byte [rdx + rax + 6], 7 + WORD $0x8949; BYTE $0xc6 // mov r14, rax + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x08061a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 6], 8 + QUAD $0x063a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r15 + 6], 9 + WORD $0x894d; BYTE $0xfb // mov r11, r15 + QUAD $0x0a063254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 6], 10 + QUAD $0x060254203a0f4266; BYTE $0x0b // pinsrb xmm2, byte [rdx + r8 + 6], 11 + WORD $0x894d; BYTE $0xc4 // mov r12, r8 + QUAD $0x060a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r9 + 6], 12 + QUAD $0x0d060a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 6], 13 + QUAD $0x0e063a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 6], 14 + LONG $0x247c8b4c; BYTE $0x08 // mov r15, qword [rsp + 8] + QUAD $0x063a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r15 + 6], 15 + LONG $0xde0f4166; BYTE $0xd8 // pmaxub xmm3, xmm8 + LONG $0x740f4166; BYTE $0xd8 // pcmpeqb xmm3, xmm8 + QUAD $0x00000130b56f0f66 // movdqa xmm6, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xdedb0f66 // pand xmm3, xmm6 + LONG $0xde0f4166; BYTE $0xf8 // pmaxub xmm7, xmm8 + LONG $0x740f4166; BYTE $0xf8 // pcmpeqb xmm7, xmm8 + QUAD $0x00000140b56f0f66 // movdqa xmm6, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0xfedb0f66 // pand xmm7, xmm6 + LONG $0xfbeb0f66 // por xmm7, xmm3 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x0274b60f; BYTE $0x13 // movzx esi, byte [rdx + rax + 19] + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0xde0f4166; BYTE $0xd0 // pmaxub xmm2, xmm8 + LONG $0x740f4166; BYTE $0xd0 // pcmpeqb xmm2, xmm8 + QUAD $0x00000150b56f0f66 // movdqa xmm6, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xd6db0f66 // pand xmm2, xmm6 + LONG $0xd7eb0f66 // por xmm2, xmm7 + LONG $0x0274b60f; BYTE $0x14 // movzx esi, byte [rdx + rax + 20] + LONG $0xf66e0f66 // movd xmm6, esi + LONG $0xd4eb0f66 // por xmm2, xmm4 + LONG $0x0274b60f; BYTE $0x15 // movzx esi, byte [rdx + rax + 21] + LONG $0xe66e0f66 // movd xmm4, esi + LONG $0x247c8b48; BYTE $0x28 // mov rdi, qword [rsp + 40] + QUAD $0x073a4c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rdi + 7], 1 + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + QUAD $0x07024c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rax + 7], 2 + LONG $0x24448b48; BYTE $0x68 // mov rax, qword [rsp + 104] + QUAD $0x07024c203a0f4466; BYTE $0x03 // pinsrb xmm9, byte [rdx + rax + 7], 3 + QUAD $0x0000009024848b4c // mov r8, qword [rsp + 144] + QUAD $0x07024c203a0f4666; BYTE $0x04 // pinsrb xmm9, byte [rdx + r8 + 7], 4 + QUAD $0x07124c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rdx + r10 + 7], 5 + QUAD $0x072a4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r13 + 7], 6 + QUAD $0x07324c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r14 + 7], 7 + QUAD $0x071a4c203a0f4466; BYTE $0x08 // pinsrb xmm9, byte [rdx + rbx + 7], 8 + QUAD $0x071a4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r11 + 7], 9 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + LONG $0x245c8b4c; BYTE $0x40 // mov r11, qword [rsp + 64] + QUAD $0x071a4c203a0f4666; BYTE $0x0a // pinsrb xmm9, byte [rdx + r11 + 7], 10 + QUAD $0x07224c203a0f4666; BYTE $0x0b // pinsrb xmm9, byte [rdx + r12 + 7], 11 + QUAD $0x070a4c203a0f4666; BYTE $0x0c // pinsrb xmm9, byte [rdx + r9 + 7], 12 + LONG $0x246c8b4c; BYTE $0x10 // mov r13, qword [rsp + 16] + QUAD $0x072a4c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rdx + r13 + 7], 13 + LONG $0x24648b4c; BYTE $0x18 // mov r12, qword [rsp + 24] + QUAD $0x07224c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r12 + 7], 14 + QUAD $0x073a4c203a0f4666; BYTE $0x0f // pinsrb xmm9, byte [rdx + r15 + 7], 15 + LONG $0xde0f4566; BYTE $0xc8 // pmaxub xmm9, xmm8 + LONG $0x740f4566; BYTE $0xc8 // pcmpeqb xmm9, xmm8 + LONG $0x7d6f0f66; BYTE $0x60 // movdqa xmm7, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xdb0f4466; BYTE $0xcf // pand xmm9, xmm7 + LONG $0xeb0f4466; BYTE $0xca // por xmm9, xmm2 + QUAD $0x00d0248c7f0f4466; WORD $0x0000 // movdqa oword [rsp + 208], xmm9 + LONG $0x244c8b4c; BYTE $0x50 // mov r9, qword [rsp + 80] + LONG $0x74b60f42; WORD $0x160a // movzx esi, byte [rdx + r9 + 22] + LONG $0xfe6e0f66 // movd xmm7, esi + QUAD $0x0000e024946f0f66; BYTE $0x00 // movdqa xmm2, oword [rsp + 224] + QUAD $0x01083a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 8], 1 + WORD $0x8949; BYTE $0xfe // mov r14, rdi + LONG $0x247c8b48; BYTE $0x30 // mov rdi, qword [rsp + 48] + QUAD $0x02083a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 8], 2 + QUAD $0x03080254203a0f66 // pinsrb xmm2, byte [rdx + rax + 8], 3 + WORD $0x8949; BYTE $0xc7 // mov r15, rax + QUAD $0x080254203a0f4266; BYTE $0x04 // pinsrb xmm2, byte [rdx + r8 + 8], 4 + QUAD $0x081254203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r10 + 8], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x06080254203a0f66 // pinsrb xmm2, byte [rdx + rax + 8], 6 + LONG $0x24748b48; BYTE $0x38 // mov rsi, qword [rsp + 56] + QUAD $0x07083254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 8], 7 + LONG $0x245c8b48; BYTE $0x48 // mov rbx, qword [rsp + 72] + QUAD $0x08081a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 8], 8 + QUAD $0x09080a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 8], 9 + QUAD $0x081a54203a0f4266; BYTE $0x0a // pinsrb xmm2, byte [rdx + r11 + 8], 10 + LONG $0x244c8b48; BYTE $0x58 // mov rcx, qword [rsp + 88] + QUAD $0x0b080a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 8], 11 + LONG $0x245c8b4c; BYTE $0x70 // mov r11, qword [rsp + 112] + QUAD $0x081a54203a0f4266; BYTE $0x0c // pinsrb xmm2, byte [rdx + r11 + 8], 12 + WORD $0x894c; BYTE $0xee // mov rsi, r13 + QUAD $0x082a54203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r13 + 8], 13 + QUAD $0x082254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r12 + 8], 14 + LONG $0x246c8b4c; BYTE $0x08 // mov r13, qword [rsp + 8] + QUAD $0x082a54203a0f4266; BYTE $0x0f // pinsrb xmm2, byte [rdx + r13 + 8], 15 + LONG $0xde0f4166; BYTE $0xd0 // pmaxub xmm2, xmm8 + LONG $0x740f4166; BYTE $0xd0 // pcmpeqb xmm2, xmm8 + QUAD $0x093254203a0f4666; BYTE $0x01 // pinsrb xmm10, byte [rdx + r14 + 9], 1 + QUAD $0x093a54203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rdi + 9], 2 + QUAD $0x093a54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r15 + 9], 3 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x090254203a0f4666; BYTE $0x04 // pinsrb xmm10, byte [rdx + r8 + 9], 4 + WORD $0x894d; BYTE $0xc7 // mov r15, r8 + QUAD $0x091254203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r10 + 9], 5 + QUAD $0x090254203a0f4466; BYTE $0x06 // pinsrb xmm10, byte [rdx + rax + 9], 6 + WORD $0x8949; BYTE $0xc0 // mov r8, rax + LONG $0x24448b48; BYTE $0x38 // mov rax, qword [rsp + 56] + QUAD $0x090254203a0f4466; BYTE $0x07 // pinsrb xmm10, byte [rdx + rax + 9], 7 + QUAD $0x091a54203a0f4466; BYTE $0x08 // pinsrb xmm10, byte [rdx + rbx + 9], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x090254203a0f4466; BYTE $0x09 // pinsrb xmm10, byte [rdx + rax + 9], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x090254203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rax + 9], 10 + QUAD $0x090a54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rdx + rcx + 9], 11 + WORD $0x894c; BYTE $0xd9 // mov rcx, r11 + QUAD $0x091a54203a0f4666; BYTE $0x0c // pinsrb xmm10, byte [rdx + r11 + 9], 12 + QUAD $0x093254203a0f4466; BYTE $0x0d // pinsrb xmm10, byte [rdx + rsi + 9], 13 + QUAD $0x092254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r12 + 9], 14 + QUAD $0x092a54203a0f4666; BYTE $0x0f // pinsrb xmm10, byte [rdx + r13 + 9], 15 + LONG $0xde0f4566; BYTE $0xd0 // pmaxub xmm10, xmm8 + LONG $0x740f4566; BYTE $0xd0 // pcmpeqb xmm10, xmm8 + QUAD $0x00010095db0f4466; BYTE $0x00 // pand xmm10, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xf80f4466; BYTE $0xd2 // psubb xmm10, xmm2 + LONG $0x74b60f42; WORD $0x170a // movzx esi, byte [rdx + r9 + 23] + LONG $0xd66e0f66 // movd xmm2, esi + LONG $0x245c8b4c; BYTE $0x28 // mov r11, qword [rsp + 40] + QUAD $0x0a1a64203a0f4666; BYTE $0x01 // pinsrb xmm12, byte [rdx + r11 + 10], 1 + QUAD $0x0a3a64203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rdi + 10], 2 + WORD $0x8949; BYTE $0xfa // mov r10, rdi + WORD $0x894c; BYTE $0xf6 // mov rsi, r14 + QUAD $0x0a3264203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r14 + 10], 3 + QUAD $0x0a3a64203a0f4666; BYTE $0x04 // pinsrb xmm12, byte [rdx + r15 + 10], 4 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x0a3264203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rdx + r14 + 10], 5 + QUAD $0x0a0264203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r8 + 10], 6 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x247c8b4c; BYTE $0x38 // mov r15, qword [rsp + 56] + QUAD $0x0a3a64203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r15 + 10], 7 + LONG $0x246c8b4c; BYTE $0x48 // mov r13, qword [rsp + 72] + QUAD $0x0a2a64203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r13 + 10], 8 + LONG $0x247c8b48; BYTE $0x60 // mov rdi, qword [rsp + 96] + QUAD $0x0a3a64203a0f4466; BYTE $0x09 // pinsrb xmm12, byte [rdx + rdi + 10], 9 + QUAD $0x0a0264203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rax + 10], 10 + LONG $0x24448b4c; BYTE $0x58 // mov r8, qword [rsp + 88] + QUAD $0x0a0264203a0f4666; BYTE $0x0b // pinsrb xmm12, byte [rdx + r8 + 10], 11 + WORD $0x8949; BYTE $0xc9 // mov r9, rcx + QUAD $0x0a0a64203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rdx + rcx + 10], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0a0264203a0f4466; BYTE $0x0d // pinsrb xmm12, byte [rdx + rax + 10], 13 + QUAD $0x0a2264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r12 + 10], 14 + LONG $0x244c8b48; BYTE $0x08 // mov rcx, qword [rsp + 8] + QUAD $0x0a0a64203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rcx + 10], 15 + QUAD $0x0b1a5c203a0f4666; BYTE $0x01 // pinsrb xmm11, byte [rdx + r11 + 11], 1 + QUAD $0x0b125c203a0f4666; BYTE $0x02 // pinsrb xmm11, byte [rdx + r10 + 11], 2 + QUAD $0x0b325c203a0f4466; BYTE $0x03 // pinsrb xmm11, byte [rdx + rsi + 11], 3 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + QUAD $0x0000009024b48b48 // mov rsi, qword [rsp + 144] + QUAD $0x0b325c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rdx + rsi + 11], 4 + QUAD $0x0b325c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r14 + 11], 5 + QUAD $0x0b1a5c203a0f4466; BYTE $0x06 // pinsrb xmm11, byte [rdx + rbx + 11], 6 + QUAD $0x0b3a5c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r15 + 11], 7 + WORD $0x894d; BYTE $0xfe // mov r14, r15 + QUAD $0x0b2a5c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r13 + 11], 8 + QUAD $0x0b3a5c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rdi + 11], 9 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0b1a5c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rdx + rbx + 11], 10 + QUAD $0x0b025c203a0f4666; BYTE $0x0b // pinsrb xmm11, byte [rdx + r8 + 11], 11 + QUAD $0x0b0a5c203a0f4666; BYTE $0x0c // pinsrb xmm11, byte [rdx + r9 + 11], 12 + QUAD $0x0b025c203a0f4466; BYTE $0x0d // pinsrb xmm11, byte [rdx + rax + 11], 13 + QUAD $0x0b225c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r12 + 11], 14 + QUAD $0x0b0a5c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rdx + rcx + 11], 15 + LONG $0xde0f4566; BYTE $0xe0 // pmaxub xmm12, xmm8 + LONG $0x740f4566; BYTE $0xe0 // pcmpeqb xmm12, xmm8 + QUAD $0x000110a5db0f4466; BYTE $0x00 // pand xmm12, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xde0f4566; BYTE $0xd8 // pmaxub xmm11, xmm8 + LONG $0x740f4566; BYTE $0xd8 // pcmpeqb xmm11, xmm8 + QUAD $0x0001209ddb0f4466; BYTE $0x00 // pand xmm11, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xeb0f4566; BYTE $0xdc // por xmm11, xmm12 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x0274b60f; BYTE $0x18 // movzx esi, byte [rdx + rax + 24] + LONG $0x6e0f4466; BYTE $0xce // movd xmm9, esi + LONG $0xeb0f4566; BYTE $0xda // por xmm11, xmm10 + LONG $0x0274b60f; BYTE $0x19 // movzx esi, byte [rdx + rax + 25] + LONG $0x6e0f4466; BYTE $0xe6 // movd xmm12, esi + QUAD $0x0c1a6c203a0f4666; BYTE $0x01 // pinsrb xmm13, byte [rdx + r11 + 12], 1 + LONG $0x24648b4c; BYTE $0x30 // mov r12, qword [rsp + 48] + QUAD $0x0c226c203a0f4666; BYTE $0x02 // pinsrb xmm13, byte [rdx + r12 + 12], 2 + WORD $0x894d; BYTE $0xd3 // mov r11, r10 + QUAD $0x0c126c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r10 + 12], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x0c3a6c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rdx + rdi + 12], 4 + LONG $0x247c8b4c; BYTE $0x20 // mov r15, qword [rsp + 32] + QUAD $0x0c3a6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rdx + r15 + 12], 5 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x0c126c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r10 + 12], 6 + QUAD $0x0c326c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r14 + 12], 7 + QUAD $0x0c2a6c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r13 + 12], 8 + LONG $0x244c8b48; BYTE $0x60 // mov rcx, qword [rsp + 96] + QUAD $0x0c0a6c203a0f4466; BYTE $0x09 // pinsrb xmm13, byte [rdx + rcx + 12], 9 + QUAD $0x0c1a6c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rbx + 12], 10 + QUAD $0x0c026c203a0f4666; BYTE $0x0b // pinsrb xmm13, byte [rdx + r8 + 12], 11 + QUAD $0x0c0a6c203a0f4666; BYTE $0x0c // pinsrb xmm13, byte [rdx + r9 + 12], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0c026c203a0f4466; BYTE $0x0d // pinsrb xmm13, byte [rdx + rax + 12], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0c026c203a0f4466; BYTE $0x0e // pinsrb xmm13, byte [rdx + rax + 12], 14 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0c326c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rsi + 12], 15 + LONG $0x24448b48; BYTE $0x28 // mov rax, qword [rsp + 40] + QUAD $0x010d0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 13], 1 + QUAD $0x0d2244203a0f4266; BYTE $0x02 // pinsrb xmm0, byte [rdx + r12 + 13], 2 + QUAD $0x0d1a44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r11 + 13], 3 + QUAD $0x040d3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 13], 4 + QUAD $0x0d3a44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rdx + r15 + 13], 5 + QUAD $0x0d1244203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rdx + r10 + 13], 6 + QUAD $0x0d3244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r14 + 13], 7 + QUAD $0x0d2a44203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r13 + 13], 8 + QUAD $0x090d0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 13], 9 + QUAD $0x0a0d1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 13], 10 + QUAD $0x0d0244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r8 + 13], 11 + QUAD $0x0d0a44203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r9 + 13], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d0d0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 13], 13 + LONG $0x24448b48; BYTE $0x18 // mov rax, qword [rsp + 24] + QUAD $0x0e0d0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 13], 14 + QUAD $0x0f0d3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 13], 15 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x0e3274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rsi + 14], 1 + QUAD $0x0e2274203a0f4666; BYTE $0x02 // pinsrb xmm14, byte [rdx + r12 + 14], 2 + QUAD $0x0e1a74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r11 + 14], 3 + QUAD $0x0e3a74203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rdx + rdi + 14], 4 + QUAD $0x0e3a74203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rdx + r15 + 14], 5 + QUAD $0x0e1274203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r10 + 14], 6 + QUAD $0x0e3274203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rdx + r14 + 14], 7 + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + QUAD $0x0e2a74203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r13 + 14], 8 + QUAD $0x0e0a74203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rdx + rcx + 14], 9 + WORD $0x8949; BYTE $0xce // mov r14, rcx + QUAD $0x0e1a74203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rdx + rbx + 14], 10 + QUAD $0x0e0274203a0f4666; BYTE $0x0b // pinsrb xmm14, byte [rdx + r8 + 14], 11 + QUAD $0x0e0a74203a0f4666; BYTE $0x0c // pinsrb xmm14, byte [rdx + r9 + 14], 12 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + QUAD $0x0e0a74203a0f4466; BYTE $0x0d // pinsrb xmm14, byte [rdx + rcx + 14], 13 + LONG $0x246c8b4c; BYTE $0x18 // mov r13, qword [rsp + 24] + QUAD $0x0e2a74203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r13 + 14], 14 + QUAD $0x0e0274203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rax + 14], 15 + LONG $0xde0f4566; BYTE $0xe8 // pmaxub xmm13, xmm8 + LONG $0x740f4566; BYTE $0xe8 // pcmpeqb xmm13, xmm8 + QUAD $0x000130addb0f4466; BYTE $0x00 // pand xmm13, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xde0f4166; BYTE $0xc0 // pmaxub xmm0, xmm8 + LONG $0x740f4166; BYTE $0xc0 // pcmpeqb xmm0, xmm8 + QUAD $0x0000014085db0f66 // pand xmm0, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0xeb0f4166; BYTE $0xc5 // por xmm0, xmm13 + LONG $0x24648b4c; BYTE $0x50 // mov r12, qword [rsp + 80] + LONG $0x74b60f42; WORD $0x1a22 // movzx esi, byte [rdx + r12 + 26] + LONG $0x6e0f4466; BYTE $0xee // movd xmm13, esi + LONG $0xde0f4566; BYTE $0xf0 // pmaxub xmm14, xmm8 + LONG $0x740f4566; BYTE $0xf0 // pcmpeqb xmm14, xmm8 + QUAD $0x000150b5db0f4466; BYTE $0x00 // pand xmm14, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xeb0f4466; BYTE $0xf0 // por xmm14, xmm0 + LONG $0x74b60f42; WORD $0x1b22 // movzx esi, byte [rdx + r12 + 27] + LONG $0x6e0f4466; BYTE $0xd6 // movd xmm10, esi + LONG $0xeb0f4566; BYTE $0xf3 // por xmm14, xmm11 + LONG $0x74b60f42; WORD $0x1c22 // movzx esi, byte [rdx + r12 + 28] + LONG $0x6e0f4466; BYTE $0xde // movd xmm11, esi + QUAD $0x0000b024846f0f66; BYTE $0x00 // movdqa xmm0, oword [rsp + 176] + LONG $0x244c8b48; BYTE $0x28 // mov rcx, qword [rsp + 40] + QUAD $0x010f0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 15], 1 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x020f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 15], 2 + LONG $0x247c8b48; BYTE $0x68 // mov rdi, qword [rsp + 104] + QUAD $0x030f3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 15], 3 + QUAD $0x00000090248c8b4c // mov r9, qword [rsp + 144] + QUAD $0x0f0a44203a0f4266; BYTE $0x04 // pinsrb xmm0, byte [rdx + r9 + 15], 4 + LONG $0x24548b4c; BYTE $0x20 // mov r10, qword [rsp + 32] + QUAD $0x0f1244203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rdx + r10 + 15], 5 + QUAD $0x000000a024848b48 // mov rax, qword [rsp + 160] + QUAD $0x060f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 15], 6 + QUAD $0x0f3a44203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r15 + 15], 7 + LONG $0x24448b48; BYTE $0x48 // mov rax, qword [rsp + 72] + QUAD $0x080f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 15], 8 + QUAD $0x0f3244203a0f4266; BYTE $0x09 // pinsrb xmm0, byte [rdx + r14 + 15], 9 + LONG $0x245c8b48; BYTE $0x40 // mov rbx, qword [rsp + 64] + QUAD $0x0a0f1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 15], 10 + QUAD $0x0f0244203a0f4266; BYTE $0x0b // pinsrb xmm0, byte [rdx + r8 + 15], 11 + LONG $0x24448b4c; BYTE $0x70 // mov r8, qword [rsp + 112] + QUAD $0x0f0244203a0f4266; BYTE $0x0c // pinsrb xmm0, byte [rdx + r8 + 15], 12 + LONG $0x24748b48; BYTE $0x10 // mov rsi, qword [rsp + 16] + QUAD $0x0d0f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 15], 13 + QUAD $0x0f2a44203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r13 + 15], 14 + LONG $0x245c8b4c; BYTE $0x08 // mov r11, qword [rsp + 8] + QUAD $0x0f1a44203a0f4266; BYTE $0x0f // pinsrb xmm0, byte [rdx + r11 + 15], 15 + LONG $0xde0f4166; BYTE $0xc0 // pmaxub xmm0, xmm8 + LONG $0x740f4166; BYTE $0xc0 // pcmpeqb xmm0, xmm8 + LONG $0x45db0f66; BYTE $0x60 // pand xmm0, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xeb0f4166; BYTE $0xc6 // por xmm0, xmm14 + QUAD $0x0000b024847f0f66; BYTE $0x00 // movdqa oword [rsp + 176], xmm0 + LONG $0x74b60f42; WORD $0x1d22 // movzx esi, byte [rdx + r12 + 29] + LONG $0x6e0f4466; BYTE $0xf6 // movd xmm14, esi + QUAD $0x01100a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 16], 1 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x0210324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 16], 2 + WORD $0x8949; BYTE $0xf4 // mov r12, rsi + QUAD $0x03103a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 16], 3 + QUAD $0x100a4c203a0f4266; BYTE $0x04 // pinsrb xmm1, byte [rdx + r9 + 16], 4 + QUAD $0x10124c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rdx + r10 + 16], 5 + QUAD $0x000000a0248c8b4c // mov r9, qword [rsp + 160] + QUAD $0x100a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r9 + 16], 6 + QUAD $0x103a4c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r15 + 16], 7 + QUAD $0x0810024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 16], 8 + QUAD $0x10324c203a0f4266; BYTE $0x09 // pinsrb xmm1, byte [rdx + r14 + 16], 9 + QUAD $0x0a101a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 16], 10 + LONG $0x24748b4c; BYTE $0x58 // mov r14, qword [rsp + 88] + QUAD $0x10324c203a0f4266; BYTE $0x0b // pinsrb xmm1, byte [rdx + r14 + 16], 11 + QUAD $0x10024c203a0f4266; BYTE $0x0c // pinsrb xmm1, byte [rdx + r8 + 16], 12 + WORD $0x894d; BYTE $0xc2 // mov r10, r8 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x0d10024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 16], 13 + QUAD $0x102a4c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r13 + 16], 14 + WORD $0x894c; BYTE $0xde // mov rsi, r11 + QUAD $0x101a4c203a0f4266; BYTE $0x0f // pinsrb xmm1, byte [rdx + r11 + 16], 15 + LONG $0xde0f4166; BYTE $0xc8 // pmaxub xmm1, xmm8 + LONG $0x740f4166; BYTE $0xc8 // pcmpeqb xmm1, xmm8 + QUAD $0x01110a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 17], 1 + QUAD $0x11226c203a0f4266; BYTE $0x02 // pinsrb xmm5, byte [rdx + r12 + 17], 2 + WORD $0x894d; BYTE $0xe3 // mov r11, r12 + QUAD $0x03113a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 17], 3 + QUAD $0x0000009024bc8b48 // mov rdi, qword [rsp + 144] + QUAD $0x04113a6c203a0f66 // pinsrb xmm5, byte [rdx + rdi + 17], 4 + LONG $0x244c8b48; BYTE $0x20 // mov rcx, qword [rsp + 32] + QUAD $0x05110a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 17], 5 + QUAD $0x110a6c203a0f4266; BYTE $0x06 // pinsrb xmm5, byte [rdx + r9 + 17], 6 + QUAD $0x113a6c203a0f4266; BYTE $0x07 // pinsrb xmm5, byte [rdx + r15 + 17], 7 + WORD $0x894d; BYTE $0xf9 // mov r9, r15 + LONG $0x244c8b48; BYTE $0x48 // mov rcx, qword [rsp + 72] + QUAD $0x08110a6c203a0f66 // pinsrb xmm5, byte [rdx + rcx + 17], 8 + LONG $0x247c8b4c; BYTE $0x60 // mov r15, qword [rsp + 96] + QUAD $0x113a6c203a0f4266; BYTE $0x09 // pinsrb xmm5, byte [rdx + r15 + 17], 9 + QUAD $0x0a111a6c203a0f66 // pinsrb xmm5, byte [rdx + rbx + 17], 10 + WORD $0x894d; BYTE $0xf0 // mov r8, r14 + QUAD $0x11326c203a0f4266; BYTE $0x0b // pinsrb xmm5, byte [rdx + r14 + 17], 11 + QUAD $0x11126c203a0f4266; BYTE $0x0c // pinsrb xmm5, byte [rdx + r10 + 17], 12 + WORD $0x894d; BYTE $0xd4 // mov r12, r10 + QUAD $0x0d11026c203a0f66 // pinsrb xmm5, byte [rdx + rax + 17], 13 + QUAD $0x112a6c203a0f4266; BYTE $0x0e // pinsrb xmm5, byte [rdx + r13 + 17], 14 + QUAD $0x0f11326c203a0f66 // pinsrb xmm5, byte [rdx + rsi + 17], 15 + LONG $0xde0f4166; BYTE $0xe8 // pmaxub xmm5, xmm8 + LONG $0x740f4166; BYTE $0xe8 // pcmpeqb xmm5, xmm8 + QUAD $0x00000100addb0f66 // pand xmm5, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xe9f80f66 // psubb xmm5, xmm1 + LONG $0x24448b48; BYTE $0x50 // mov rax, qword [rsp + 80] + LONG $0x0274b60f; BYTE $0x1e // movzx esi, byte [rdx + rax + 30] + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x24748b48; BYTE $0x28 // mov rsi, qword [rsp + 40] + QUAD $0x12327c203a0f4466; BYTE $0x01 // pinsrb xmm15, byte [rdx + rsi + 18], 1 + QUAD $0x0113325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 19], 1 + QUAD $0x01143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 1 + QUAD $0x01153264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 21], 1 + QUAD $0x0116327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 22], 1 + QUAD $0x01173254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 23], 1 + QUAD $0x18324c203a0f4466; BYTE $0x01 // pinsrb xmm9, byte [rdx + rsi + 24], 1 + QUAD $0x193264203a0f4466; BYTE $0x01 // pinsrb xmm12, byte [rdx + rsi + 25], 1 + QUAD $0x1a326c203a0f4466; BYTE $0x01 // pinsrb xmm13, byte [rdx + rsi + 26], 1 + QUAD $0x1b3254203a0f4466; BYTE $0x01 // pinsrb xmm10, byte [rdx + rsi + 27], 1 + QUAD $0x1c325c203a0f4466; BYTE $0x01 // pinsrb xmm11, byte [rdx + rsi + 28], 1 + QUAD $0x1d3274203a0f4466; BYTE $0x01 // pinsrb xmm14, byte [rdx + rsi + 29], 1 + QUAD $0x011e324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 30], 1 + LONG $0x0244b60f; BYTE $0x1f // movzx eax, byte [rdx + rax + 31] + LONG $0xc06e0f66 // movd xmm0, eax + QUAD $0x011f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 1 + QUAD $0x121a7c203a0f4666; BYTE $0x02 // pinsrb xmm15, byte [rdx + r11 + 18], 2 + LONG $0x245c8b4c; BYTE $0x68 // mov r11, qword [rsp + 104] + QUAD $0x121a7c203a0f4666; BYTE $0x03 // pinsrb xmm15, byte [rdx + r11 + 18], 3 + QUAD $0x123a7c203a0f4466; BYTE $0x04 // pinsrb xmm15, byte [rdx + rdi + 18], 4 + LONG $0x24748b4c; BYTE $0x20 // mov r14, qword [rsp + 32] + QUAD $0x12327c203a0f4666; BYTE $0x05 // pinsrb xmm15, byte [rdx + r14 + 18], 5 + QUAD $0x000000a024948b4c // mov r10, qword [rsp + 160] + QUAD $0x12127c203a0f4666; BYTE $0x06 // pinsrb xmm15, byte [rdx + r10 + 18], 6 + QUAD $0x120a7c203a0f4666; BYTE $0x07 // pinsrb xmm15, byte [rdx + r9 + 18], 7 + WORD $0x8948; BYTE $0xce // mov rsi, rcx + QUAD $0x120a7c203a0f4466; BYTE $0x08 // pinsrb xmm15, byte [rdx + rcx + 18], 8 + QUAD $0x123a7c203a0f4666; BYTE $0x09 // pinsrb xmm15, byte [rdx + r15 + 18], 9 + LONG $0x244c8b48; BYTE $0x40 // mov rcx, qword [rsp + 64] + QUAD $0x120a7c203a0f4466; BYTE $0x0a // pinsrb xmm15, byte [rdx + rcx + 18], 10 + QUAD $0x12027c203a0f4666; BYTE $0x0b // pinsrb xmm15, byte [rdx + r8 + 18], 11 + QUAD $0x12227c203a0f4666; BYTE $0x0c // pinsrb xmm15, byte [rdx + r12 + 18], 12 + LONG $0x24448b48; BYTE $0x10 // mov rax, qword [rsp + 16] + QUAD $0x12027c203a0f4466; BYTE $0x0d // pinsrb xmm15, byte [rdx + rax + 18], 13 + LONG $0x245c8b48; BYTE $0x18 // mov rbx, qword [rsp + 24] + QUAD $0x121a7c203a0f4466; BYTE $0x0e // pinsrb xmm15, byte [rdx + rbx + 18], 14 + LONG $0x246c8b4c; BYTE $0x08 // mov r13, qword [rsp + 8] + QUAD $0x122a7c203a0f4666; BYTE $0x0f // pinsrb xmm15, byte [rdx + r13 + 18], 15 + LONG $0x245c8b48; BYTE $0x30 // mov rbx, qword [rsp + 48] + QUAD $0x02131a5c203a0f66 // pinsrb xmm3, byte [rdx + rbx + 19], 2 + QUAD $0x131a5c203a0f4266; BYTE $0x03 // pinsrb xmm3, byte [rdx + r11 + 19], 3 + QUAD $0x04133a5c203a0f66 // pinsrb xmm3, byte [rdx + rdi + 19], 4 + QUAD $0x13325c203a0f4266; BYTE $0x05 // pinsrb xmm3, byte [rdx + r14 + 19], 5 + QUAD $0x13125c203a0f4266; BYTE $0x06 // pinsrb xmm3, byte [rdx + r10 + 19], 6 + WORD $0x894d; BYTE $0xd5 // mov r13, r10 + QUAD $0x130a5c203a0f4266; BYTE $0x07 // pinsrb xmm3, byte [rdx + r9 + 19], 7 + QUAD $0x0813325c203a0f66 // pinsrb xmm3, byte [rdx + rsi + 19], 8 + WORD $0x8949; BYTE $0xf2 // mov r10, rsi + QUAD $0x133a5c203a0f4266; BYTE $0x09 // pinsrb xmm3, byte [rdx + r15 + 19], 9 + QUAD $0x0a130a5c203a0f66 // pinsrb xmm3, byte [rdx + rcx + 19], 10 + QUAD $0x13025c203a0f4266; BYTE $0x0b // pinsrb xmm3, byte [rdx + r8 + 19], 11 + WORD $0x894c; BYTE $0xe1 // mov rcx, r12 + QUAD $0x13225c203a0f4266; BYTE $0x0c // pinsrb xmm3, byte [rdx + r12 + 19], 12 + QUAD $0x0d13025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 19], 13 + LONG $0x24448b4c; BYTE $0x18 // mov r8, qword [rsp + 24] + QUAD $0x13025c203a0f4266; BYTE $0x0e // pinsrb xmm3, byte [rdx + r8 + 19], 14 + LONG $0x24448b48; BYTE $0x08 // mov rax, qword [rsp + 8] + QUAD $0x0f13025c203a0f66 // pinsrb xmm3, byte [rdx + rax + 19], 15 + LONG $0x24748b48; BYTE $0x30 // mov rsi, qword [rsp + 48] + QUAD $0x02143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 2 + QUAD $0x02153264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 21], 2 + QUAD $0x0216327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 22], 2 + QUAD $0x02173254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 23], 2 + QUAD $0x18324c203a0f4466; BYTE $0x02 // pinsrb xmm9, byte [rdx + rsi + 24], 2 + QUAD $0x193264203a0f4466; BYTE $0x02 // pinsrb xmm12, byte [rdx + rsi + 25], 2 + QUAD $0x1a326c203a0f4466; BYTE $0x02 // pinsrb xmm13, byte [rdx + rsi + 26], 2 + QUAD $0x1b3254203a0f4466; BYTE $0x02 // pinsrb xmm10, byte [rdx + rsi + 27], 2 + QUAD $0x1c325c203a0f4466; BYTE $0x02 // pinsrb xmm11, byte [rdx + rsi + 28], 2 + QUAD $0x1d3274203a0f4466; BYTE $0x02 // pinsrb xmm14, byte [rdx + rsi + 29], 2 + QUAD $0x021e324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 30], 2 + LONG $0xde0f4566; BYTE $0xf8 // pmaxub xmm15, xmm8 + LONG $0x740f4566; BYTE $0xf8 // pcmpeqb xmm15, xmm8 + QUAD $0x000110bddb0f4466; BYTE $0x00 // pand xmm15, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xde0f4166; BYTE $0xd8 // pmaxub xmm3, xmm8 + LONG $0x740f4166; BYTE $0xd8 // pcmpeqb xmm3, xmm8 + QUAD $0x000001209ddb0f66 // pand xmm3, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xeb0f4166; BYTE $0xdf // por xmm3, xmm15 + QUAD $0x021f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 2 + LONG $0xddeb0f66 // por xmm3, xmm5 + QUAD $0x141a74203a0f4266; BYTE $0x03 // pinsrb xmm6, byte [rdx + r11 + 20], 3 + QUAD $0x04143a74203a0f66 // pinsrb xmm6, byte [rdx + rdi + 20], 4 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + QUAD $0x143274203a0f4266; BYTE $0x05 // pinsrb xmm6, byte [rdx + r14 + 20], 5 + QUAD $0x142a74203a0f4266; BYTE $0x06 // pinsrb xmm6, byte [rdx + r13 + 20], 6 + LONG $0x24748b4c; BYTE $0x38 // mov r14, qword [rsp + 56] + QUAD $0x143274203a0f4266; BYTE $0x07 // pinsrb xmm6, byte [rdx + r14 + 20], 7 + QUAD $0x141274203a0f4266; BYTE $0x08 // pinsrb xmm6, byte [rdx + r10 + 20], 8 + QUAD $0x143a74203a0f4266; BYTE $0x09 // pinsrb xmm6, byte [rdx + r15 + 20], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x0a140274203a0f66 // pinsrb xmm6, byte [rdx + rax + 20], 10 + LONG $0x245c8b48; BYTE $0x58 // mov rbx, qword [rsp + 88] + QUAD $0x0b141a74203a0f66 // pinsrb xmm6, byte [rdx + rbx + 20], 11 + QUAD $0x142274203a0f4266; BYTE $0x0c // pinsrb xmm6, byte [rdx + r12 + 20], 12 + LONG $0x24648b4c; BYTE $0x10 // mov r12, qword [rsp + 16] + QUAD $0x142274203a0f4266; BYTE $0x0d // pinsrb xmm6, byte [rdx + r12 + 20], 13 + QUAD $0x140274203a0f4266; BYTE $0x0e // pinsrb xmm6, byte [rdx + r8 + 20], 14 + LONG $0x24748b48; BYTE $0x08 // mov rsi, qword [rsp + 8] + QUAD $0x0f143274203a0f66 // pinsrb xmm6, byte [rdx + rsi + 20], 15 + QUAD $0x151a64203a0f4266; BYTE $0x03 // pinsrb xmm4, byte [rdx + r11 + 21], 3 + QUAD $0x04153a64203a0f66 // pinsrb xmm4, byte [rdx + rdi + 21], 4 + QUAD $0x150a64203a0f4266; BYTE $0x05 // pinsrb xmm4, byte [rdx + r9 + 21], 5 + QUAD $0x152a64203a0f4266; BYTE $0x06 // pinsrb xmm4, byte [rdx + r13 + 21], 6 + QUAD $0x153264203a0f4266; BYTE $0x07 // pinsrb xmm4, byte [rdx + r14 + 21], 7 + QUAD $0x151264203a0f4266; BYTE $0x08 // pinsrb xmm4, byte [rdx + r10 + 21], 8 + QUAD $0x153a64203a0f4266; BYTE $0x09 // pinsrb xmm4, byte [rdx + r15 + 21], 9 + QUAD $0x0a150264203a0f66 // pinsrb xmm4, byte [rdx + rax + 21], 10 + QUAD $0x0b151a64203a0f66 // pinsrb xmm4, byte [rdx + rbx + 21], 11 + QUAD $0x0c150a64203a0f66 // pinsrb xmm4, byte [rdx + rcx + 21], 12 + QUAD $0x152264203a0f4266; BYTE $0x0d // pinsrb xmm4, byte [rdx + r12 + 21], 13 + QUAD $0x150264203a0f4266; BYTE $0x0e // pinsrb xmm4, byte [rdx + r8 + 21], 14 + QUAD $0x0f153264203a0f66 // pinsrb xmm4, byte [rdx + rsi + 21], 15 + QUAD $0x161a7c203a0f4266; BYTE $0x03 // pinsrb xmm7, byte [rdx + r11 + 22], 3 + QUAD $0x04163a7c203a0f66 // pinsrb xmm7, byte [rdx + rdi + 22], 4 + QUAD $0x160a7c203a0f4266; BYTE $0x05 // pinsrb xmm7, byte [rdx + r9 + 22], 5 + QUAD $0x162a7c203a0f4266; BYTE $0x06 // pinsrb xmm7, byte [rdx + r13 + 22], 6 + QUAD $0x16327c203a0f4266; BYTE $0x07 // pinsrb xmm7, byte [rdx + r14 + 22], 7 + QUAD $0x16127c203a0f4266; BYTE $0x08 // pinsrb xmm7, byte [rdx + r10 + 22], 8 + QUAD $0x163a7c203a0f4266; BYTE $0x09 // pinsrb xmm7, byte [rdx + r15 + 22], 9 + QUAD $0x0a16027c203a0f66 // pinsrb xmm7, byte [rdx + rax + 22], 10 + QUAD $0x0b161a7c203a0f66 // pinsrb xmm7, byte [rdx + rbx + 22], 11 + QUAD $0x0c160a7c203a0f66 // pinsrb xmm7, byte [rdx + rcx + 22], 12 + QUAD $0x16227c203a0f4266; BYTE $0x0d // pinsrb xmm7, byte [rdx + r12 + 22], 13 + QUAD $0x16027c203a0f4266; BYTE $0x0e // pinsrb xmm7, byte [rdx + r8 + 22], 14 + QUAD $0x0f16327c203a0f66 // pinsrb xmm7, byte [rdx + rsi + 22], 15 + LONG $0xde0f4166; BYTE $0xf0 // pmaxub xmm6, xmm8 + LONG $0x740f4166; BYTE $0xf0 // pcmpeqb xmm6, xmm8 + QUAD $0x00000130ad6f0f66 // movdqa xmm5, oword 304[rbp] /* [rip + .LCPI11_19] */ + LONG $0xf5db0f66 // pand xmm6, xmm5 + LONG $0xde0f4166; BYTE $0xe0 // pmaxub xmm4, xmm8 + LONG $0x740f4166; BYTE $0xe0 // pcmpeqb xmm4, xmm8 + QUAD $0x000140bd6f0f4466; BYTE $0x00 // movdqa xmm15, oword 320[rbp] /* [rip + .LCPI11_20] */ + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xe6eb0f66 // por xmm4, xmm6 + LONG $0xde0f4166; BYTE $0xf8 // pmaxub xmm7, xmm8 + LONG $0x740f4166; BYTE $0xf8 // pcmpeqb xmm7, xmm8 + QUAD $0x00000150b56f0f66 // movdqa xmm6, oword 336[rbp] /* [rip + .LCPI11_21] */ + LONG $0xfedb0f66 // pand xmm7, xmm6 + LONG $0xfceb0f66 // por xmm7, xmm4 + LONG $0xfbeb0f66 // por xmm7, xmm3 + QUAD $0x171a54203a0f4266; BYTE $0x03 // pinsrb xmm2, byte [rdx + r11 + 23], 3 + QUAD $0x04173a54203a0f66 // pinsrb xmm2, byte [rdx + rdi + 23], 4 + QUAD $0x170a54203a0f4266; BYTE $0x05 // pinsrb xmm2, byte [rdx + r9 + 23], 5 + QUAD $0x172a54203a0f4266; BYTE $0x06 // pinsrb xmm2, byte [rdx + r13 + 23], 6 + QUAD $0x173254203a0f4266; BYTE $0x07 // pinsrb xmm2, byte [rdx + r14 + 23], 7 + QUAD $0x171254203a0f4266; BYTE $0x08 // pinsrb xmm2, byte [rdx + r10 + 23], 8 + QUAD $0x173a54203a0f4266; BYTE $0x09 // pinsrb xmm2, byte [rdx + r15 + 23], 9 + QUAD $0x0a170254203a0f66 // pinsrb xmm2, byte [rdx + rax + 23], 10 + QUAD $0x0b171a54203a0f66 // pinsrb xmm2, byte [rdx + rbx + 23], 11 + QUAD $0x0c170a54203a0f66 // pinsrb xmm2, byte [rdx + rcx + 23], 12 + QUAD $0x172254203a0f4266; BYTE $0x0d // pinsrb xmm2, byte [rdx + r12 + 23], 13 + QUAD $0x170254203a0f4266; BYTE $0x0e // pinsrb xmm2, byte [rdx + r8 + 23], 14 + QUAD $0x0f173254203a0f66 // pinsrb xmm2, byte [rdx + rsi + 23], 15 + LONG $0xde0f4166; BYTE $0xd0 // pmaxub xmm2, xmm8 + LONG $0x740f4166; BYTE $0xd0 // pcmpeqb xmm2, xmm8 + LONG $0x5d6f0f66; BYTE $0x60 // movdqa xmm3, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0xd3db0f66 // pand xmm2, xmm3 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0x181a4c203a0f4666; BYTE $0x03 // pinsrb xmm9, byte [rdx + r11 + 24], 3 + QUAD $0x183a4c203a0f4466; BYTE $0x04 // pinsrb xmm9, byte [rdx + rdi + 24], 4 + QUAD $0x180a4c203a0f4666; BYTE $0x05 // pinsrb xmm9, byte [rdx + r9 + 24], 5 + QUAD $0x182a4c203a0f4666; BYTE $0x06 // pinsrb xmm9, byte [rdx + r13 + 24], 6 + QUAD $0x18324c203a0f4666; BYTE $0x07 // pinsrb xmm9, byte [rdx + r14 + 24], 7 + QUAD $0x18124c203a0f4666; BYTE $0x08 // pinsrb xmm9, byte [rdx + r10 + 24], 8 + QUAD $0x183a4c203a0f4666; BYTE $0x09 // pinsrb xmm9, byte [rdx + r15 + 24], 9 + QUAD $0x18024c203a0f4466; BYTE $0x0a // pinsrb xmm9, byte [rdx + rax + 24], 10 + QUAD $0x181a4c203a0f4466; BYTE $0x0b // pinsrb xmm9, byte [rdx + rbx + 24], 11 + QUAD $0x180a4c203a0f4466; BYTE $0x0c // pinsrb xmm9, byte [rdx + rcx + 24], 12 + QUAD $0x18224c203a0f4666; BYTE $0x0d // pinsrb xmm9, byte [rdx + r12 + 24], 13 + QUAD $0x18024c203a0f4666; BYTE $0x0e // pinsrb xmm9, byte [rdx + r8 + 24], 14 + QUAD $0x18324c203a0f4466; BYTE $0x0f // pinsrb xmm9, byte [rdx + rsi + 24], 15 + LONG $0xde0f4566; BYTE $0xc8 // pmaxub xmm9, xmm8 + LONG $0x740f4566; BYTE $0xc8 // pcmpeqb xmm9, xmm8 + QUAD $0x191a64203a0f4666; BYTE $0x03 // pinsrb xmm12, byte [rdx + r11 + 25], 3 + QUAD $0x193a64203a0f4466; BYTE $0x04 // pinsrb xmm12, byte [rdx + rdi + 25], 4 + QUAD $0x190a64203a0f4666; BYTE $0x05 // pinsrb xmm12, byte [rdx + r9 + 25], 5 + QUAD $0x192a64203a0f4666; BYTE $0x06 // pinsrb xmm12, byte [rdx + r13 + 25], 6 + QUAD $0x193264203a0f4666; BYTE $0x07 // pinsrb xmm12, byte [rdx + r14 + 25], 7 + QUAD $0x191264203a0f4666; BYTE $0x08 // pinsrb xmm12, byte [rdx + r10 + 25], 8 + QUAD $0x193a64203a0f4666; BYTE $0x09 // pinsrb xmm12, byte [rdx + r15 + 25], 9 + QUAD $0x190264203a0f4466; BYTE $0x0a // pinsrb xmm12, byte [rdx + rax + 25], 10 + QUAD $0x191a64203a0f4466; BYTE $0x0b // pinsrb xmm12, byte [rdx + rbx + 25], 11 + QUAD $0x190a64203a0f4466; BYTE $0x0c // pinsrb xmm12, byte [rdx + rcx + 25], 12 + QUAD $0x192264203a0f4666; BYTE $0x0d // pinsrb xmm12, byte [rdx + r12 + 25], 13 + QUAD $0x190264203a0f4666; BYTE $0x0e // pinsrb xmm12, byte [rdx + r8 + 25], 14 + QUAD $0x193264203a0f4466; BYTE $0x0f // pinsrb xmm12, byte [rdx + rsi + 25], 15 + LONG $0xde0f4566; BYTE $0xe0 // pmaxub xmm12, xmm8 + LONG $0x740f4566; BYTE $0xe0 // pcmpeqb xmm12, xmm8 + QUAD $0x000100a5db0f4466; BYTE $0x00 // pand xmm12, oword 256[rbp] /* [rip + .LCPI11_16] */ + LONG $0xf80f4566; BYTE $0xe1 // psubb xmm12, xmm9 + QUAD $0x1a1a6c203a0f4666; BYTE $0x03 // pinsrb xmm13, byte [rdx + r11 + 26], 3 + QUAD $0x1a3a6c203a0f4466; BYTE $0x04 // pinsrb xmm13, byte [rdx + rdi + 26], 4 + QUAD $0x1a0a6c203a0f4666; BYTE $0x05 // pinsrb xmm13, byte [rdx + r9 + 26], 5 + QUAD $0x1a2a6c203a0f4666; BYTE $0x06 // pinsrb xmm13, byte [rdx + r13 + 26], 6 + QUAD $0x1a326c203a0f4666; BYTE $0x07 // pinsrb xmm13, byte [rdx + r14 + 26], 7 + QUAD $0x1a126c203a0f4666; BYTE $0x08 // pinsrb xmm13, byte [rdx + r10 + 26], 8 + QUAD $0x1a3a6c203a0f4666; BYTE $0x09 // pinsrb xmm13, byte [rdx + r15 + 26], 9 + QUAD $0x1a026c203a0f4466; BYTE $0x0a // pinsrb xmm13, byte [rdx + rax + 26], 10 + QUAD $0x1a1a6c203a0f4466; BYTE $0x0b // pinsrb xmm13, byte [rdx + rbx + 26], 11 + QUAD $0x1a0a6c203a0f4466; BYTE $0x0c // pinsrb xmm13, byte [rdx + rcx + 26], 12 + QUAD $0x1a226c203a0f4666; BYTE $0x0d // pinsrb xmm13, byte [rdx + r12 + 26], 13 + QUAD $0x1a026c203a0f4666; BYTE $0x0e // pinsrb xmm13, byte [rdx + r8 + 26], 14 + QUAD $0x1a326c203a0f4466; BYTE $0x0f // pinsrb xmm13, byte [rdx + rsi + 26], 15 + QUAD $0x1b1a54203a0f4666; BYTE $0x03 // pinsrb xmm10, byte [rdx + r11 + 27], 3 + QUAD $0x1b3a54203a0f4466; BYTE $0x04 // pinsrb xmm10, byte [rdx + rdi + 27], 4 + QUAD $0x1b0a54203a0f4666; BYTE $0x05 // pinsrb xmm10, byte [rdx + r9 + 27], 5 + QUAD $0x1b2a54203a0f4666; BYTE $0x06 // pinsrb xmm10, byte [rdx + r13 + 27], 6 + QUAD $0x1b3254203a0f4666; BYTE $0x07 // pinsrb xmm10, byte [rdx + r14 + 27], 7 + QUAD $0x1b1254203a0f4666; BYTE $0x08 // pinsrb xmm10, byte [rdx + r10 + 27], 8 + QUAD $0x1b3a54203a0f4666; BYTE $0x09 // pinsrb xmm10, byte [rdx + r15 + 27], 9 + QUAD $0x1b0254203a0f4466; BYTE $0x0a // pinsrb xmm10, byte [rdx + rax + 27], 10 + QUAD $0x1b1a54203a0f4466; BYTE $0x0b // pinsrb xmm10, byte [rdx + rbx + 27], 11 + QUAD $0x1b0a54203a0f4466; BYTE $0x0c // pinsrb xmm10, byte [rdx + rcx + 27], 12 + QUAD $0x1b2254203a0f4666; BYTE $0x0d // pinsrb xmm10, byte [rdx + r12 + 27], 13 + QUAD $0x1b0254203a0f4666; BYTE $0x0e // pinsrb xmm10, byte [rdx + r8 + 27], 14 + QUAD $0x1b3254203a0f4466; BYTE $0x0f // pinsrb xmm10, byte [rdx + rsi + 27], 15 + LONG $0xde0f4566; BYTE $0xe8 // pmaxub xmm13, xmm8 + LONG $0x740f4566; BYTE $0xe8 // pcmpeqb xmm13, xmm8 + QUAD $0x000110addb0f4466; BYTE $0x00 // pand xmm13, oword 272[rbp] /* [rip + .LCPI11_17] */ + LONG $0xde0f4566; BYTE $0xd0 // pmaxub xmm10, xmm8 + LONG $0x740f4566; BYTE $0xd0 // pcmpeqb xmm10, xmm8 + QUAD $0x00012095db0f4466; BYTE $0x00 // pand xmm10, oword 288[rbp] /* [rip + .LCPI11_18] */ + LONG $0xeb0f4566; BYTE $0xd5 // por xmm10, xmm13 + LONG $0xeb0f4566; BYTE $0xd4 // por xmm10, xmm12 + QUAD $0x1c1a5c203a0f4666; BYTE $0x03 // pinsrb xmm11, byte [rdx + r11 + 28], 3 + QUAD $0x1d1a74203a0f4666; BYTE $0x03 // pinsrb xmm14, byte [rdx + r11 + 29], 3 + QUAD $0x1e1a4c203a0f4266; BYTE $0x03 // pinsrb xmm1, byte [rdx + r11 + 30], 3 + QUAD $0x1f1a44203a0f4266; BYTE $0x03 // pinsrb xmm0, byte [rdx + r11 + 31], 3 + QUAD $0x1c3a5c203a0f4466; BYTE $0x04 // pinsrb xmm11, byte [rdx + rdi + 28], 4 + QUAD $0x1d3a74203a0f4466; BYTE $0x04 // pinsrb xmm14, byte [rdx + rdi + 29], 4 + QUAD $0x041e3a4c203a0f66 // pinsrb xmm1, byte [rdx + rdi + 30], 4 + QUAD $0x041f3a44203a0f66 // pinsrb xmm0, byte [rdx + rdi + 31], 4 + QUAD $0x1c0a5c203a0f4666; BYTE $0x05 // pinsrb xmm11, byte [rdx + r9 + 28], 5 + QUAD $0x1d0a74203a0f4666; BYTE $0x05 // pinsrb xmm14, byte [rdx + r9 + 29], 5 + QUAD $0x1e0a4c203a0f4266; BYTE $0x05 // pinsrb xmm1, byte [rdx + r9 + 30], 5 + QUAD $0x1f0a44203a0f4266; BYTE $0x05 // pinsrb xmm0, byte [rdx + r9 + 31], 5 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x1c2a5c203a0f4666; BYTE $0x06 // pinsrb xmm11, byte [rdx + r13 + 28], 6 + QUAD $0x1d2a74203a0f4666; BYTE $0x06 // pinsrb xmm14, byte [rdx + r13 + 29], 6 + QUAD $0x1e2a4c203a0f4266; BYTE $0x06 // pinsrb xmm1, byte [rdx + r13 + 30], 6 + QUAD $0x1f2a44203a0f4266; BYTE $0x06 // pinsrb xmm0, byte [rdx + r13 + 31], 6 + WORD $0x894c; BYTE $0xf0 // mov rax, r14 + QUAD $0x1c325c203a0f4666; BYTE $0x07 // pinsrb xmm11, byte [rdx + r14 + 28], 7 + QUAD $0x1d3274203a0f4666; BYTE $0x07 // pinsrb xmm14, byte [rdx + r14 + 29], 7 + QUAD $0x1e324c203a0f4266; BYTE $0x07 // pinsrb xmm1, byte [rdx + r14 + 30], 7 + QUAD $0x1f3244203a0f4266; BYTE $0x07 // pinsrb xmm0, byte [rdx + r14 + 31], 7 + QUAD $0x1c125c203a0f4666; BYTE $0x08 // pinsrb xmm11, byte [rdx + r10 + 28], 8 + QUAD $0x1d1274203a0f4666; BYTE $0x08 // pinsrb xmm14, byte [rdx + r10 + 29], 8 + QUAD $0x1e124c203a0f4266; BYTE $0x08 // pinsrb xmm1, byte [rdx + r10 + 30], 8 + QUAD $0x1f1244203a0f4266; BYTE $0x08 // pinsrb xmm0, byte [rdx + r10 + 31], 8 + LONG $0x24448b48; BYTE $0x60 // mov rax, qword [rsp + 96] + QUAD $0x1c025c203a0f4466; BYTE $0x09 // pinsrb xmm11, byte [rdx + rax + 28], 9 + QUAD $0x1d0274203a0f4466; BYTE $0x09 // pinsrb xmm14, byte [rdx + rax + 29], 9 + QUAD $0x091e024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 30], 9 + QUAD $0x091f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 31], 9 + LONG $0x24448b48; BYTE $0x40 // mov rax, qword [rsp + 64] + QUAD $0x1c025c203a0f4466; BYTE $0x0a // pinsrb xmm11, byte [rdx + rax + 28], 10 + QUAD $0x1d0274203a0f4466; BYTE $0x0a // pinsrb xmm14, byte [rdx + rax + 29], 10 + QUAD $0x0a1e024c203a0f66 // pinsrb xmm1, byte [rdx + rax + 30], 10 + QUAD $0x0a1f0244203a0f66 // pinsrb xmm0, byte [rdx + rax + 31], 10 + WORD $0x8948; BYTE $0xd8 // mov rax, rbx + QUAD $0x1c1a5c203a0f4466; BYTE $0x0b // pinsrb xmm11, byte [rdx + rbx + 28], 11 + QUAD $0x1d1a74203a0f4466; BYTE $0x0b // pinsrb xmm14, byte [rdx + rbx + 29], 11 + QUAD $0x0b1e1a4c203a0f66 // pinsrb xmm1, byte [rdx + rbx + 30], 11 + QUAD $0x0b1f1a44203a0f66 // pinsrb xmm0, byte [rdx + rbx + 31], 11 + QUAD $0x1c0a5c203a0f4466; BYTE $0x0c // pinsrb xmm11, byte [rdx + rcx + 28], 12 + QUAD $0x1d0a74203a0f4466; BYTE $0x0c // pinsrb xmm14, byte [rdx + rcx + 29], 12 + QUAD $0x0c1e0a4c203a0f66 // pinsrb xmm1, byte [rdx + rcx + 30], 12 + QUAD $0x0c1f0a44203a0f66 // pinsrb xmm0, byte [rdx + rcx + 31], 12 + WORD $0x894c; BYTE $0xe0 // mov rax, r12 + QUAD $0x1c225c203a0f4666; BYTE $0x0d // pinsrb xmm11, byte [rdx + r12 + 28], 13 + QUAD $0x1d2274203a0f4666; BYTE $0x0d // pinsrb xmm14, byte [rdx + r12 + 29], 13 + QUAD $0x1e224c203a0f4266; BYTE $0x0d // pinsrb xmm1, byte [rdx + r12 + 30], 13 + QUAD $0x1f2244203a0f4266; BYTE $0x0d // pinsrb xmm0, byte [rdx + r12 + 31], 13 + WORD $0x894c; BYTE $0xc0 // mov rax, r8 + QUAD $0x1c025c203a0f4666; BYTE $0x0e // pinsrb xmm11, byte [rdx + r8 + 28], 14 + QUAD $0x1d0274203a0f4666; BYTE $0x0e // pinsrb xmm14, byte [rdx + r8 + 29], 14 + QUAD $0x1e024c203a0f4266; BYTE $0x0e // pinsrb xmm1, byte [rdx + r8 + 30], 14 + QUAD $0x1f0244203a0f4266; BYTE $0x0e // pinsrb xmm0, byte [rdx + r8 + 31], 14 + WORD $0x8948; BYTE $0xf0 // mov rax, rsi + QUAD $0x1c325c203a0f4466; BYTE $0x0f // pinsrb xmm11, byte [rdx + rsi + 28], 15 + QUAD $0x1d3274203a0f4466; BYTE $0x0f // pinsrb xmm14, byte [rdx + rsi + 29], 15 + QUAD $0x0f1e324c203a0f66 // pinsrb xmm1, byte [rdx + rsi + 30], 15 + QUAD $0x0f1f3244203a0f66 // pinsrb xmm0, byte [rdx + rsi + 31], 15 + LONG $0xde0f4566; BYTE $0xd8 // pmaxub xmm11, xmm8 + LONG $0x740f4566; BYTE $0xd8 // pcmpeqb xmm11, xmm8 + LONG $0xdb0f4466; BYTE $0xdd // pand xmm11, xmm5 + LONG $0xde0f4566; BYTE $0xf0 // pmaxub xmm14, xmm8 + LONG $0x740f4566; BYTE $0xf0 // pcmpeqb xmm14, xmm8 + LONG $0xdb0f4566; BYTE $0xf7 // pand xmm14, xmm15 + LONG $0xeb0f4566; BYTE $0xf3 // por xmm14, xmm11 + LONG $0xde0f4166; BYTE $0xc8 // pmaxub xmm1, xmm8 + LONG $0x740f4166; BYTE $0xc8 // pcmpeqb xmm1, xmm8 + LONG $0xcedb0f66 // pand xmm1, xmm6 + LONG $0xeb0f4166; BYTE $0xce // por xmm1, xmm14 + LONG $0xeb0f4166; BYTE $0xca // por xmm1, xmm10 + LONG $0xde0f4166; BYTE $0xc0 // pmaxub xmm0, xmm8 + LONG $0x740f4166; BYTE $0xc0 // pcmpeqb xmm0, xmm8 + LONG $0xc3db0f66 // pand xmm0, xmm3 + LONG $0xc1eb0f66 // por xmm0, xmm1 + LONG $0xca6f0f66 // movdqa xmm1, xmm2 + LONG $0xc8600f66 // punpcklbw xmm1, xmm0 + QUAD $0x0000d024ac6f0f66; BYTE $0x00 // movdqa xmm5, oword [rsp + 208] + LONG $0xdd6f0f66 // movdqa xmm3, xmm5 + QUAD $0x0000b024b46f0f66; BYTE $0x00 // movdqa xmm6, oword [rsp + 176] + LONG $0xde600f66 // punpcklbw xmm3, xmm6 + LONG $0xe36f0f66 // movdqa xmm4, xmm3 + LONG $0xe1610f66 // punpcklwd xmm4, xmm1 + LONG $0xd9690f66 // punpckhwd xmm3, xmm1 + LONG $0xd0680f66 // punpckhbw xmm2, xmm0 + LONG $0xee680f66 // punpckhbw xmm5, xmm6 + LONG $0xc56f0f66 // movdqa xmm0, xmm5 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0xea690f66 // punpckhwd xmm5, xmm2 + QUAD $0x00000080248c8b48 // mov rcx, qword [rsp + 128] + LONG $0x7f0f41f3; WORD $0x8f6c; BYTE $0x30 // movdqu oword [r15 + 4*rcx + 48], xmm5 + LONG $0x7f0f41f3; WORD $0x8f44; BYTE $0x20 // movdqu oword [r15 + 4*rcx + 32], xmm0 + LONG $0x7f0f41f3; WORD $0x8f5c; BYTE $0x10 // movdqu oword [r15 + 4*rcx + 16], xmm3 + LONG $0x7f0f41f3; WORD $0x8f24 // movdqu oword [r15 + 4*rcx], xmm4 + LONG $0x10c18348 // add rcx, 16 + WORD $0x8948; BYTE $0xc8 // mov rax, rcx + QUAD $0x000000c0248c3b48 // cmp rcx, qword [rsp + 192] + JNE LBB11_67 + QUAD $0x000000f824948b4c // mov r10, qword [rsp + 248] + QUAD $0x000000c024943b4c // cmp r10, qword [rsp + 192] + LONG $0x24348a44 // mov r14b, byte [rsp] + QUAD $0x0000012024ac8b4c // mov r13, qword [rsp + 288] + QUAD $0x0000011824948b48 // mov rdx, qword [rsp + 280] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + JNE LBB11_69 + JMP LBB11_72 + +LBB11_124: + LONG $0xf8e28349 // and r10, -8 + WORD $0x894c; BYTE $0xd0 // mov rax, r10 + LONG $0x06e0c148 // shl rax, 6 + WORD $0x0148; BYTE $0xd0 // add rax, rdx + LONG $0x24448948; BYTE $0x30 // mov qword [rsp + 48], rax + LONG $0x2454894c; BYTE $0x20 // mov qword [rsp + 32], r10 + LONG $0x97048d4b // lea rax, [r15 + 4*r10] + LONG $0x24448948; BYTE $0x38 // mov qword [rsp + 56], rax + LONG $0x6e0f4166; BYTE $0xc6 // movd xmm0, r14d + LONG $0xc0700ff2; BYTE $0xe0 // pshuflw xmm0, xmm0, 224 + LONG $0x700f4466; WORD $0x00d8 // pshufd xmm11, xmm0, 0 + WORD $0x3145; BYTE $0xf6 // xor r14d, r14d + LONG $0x247c894c; BYTE $0x78 // mov qword [rsp + 120], r15 + LONG $0xef0f4566; BYTE $0xff // pxor xmm15, xmm15 + +LBB11_125: + LONG $0x2474894c; BYTE $0x10 // mov qword [rsp + 16], r14 + LONG $0x06e6c149 // shl r14, 6 + WORD $0x894c; BYTE $0xf7 // mov rdi, r14 + WORD $0x894d; BYTE $0xf7 // mov r15, r14 + WORD $0x894d; BYTE $0xf4 // mov r12, r14 + WORD $0x894d; BYTE $0xf5 // mov r13, r14 + WORD $0x894c; BYTE $0xf3 // mov rbx, r14 + WORD $0x894d; BYTE $0xf1 // mov r9, r14 + LONG $0x04b70f42; BYTE $0x32 // movzx eax, word [rdx + r14] + LONG $0xe86e0f66 // movd xmm5, eax + LONG $0x44b70f42; WORD $0x0232 // movzx eax, word [rdx + r14 + 2] + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44b70f42; WORD $0x0432 // movzx eax, word [rdx + r14 + 4] + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x44b70f42; WORD $0x0632 // movzx eax, word [rdx + r14 + 6] + LONG $0xf86e0f66 // movd xmm7, eax + LONG $0x44b70f42; WORD $0x0832 // movzx eax, word [rdx + r14 + 8] + LONG $0x6e0f4466; BYTE $0xc0 // movd xmm8, eax + LONG $0x44b70f42; WORD $0x0a32 // movzx eax, word [rdx + r14 + 10] + LONG $0xe06e0f66 // movd xmm4, eax + LONG $0x44b70f42; WORD $0x0c32 // movzx eax, word [rdx + r14 + 12] + LONG $0x74b70f42; WORD $0x0e32 // movzx esi, word [rdx + r14 + 14] + LONG $0x4cb70f42; WORD $0x1032 // movzx ecx, word [rdx + r14 + 16] + LONG $0x18244c89 // mov dword [rsp + 24], ecx + LONG $0x54b70f46; WORD $0x1232 // movzx r10d, word [rdx + r14 + 18] + LONG $0x5cb70f46; WORD $0x1432 // movzx r11d, word [rdx + r14 + 20] + WORD $0x894c; BYTE $0xf1 // mov rcx, r14 + LONG $0x40c98348 // or rcx, 64 + LONG $0x80cf8148; WORD $0x0000; BYTE $0x00 // or rdi, 128 + LONG $0xc0cf8149; WORD $0x0000; BYTE $0x00 // or r15, 192 + LONG $0x00cc8149; WORD $0x0001; BYTE $0x00 // or r12, 256 + LONG $0x40cd8149; WORD $0x0001; BYTE $0x00 // or r13, 320 + LONG $0x80cb8148; WORD $0x0001; BYTE $0x00 // or rbx, 384 + LONG $0x2cc40f66; WORD $0x010a // pinsrw xmm5, word [rdx + rcx], 1 + LONG $0x2cc40f66; WORD $0x023a // pinsrw xmm5, word [rdx + rdi], 2 + LONG $0xc40f4266; WORD $0x3a2c; BYTE $0x03 // pinsrw xmm5, word [rdx + r15], 3 + LONG $0xc40f4266; WORD $0x222c; BYTE $0x04 // pinsrw xmm5, word [rdx + r12], 4 + LONG $0xc40f4266; WORD $0x2a2c; BYTE $0x05 // pinsrw xmm5, word [rdx + r13], 5 + LONG $0x2cc40f66; WORD $0x061a // pinsrw xmm5, word [rdx + rbx], 6 + LONG $0x44c40f66; WORD $0x020a; BYTE $0x01 // pinsrw xmm0, word [rdx + rcx + 2], 1 + LONG $0x44c40f66; WORD $0x023a; BYTE $0x02 // pinsrw xmm0, word [rdx + rdi + 2], 2 + QUAD $0x03023a44c40f4266 // pinsrw xmm0, word [rdx + r15 + 2], 3 + QUAD $0x04022244c40f4266 // pinsrw xmm0, word [rdx + r12 + 2], 4 + QUAD $0x05022a44c40f4266 // pinsrw xmm0, word [rdx + r13 + 2], 5 + LONG $0x44c40f66; WORD $0x021a; BYTE $0x06 // pinsrw xmm0, word [rdx + rbx + 2], 6 + LONG $0xc0c98149; WORD $0x0001; BYTE $0x00 // or r9, 448 + QUAD $0x07020a44c40f4266 // pinsrw xmm0, word [rdx + r9 + 2], 7 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x44b70f42; WORD $0x1632 // movzx eax, word [rdx + r14 + 22] + LONG $0x08244489 // mov dword [rsp + 8], eax + LONG $0x650f4166; BYTE $0xc3 // pcmpgtw xmm0, xmm11 + LONG $0x4cc40f66; WORD $0x040a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 4], 1 + LONG $0x4cc40f66; WORD $0x043a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 4], 2 + QUAD $0x03043a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 4], 3 + QUAD $0x0404224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 4], 4 + QUAD $0x05042a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 4], 5 + LONG $0x4cc40f66; WORD $0x041a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 4], 6 + QUAD $0x07040a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 4], 7 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + QUAD $0x0000808d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 128[rbp] /* [rip + .LCPI11_8] */ + LONG $0x6f0f4166; BYTE $0xd9 // movdqa xmm3, xmm9 + LONG $0x380f4166; WORD $0xdf10 // pblendvb xmm3, xmm15, xmm0 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x00000090856f0f66 // movdqa xmm0, oword 144[rbp] /* [rip + .LCPI11_9] */ + LONG $0xf06f0f66 // movdqa xmm6, xmm0 + LONG $0x6f0f4466; BYTE $0xf0 // movdqa xmm14, xmm0 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x44b70f46; WORD $0x1832 // movzx r8d, word [rdx + r14 + 24] + LONG $0xc40f4266; WORD $0x0a2c; BYTE $0x07 // pinsrw xmm5, word [rdx + r9], 7 + LONG $0x650f4166; BYTE $0xeb // pcmpgtw xmm5, xmm11 + LONG $0xc0760f66 // pcmpeqd xmm0, xmm0 + LONG $0xe8ef0f66 // pxor xmm5, xmm0 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x7cc40f66; WORD $0x060a; BYTE $0x01 // pinsrw xmm7, word [rdx + rcx + 6], 1 + LONG $0x7cc40f66; WORD $0x063a; BYTE $0x02 // pinsrw xmm7, word [rdx + rdi + 6], 2 + QUAD $0x03063a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 6], 3 + QUAD $0x0406227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 6], 4 + QUAD $0x05062a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 6], 5 + LONG $0x7cc40f66; WORD $0x061a; BYTE $0x06 // pinsrw xmm7, word [rdx + rbx + 6], 6 + QUAD $0x07060a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 6], 7 + LONG $0x650f4166; BYTE $0xfb // pcmpgtw xmm7, xmm11 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x01080a44c40f4466 // pinsrw xmm8, word [rdx + rcx + 8], 1 + QUAD $0x02083a44c40f4466 // pinsrw xmm8, word [rdx + rdi + 8], 2 + QUAD $0x03083a44c40f4666 // pinsrw xmm8, word [rdx + r15 + 8], 3 + QUAD $0x04082244c40f4666 // pinsrw xmm8, word [rdx + r12 + 8], 4 + QUAD $0x05082a44c40f4666 // pinsrw xmm8, word [rdx + r13 + 8], 5 + QUAD $0x06081a44c40f4466 // pinsrw xmm8, word [rdx + rbx + 8], 6 + QUAD $0x07080a44c40f4666 // pinsrw xmm8, word [rdx + r9 + 8], 7 + LONG $0xddf80f66 // psubb xmm3, xmm5 + QUAD $0x0000a0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 160[rbp] /* [rip + .LCPI11_10] */ + LONG $0xc76f0f66 // movdqa xmm0, xmm7 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x7c6e0f66; WORD $0x1824 // movd xmm7, dword [rsp + 24] + LONG $0x44b70f42; WORD $0x1a32 // movzx eax, word [rdx + r14 + 26] + LONG $0x650f4566; BYTE $0xc3 // pcmpgtw xmm8, xmm11 + LONG $0x630f4566; BYTE $0xc0 // packsswb xmm8, xmm8 + LONG $0xeb0f4466; BYTE $0xe6 // por xmm12, xmm6 + QUAD $0x0000b0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 176[rbp] /* [rip + .LCPI11_11] */ + LONG $0x6f0f4166; BYTE $0xc0 // movdqa xmm0, xmm8 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xf2 // movd xmm6, r10d + LONG $0x54b70f46; WORD $0x1c32 // movzx r10d, word [rdx + r14 + 28] + LONG $0x64c40f66; WORD $0x0a0a; BYTE $0x01 // pinsrw xmm4, word [rdx + rcx + 10], 1 + LONG $0x64c40f66; WORD $0x0a3a; BYTE $0x02 // pinsrw xmm4, word [rdx + rdi + 10], 2 + QUAD $0x030a3a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 10], 3 + QUAD $0x040a2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 10], 4 + QUAD $0x050a2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 10], 5 + LONG $0x64c40f66; WORD $0x0a1a; BYTE $0x06 // pinsrw xmm4, word [rdx + rbx + 10], 6 + QUAD $0x070a0a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 10], 7 + LONG $0x650f4166; BYTE $0xe3 // pcmpgtw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0x54c40f66; WORD $0x0c0a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 12], 1 + LONG $0x54c40f66; WORD $0x0c3a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 12], 2 + QUAD $0x030c3a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 12], 3 + QUAD $0x040c2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 12], 4 + QUAD $0x050c2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 12], 5 + LONG $0x54c40f66; WORD $0x0c1a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 12], 6 + LONG $0xeb0f4466; BYTE $0xe3 // por xmm12, xmm3 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI11_12] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x74b70f42; WORD $0x1e32 // movzx esi, word [rdx + r14 + 30] + LONG $0x28247489 // mov dword [rsp + 40], esi + QUAD $0x070c0a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 12], 7 + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x0000d0ad6f0f4466; BYTE $0x00 // movdqa xmm13, oword 208[rbp] /* [rip + .LCPI11_13] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x0824 // movd xmm3, dword [rsp + 8] + LONG $0x74b70f42; WORD $0x2032 // movzx esi, word [rdx + r14 + 32] + LONG $0x18247489 // mov dword [rsp + 24], esi + LONG $0x4cc40f66; WORD $0x0e0a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 14], 1 + LONG $0x4cc40f66; WORD $0x0e3a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 14], 2 + QUAD $0x030e3a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 14], 3 + QUAD $0x040e224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 14], 4 + QUAD $0x050e2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 14], 5 + LONG $0x4cc40f66; WORD $0x0e1a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 14], 6 + LONG $0xeb0f4466; BYTE $0xed // por xmm13, xmm5 + LONG $0x6e0f4166; BYTE $0xd0 // movd xmm2, r8d + LONG $0x74b70f42; WORD $0x2232 // movzx esi, word [rdx + r14 + 34] + LONG $0x08247489 // mov dword [rsp + 8], esi + QUAD $0x070e0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 14], 7 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0x74c40f66; WORD $0x120a; BYTE $0x01 // pinsrw xmm6, word [rdx + rcx + 18], 1 + LONG $0x74c40f66; WORD $0x123a; BYTE $0x02 // pinsrw xmm6, word [rdx + rdi + 18], 2 + QUAD $0x03123a74c40f4266 // pinsrw xmm6, word [rdx + r15 + 18], 3 + QUAD $0x04122274c40f4266 // pinsrw xmm6, word [rdx + r12 + 18], 4 + QUAD $0x05122a74c40f4266 // pinsrw xmm6, word [rdx + r13 + 18], 5 + LONG $0x74c40f66; WORD $0x121a; BYTE $0x06 // pinsrw xmm6, word [rdx + rbx + 18], 6 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + QUAD $0x07120a74c40f4266 // pinsrw xmm6, word [rdx + r9 + 18], 7 + LONG $0x650f4166; BYTE $0xf3 // pcmpgtw xmm6, xmm11 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xeb0f4566; BYTE $0xec // por xmm13, xmm12 + QUAD $0x0000e0a56f0f4466; BYTE $0x00 // movdqa xmm12, oword 224[rbp] /* [rip + .LCPI11_14] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4566; WORD $0xe710 // pblendvb xmm12, xmm15, xmm0 + LONG $0x6f0f4566; BYTE $0xc1 // movdqa xmm8, xmm9 + LONG $0xc66f0f66 // movdqa xmm0, xmm6 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x5cb70f46; WORD $0x2432 // movzx r11d, word [rdx + r14 + 36] + LONG $0x7cc40f66; WORD $0x100a; BYTE $0x01 // pinsrw xmm7, word [rdx + rcx + 16], 1 + LONG $0x7cc40f66; WORD $0x103a; BYTE $0x02 // pinsrw xmm7, word [rdx + rdi + 16], 2 + QUAD $0x03103a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 16], 3 + QUAD $0x0410227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 16], 4 + QUAD $0x05102a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 16], 5 + LONG $0x7cc40f66; WORD $0x101a; BYTE $0x06 // pinsrw xmm7, word [rdx + rbx + 16], 6 + LONG $0x64c40f66; WORD $0x140a; BYTE $0x01 // pinsrw xmm4, word [rdx + rcx + 20], 1 + LONG $0x64c40f66; WORD $0x143a; BYTE $0x02 // pinsrw xmm4, word [rdx + rdi + 20], 2 + QUAD $0x03143a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 20], 3 + QUAD $0x04142264c40f4266 // pinsrw xmm4, word [rdx + r12 + 20], 4 + QUAD $0x05142a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 20], 5 + LONG $0x64c40f66; WORD $0x141a; BYTE $0x06 // pinsrw xmm4, word [rdx + rbx + 20], 6 + QUAD $0x07140a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 20], 7 + LONG $0x650f4166; BYTE $0xe3 // pcmpgtw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4566; BYTE $0xe5 // por xmm12, xmm13 + LONG $0x6f0f4166; BYTE $0xee // movdqa xmm5, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe2 // movd xmm4, r10d + LONG $0x74b70f42; WORD $0x2632 // movzx esi, word [rdx + r14 + 38] + QUAD $0x07100a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 16], 7 + LONG $0x650f4166; BYTE $0xfb // pcmpgtw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI11_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x5cc40f66; WORD $0x160a; BYTE $0x01 // pinsrw xmm3, word [rdx + rcx + 22], 1 + LONG $0x5cc40f66; WORD $0x163a; BYTE $0x02 // pinsrw xmm3, word [rdx + rdi + 22], 2 + QUAD $0x03163a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 22], 3 + QUAD $0x0416225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 22], 4 + QUAD $0x05162a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 22], 5 + LONG $0x5cc40f66; WORD $0x161a; BYTE $0x06 // pinsrw xmm3, word [rdx + rbx + 22], 6 + QUAD $0x07160a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 22], 7 + LONG $0x650f4166; BYTE $0xdb // pcmpgtw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x54c40f66; WORD $0x180a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 24], 1 + LONG $0x54c40f66; WORD $0x183a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 24], 2 + QUAD $0x03183a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 24], 3 + QUAD $0x04182254c40f4266 // pinsrw xmm2, word [rdx + r12 + 24], 4 + QUAD $0x05182a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 24], 5 + LONG $0x54c40f66; WORD $0x181a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 24], 6 + QUAD $0x07180a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 24], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + QUAD $0x0000a0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 160[rbp] /* [rip + .LCPI11_10] */ + LONG $0x6f0f4566; BYTE $0xf2 // movdqa xmm14, xmm10 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0x5c6e0f66; WORD $0x2824 // movd xmm3, dword [rsp + 40] + LONG $0x44b70f42; WORD $0x2832 // movzx eax, word [rdx + r14 + 40] + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4466; BYTE $0xf5 // por xmm14, xmm5 + QUAD $0x0000b08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 176[rbp] /* [rip + .LCPI11_11] */ + LONG $0x6f0f4566; BYTE $0xe9 // movdqa xmm13, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + LONG $0x7c6e0f66; WORD $0x1824 // movd xmm7, dword [rsp + 24] + LONG $0x54b70f46; WORD $0x2a32 // movzx r10d, word [rdx + r14 + 42] + LONG $0x4cc40f66; WORD $0x1a0a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 26], 1 + LONG $0x4cc40f66; WORD $0x1a3a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 26], 2 + QUAD $0x031a3a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 26], 3 + QUAD $0x041a224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 26], 4 + QUAD $0x051a2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 26], 5 + LONG $0x4cc40f66; WORD $0x1a1a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 26], 6 + QUAD $0x071a0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 26], 7 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x64c40f66; WORD $0x1c0a; BYTE $0x01 // pinsrw xmm4, word [rdx + rcx + 28], 1 + LONG $0x64c40f66; WORD $0x1c3a; BYTE $0x02 // pinsrw xmm4, word [rdx + rdi + 28], 2 + QUAD $0x031c3a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 28], 3 + QUAD $0x041c2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 28], 4 + QUAD $0x051c2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 28], 5 + LONG $0x64c40f66; WORD $0x1c1a; BYTE $0x06 // pinsrw xmm4, word [rdx + rbx + 28], 6 + LONG $0xeb0f4566; BYTE $0xf0 // por xmm14, xmm8 + QUAD $0x000000c0ad6f0f66 // movdqa xmm5, oword 192[rbp] /* [rip + .LCPI11_12] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x546e0f66; WORD $0x0824 // movd xmm2, dword [rsp + 8] + LONG $0x44b70f46; WORD $0x2c32 // movzx r8d, word [rdx + r14 + 44] + QUAD $0x071c0a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 28], 7 + LONG $0x650f4166; BYTE $0xe3 // pcmpgtw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4166; BYTE $0xed // por xmm5, xmm13 + QUAD $0x000000d0b56f0f66 // movdqa xmm6, oword 208[rbp] /* [rip + .LCPI11_13] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x5cb70f46; WORD $0x2e32 // movzx r11d, word [rdx + r14 + 46] + LONG $0x5cc40f66; WORD $0x1e0a; BYTE $0x01 // pinsrw xmm3, word [rdx + rcx + 30], 1 + LONG $0x5cc40f66; WORD $0x1e3a; BYTE $0x02 // pinsrw xmm3, word [rdx + rdi + 30], 2 + QUAD $0x031e3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 30], 3 + QUAD $0x041e225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 30], 4 + QUAD $0x051e2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 30], 5 + LONG $0x5cc40f66; WORD $0x1e1a; BYTE $0x06 // pinsrw xmm3, word [rdx + rbx + 30], 6 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x74b70f42; WORD $0x3032 // movzx esi, word [rdx + r14 + 48] + LONG $0x08247489 // mov dword [rsp + 8], esi + QUAD $0x071e0a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 30], 7 + LONG $0x650f4166; BYTE $0xdb // pcmpgtw xmm3, xmm11 + LONG $0x54c40f66; WORD $0x220a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 34], 1 + LONG $0x54c40f66; WORD $0x223a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 34], 2 + QUAD $0x03223a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 34], 3 + QUAD $0x04222254c40f4266 // pinsrw xmm2, word [rdx + r12 + 34], 4 + QUAD $0x05222a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 34], 5 + LONG $0x54c40f66; WORD $0x221a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 34], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07220a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 34], 7 + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeb0f4166; BYTE $0xf6 // por xmm6, xmm14 + QUAD $0x0000e0b56f0f4466; BYTE $0x00 // movdqa xmm14, oword 224[rbp] /* [rip + .LCPI11_14] */ + LONG $0x6f0f4566; BYTE $0xee // movdqa xmm13, xmm14 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xef10 // pblendvb xmm13, xmm15, xmm0 + QUAD $0x000080856f0f4466; BYTE $0x00 // movdqa xmm8, oword 128[rbp] /* [rip + .LCPI11_8] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0xd06e0f66 // movd xmm2, eax + LONG $0x74b70f42; WORD $0x3232 // movzx esi, word [rdx + r14 + 50] + LONG $0x7cc40f66; WORD $0x200a; BYTE $0x01 // pinsrw xmm7, word [rdx + rcx + 32], 1 + LONG $0x7cc40f66; WORD $0x203a; BYTE $0x02 // pinsrw xmm7, word [rdx + rdi + 32], 2 + QUAD $0x03203a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 32], 3 + QUAD $0x0420227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 32], 4 + QUAD $0x05202a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 32], 5 + LONG $0x7cc40f66; WORD $0x201a; BYTE $0x06 // pinsrw xmm7, word [rdx + rbx + 32], 6 + LONG $0x64c40f66; WORD $0x240a; BYTE $0x01 // pinsrw xmm4, word [rdx + rcx + 36], 1 + LONG $0x64c40f66; WORD $0x243a; BYTE $0x02 // pinsrw xmm4, word [rdx + rdi + 36], 2 + QUAD $0x03243a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 36], 3 + QUAD $0x04242264c40f4266 // pinsrw xmm4, word [rdx + r12 + 36], 4 + QUAD $0x05242a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 36], 5 + LONG $0x64c40f66; WORD $0x241a; BYTE $0x06 // pinsrw xmm4, word [rdx + rbx + 36], 6 + QUAD $0x07240a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 36], 7 + LONG $0x650f4166; BYTE $0xe3 // pcmpgtw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xeb0f4466; BYTE $0xee // por xmm13, xmm6 + QUAD $0x00000090b56f0f66 // movdqa xmm6, oword 144[rbp] /* [rip + .LCPI11_9] */ + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xda // movd xmm3, r10d + LONG $0x54b70f46; WORD $0x3432 // movzx r10d, word [rdx + r14 + 52] + QUAD $0x07200a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 32], 7 + LONG $0x650f4166; BYTE $0xfb // pcmpgtw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI11_22] */ + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x4cc40f66; WORD $0x260a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 38], 1 + LONG $0x4cc40f66; WORD $0x263a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 38], 2 + QUAD $0x03263a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 38], 3 + QUAD $0x0426224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 38], 4 + QUAD $0x05262a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 38], 5 + LONG $0x4cc40f66; WORD $0x261a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 38], 6 + QUAD $0x07260a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 38], 7 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x54c40f66; WORD $0x280a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 40], 1 + LONG $0x54c40f66; WORD $0x283a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 40], 2 + QUAD $0x03283a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 40], 3 + QUAD $0x04282254c40f4266 // pinsrw xmm2, word [rdx + r12 + 40], 4 + QUAD $0x05282a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 40], 5 + LONG $0x54c40f66; WORD $0x281a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 40], 6 + QUAD $0x07280a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 40], 7 + LONG $0xf80f4466; BYTE $0xc7 // psubb xmm8, xmm7 + LONG $0x6f0f4166; BYTE $0xea // movdqa xmm5, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xc8 // movd xmm1, r8d + LONG $0x44b70f46; WORD $0x3632 // movzx r8d, word [rdx + r14 + 54] + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x6f0f4166; BYTE $0xf1 // movdqa xmm6, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xe3 // movd xmm4, r11d + LONG $0x44b70f42; WORD $0x3832 // movzx eax, word [rdx + r14 + 56] + LONG $0x5cc40f66; WORD $0x2a0a; BYTE $0x01 // pinsrw xmm3, word [rdx + rcx + 42], 1 + LONG $0x5cc40f66; WORD $0x2a3a; BYTE $0x02 // pinsrw xmm3, word [rdx + rdi + 42], 2 + QUAD $0x032a3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 42], 3 + QUAD $0x042a225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 42], 4 + QUAD $0x052a2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 42], 5 + LONG $0x5cc40f66; WORD $0x2a1a; BYTE $0x06 // pinsrw xmm3, word [rdx + rbx + 42], 6 + QUAD $0x072a0a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 42], 7 + LONG $0x650f4166; BYTE $0xdb // pcmpgtw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0x4cc40f66; WORD $0x2c0a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 44], 1 + LONG $0x4cc40f66; WORD $0x2c3a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 44], 2 + QUAD $0x032c3a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 44], 3 + QUAD $0x042c224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 44], 4 + QUAD $0x052c2a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 44], 5 + LONG $0x4cc40f66; WORD $0x2c1a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 44], 6 + LONG $0xeb0f4166; BYTE $0xe8 // por xmm5, xmm8 + QUAD $0x0000c08d6f0f4466; BYTE $0x00 // movdqa xmm9, oword 192[rbp] /* [rip + .LCPI11_12] */ + LONG $0x6f0f4166; BYTE $0xd1 // movdqa xmm2, xmm9 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xd710 // pblendvb xmm2, xmm15, xmm0 + LONG $0x7c6e0f66; WORD $0x0824 // movd xmm7, dword [rsp + 8] + LONG $0x5cb70f46; WORD $0x3a32 // movzx r11d, word [rdx + r14 + 58] + QUAD $0x072c0a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 44], 7 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0x0000d0956f0f4466; BYTE $0x00 // movdqa xmm10, oword 208[rbp] /* [rip + .LCPI11_13] */ + LONG $0x6f0f4166; BYTE $0xf2 // movdqa xmm6, xmm10 + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0xce6e0f66 // movd xmm1, esi + LONG $0x74b70f42; WORD $0x3c32 // movzx esi, word [rdx + r14 + 60] + LONG $0xf2eb0f66 // por xmm6, xmm2 + LONG $0x6e0f4166; BYTE $0xd2 // movd xmm2, r10d + LONG $0x64c40f66; WORD $0x2e0a; BYTE $0x01 // pinsrw xmm4, word [rdx + rcx + 46], 1 + LONG $0x64c40f66; WORD $0x2e3a; BYTE $0x02 // pinsrw xmm4, word [rdx + rdi + 46], 2 + QUAD $0x032e3a64c40f4266 // pinsrw xmm4, word [rdx + r15 + 46], 3 + QUAD $0x042e2264c40f4266 // pinsrw xmm4, word [rdx + r12 + 46], 4 + QUAD $0x052e2a64c40f4266 // pinsrw xmm4, word [rdx + r13 + 46], 5 + LONG $0x64c40f66; WORD $0x2e1a; BYTE $0x06 // pinsrw xmm4, word [rdx + rbx + 46], 6 + QUAD $0x072e0a64c40f4266 // pinsrw xmm4, word [rdx + r9 + 46], 7 + LONG $0x650f4166; BYTE $0xe3 // pcmpgtw xmm4, xmm11 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0x6f0f4566; BYTE $0xc6 // movdqa xmm8, xmm14 + LONG $0xc46f0f66 // movdqa xmm0, xmm4 + LONG $0x380f4566; WORD $0xc710 // pblendvb xmm8, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xd8 // movd xmm3, r8d + LONG $0x4cc40f66; WORD $0x320a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 50], 1 + LONG $0x4cc40f66; WORD $0x323a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 50], 2 + QUAD $0x03323a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 50], 3 + QUAD $0x0432224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 50], 4 + QUAD $0x05322a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 50], 5 + LONG $0x4cc40f66; WORD $0x321a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 50], 6 + QUAD $0x07320a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 50], 7 + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0xeb0f4466; BYTE $0xc6 // por xmm8, xmm6 + QUAD $0x00000080a56f0f66 // movdqa xmm4, oword 128[rbp] /* [rip + .LCPI11_8] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0xc86e0f66 // movd xmm1, eax + LONG $0x7cc40f66; WORD $0x300a; BYTE $0x01 // pinsrw xmm7, word [rdx + rcx + 48], 1 + LONG $0x7cc40f66; WORD $0x303a; BYTE $0x02 // pinsrw xmm7, word [rdx + rdi + 48], 2 + QUAD $0x03303a7cc40f4266 // pinsrw xmm7, word [rdx + r15 + 48], 3 + QUAD $0x0430227cc40f4266 // pinsrw xmm7, word [rdx + r12 + 48], 4 + QUAD $0x05302a7cc40f4266 // pinsrw xmm7, word [rdx + r13 + 48], 5 + LONG $0x7cc40f66; WORD $0x301a; BYTE $0x06 // pinsrw xmm7, word [rdx + rbx + 48], 6 + QUAD $0x07300a7cc40f4266 // pinsrw xmm7, word [rdx + r9 + 48], 7 + LONG $0x650f4166; BYTE $0xfb // pcmpgtw xmm7, xmm11 + QUAD $0x00000160bdef0f66 // pxor xmm7, oword 352[rbp] /* [rip + .LCPI11_22] */ + LONG $0x54c40f66; WORD $0x340a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 52], 1 + LONG $0x54c40f66; WORD $0x343a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 52], 2 + QUAD $0x03343a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 52], 3 + QUAD $0x04342254c40f4266 // pinsrw xmm2, word [rdx + r12 + 52], 4 + QUAD $0x05342a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 52], 5 + LONG $0x54c40f66; WORD $0x341a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 52], 6 + LONG $0xff630f66 // packsswb xmm7, xmm7 + QUAD $0x07340a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 52], 7 + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0x5cc40f66; WORD $0x360a; BYTE $0x01 // pinsrw xmm3, word [rdx + rcx + 54], 1 + LONG $0x5cc40f66; WORD $0x363a; BYTE $0x02 // pinsrw xmm3, word [rdx + rdi + 54], 2 + QUAD $0x03363a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 54], 3 + QUAD $0x0436225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 54], 4 + QUAD $0x05362a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 54], 5 + LONG $0x5cc40f66; WORD $0x361a; BYTE $0x06 // pinsrw xmm3, word [rdx + rbx + 54], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x07360a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 54], 7 + LONG $0x650f4166; BYTE $0xdb // pcmpgtw xmm3, xmm11 + LONG $0x4cc40f66; WORD $0x380a; BYTE $0x01 // pinsrw xmm1, word [rdx + rcx + 56], 1 + LONG $0x4cc40f66; WORD $0x383a; BYTE $0x02 // pinsrw xmm1, word [rdx + rdi + 56], 2 + QUAD $0x03383a4cc40f4266 // pinsrw xmm1, word [rdx + r15 + 56], 3 + QUAD $0x0438224cc40f4266 // pinsrw xmm1, word [rdx + r12 + 56], 4 + QUAD $0x05382a4cc40f4266 // pinsrw xmm1, word [rdx + r13 + 56], 5 + LONG $0x4cc40f66; WORD $0x381a; BYTE $0x06 // pinsrw xmm1, word [rdx + rbx + 56], 6 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + QUAD $0x07380a4cc40f4266 // pinsrw xmm1, word [rdx + r9 + 56], 7 + LONG $0xe7f80f66 // psubb xmm4, xmm7 + QUAD $0x00000090ad6f0f66 // movdqa xmm5, oword 144[rbp] /* [rip + .LCPI11_9] */ + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xef10 // pblendvb xmm5, xmm15, xmm0 + QUAD $0x000000a0b56f0f66 // movdqa xmm6, oword 160[rbp] /* [rip + .LCPI11_10] */ + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4166; WORD $0xf710 // pblendvb xmm6, xmm15, xmm0 + LONG $0x6e0f4166; BYTE $0xd3 // movd xmm2, r11d + LONG $0x650f4166; BYTE $0xcb // pcmpgtw xmm1, xmm11 + LONG $0x54c40f66; WORD $0x3a0a; BYTE $0x01 // pinsrw xmm2, word [rdx + rcx + 58], 1 + LONG $0x54c40f66; WORD $0x3a3a; BYTE $0x02 // pinsrw xmm2, word [rdx + rdi + 58], 2 + QUAD $0x033a3a54c40f4266 // pinsrw xmm2, word [rdx + r15 + 58], 3 + QUAD $0x043a2254c40f4266 // pinsrw xmm2, word [rdx + r12 + 58], 4 + QUAD $0x053a2a54c40f4266 // pinsrw xmm2, word [rdx + r13 + 58], 5 + LONG $0x54c40f66; WORD $0x3a1a; BYTE $0x06 // pinsrw xmm2, word [rdx + rbx + 58], 6 + QUAD $0x073a0a54c40f4266 // pinsrw xmm2, word [rdx + r9 + 58], 7 + LONG $0xc9630f66 // packsswb xmm1, xmm1 + LONG $0x650f4166; BYTE $0xd3 // pcmpgtw xmm2, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + LONG $0xde6e0f66 // movd xmm3, esi + LONG $0x5cc40f66; WORD $0x3c0a; BYTE $0x01 // pinsrw xmm3, word [rdx + rcx + 60], 1 + LONG $0x5cc40f66; WORD $0x3c3a; BYTE $0x02 // pinsrw xmm3, word [rdx + rdi + 60], 2 + QUAD $0x033c3a5cc40f4266 // pinsrw xmm3, word [rdx + r15 + 60], 3 + QUAD $0x043c225cc40f4266 // pinsrw xmm3, word [rdx + r12 + 60], 4 + QUAD $0x053c2a5cc40f4266 // pinsrw xmm3, word [rdx + r13 + 60], 5 + LONG $0x5cc40f66; WORD $0x3c1a; BYTE $0x06 // pinsrw xmm3, word [rdx + rbx + 60], 6 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + QUAD $0x073c0a5cc40f4266 // pinsrw xmm3, word [rdx + r9 + 60], 7 + LONG $0x650f4166; BYTE $0xdb // pcmpgtw xmm3, xmm11 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf4eb0f66 // por xmm6, xmm4 + QUAD $0x000000b0a56f0f66 // movdqa xmm4, oword 176[rbp] /* [rip + .LCPI11_11] */ + LONG $0xc16f0f66 // movdqa xmm0, xmm1 + LONG $0x380f4166; WORD $0xe710 // pblendvb xmm4, xmm15, xmm0 + LONG $0x6f0f4166; BYTE $0xc9 // movdqa xmm1, xmm9 + LONG $0xc26f0f66 // movdqa xmm0, xmm2 + LONG $0x380f4166; WORD $0xcf10 // pblendvb xmm1, xmm15, xmm0 + LONG $0xc36f0f66 // movdqa xmm0, xmm3 + LONG $0x380f4566; WORD $0xd710 // pblendvb xmm10, xmm15, xmm0 + LONG $0xcceb0f66 // por xmm1, xmm4 + LONG $0x44b70f42; WORD $0x3e32 // movzx eax, word [rdx + r14 + 62] + LONG $0xeb0f4466; BYTE $0xd1 // por xmm10, xmm1 + LONG $0xc06e0f66 // movd xmm0, eax + LONG $0x44c40f66; WORD $0x3e0a; BYTE $0x01 // pinsrw xmm0, word [rdx + rcx + 62], 1 + LONG $0x44c40f66; WORD $0x3e3a; BYTE $0x02 // pinsrw xmm0, word [rdx + rdi + 62], 2 + QUAD $0x033e3a44c40f4266 // pinsrw xmm0, word [rdx + r15 + 62], 3 + LONG $0x247c8b4c; BYTE $0x78 // mov r15, qword [rsp + 120] + QUAD $0x043e2244c40f4266 // pinsrw xmm0, word [rdx + r12 + 62], 4 + QUAD $0x053e2a44c40f4266 // pinsrw xmm0, word [rdx + r13 + 62], 5 + LONG $0x44c40f66; WORD $0x3e1a; BYTE $0x06 // pinsrw xmm0, word [rdx + rbx + 62], 6 + QUAD $0x073e0a44c40f4266 // pinsrw xmm0, word [rdx + r9 + 62], 7 + LONG $0x650f4166; BYTE $0xc3 // pcmpgtw xmm0, xmm11 + LONG $0xc0630f66 // packsswb xmm0, xmm0 + LONG $0xeb0f4466; BYTE $0xd6 // por xmm10, xmm6 + LONG $0x380f4566; WORD $0xf710 // pblendvb xmm14, xmm15, xmm0 + LONG $0xeb0f4566; BYTE $0xf2 // por xmm14, xmm10 + LONG $0x6f0f4166; BYTE $0xc4 // movdqa xmm0, xmm12 + LONG $0x6c0f4166; BYTE $0xc5 // punpcklqdq xmm0, xmm13 + LONG $0x6f0f4166; BYTE $0xd0 // movdqa xmm2, xmm8 + LONG $0x6c0f4166; BYTE $0xd6 // punpcklqdq xmm2, xmm14 + QUAD $0x000000f09d6f0f66 // movdqa xmm3, oword 240[rbp] /* [rip + .LCPI11_15] */ + LONG $0x00380f66; BYTE $0xd3 // pshufb xmm2, xmm3 + LONG $0x00380f66; BYTE $0xc3 // pshufb xmm0, xmm3 + LONG $0xc2610f66 // punpcklwd xmm0, xmm2 + LONG $0x600f4566; BYTE $0xc6 // punpcklbw xmm8, xmm14 + LONG $0x600f4566; BYTE $0xe5 // punpcklbw xmm12, xmm13 + LONG $0x610f4566; BYTE $0xe0 // punpcklwd xmm12, xmm8 + LONG $0x244c8b48; BYTE $0x10 // mov rcx, qword [rsp + 16] + LONG $0x7f0f45f3; WORD $0x8f24 // movdqu oword [r15 + 4*rcx], xmm12 + LONG $0x7f0f41f3; WORD $0x8f44; BYTE $0x10 // movdqu oword [r15 + 4*rcx + 16], xmm0 + LONG $0x08c18348 // add rcx, 8 + WORD $0x8949; BYTE $0xce // mov r14, rcx + LONG $0x244c3b48; BYTE $0x20 // cmp rcx, qword [rsp + 32] + JNE LBB11_125 + QUAD $0x0000010024948b4c // mov r10, qword [rsp + 256] + LONG $0x24543b4c; BYTE $0x20 // cmp r10, qword [rsp + 32] + QUAD $0x00000088249c8b4c // mov r11, qword [rsp + 136] + LONG $0x24348b44 // mov r14d, dword [rsp] + LONG $0x24648b4c; BYTE $0x38 // mov r12, qword [rsp + 56] + LONG $0x24448b48; BYTE $0x30 // mov rax, qword [rsp + 48] + JNE LBB11_127 + JMP LBB11_130 + +LBB11_182: + WORD $0x894d; BYTE $0xd0 // mov r8, r10 + LONG $0xfce08349 // and r8, -4 + WORD $0x894c; BYTE $0xc3 // mov rbx, r8 + LONG $0x07e3c148 // shl rbx, 7 + WORD $0x0148; BYTE $0xd3 // add rbx, rdx + LONG $0x87348d4f // lea r14, [r15 + 4*r8] + WORD $0x280f; BYTE $0xc8 // movaps xmm1, xmm0 + LONG $0x00c8c60f // shufps xmm1, xmm0, 0 + LONG $0xfcc28148; WORD $0x0001; BYTE $0x00 // add rdx, 508 + WORD $0xc931 // xor ecx, ecx + LONG $0x6f0f4466; WORD $0x007d // movdqa xmm15, oword 0[rbp] /* [rip + .LCPI11_0] */ + LONG $0x6f0f4466; WORD $0x1045 // movdqa xmm8, oword 16[rbp] /* [rip + .LCPI11_1] */ + LONG $0x6f0f4466; WORD $0x2055 // movdqa xmm10, oword 32[rbp] /* [rip + .LCPI11_2] */ + LONG $0x6f0f4466; WORD $0x305d // movdqa xmm11, oword 48[rbp] /* [rip + .LCPI11_3] */ + LONG $0x6f0f4466; WORD $0x4065 // movdqa xmm12, oword 64[rbp] /* [rip + .LCPI11_4] */ + LONG $0x6f0f4466; WORD $0x506d // movdqa xmm13, oword 80[rbp] /* [rip + .LCPI11_5] */ + LONG $0x6f0f4466; WORD $0x6075 // movdqa xmm14, oword 96[rbp] /* [rip + .LCPI11_6] */ + LONG $0x6f0f4466; WORD $0x704d // movdqa xmm9, oword 112[rbp] /* [rip + .LCPI11_7] */ + +LBB11_183: + QUAD $0xfffffe04b2100ff3 // movss xmm6, dword [rdx - 508] + QUAD $0xfffffe08ba100ff3 // movss xmm7, dword [rdx - 504] + QUAD $0xfffffe0caa100ff3 // movss xmm5, dword [rdx - 500] + QUAD $0xfffffe10a2100ff3 // movss xmm4, dword [rdx - 496] + QUAD $0xfffe84b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 380], 16 + QUAD $0xffff04b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 252], 32 + LONG $0x213a0f66; WORD $0x8472; BYTE $0x30 // insertps xmm6, dword [rdx - 124], 48 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + QUAD $0xfffe88ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 376], 16 + QUAD $0xffff08ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 248], 32 + LONG $0x213a0f66; WORD $0x887a; BYTE $0x30 // insertps xmm7, dword [rdx - 120], 48 + QUAD $0xfffe8caa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 372], 16 + QUAD $0xffff0caa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 244], 32 + LONG $0x213a0f66; WORD $0x8c6a; BYTE $0x30 // insertps xmm5, dword [rdx - 116], 48 + QUAD $0xfffe90a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 368], 16 + QUAD $0xffff10a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 240], 32 + LONG $0x213a0f66; WORD $0x9062; BYTE $0x30 // insertps xmm4, dword [rdx - 112], 48 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xd76f0f66 // movdqa xmm2, xmm7 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xd7f80f66 // psubb xmm2, xmm7 + QUAD $0xfffffe14ba100ff3 // movss xmm7, dword [rdx - 492] + QUAD $0xfffe94ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 364], 16 + QUAD $0xffff14ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 236], 32 + LONG $0x213a0f66; WORD $0x947a; BYTE $0x30 // insertps xmm7, dword [rdx - 108], 48 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe18b2100ff3 // movss xmm6, dword [rdx - 488] + QUAD $0xfffe98b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 360], 16 + QUAD $0xffff18b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 232], 32 + LONG $0x213a0f66; WORD $0x9872; BYTE $0x30 // insertps xmm6, dword [rdx - 104], 48 + LONG $0x02e9c20f // cmpleps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x02 // psllw xmm5, 2 + LONG $0xdb0f4166; BYTE $0xe8 // pand xmm5, xmm8 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe1c9a100ff3 // movss xmm3, dword [rdx - 484] + QUAD $0xfffe9c9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 356], 16 + QUAD $0xffff1c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 228], 32 + LONG $0x213a0f66; WORD $0x9c5a; BYTE $0x30 // insertps xmm3, dword [rdx - 100], 48 + LONG $0x02e1c20f // cmpleps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xdb0f4166; BYTE $0xe7 // pand xmm4, xmm15 + LONG $0xf4710f66; BYTE $0x03 // psllw xmm4, 3 + LONG $0xdb0f4166; BYTE $0xe2 // pand xmm4, xmm10 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x04 // psllw xmm7, 4 + LONG $0xdb0f4166; BYTE $0xfb // pand xmm7, xmm11 + LONG $0xfceb0f66 // por xmm7, xmm4 + QUAD $0xfffffe20a2100ff3 // movss xmm4, dword [rdx - 480] + QUAD $0xfffea0a2213a0f66; WORD $0x10ff // insertps xmm4, dword [rdx - 352], 16 + QUAD $0xffff20a2213a0f66; WORD $0x20ff // insertps xmm4, dword [rdx - 224], 32 + LONG $0x213a0f66; WORD $0xa062; BYTE $0x30 // insertps xmm4, dword [rdx - 96], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe24aa100ff3 // movss xmm5, dword [rdx - 476] + QUAD $0xfffea4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 348], 16 + QUAD $0xffff24aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 220], 32 + LONG $0x213a0f66; WORD $0xa46a; BYTE $0x30 // insertps xmm5, dword [rdx - 92], 48 + LONG $0x02e9c20f // cmpleps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x02d9c20f // cmpleps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x06 // psllw xmm3, 6 + LONG $0xdb0f4166; BYTE $0xdd // pand xmm3, xmm13 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe2892100ff3 // movss xmm2, dword [rdx - 472] + QUAD $0xfffea892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 344], 16 + QUAD $0xffff2892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 216], 32 + LONG $0x213a0f66; WORD $0xa852; BYTE $0x30 // insertps xmm2, dword [rdx - 88], 48 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0x02e1c20f // cmpleps xmm4, xmm1 + LONG $0xe46b0f66 // packssdw xmm4, xmm4 + LONG $0xe4630f66 // packsswb xmm4, xmm4 + LONG $0xf4710f66; BYTE $0x07 // psllw xmm4, 7 + LONG $0xdb0f4166; BYTE $0xe6 // pand xmm4, xmm14 + LONG $0xe3eb0f66 // por xmm4, xmm3 + QUAD $0xfffffe2c9a100ff3 // movss xmm3, dword [rdx - 468] + QUAD $0xfffeac9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 340], 16 + QUAD $0xffff2c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 212], 32 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0x213a0f66; WORD $0xac5a; BYTE $0x30 // insertps xmm3, dword [rdx - 84], 48 + LONG $0xe7eb0f66 // por xmm4, xmm7 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe30ba100ff3 // movss xmm7, dword [rdx - 464] + QUAD $0xfffeb0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 336], 16 + QUAD $0xffff30ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 208], 32 + LONG $0x213a0f66; WORD $0xb07a; BYTE $0x30 // insertps xmm7, dword [rdx - 80], 48 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe34aa100ff3 // movss xmm5, dword [rdx - 460] + QUAD $0xfffeb4aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 332], 16 + QUAD $0xffff34aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 204], 32 + LONG $0x213a0f66; WORD $0xb46a; BYTE $0x30 // insertps xmm5, dword [rdx - 76], 48 + LONG $0x02d9c20f // cmpleps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe38b2100ff3 // movss xmm6, dword [rdx - 456] + QUAD $0xfffeb8b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 328], 16 + QUAD $0xffff38b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 200], 32 + LONG $0x213a0f66; WORD $0xb872; BYTE $0x30 // insertps xmm6, dword [rdx - 72], 48 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x03 // psllw xmm7, 3 + LONG $0xdb0f4166; BYTE $0xfa // pand xmm7, xmm10 + LONG $0x02e9c20f // cmpleps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x04 // psllw xmm5, 4 + LONG $0xdb0f4166; BYTE $0xeb // pand xmm5, xmm11 + LONG $0xefeb0f66 // por xmm5, xmm7 + QUAD $0xfffffe3c92100ff3 // movss xmm2, dword [rdx - 452] + QUAD $0xfffebc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 324], 16 + QUAD $0xffff3c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 196], 32 + LONG $0x213a0f66; WORD $0xbc52; BYTE $0x30 // insertps xmm2, dword [rdx - 68], 48 + LONG $0xebeb0f66 // por xmm5, xmm3 + QUAD $0xfffffe40ba100ff3 // movss xmm7, dword [rdx - 448] + QUAD $0xfffec0ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 320], 16 + QUAD $0xffff40ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 192], 32 + LONG $0x213a0f66; WORD $0xc07a; BYTE $0x30 // insertps xmm7, dword [rdx - 64], 48 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x05 // psllw xmm6, 5 + LONG $0xdb0f4166; BYTE $0xf4 // pand xmm6, xmm12 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd6eb0f66 // por xmm2, xmm6 + QUAD $0xfffffe44b2100ff3 // movss xmm6, dword [rdx - 444] + QUAD $0xfffec4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 316], 16 + QUAD $0xffff44b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 188], 32 + LONG $0x213a0f66; WORD $0xc472; BYTE $0x30 // insertps xmm6, dword [rdx - 60], 48 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xf7710f66; BYTE $0x07 // psllw xmm7, 7 + LONG $0xdb0f4166; BYTE $0xfe // pand xmm7, xmm14 + LONG $0xfaeb0f66 // por xmm7, xmm2 + QUAD $0xfffffe4892100ff3 // movss xmm2, dword [rdx - 440] + QUAD $0xfffec892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 312], 16 + QUAD $0xffff4892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 184], 32 + LONG $0x213a0f66; WORD $0xc852; BYTE $0x30 // insertps xmm2, dword [rdx - 56], 48 + LONG $0xfdeb0f66 // por xmm7, xmm5 + QUAD $0xfffffe4c9a100ff3 // movss xmm3, dword [rdx - 436] + QUAD $0xfffecc9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 308], 16 + QUAD $0xffff4c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 180], 32 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0x213a0f66; WORD $0xcc5a; BYTE $0x30 // insertps xmm3, dword [rdx - 52], 48 + LONG $0xe7620f66 // punpckldq xmm4, xmm7 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xfa6f0f66 // movdqa xmm7, xmm2 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xfaf80f66 // psubb xmm7, xmm2 + QUAD $0xfffffe50aa100ff3 // movss xmm5, dword [rdx - 432] + QUAD $0xfffed0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 304], 16 + QUAD $0xffff50aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 176], 32 + LONG $0x213a0f66; WORD $0xd06a; BYTE $0x30 // insertps xmm5, dword [rdx - 48], 48 + LONG $0xfeeb0f66 // por xmm7, xmm6 + QUAD $0xfffffe54b2100ff3 // movss xmm6, dword [rdx - 428] + QUAD $0xfffed4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 300], 16 + QUAD $0xffff54b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 172], 32 + LONG $0x213a0f66; WORD $0xd472; BYTE $0x30 // insertps xmm6, dword [rdx - 44], 48 + LONG $0x02d9c20f // cmpleps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdfeb0f66 // por xmm3, xmm7 + QUAD $0xfffffe58ba100ff3 // movss xmm7, dword [rdx - 424] + QUAD $0xfffed8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 296], 16 + QUAD $0xffff58ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 168], 32 + LONG $0x213a0f66; WORD $0xd87a; BYTE $0x30 // insertps xmm7, dword [rdx - 40], 48 + LONG $0x02e9c20f // cmpleps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xdb0f4166; BYTE $0xef // pand xmm5, xmm15 + LONG $0xf5710f66; BYTE $0x03 // psllw xmm5, 3 + LONG $0xdb0f4166; BYTE $0xea // pand xmm5, xmm10 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf5eb0f66 // por xmm6, xmm5 + QUAD $0xfffffe5c92100ff3 // movss xmm2, dword [rdx - 420] + QUAD $0xfffedc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 292], 16 + QUAD $0xffff5c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 164], 32 + LONG $0x213a0f66; WORD $0xdc52; BYTE $0x30 // insertps xmm2, dword [rdx - 36], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe60aa100ff3 // movss xmm5, dword [rdx - 416] + QUAD $0xfffee0aa213a0f66; WORD $0x10ff // insertps xmm5, dword [rdx - 288], 16 + QUAD $0xffff60aa213a0f66; WORD $0x20ff // insertps xmm5, dword [rdx - 160], 32 + LONG $0x213a0f66; WORD $0xe06a; BYTE $0x30 // insertps xmm5, dword [rdx - 32], 48 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe64ba100ff3 // movss xmm7, dword [rdx - 412] + QUAD $0xfffee4ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 284], 16 + QUAD $0xffff64ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 156], 32 + LONG $0x213a0f66; WORD $0xe47a; BYTE $0x30 // insertps xmm7, dword [rdx - 28], 48 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0x02e9c20f // cmpleps xmm5, xmm1 + LONG $0xed6b0f66 // packssdw xmm5, xmm5 + LONG $0xed630f66 // packsswb xmm5, xmm5 + LONG $0xf5710f66; BYTE $0x07 // psllw xmm5, 7 + LONG $0xdb0f4166; BYTE $0xee // pand xmm5, xmm14 + LONG $0xeaeb0f66 // por xmm5, xmm2 + QUAD $0xfffffe6892100ff3 // movss xmm2, dword [rdx - 408] + QUAD $0xfffee892213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 280], 16 + QUAD $0xffff6892213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 152], 32 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0x213a0f66; WORD $0xe852; BYTE $0x30 // insertps xmm2, dword [rdx - 24], 48 + LONG $0xeeeb0f66 // por xmm5, xmm6 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xf26f0f66 // movdqa xmm6, xmm2 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf2f80f66 // psubb xmm6, xmm2 + QUAD $0xfffffe6c9a100ff3 // movss xmm3, dword [rdx - 404] + QUAD $0xfffeec9a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 276], 16 + QUAD $0xffff6c9a213a0f66; WORD $0x20ff // insertps xmm3, dword [rdx - 148], 32 + LONG $0x213a0f66; WORD $0xec5a; BYTE $0x30 // insertps xmm3, dword [rdx - 20], 48 + LONG $0xf7eb0f66 // por xmm6, xmm7 + QUAD $0xfffffe7092100ff3 // movss xmm2, dword [rdx - 400] + QUAD $0xfffef092213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 272], 16 + QUAD $0xffff7092213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 144], 32 + LONG $0x213a0f66; WORD $0xf052; BYTE $0x30 // insertps xmm2, dword [rdx - 16], 48 + LONG $0x02d9c20f // cmpleps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xdb0f4166; BYTE $0xdf // pand xmm3, xmm15 + LONG $0xf3710f66; BYTE $0x02 // psllw xmm3, 2 + LONG $0xdb0f4166; BYTE $0xd8 // pand xmm3, xmm8 + LONG $0xdeeb0f66 // por xmm3, xmm6 + QUAD $0xfffffe74b2100ff3 // movss xmm6, dword [rdx - 396] + QUAD $0xfffef4b2213a0f66; WORD $0x10ff // insertps xmm6, dword [rdx - 268], 16 + QUAD $0xffff74b2213a0f66; WORD $0x20ff // insertps xmm6, dword [rdx - 140], 32 + LONG $0x213a0f66; WORD $0xf472; BYTE $0x30 // insertps xmm6, dword [rdx - 12], 48 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x03 // psllw xmm2, 3 + LONG $0xdb0f4166; BYTE $0xd2 // pand xmm2, xmm10 + LONG $0x02f1c20f // cmpleps xmm6, xmm1 + LONG $0xf66b0f66 // packssdw xmm6, xmm6 + LONG $0xf6630f66 // packsswb xmm6, xmm6 + LONG $0xdb0f4166; BYTE $0xf7 // pand xmm6, xmm15 + LONG $0xf6710f66; BYTE $0x04 // psllw xmm6, 4 + LONG $0xdb0f4166; BYTE $0xf3 // pand xmm6, xmm11 + LONG $0xf2eb0f66 // por xmm6, xmm2 + QUAD $0xfffffe78ba100ff3 // movss xmm7, dword [rdx - 392] + QUAD $0xfffef8ba213a0f66; WORD $0x10ff // insertps xmm7, dword [rdx - 264], 16 + QUAD $0xffff78ba213a0f66; WORD $0x20ff // insertps xmm7, dword [rdx - 136], 32 + LONG $0x213a0f66; WORD $0xf87a; BYTE $0x30 // insertps xmm7, dword [rdx - 8], 48 + LONG $0xf3eb0f66 // por xmm6, xmm3 + QUAD $0xfffffe7c92100ff3 // movss xmm2, dword [rdx - 388] + QUAD $0xfffefc92213a0f66; WORD $0x10ff // insertps xmm2, dword [rdx - 260], 16 + QUAD $0xffff7c92213a0f66; WORD $0x20ff // insertps xmm2, dword [rdx - 132], 32 + LONG $0x213a0f66; WORD $0xfc52; BYTE $0x30 // insertps xmm2, dword [rdx - 4], 48 + LONG $0x02f9c20f // cmpleps xmm7, xmm1 + LONG $0xff6b0f66 // packssdw xmm7, xmm7 + LONG $0xff630f66 // packsswb xmm7, xmm7 + LONG $0xdb0f4166; BYTE $0xff // pand xmm7, xmm15 + LONG $0xf7710f66; BYTE $0x05 // psllw xmm7, 5 + LONG $0xdb0f4166; BYTE $0xfc // pand xmm7, xmm12 + LONG $0x02d1c20f // cmpleps xmm2, xmm1 + LONG $0xd26b0f66 // packssdw xmm2, xmm2 + LONG $0xd2630f66 // packsswb xmm2, xmm2 + LONG $0xdb0f4166; BYTE $0xd7 // pand xmm2, xmm15 + LONG $0xf2710f66; BYTE $0x06 // psllw xmm2, 6 + LONG $0xdb0f4166; BYTE $0xd5 // pand xmm2, xmm13 + LONG $0xd7eb0f66 // por xmm2, xmm7 + QUAD $0xfffffe809a100ff3 // movss xmm3, dword [rdx - 384] + QUAD $0xffff009a213a0f66; WORD $0x10ff // insertps xmm3, dword [rdx - 256], 16 + LONG $0x213a0f66; WORD $0x805a; BYTE $0x20 // insertps xmm3, dword [rdx - 128], 32 + LONG $0x213a0f66; WORD $0x301a // insertps xmm3, dword [rdx], 48 + LONG $0x02d9c20f // cmpleps xmm3, xmm1 + LONG $0xdb6b0f66 // packssdw xmm3, xmm3 + LONG $0xdb630f66 // packsswb xmm3, xmm3 + LONG $0xf3710f66; BYTE $0x07 // psllw xmm3, 7 + LONG $0xdb0f4166; BYTE $0xde // pand xmm3, xmm14 + LONG $0xdaeb0f66 // por xmm3, xmm2 + LONG $0xdeeb0f66 // por xmm3, xmm6 + LONG $0xeb620f66 // punpckldq xmm5, xmm3 + LONG $0xe5600f66 // punpcklbw xmm4, xmm5 + LONG $0x380f4166; WORD $0xe100 // pshufb xmm4, xmm9 + LONG $0x7f0f41f3; WORD $0x8f24 // movdqu oword [r15 + 4*rcx], xmm4 + LONG $0x04c18348 // add rcx, 4 + LONG $0x00c28148; WORD $0x0002; BYTE $0x00 // add rdx, 512 + WORD $0x3949; BYTE $0xc8 // cmp r8, rcx + JNE LBB11_183 + WORD $0x394d; BYTE $0xc2 // cmp r10, r8 + JNE LBB11_185 + JMP LBB11_188 diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparisons.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparisons.go new file mode 100644 index 0000000..ccf9d94 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/scalar_comparisons.go @@ -0,0 +1,701 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "bytes" + "fmt" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/scalar" + "github.com/apache/arrow/go/v12/internal/bitutils" +) + +type binaryKernel func(left, right, out []byte, offset int) + +type cmpFn[LeftT, RightT exec.FixedWidthTypes] func([]LeftT, []RightT, []uint32) +type cmpScalarLeft[LeftT, RightT exec.FixedWidthTypes] func(LeftT, []RightT, []uint32) +type cmpScalarRight[LeftT, RightT exec.FixedWidthTypes] func([]LeftT, RightT, []uint32) + +type cmpOp[T exec.FixedWidthTypes] struct { + arrArr cmpFn[T, T] + arrScalar cmpScalarRight[T, T] + scalarArr cmpScalarLeft[T, T] +} + +func comparePrimitiveArrayArray[T exec.FixedWidthTypes](op cmpFn[T, T]) binaryKernel { + return func(leftBytes, rightBytes, out []byte, offset int) { + const batchSize = 32 + var ( + left = exec.GetData[T](leftBytes) + right = exec.GetData[T](rightBytes) + nvals = len(left) + nbatches = nvals / batchSize + tmpOutput [batchSize]uint32 + ) + + tmpOutSlice := tmpOutput[:] + if prefix := offset % 8; prefix != 0 { + vals := 8 - prefix + op(left[:vals], right[:vals], tmpOutSlice[:vals]) + left, right = left[vals:], right[vals:] + + for i, v := range tmpOutSlice[:vals] { + bitutil.SetBitTo(out, prefix+i, v != 0) + } + out = out[1:] + } + + for j := 0; j < nbatches; j++ { + op(left, right, tmpOutSlice) + left, right = left[batchSize:], right[batchSize:] + packBits(tmpOutput, out) + out = out[batchSize/8:] + } + + remaining := nvals - (batchSize * nbatches) + op(left, right, tmpOutput[:remaining]) + for bitIndex, v := range tmpOutput[:remaining] { + bitutil.SetBitTo(out, bitIndex, v != 0) + } + } +} + +func comparePrimitiveArrayScalar[T exec.FixedWidthTypes](op cmpScalarRight[T, T]) binaryKernel { + return func(leftBytes, rightBytes, out []byte, offset int) { + const batchSize = 32 + var ( + left = exec.GetData[T](leftBytes) + rightVal = *(*T)(unsafe.Pointer(&rightBytes[0])) + nvals = len(left) + nbatches = nvals / batchSize + tmpOutput [batchSize]uint32 + ) + + tmpOutSlice := tmpOutput[:] + if prefix := offset % 8; prefix != 0 { + vals := 8 - prefix + op(left[:vals], rightVal, tmpOutSlice[:vals]) + left = left[vals:] + + for i, v := range tmpOutSlice[:vals] { + bitutil.SetBitTo(out, prefix+i, v != 0) + } + out = out[1:] + } + + for j := 0; j < nbatches; j++ { + op(left, rightVal, tmpOutSlice) + left = left[batchSize:] + packBits(tmpOutput, out) + out = out[batchSize/8:] + } + + remaining := nvals - (batchSize * nbatches) + op(left, rightVal, tmpOutput[:remaining]) + for bitIndex, v := range tmpOutput[:remaining] { + bitutil.SetBitTo(out, bitIndex, v != 0) + } + } +} + +func comparePrimitiveScalarArray[T exec.FixedWidthTypes](op cmpScalarLeft[T, T]) binaryKernel { + return func(leftBytes, rightBytes, out []byte, offset int) { + const batchSize = 32 + var ( + leftVal = *(*T)(unsafe.Pointer(&leftBytes[0])) + right = exec.GetData[T](rightBytes) + + nvals = len(right) + nbatches = nvals / batchSize + tmpOutput [batchSize]uint32 + ) + + tmpOutSlice := tmpOutput[:] + if prefix := offset % 8; prefix != 0 { + vals := 8 - prefix + op(leftVal, right[:vals], tmpOutSlice[:vals]) + right = right[vals:] + + for i, v := range tmpOutSlice[:vals] { + bitutil.SetBitTo(out, prefix+i, v != 0) + } + out = out[1:] + } + + for j := 0; j < nbatches; j++ { + op(leftVal, right, tmpOutSlice) + right = right[batchSize:] + packBits(tmpOutput, out) + out = out[batchSize/8:] + } + + remaining := nvals - (batchSize * nbatches) + op(leftVal, right, tmpOutput[:remaining]) + for bitIndex, v := range tmpOutput[:remaining] { + bitutil.SetBitTo(out, bitIndex, v != 0) + } + } +} + +type CompareData struct { + funcAA, funcSA, funcAS binaryKernel +} + +func (c *CompareData) Funcs() *CompareData { return c } + +type CompareFuncData interface { + Funcs() *CompareData +} + +func getOffsetSpanBytes(span *exec.ArraySpan) []byte { + if len(span.Buffers[1].Buf) == 0 { + return nil + } + + buf := span.Buffers[1].Buf + byteWidth := int64(span.Type.(arrow.FixedWidthDataType).Bytes()) + start := span.Offset * byteWidth + return buf[start : start+(span.Len*byteWidth)] +} + +func compareKernel[T exec.FixedWidthTypes](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + kn := ctx.Kernel.(*exec.ScalarKernel) + knData := kn.Data.(CompareFuncData).Funcs() + + outPrefix := int(out.Offset % 8) + outBuf := out.Buffers[1].Buf[out.Offset/8:] + + if batch.Values[0].IsArray() && batch.Values[1].IsArray() { + knData.funcAA(getOffsetSpanBytes(&batch.Values[0].Array), + getOffsetSpanBytes(&batch.Values[1].Array), outBuf, outPrefix) + } else if batch.Values[1].IsScalar() { + knData.funcAS(getOffsetSpanBytes(&batch.Values[0].Array), + batch.Values[1].Scalar.(scalar.PrimitiveScalar).Data(), outBuf, outPrefix) + } else { + knData.funcSA(batch.Values[0].Scalar.(scalar.PrimitiveScalar).Data(), + getOffsetSpanBytes(&batch.Values[1].Array), outBuf, outPrefix) + } + + return nil +} + +func genGoCompareKernel[T exec.FixedWidthTypes](op *cmpOp[T]) *CompareData { + return &CompareData{ + funcAA: comparePrimitiveArrayArray(op.arrArr), + funcAS: comparePrimitiveArrayScalar(op.arrScalar), + funcSA: comparePrimitiveScalarArray(op.scalarArr), + } +} + +type decCmp[T decimal128.Num | decimal256.Num] struct { + Gt func(T, T) bool + Ge func(T, T) bool +} + +var dec128Cmp = decCmp[decimal128.Num]{ + Gt: func(a, b decimal128.Num) bool { return a.Greater(b) }, + Ge: func(a, b decimal128.Num) bool { return a.GreaterEqual(b) }, +} + +var dec256Cmp = decCmp[decimal256.Num]{ + Gt: func(a, b decimal256.Num) bool { return a.Greater(b) }, + Ge: func(a, b decimal256.Num) bool { return a.GreaterEqual(b) }, +} + +func getCmpDec[T decimal128.Num | decimal256.Num](op CompareOperator, fns decCmp[T]) *cmpOp[T] { + switch op { + case CmpEQ: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range lt { + if lt[i] == rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range lt { + if lt[i] == rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range rt { + if lt == rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpNE: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range lt { + if lt[i] != rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range lt { + if lt[i] != rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range rt { + if lt != rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpGT: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range lt { + if fns.Gt(lt[i], rt[i]) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range lt { + if fns.Gt(lt[i], rt) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range rt { + if fns.Gt(lt, rt[i]) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpGE: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range lt { + if fns.Ge(lt[i], rt[i]) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range lt { + if fns.Ge(lt[i], rt) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range rt { + if fns.Ge(lt, rt[i]) { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + } + debug.Assert(false, "") + return nil +} + +func genDecimalCompareKernel[T decimal128.Num | decimal256.Num](op CompareOperator) (ex exec.ArrayKernelExec, data exec.KernelState) { + ex = compareKernel[T] + + var def T + switch any(def).(type) { + case decimal128.Num: + cmp := getCmpDec(op, dec128Cmp) + data = &CompareData{ + funcAA: comparePrimitiveArrayArray(cmp.arrArr), + funcAS: comparePrimitiveArrayScalar(cmp.arrScalar), + funcSA: comparePrimitiveScalarArray(cmp.scalarArr), + } + case decimal256.Num: + cmp := getCmpDec(op, dec256Cmp) + data = &CompareData{ + funcAA: comparePrimitiveArrayArray(cmp.arrArr), + funcAS: comparePrimitiveArrayScalar(cmp.arrScalar), + funcSA: comparePrimitiveScalarArray(cmp.scalarArr), + } + } + + return +} + +func getCmpOp[T exec.NumericTypes](op CompareOperator) *cmpOp[T] { + switch op { + case CmpEQ: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range u { + if lt[i] == rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range u { + if lt[i] == rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range u { + if lt == rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpNE: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range u { + if lt[i] != rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range u { + if lt[i] != rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range u { + if lt != rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpGT: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range u { + if lt[i] > rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range u { + if lt[i] > rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range u { + if lt > rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + case CmpGE: + return &cmpOp[T]{ + arrArr: func(lt, rt []T, u []uint32) { + for i := range u { + if lt[i] >= rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + arrScalar: func(lt []T, rt T, u []uint32) { + for i := range u { + if lt[i] >= rt { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + scalarArr: func(lt T, rt []T, u []uint32) { + for i := range u { + if lt >= rt[i] { + u[i] = 1 + } else { + u[i] = 0 + } + } + }, + } + } + return nil +} + +func getBinaryCmp(op CompareOperator) binaryBinOp[bool] { + switch op { + case CmpEQ: + return func(_ *exec.KernelCtx, arg0, arg1 []byte) bool { + return bytes.Equal(arg0, arg1) + } + case CmpNE: + return func(_ *exec.KernelCtx, arg0, arg1 []byte) bool { + return !bytes.Equal(arg0, arg1) + } + case CmpGT: + return func(_ *exec.KernelCtx, arg0, arg1 []byte) bool { + return bytes.Compare(arg0, arg1) == 1 + } + case CmpGE: + return func(_ *exec.KernelCtx, arg0, arg1 []byte) bool { + return bytes.Compare(arg0, arg1) != -1 + } + } + return nil +} + +func numericCompareKernel[T exec.NumericTypes](ty exec.InputType, op CompareOperator) (kn exec.ScalarKernel) { + ex := compareKernel[T] + kn = exec.NewScalarKernelWithSig(&exec.KernelSignature{ + InputTypes: []exec.InputType{ty, ty}, + OutType: exec.NewOutputType(arrow.FixedWidthTypes.Boolean), + }, ex, nil) + kn.Data = genCompareKernel[T](op) + return +} + +func decimalCompareKernel[T decimal128.Num | decimal256.Num](ty exec.InputType, op CompareOperator) (kn exec.ScalarKernel) { + ex, data := genDecimalCompareKernel[T](op) + kn = exec.NewScalarKernelWithSig(&exec.KernelSignature{ + InputTypes: []exec.InputType{ty, ty}, + OutType: exec.NewOutputType(arrow.FixedWidthTypes.Boolean), + }, ex, nil) + kn.Data = data + return +} + +func GetCompareKernel(ty exec.InputType, cmpType arrow.Type, op CompareOperator) exec.ScalarKernel { + switch cmpType { + case arrow.INT8: + return numericCompareKernel[int8](ty, op) + case arrow.INT16: + return numericCompareKernel[int16](ty, op) + case arrow.INT32, arrow.DATE32, arrow.TIME32: + return numericCompareKernel[int32](ty, op) + case arrow.INT64, arrow.DATE64, arrow.TIMESTAMP, arrow.TIME64, arrow.DURATION: + return numericCompareKernel[int64](ty, op) + case arrow.UINT8: + return numericCompareKernel[uint8](ty, op) + case arrow.UINT16: + return numericCompareKernel[uint16](ty, op) + case arrow.UINT32: + return numericCompareKernel[uint32](ty, op) + case arrow.UINT64: + return numericCompareKernel[uint64](ty, op) + case arrow.FLOAT32: + return numericCompareKernel[float32](ty, op) + case arrow.FLOAT64: + return numericCompareKernel[float64](ty, op) + } + debug.Assert(false, "") + return exec.ScalarKernel{} +} + +func compareTimestampKernel(ty exec.InputType, op CompareOperator) exec.ScalarKernel { + kn := GetCompareKernel(ty, arrow.TIMESTAMP, op) + ex := kn.ExecFn + kn.ExecFn = func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + lhs, rhs := batch.Values[0].Type().(*arrow.TimestampType), batch.Values[1].Type().(*arrow.TimestampType) + if (len(lhs.TimeZone) == 0) != (len(rhs.TimeZone) == 0) { + return fmt.Errorf("%w: cannot compare timestamp with timezone to timestamp without timezone, got: %s and %s", + arrow.ErrInvalid, lhs, rhs) + } + return ex(ctx, batch, out) + } + return kn +} + +var ( + boolEQ = binaryBoolOps{ + arrArr: func(_ *exec.KernelCtx, lhs, rhs, out bitutil.Bitmap) error { + bitutil.BitmapAnd(lhs.Data, rhs.Data, lhs.Offset, rhs.Offset, out.Data, out.Offset, out.Len) + return nil + }, + arrScalar: func(_ *exec.KernelCtx, lhs bitutil.Bitmap, rhs bool, out bitutil.Bitmap) error { + rdr := bitutil.NewBitmapReader(lhs.Data, int(lhs.Offset), int(lhs.Len)) + bitutils.GenerateBitsUnrolled(out.Data, out.Offset, out.Len, func() (out bool) { + out = rdr.Set() == rhs + rdr.Next() + return + }) + return nil + }, + scalarArr: func(_ *exec.KernelCtx, lhs bool, rhs, out bitutil.Bitmap) error { + rdr := bitutil.NewBitmapReader(rhs.Data, int(rhs.Offset), int(rhs.Len)) + bitutils.GenerateBitsUnrolled(out.Data, out.Offset, out.Len, func() (out bool) { + out = lhs == rdr.Set() + rdr.Next() + return + }) + return nil + }, + } + boolNE = binaryBoolOps{ + arrArr: func(_ *exec.KernelCtx, lhs, rhs, out bitutil.Bitmap) error { + bitutil.BitmapXor(lhs.Data, rhs.Data, lhs.Offset, rhs.Offset, out.Data, out.Offset, out.Len) + return nil + }, + arrScalar: func(_ *exec.KernelCtx, lhs bitutil.Bitmap, rhs bool, out bitutil.Bitmap) error { + rdr := bitutil.NewBitmapReader(lhs.Data, int(lhs.Offset), int(lhs.Len)) + bitutils.GenerateBitsUnrolled(out.Data, out.Offset, out.Len, func() (out bool) { + out = rdr.Set() != rhs + rdr.Next() + return + }) + return nil + }, + scalarArr: func(_ *exec.KernelCtx, lhs bool, rhs, out bitutil.Bitmap) error { + rdr := bitutil.NewBitmapReader(rhs.Data, int(rhs.Offset), int(rhs.Len)) + bitutils.GenerateBitsUnrolled(out.Data, out.Offset, out.Len, func() (out bool) { + out = lhs != rdr.Set() + rdr.Next() + return + }) + return nil + }, + } +) + +func CompareKernels(op CompareOperator) []exec.ScalarKernel { + kns := make([]exec.ScalarKernel, 0) + + outType := exec.NewOutputType(arrow.FixedWidthTypes.Boolean) + switch op { + case CmpEQ: + in := exec.NewExactInput(arrow.FixedWidthTypes.Boolean) + kns = append(kns, exec.NewScalarKernel([]exec.InputType{in, in}, outType, + ScalarBinaryBools(&boolEQ), nil)) + case CmpNE: + in := exec.NewExactInput(arrow.FixedWidthTypes.Boolean) + kns = append(kns, exec.NewScalarKernel([]exec.InputType{in, in}, outType, + ScalarBinaryBools(&boolNE), nil)) + } + + for _, ty := range numericTypes { + in := exec.NewExactInput(ty) + kns = append(kns, GetCompareKernel(in, ty.ID(), op)) + } + kns = append(kns, + GetCompareKernel(exec.NewExactInput(arrow.FixedWidthTypes.Date32), arrow.DATE32, op), + GetCompareKernel(exec.NewExactInput(arrow.FixedWidthTypes.Date64), arrow.DATE64, op)) + + for _, unit := range arrow.TimeUnitValues { + in := exec.NewMatchedInput(exec.TimestampTypeUnit(unit)) + kns = append(kns, compareTimestampKernel(in, op)) + + in = exec.NewMatchedInput(exec.DurationTypeUnit(unit)) + kns = append(kns, GetCompareKernel(in, arrow.INT64, op)) + } + + for _, unit := range []arrow.TimeUnit{arrow.Second, arrow.Millisecond} { + in := exec.NewMatchedInput(exec.Time32TypeUnit(unit)) + kns = append(kns, GetCompareKernel(in, arrow.INT32, op)) + } + for _, unit := range []arrow.TimeUnit{arrow.Microsecond, arrow.Nanosecond} { + in := exec.NewMatchedInput(exec.Time64TypeUnit(unit)) + kns = append(kns, GetCompareKernel(in, arrow.INT64, op)) + } + + for _, ty := range baseBinaryTypes { + var ex exec.ArrayKernelExec + switch ty.Layout().Buffers[1].ByteWidth { + case 4: + ex = ScalarBinaryBinaryArgsBoolOut(exec.NewVarBinaryIter[int32], getBinaryCmp(op)) + default: + ex = ScalarBinaryBinaryArgsBoolOut(exec.NewVarBinaryIter[int64], getBinaryCmp(op)) + } + in := exec.NewExactInput(ty) + kns = append(kns, exec.NewScalarKernel([]exec.InputType{in, in}, + outType, ex, nil)) + } + + in128, in256 := exec.NewIDInput(arrow.DECIMAL128), exec.NewIDInput(arrow.DECIMAL256) + kns = append(kns, decimalCompareKernel[decimal128.Num](in128, op), + decimalCompareKernel[decimal256.Num](in256, op)) + + inFSB := exec.NewIDInput(arrow.FIXED_SIZE_BINARY) + kns = append(kns, exec.NewScalarKernel([]exec.InputType{inFSB, inFSB}, outType, + ScalarBinaryBinaryArgsBoolOut(exec.NewFSBIter, getBinaryCmp(op)), nil)) + + return kns +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/string_casts.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/string_casts.go new file mode 100644 index 0000000..f632a72 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/string_casts.go @@ -0,0 +1,409 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "strconv" + "unicode/utf8" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/internal/bitutils" +) + +func validateUtf8Fsb(input *exec.ArraySpan) error { + var ( + inputData = input.Buffers[1].Buf + width = int64(input.Type.(*arrow.FixedSizeBinaryType).ByteWidth) + bitmap = input.Buffers[0].Buf + ) + + return bitutils.VisitBitBlocksShort(bitmap, input.Offset, input.Len, + func(pos int64) error { + pos += input.Offset + beg := pos * width + end := (pos + 1) * width + if !utf8.Valid(inputData[beg:end]) { + return fmt.Errorf("%w: invalid UTF8 bytes: %x", arrow.ErrInvalid, inputData[beg:end]) + } + return nil + }, func() error { return nil }) +} + +func validateUtf8[OffsetT int32 | int64](input *exec.ArraySpan) error { + var ( + inputOffsets = exec.GetSpanOffsets[OffsetT](input, 1) + inputData = input.Buffers[2].Buf + bitmap = input.Buffers[0].Buf + ) + + return bitutils.VisitBitBlocksShort(bitmap, input.Offset, input.Len, + func(pos int64) error { + v := inputData[inputOffsets[pos]:inputOffsets[pos+1]] + if !utf8.Valid(v) { + return fmt.Errorf("%w: invalid UTF8 bytes: %x", arrow.ErrInvalid, v) + } + return nil + }, func() error { return nil }) +} + +func CastFsbToFsb(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + inputWidth := batch.Values[0].Array.Type.(*arrow.FixedSizeBinaryType).ByteWidth + outputWidth := ctx.State.(CastState).ToType.(*arrow.FixedSizeBinaryType).ByteWidth + + if inputWidth != outputWidth { + return fmt.Errorf("%w: failed casting from %s to %s: widths must match", + arrow.ErrInvalid, batch.Values[0].Array.Type, out.Type) + } + + return ZeroCopyCastExec(ctx, batch, out) +} + +func CastBinaryToBinary[InOffsetsT, OutOffsetsT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(CastState) + input := &batch.Values[0].Array + + if !input.Type.(arrow.BinaryDataType).IsUtf8() && out.Type.(arrow.BinaryDataType).IsUtf8() && !opts.AllowInvalidUtf8 { + if err := validateUtf8[InOffsetsT](input); err != nil { + return err + } + } + + // start with a zero-copy cast, then change the indices to the + // expected size + if err := ZeroCopyCastExec(ctx, batch, out); err != nil { + return err + } + + switch { + case SizeOf[InOffsetsT]() == SizeOf[OutOffsetsT](): + // offsets are the same width, nothing more to do + return nil + case SizeOf[InOffsetsT]() > SizeOf[OutOffsetsT](): + // downcast from int64 -> int32 + inputOffsets := exec.GetSpanOffsets[InOffsetsT](input, 1) + + // binary offsets are ascending, so it's enough to check + // the last one for overflow + if inputOffsets[input.Len] > InOffsetsT(MaxOf[OutOffsetsT]()) { + return fmt.Errorf("%w: failed casting from %s to %s: input array too large", + arrow.ErrInvalid, input.Type, out.Type) + } + + buf := ctx.Allocate(out.Type.(arrow.OffsetsDataType).OffsetTypeTraits().BytesRequired(int(out.Len + out.Offset + 1))) + out.Buffers[1].WrapBuffer(buf) + + outOffsets := exec.GetSpanOffsets[OutOffsetsT](out, 1) + + castNumericUnsafe(arrow.INT64, arrow.INT32, + exec.GetBytes(inputOffsets), exec.GetBytes(outOffsets), len(inputOffsets)) + return nil + default: + // upcast from int32 -> int64 + buf := ctx.Allocate(out.Type.(arrow.OffsetsDataType).OffsetTypeTraits().BytesRequired(int(out.Len + out.Offset + 1))) + out.Buffers[1].WrapBuffer(buf) + + inputOffsets := exec.GetSpanOffsets[InOffsetsT](input, 1) + outOffsets := exec.GetSpanOffsets[OutOffsetsT](out, 1) + + castNumericUnsafe(arrow.INT32, arrow.INT64, + exec.GetBytes(inputOffsets), exec.GetBytes(outOffsets), len(inputOffsets)) + return nil + } +} + +func CastFsbToBinary[OffsetsT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + opts := ctx.State.(CastState) + input := &batch.Values[0].Array + + if out.Type.(arrow.BinaryDataType).IsUtf8() && !opts.AllowInvalidUtf8 { + if err := validateUtf8Fsb(input); err != nil { + return err + } + } + + // check for overflow + maxOffset := int64(MaxOf[OffsetsT]()) + width := OffsetsT(input.Type.(*arrow.FixedSizeBinaryType).ByteWidth) + if (int64(width) * input.Len) > maxOffset { + return fmt.Errorf("%w: failed casting from %s to %s: input array too large", + arrow.ErrInvalid, input.Type, out.Type) + } + + out.Len = input.Len + out.Nulls = input.Nulls + if input.Offset == out.Offset { + out.Buffers[0].SetBuffer(input.GetBuffer(0)) + } else { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(input.Len)) + bitutil.CopyBitmap(input.Buffers[0].Buf, int(input.Offset), int(input.Len), out.Buffers[0].Buf, int(out.Offset)) + } + + // this buffer is preallocated + offsets := exec.GetSpanOffsets[OffsetsT](out, 1) + offsets[0] = OffsetsT(input.Offset) * width + for i := 0; i < int(input.Len); i++ { + offsets[i+1] = offsets[i] + width + } + + if len(input.Buffers[1].Buf) > 0 { + out.Buffers[2] = input.Buffers[1] + } + + return nil +} + +func addBinaryToBinaryCast[InOffsetT, OutOffsetT int32 | int64](inType arrow.Type, outType exec.OutputType) exec.ScalarKernel { + return exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(inType)}, + outType, CastBinaryToBinary[InOffsetT, OutOffsetT], nil) +} + +func addToBinaryKernels[OffsetsT int32 | int64](outType exec.OutputType, kernels []exec.ScalarKernel) []exec.ScalarKernel { + return append(kernels, + addBinaryToBinaryCast[int32, OffsetsT](arrow.STRING, outType), + addBinaryToBinaryCast[int32, OffsetsT](arrow.BINARY, outType), + addBinaryToBinaryCast[int64, OffsetsT](arrow.LARGE_STRING, outType), + addBinaryToBinaryCast[int64, OffsetsT](arrow.LARGE_BINARY, outType), + exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(arrow.FIXED_SIZE_BINARY)}, + outType, CastFsbToBinary[OffsetsT], nil), + ) +} + +func GetFsbCastKernels() []exec.ScalarKernel { + outputType := exec.NewComputedOutputType(resolveOutputFromOptions) + out := GetCommonCastKernels(arrow.FIXED_SIZE_BINARY, outputType) + kernel := exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(arrow.FIXED_SIZE_BINARY)}, + OutputFirstType, CastFsbToFsb, nil) + kernel.NullHandling = exec.NullComputedNoPrealloc + return append(out, kernel) +} + +func float16Formatter(v float16.Num) string { return v.String() } +func date32Formatter(v arrow.Date32) string { return v.FormattedString() } +func date64Formatter(v arrow.Date64) string { return v.FormattedString() } +func numericFormatterSigned[T exec.IntTypes](v T) string { return strconv.FormatInt(int64(v), 10) } +func numericFormatterUnsigned[T exec.UintTypes](v T) string { return strconv.FormatUint(uint64(v), 10) } +func float32Formatter(v float32) string { return strconv.FormatFloat(float64(v), 'g', -1, 32) } +func float64Formatter(v float64) string { return strconv.FormatFloat(v, 'g', -1, 64) } + +func boolToStringCastExec(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + input = &batch.Values[0].Array + bldr = array.NewBuilder(exec.GetAllocator(ctx.Ctx), out.Type).(array.StringLikeBuilder) + ) + defer bldr.Release() + + bitutils.VisitBitBlocks(input.Buffers[0].Buf, input.Offset, input.Len, + func(pos int64) { + bldr.Append(strconv.FormatBool(bitutil.BitIsSet(input.Buffers[1].Buf, int(pos)))) + }, func() { bldr.AppendNull() }) + + arr := bldr.NewArray() + out.TakeOwnership(arr.Data()) + return nil +} + +type timeIntrinsic interface { + arrow.Time32 | arrow.Time64 + FormattedString(arrow.TimeUnit) string +} + +func timeToStringCastExec[T timeIntrinsic](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + input = &batch.Values[0].Array + inputData = exec.GetSpanValues[T](input, 1) + bldr = array.NewBuilder(exec.GetAllocator(ctx.Ctx), out.Type).(array.StringLikeBuilder) + inputType = input.Type.(arrow.TemporalWithUnit) + ) + defer bldr.Release() + + bitutils.VisitBitBlocks(input.Buffers[0].Buf, input.Offset, input.Len, + func(pos int64) { + bldr.Append(inputData[pos].FormattedString(inputType.TimeUnit())) + }, func() { bldr.AppendNull() }) + + arr := bldr.NewArray() + out.TakeOwnership(arr.Data()) + return nil +} + +func numericToStringCastExec[T exec.IntTypes | exec.UintTypes | exec.FloatTypes](formatter func(T) string) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + input = &batch.Values[0].Array + inputData = exec.GetSpanValues[T](input, 1) + bldr = array.NewBuilder(exec.GetAllocator(ctx.Ctx), out.Type).(array.StringLikeBuilder) + ) + defer bldr.Release() + + bitutils.VisitBitBlocks(input.Buffers[0].Buf, input.Offset, input.Len, + func(pos int64) { + bldr.Append(formatter(inputData[pos])) + }, func() { bldr.AppendNull() }) + + arr := bldr.NewArray() + out.TakeOwnership(arr.Data()) + return nil + } +} + +func castTimestampToString(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + input = &batch.Values[0].Array + inputData = exec.GetSpanValues[arrow.Timestamp](input, 1) + inputType = input.Type.(*arrow.TimestampType) + bldr = array.NewBuilder(exec.GetAllocator(ctx.Ctx), out.Type).(array.StringLikeBuilder) + ) + defer bldr.Release() + + toTime, err := inputType.GetToTimeFunc() + if err != nil { + return err + } + + // prealloc + fmtstring := "2006-01-02 15:04:05" + switch inputType.Unit { + case arrow.Millisecond: + fmtstring += ".000" + case arrow.Microsecond: + fmtstring += ".000000" + case arrow.Nanosecond: + fmtstring += ".000000000" + } + + switch inputType.TimeZone { + case "UTC": + fmtstring += "Z" + case "": + default: + fmtstring += "-0700" + } + + strlen := len(fmtstring) + bldr.Reserve(int(input.Len)) + bldr.ReserveData(int(input.Len-input.Nulls) * strlen) + + bitutils.VisitBitBlocks(input.Buffers[0].Buf, input.Offset, input.Len, + func(pos int64) { + bldr.Append(toTime(inputData[pos]).Format(fmtstring)) + }, + func() { bldr.AppendNull() }) + + arr := bldr.NewArray() + out.TakeOwnership(arr.Data()) + return nil +} + +func getNumericToStringCastExec(inType arrow.Type) exec.ArrayKernelExec { + switch inType { + case arrow.INT8: + return numericToStringCastExec(numericFormatterSigned[int8]) + case arrow.UINT8: + return numericToStringCastExec(numericFormatterUnsigned[uint8]) + case arrow.INT16: + return numericToStringCastExec(numericFormatterSigned[int16]) + case arrow.UINT16: + return numericToStringCastExec(numericFormatterUnsigned[uint16]) + case arrow.INT32: + return numericToStringCastExec(numericFormatterSigned[int32]) + case arrow.UINT32: + return numericToStringCastExec(numericFormatterUnsigned[uint32]) + case arrow.INT64: + return numericToStringCastExec(numericFormatterSigned[int64]) + case arrow.UINT64: + return numericToStringCastExec(numericFormatterUnsigned[uint64]) + case arrow.FLOAT16: + return numericToStringCastExec(float16Formatter) + case arrow.FLOAT32: + return numericToStringCastExec(float32Formatter) + case arrow.FLOAT64: + return numericToStringCastExec(float64Formatter) + case arrow.BOOL: + return boolToStringCastExec + case arrow.DATE32: + return numericToStringCastExec(date32Formatter) + case arrow.DATE64: + return numericToStringCastExec(date64Formatter) + case arrow.TIME32: + return timeToStringCastExec[arrow.Time32] + case arrow.TIME64: + return timeToStringCastExec[arrow.Time64] + case arrow.TIMESTAMP: + return castTimestampToString + } + panic("unimplemented cast: " + inType.String()) +} + +func addNumericAndTemporalToStringCasts(outType exec.OutputType, out []exec.ScalarKernel) []exec.ScalarKernel { + k := exec.NewScalarKernel([]exec.InputType{exec.NewExactInput(arrow.FixedWidthTypes.Boolean)}, outType, + getNumericToStringCastExec(arrow.BOOL), nil) + k.NullHandling = exec.NullComputedNoPrealloc + out = append(out, k) + + for _, dt := range numericTypes { + k = exec.NewScalarKernel([]exec.InputType{exec.NewExactInput(dt)}, outType, + getNumericToStringCastExec(dt.ID()), nil) + k.NullHandling = exec.NullComputedNoPrealloc + out = append(out, k) + } + + for _, dt := range []arrow.DataType{arrow.FixedWidthTypes.Date32, arrow.FixedWidthTypes.Date64} { + k = exec.NewScalarKernel([]exec.InputType{exec.NewExactInput(dt)}, outType, + getNumericToStringCastExec(dt.ID()), nil) + k.NullHandling = exec.NullComputedNoPrealloc + out = append(out, k) + } + + for _, id := range []arrow.Type{arrow.TIME32, arrow.TIME64, arrow.TIMESTAMP} { + k = exec.NewScalarKernel([]exec.InputType{exec.NewIDInput(id)}, outType, + getNumericToStringCastExec(id), nil) + k.NullHandling = exec.NullComputedNoPrealloc + out = append(out, k) + } + + return out +} + +func GetToBinaryKernels(outType arrow.DataType) []exec.ScalarKernel { + if outType.ID() == arrow.FIXED_SIZE_BINARY { + return nil + } + + outputType := exec.NewOutputType(outType) + out := GetCommonCastKernels(outType.ID(), outputType) + + switch outType.ID() { + case arrow.BINARY: + return addToBinaryKernels[int32](outputType, out) + case arrow.LARGE_BINARY: + return addToBinaryKernels[int64](outputType, out) + case arrow.STRING: + out = addToBinaryKernels[int32](outputType, out) + return addNumericAndTemporalToStringCasts(outputType, out) + case arrow.LARGE_STRING: + out = addToBinaryKernels[int64](outputType, out) + return addNumericAndTemporalToStringCasts(outputType, out) + } + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/types.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/types.go new file mode 100644 index 0000000..d1fdfeb --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/types.go @@ -0,0 +1,109 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/scalar" +) + +var ( + unsignedIntTypes = []arrow.DataType{ + arrow.PrimitiveTypes.Uint8, + arrow.PrimitiveTypes.Uint16, + arrow.PrimitiveTypes.Uint32, + arrow.PrimitiveTypes.Uint64, + } + signedIntTypes = []arrow.DataType{ + arrow.PrimitiveTypes.Int8, + arrow.PrimitiveTypes.Int16, + arrow.PrimitiveTypes.Int32, + arrow.PrimitiveTypes.Int64, + } + intTypes = append(unsignedIntTypes, signedIntTypes...) + floatingTypes = []arrow.DataType{ + arrow.PrimitiveTypes.Float32, + arrow.PrimitiveTypes.Float64, + } + numericTypes = append(intTypes, floatingTypes...) + // binary types without fixedsize binary + baseBinaryTypes = []arrow.DataType{ + arrow.BinaryTypes.Binary, + arrow.BinaryTypes.LargeBinary, + arrow.BinaryTypes.String, + arrow.BinaryTypes.LargeString} + primitiveTypes = append(append([]arrow.DataType{arrow.Null, + arrow.FixedWidthTypes.Date32, arrow.FixedWidthTypes.Date64}, + numericTypes...), baseBinaryTypes...) +) + +//go:generate stringer -type=CompareOperator -linecomment + +type CompareOperator int8 + +const ( + CmpEQ CompareOperator = iota // equal + CmpNE // not_equal + CmpGT // greater + CmpGE // greater_equal + CmpLT // less + CmpLE // less_equal +) + +type simpleBinaryKernel interface { + Call(*exec.KernelCtx, *exec.ArraySpan, *exec.ArraySpan, *exec.ExecResult) error + CallScalarLeft(*exec.KernelCtx, scalar.Scalar, *exec.ArraySpan, *exec.ExecResult) error +} + +type commutativeBinaryKernel[T simpleBinaryKernel] struct{} + +func (commutativeBinaryKernel[T]) CallScalarRight(ctx *exec.KernelCtx, left *exec.ArraySpan, right scalar.Scalar, out *exec.ExecResult) error { + var t T + return t.CallScalarLeft(ctx, right, left, out) +} + +type SimpleBinaryKernel interface { + simpleBinaryKernel + CallScalarRight(*exec.KernelCtx, *exec.ArraySpan, scalar.Scalar, *exec.ExecResult) error +} + +func SimpleBinary[K SimpleBinaryKernel](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if batch.Len == 0 { + return nil + } + + var k K + if batch.Values[0].IsArray() { + if batch.Values[1].IsArray() { + return k.Call(ctx, &batch.Values[0].Array, &batch.Values[1].Array, out) + } + return k.CallScalarRight(ctx, &batch.Values[0].Array, batch.Values[1].Scalar, out) + } + + if batch.Values[1].IsArray() { + return k.CallScalarLeft(ctx, batch.Values[0].Scalar, &batch.Values[1].Array, out) + } + + debug.Assert(false, "should be unreachable") + return fmt.Errorf("%w: should be unreachable", arrow.ErrInvalid) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_hash.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_hash.go new file mode 100644 index 0000000..a0e452c --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_hash.go @@ -0,0 +1,565 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/bitutils" + "github.com/apache/arrow/go/v12/internal/hashing" +) + +type HashState interface { + // Reset for another run + Reset() error + // Flush out accumulated results from last invocation + Flush(*exec.ExecResult) error + // FlushFinal flushes the accumulated results across all invocations + // of calls. The kernel should not be used again until after + // Reset() is called. + FlushFinal(out *exec.ExecResult) error + // GetDictionary returns the values (keys) accumulated in the dictionary + // so far. + GetDictionary() (arrow.ArrayData, error) + ValueType() arrow.DataType + // Append prepares the action for the given input (reserving appropriately + // sized data structures, etc.) and visits the input with the Action + Append(*exec.KernelCtx, *exec.ArraySpan) error + Allocator() memory.Allocator +} + +type Action interface { + Reset() error + Reserve(int) error + Flush(*exec.ExecResult) error + FlushFinal(*exec.ExecResult) error + ObserveFound(int) + ObserveNotFound(int) error + ObserveNullFound(int) + ObserveNullNotFound(int) error + ShouldEncodeNulls() bool +} + +type emptyAction struct { + mem memory.Allocator + dt arrow.DataType +} + +func (emptyAction) Reset() error { return nil } +func (emptyAction) Reserve(int) error { return nil } +func (emptyAction) Flush(*exec.ExecResult) error { return nil } +func (emptyAction) FlushFinal(*exec.ExecResult) error { return nil } +func (emptyAction) ObserveFound(int) {} +func (emptyAction) ObserveNotFound(int) error { return nil } +func (emptyAction) ObserveNullFound(int) {} +func (emptyAction) ObserveNullNotFound(int) error { return nil } +func (emptyAction) ShouldEncodeNulls() bool { return true } + +type uniqueAction = emptyAction + +type regularHashState struct { + mem memory.Allocator + typ arrow.DataType + memoTable hashing.MemoTable + action Action + + doAppend func(Action, hashing.MemoTable, *exec.ArraySpan) error +} + +func (rhs *regularHashState) Allocator() memory.Allocator { return rhs.mem } + +func (rhs *regularHashState) ValueType() arrow.DataType { return rhs.typ } + +func (rhs *regularHashState) Reset() error { + rhs.memoTable.Reset() + return rhs.action.Reset() +} + +func (rhs *regularHashState) Append(_ *exec.KernelCtx, arr *exec.ArraySpan) error { + if err := rhs.action.Reserve(int(arr.Len)); err != nil { + return err + } + + return rhs.doAppend(rhs.action, rhs.memoTable, arr) +} + +func (rhs *regularHashState) Flush(out *exec.ExecResult) error { return rhs.action.Flush(out) } +func (rhs *regularHashState) FlushFinal(out *exec.ExecResult) error { + return rhs.action.FlushFinal(out) +} + +func (rhs *regularHashState) GetDictionary() (arrow.ArrayData, error) { + return array.GetDictArrayData(rhs.mem, rhs.typ, rhs.memoTable, 0) +} + +func doAppendBinary[OffsetT int32 | int64](action Action, memo hashing.MemoTable, arr *exec.ArraySpan) error { + var ( + bitmap = arr.Buffers[0].Buf + offsets = exec.GetSpanOffsets[OffsetT](arr, 1) + data = arr.Buffers[2].Buf + shouldEncodeNulls = action.ShouldEncodeNulls() + ) + + return bitutils.VisitBitBlocksShort(bitmap, arr.Offset, arr.Len, + func(pos int64) error { + v := data[offsets[pos]:offsets[pos+1]] + idx, found, err := memo.GetOrInsert(v) + if err != nil { + return err + } + if found { + action.ObserveFound(idx) + return nil + } + return action.ObserveNotFound(idx) + }, + func() error { + if !shouldEncodeNulls { + return action.ObserveNullNotFound(-1) + } + + idx, found := memo.GetOrInsertNull() + if found { + action.ObserveNullFound(idx) + } + return action.ObserveNullNotFound(idx) + }) +} + +func doAppendFixedSize(action Action, memo hashing.MemoTable, arr *exec.ArraySpan) error { + sz := int64(arr.Type.(arrow.FixedWidthDataType).Bytes()) + arrData := arr.Buffers[1].Buf[arr.Offset*sz:] + shouldEncodeNulls := action.ShouldEncodeNulls() + + return bitutils.VisitBitBlocksShort(arr.Buffers[0].Buf, arr.Offset, arr.Len, + func(pos int64) error { + // fixed size type memo table we use a binary memo table + // so get the raw bytes + idx, found, err := memo.GetOrInsert(arrData[pos*sz : (pos+1)*sz]) + if err != nil { + return err + } + if found { + action.ObserveFound(idx) + return nil + } + return action.ObserveNotFound(idx) + }, func() error { + if !shouldEncodeNulls { + return action.ObserveNullNotFound(-1) + } + + idx, found := memo.GetOrInsertNull() + if found { + action.ObserveNullFound(idx) + } + return action.ObserveNullNotFound(idx) + }) +} + +func doAppendNumeric[T exec.IntTypes | exec.UintTypes | exec.FloatTypes](action Action, memo hashing.MemoTable, arr *exec.ArraySpan) error { + arrData := exec.GetSpanValues[T](arr, 1) + shouldEncodeNulls := action.ShouldEncodeNulls() + return bitutils.VisitBitBlocksShort(arr.Buffers[0].Buf, arr.Offset, arr.Len, + func(pos int64) error { + idx, found, err := memo.GetOrInsert(arrData[pos]) + if err != nil { + return err + } + if found { + action.ObserveFound(idx) + return nil + } + return action.ObserveNotFound(idx) + }, func() error { + if !shouldEncodeNulls { + return action.ObserveNullNotFound(-1) + } + + idx, found := memo.GetOrInsertNull() + if found { + action.ObserveNullFound(idx) + } + return action.ObserveNullNotFound(idx) + }) +} + +type nullHashState struct { + mem memory.Allocator + typ arrow.DataType + seenNull bool + action Action +} + +func (nhs *nullHashState) Allocator() memory.Allocator { return nhs.mem } + +func (nhs *nullHashState) ValueType() arrow.DataType { return nhs.typ } + +func (nhs *nullHashState) Reset() error { + return nhs.action.Reset() +} + +func (nhs *nullHashState) Append(_ *exec.KernelCtx, arr *exec.ArraySpan) (err error) { + if err := nhs.action.Reserve(int(arr.Len)); err != nil { + return err + } + + for i := 0; i < int(arr.Len); i++ { + if i == 0 { + nhs.seenNull = true + err = nhs.action.ObserveNullNotFound(0) + } else { + nhs.action.ObserveNullFound(0) + } + } + return +} + +func (nhs *nullHashState) Flush(out *exec.ExecResult) error { return nhs.action.Flush(out) } +func (nhs *nullHashState) FlushFinal(out *exec.ExecResult) error { + return nhs.action.FlushFinal(out) +} + +func (nhs *nullHashState) GetDictionary() (arrow.ArrayData, error) { + var out arrow.Array + if nhs.seenNull { + out = array.NewNull(1) + } else { + out = array.NewNull(0) + } + data := out.Data() + data.Retain() + out.Release() + return data, nil +} + +type dictionaryHashState struct { + indicesKernel HashState + dictionary arrow.Array + dictValueType arrow.DataType +} + +func (dhs *dictionaryHashState) Allocator() memory.Allocator { return dhs.indicesKernel.Allocator() } +func (dhs *dictionaryHashState) Reset() error { return dhs.indicesKernel.Reset() } +func (dhs *dictionaryHashState) Flush(out *exec.ExecResult) error { + return dhs.indicesKernel.Flush(out) +} +func (dhs *dictionaryHashState) FlushFinal(out *exec.ExecResult) error { + return dhs.indicesKernel.FlushFinal(out) +} +func (dhs *dictionaryHashState) GetDictionary() (arrow.ArrayData, error) { + return dhs.indicesKernel.GetDictionary() +} +func (dhs *dictionaryHashState) ValueType() arrow.DataType { return dhs.indicesKernel.ValueType() } +func (dhs *dictionaryHashState) DictionaryValueType() arrow.DataType { return dhs.dictValueType } +func (dhs *dictionaryHashState) Dictionary() arrow.Array { return dhs.dictionary } +func (dhs *dictionaryHashState) Append(ctx *exec.KernelCtx, arr *exec.ArraySpan) error { + arrDict := arr.Dictionary().MakeArray() + if dhs.dictionary == nil || array.Equal(dhs.dictionary, arrDict) { + dhs.dictionary = arrDict + return dhs.indicesKernel.Append(ctx, arr) + } + + defer arrDict.Release() + + // NOTE: this approach computes a new dictionary unification per chunk + // this is in effect O(n*k) where n is the total chunked array length + // and k is the number of chunks (therefore O(n**2) if chunks have a fixed size). + // + // A better approach may be to run the kernel over each individual chunk, + // and then hash-aggregate all results (for example sum-group-by for + // the "value_counts" kernel) + unifier, err := array.NewDictionaryUnifier(dhs.indicesKernel.Allocator(), dhs.dictValueType) + if err != nil { + return err + } + defer unifier.Release() + + if err := unifier.Unify(dhs.dictionary); err != nil { + return err + } + transposeMap, err := unifier.UnifyAndTranspose(arrDict) + if err != nil { + return err + } + defer transposeMap.Release() + _, outDict, err := unifier.GetResult() + if err != nil { + return err + } + defer func() { + dhs.dictionary.Release() + dhs.dictionary = outDict + }() + + inDict := arr.MakeData() + defer inDict.Release() + tmp, err := array.TransposeDictIndices(dhs.Allocator(), inDict, arr.Type, arr.Type, outDict.Data(), arrow.Int32Traits.CastFromBytes(transposeMap.Bytes())) + if err != nil { + return err + } + defer tmp.Release() + + var tmpSpan exec.ArraySpan + tmpSpan.SetMembers(tmp) + return dhs.indicesKernel.Append(ctx, &tmpSpan) +} + +func nullHashInit(actionInit initAction) exec.KernelInitFn { + return func(ctx *exec.KernelCtx, args exec.KernelInitArgs) (exec.KernelState, error) { + mem := exec.GetAllocator(ctx.Ctx) + ret := &nullHashState{ + mem: mem, + typ: args.Inputs[0], + action: actionInit(args.Inputs[0], args.Options, mem), + } + ret.Reset() + return ret, nil + } +} + +func newMemoTable(mem memory.Allocator, dt arrow.Type) (hashing.MemoTable, error) { + switch dt { + case arrow.INT8, arrow.UINT8: + return hashing.NewUint8MemoTable(0), nil + case arrow.INT16, arrow.UINT16: + return hashing.NewUint16MemoTable(0), nil + case arrow.INT32, arrow.UINT32, arrow.FLOAT32, + arrow.DATE32, arrow.TIME32, arrow.INTERVAL_MONTHS: + return hashing.NewUint32MemoTable(0), nil + case arrow.INT64, arrow.UINT64, arrow.FLOAT64, + arrow.DATE64, arrow.TIME64, arrow.TIMESTAMP, + arrow.DURATION, arrow.INTERVAL_DAY_TIME: + return hashing.NewUint64MemoTable(0), nil + case arrow.BINARY, arrow.STRING, arrow.FIXED_SIZE_BINARY, arrow.DECIMAL128, + arrow.DECIMAL256, arrow.INTERVAL_MONTH_DAY_NANO: + return hashing.NewBinaryMemoTable(0, 0, + array.NewBinaryBuilder(mem, arrow.BinaryTypes.Binary)), nil + case arrow.LARGE_BINARY, arrow.LARGE_STRING: + return hashing.NewBinaryMemoTable(0, 0, + array.NewBinaryBuilder(mem, arrow.BinaryTypes.LargeBinary)), nil + default: + return nil, fmt.Errorf("%w: unsupported type %s", arrow.ErrNotImplemented, dt) + } +} + +func regularHashInit(dt arrow.DataType, actionInit initAction, appendFn func(Action, hashing.MemoTable, *exec.ArraySpan) error) exec.KernelInitFn { + return func(ctx *exec.KernelCtx, args exec.KernelInitArgs) (exec.KernelState, error) { + mem := exec.GetAllocator(ctx.Ctx) + memoTable, err := newMemoTable(mem, dt.ID()) + if err != nil { + return nil, err + } + + ret := ®ularHashState{ + mem: mem, + typ: args.Inputs[0], + memoTable: memoTable, + action: actionInit(args.Inputs[0], args.Options, mem), + doAppend: appendFn, + } + ret.Reset() + return ret, nil + } +} + +func dictionaryHashInit(actionInit initAction) exec.KernelInitFn { + return func(ctx *exec.KernelCtx, args exec.KernelInitArgs) (exec.KernelState, error) { + var ( + dictType = args.Inputs[0].(*arrow.DictionaryType) + indicesHasher exec.KernelState + err error + ) + + switch dictType.IndexType.ID() { + case arrow.INT8, arrow.UINT8: + indicesHasher, err = getHashInit(arrow.UINT8, actionInit)(ctx, args) + case arrow.INT16, arrow.UINT16: + indicesHasher, err = getHashInit(arrow.UINT16, actionInit)(ctx, args) + case arrow.INT32, arrow.UINT32: + indicesHasher, err = getHashInit(arrow.UINT32, actionInit)(ctx, args) + case arrow.INT64, arrow.UINT64: + indicesHasher, err = getHashInit(arrow.UINT64, actionInit)(ctx, args) + default: + return nil, fmt.Errorf("%w: unsupported dictionary index type", arrow.ErrInvalid) + } + if err != nil { + return nil, err + } + + return &dictionaryHashState{ + indicesKernel: indicesHasher.(HashState), + dictValueType: dictType.ValueType, + }, nil + } +} + +type initAction func(arrow.DataType, any, memory.Allocator) Action + +func getHashInit(typeID arrow.Type, actionInit initAction) exec.KernelInitFn { + switch typeID { + case arrow.NULL: + return nullHashInit(actionInit) + case arrow.INT8, arrow.UINT8: + return regularHashInit(arrow.PrimitiveTypes.Uint8, actionInit, doAppendNumeric[uint8]) + case arrow.INT16, arrow.UINT16: + return regularHashInit(arrow.PrimitiveTypes.Uint16, actionInit, doAppendNumeric[uint16]) + case arrow.INT32, arrow.UINT32, arrow.FLOAT32, + arrow.DATE32, arrow.TIME32, arrow.INTERVAL_MONTHS: + return regularHashInit(arrow.PrimitiveTypes.Uint32, actionInit, doAppendNumeric[uint32]) + case arrow.INT64, arrow.UINT64, arrow.FLOAT64, + arrow.DATE64, arrow.TIME64, arrow.TIMESTAMP, + arrow.DURATION, arrow.INTERVAL_DAY_TIME: + return regularHashInit(arrow.PrimitiveTypes.Uint64, actionInit, doAppendNumeric[uint64]) + case arrow.BINARY, arrow.STRING: + return regularHashInit(arrow.BinaryTypes.Binary, actionInit, doAppendBinary[int32]) + case arrow.LARGE_BINARY, arrow.LARGE_STRING: + return regularHashInit(arrow.BinaryTypes.LargeBinary, actionInit, doAppendBinary[int64]) + case arrow.FIXED_SIZE_BINARY, arrow.DECIMAL128, arrow.DECIMAL256: + return regularHashInit(arrow.BinaryTypes.Binary, actionInit, doAppendFixedSize) + case arrow.INTERVAL_MONTH_DAY_NANO: + return regularHashInit(arrow.FixedWidthTypes.MonthDayNanoInterval, actionInit, doAppendFixedSize) + default: + debug.Assert(false, "unsupported hash init type") + return nil + } +} + +func hashExec(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + impl, ok := ctx.State.(HashState) + if !ok { + return fmt.Errorf("%w: bad initialization of hash state", arrow.ErrInvalid) + } + + if err := impl.Append(ctx, &batch.Values[0].Array); err != nil { + return err + } + + return impl.Flush(out) +} + +func uniqueFinalize(ctx *exec.KernelCtx, results []*exec.ArraySpan) ([]*exec.ArraySpan, error) { + impl, ok := ctx.State.(HashState) + if !ok { + return nil, fmt.Errorf("%w: HashState in invalid state", arrow.ErrInvalid) + } + + for _, r := range results { + // release any pre-allocation we did + r.Release() + } + + uniques, err := impl.GetDictionary() + if err != nil { + return nil, err + } + defer uniques.Release() + + var out exec.ArraySpan + out.TakeOwnership(uniques) + return []*exec.ArraySpan{&out}, nil +} + +func ensureHashDictionary(ctx *exec.KernelCtx, hash *dictionaryHashState) (*exec.ArraySpan, error) { + out := &exec.ArraySpan{} + + if hash.dictionary != nil { + out.TakeOwnership(hash.dictionary.Data()) + hash.dictionary.Release() + return out, nil + } + + exec.FillZeroLength(hash.DictionaryValueType(), out) + return out, nil +} + +func uniqueFinalizeDictionary(ctx *exec.KernelCtx, result []*exec.ArraySpan) (out []*exec.ArraySpan, err error) { + if out, err = uniqueFinalize(ctx, result); err != nil { + return + } + + hash, ok := ctx.State.(*dictionaryHashState) + if !ok { + return nil, fmt.Errorf("%w: state should be *dictionaryHashState", arrow.ErrInvalid) + } + + dict, err := ensureHashDictionary(ctx, hash) + if err != nil { + return nil, err + } + out[0].SetDictionary(dict) + return +} + +func addHashKernels(base exec.VectorKernel, actionInit initAction, outTy exec.OutputType) []exec.VectorKernel { + kernels := make([]exec.VectorKernel, 0) + for _, ty := range primitiveTypes { + base.Init = getHashInit(ty.ID(), actionInit) + base.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{exec.NewExactInput(ty)}, + OutType: outTy, + } + kernels = append(kernels, base) + } + + parametricTypes := []arrow.Type{arrow.TIME32, arrow.TIME64, arrow.TIMESTAMP, + arrow.DURATION, arrow.FIXED_SIZE_BINARY, arrow.DECIMAL128, arrow.DECIMAL256, + arrow.INTERVAL_DAY_TIME, arrow.INTERVAL_MONTHS, arrow.INTERVAL_MONTH_DAY_NANO} + for _, ty := range parametricTypes { + base.Init = getHashInit(ty, actionInit) + base.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{exec.NewIDInput(ty)}, + OutType: outTy, + } + kernels = append(kernels, base) + } + + return kernels +} + +func initUnique(dt arrow.DataType, _ any, mem memory.Allocator) Action { + return uniqueAction{mem: mem, dt: dt} +} + +func GetVectorHashKernels() (unique, valueCounts, dictEncode []exec.VectorKernel) { + var base exec.VectorKernel + base.ExecFn = hashExec + + // unique + base.Finalize = uniqueFinalize + base.OutputChunked = false + base.CanExecuteChunkWise = true + unique = addHashKernels(base, initUnique, OutputFirstType) + + // dictionary unique + base.Init = dictionaryHashInit(initUnique) + base.Finalize = uniqueFinalizeDictionary + base.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{exec.NewIDInput(arrow.DICTIONARY)}, + OutType: OutputFirstType, + } + unique = append(unique, base) + + return +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_run_end_encode.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_run_end_encode.go new file mode 100644 index 0000000..1d5419f --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_run_end_encode.go @@ -0,0 +1,957 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "bytes" + "fmt" + "sort" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" +) + +type RunEndEncodeState struct { + RunEndType arrow.DataType +} + +func (RunEndEncodeState) TypeName() string { + return "RunEndEncodeOptions" +} + +type RunEndsType interface { + int16 | int32 | int64 +} + +func readFixedWidthVal[V exec.FixedWidthTypes](inputValidity, inputValues []byte, offset int64, out *V) bool { + sz := int64(unsafe.Sizeof(*out)) + *out = *(*V)(unsafe.Pointer(&inputValues[offset*sz])) + return bitutil.BitIsSet(inputValidity, int(offset)) +} + +func writeFixedWidthVal[V exec.FixedWidthTypes](result *exec.ExecResult, offset int64, valid bool, value V) { + if len(result.Buffers[0].Buf) != 0 { + bitutil.SetBitTo(result.Buffers[0].Buf, int(offset), valid) + } + + arr := exec.GetData[V](result.Buffers[1].Buf) + arr[offset] = value +} + +func readBoolVal(inputValidity, inputValues []byte, offset int64, out *bool) bool { + *out = bitutil.BitIsSet(inputValues, int(offset)) + return bitutil.BitIsSet(inputValidity, int(offset)) +} + +func writeBoolVal(result *exec.ExecResult, offset int64, valid bool, value bool) { + if len(result.Buffers[0].Buf) != 0 { + bitutil.SetBitTo(result.Buffers[0].Buf, int(offset), valid) + } + bitutil.SetBitTo(result.Buffers[1].Buf, int(offset), value) +} + +type runEndEncodeLoopFixedWidth[R RunEndsType, V exec.FixedWidthTypes | bool] struct { + inputLen, inputOffset int64 + inputValidity []byte + inputValues []byte + valueType arrow.DataType + + readValue func(inputValidity, inputValues []byte, offset int64, out *V) bool + writeValue func(*exec.ExecResult, int64, bool, V) +} + +func (re *runEndEncodeLoopFixedWidth[R, V]) WriteEncodedRuns(out *exec.ExecResult) int64 { + outputRunEnds := exec.GetData[R](out.Children[0].Buffers[1].Buf) + + readOffset := re.inputOffset + var currentRun V + curRunValid := re.readValue(re.inputValidity, re.inputValues, readOffset, ¤tRun) + readOffset++ + + var writeOffset int64 + var value V + for readOffset < re.inputOffset+re.inputLen { + valid := re.readValue(re.inputValidity, re.inputValues, readOffset, &value) + if valid != curRunValid || value != currentRun { + // close the current run by writing it out + re.writeValue(&out.Children[1], writeOffset, curRunValid, currentRun) + runEnd := R(readOffset - re.inputOffset) + outputRunEnds[writeOffset] = runEnd + writeOffset++ + curRunValid, currentRun = valid, value + } + readOffset++ + } + + re.writeValue(&out.Children[1], writeOffset, curRunValid, currentRun) + outputRunEnds[writeOffset] = R(re.inputLen) + return writeOffset + 1 +} + +func (re *runEndEncodeLoopFixedWidth[R, V]) CountNumberOfRuns() (numValid, numOutput int64) { + offset := re.inputOffset + var currentRun V + curRunValid := re.readValue(re.inputValidity, re.inputValues, offset, ¤tRun) + offset++ + + if curRunValid { + numValid = 1 + } + numOutput = 1 + + var value V + for offset < re.inputOffset+re.inputLen { + valid := re.readValue(re.inputValidity, re.inputValues, offset, &value) + offset++ + // new run + if valid != curRunValid || value != currentRun { + currentRun = value + curRunValid = valid + + numOutput++ + if valid { + numValid++ + } + } + } + return +} + +func (re *runEndEncodeLoopFixedWidth[R, V]) PreallocOutput(ctx *exec.KernelCtx, numOutput int64, out *exec.ExecResult) { + runEndsBuffer := ctx.Allocate(int(numOutput) * int(SizeOf[R]())) + var validityBuffer *memory.Buffer + if len(re.inputValidity) > 0 { + validityBuffer = ctx.AllocateBitmap(numOutput) + } + + var valueBuffer *memory.Buffer + bufSpec := re.valueType.Layout().Buffers[1] + if bufSpec.Kind == arrow.KindBitmap { + valueBuffer = ctx.AllocateBitmap(numOutput) + } else { + valueBuffer = ctx.Allocate(int(numOutput) * bufSpec.ByteWidth) + } + + reeType := arrow.RunEndEncodedOf(exec.GetDataType[R](), re.valueType) + out.Release() + + *out = exec.ExecResult{ + Type: reeType, + Len: re.inputLen, + Nulls: 0, + Offset: 0, + Children: []exec.ArraySpan{ + { + Type: reeType.RunEnds(), + Len: numOutput, + }, + { + Type: reeType.Encoded(), + Len: numOutput, + }, + }, + } + + out.Children[0].Buffers[1].WrapBuffer(runEndsBuffer) + if validityBuffer != nil { + out.Children[1].Buffers[0].WrapBuffer(validityBuffer) + } + out.Children[1].Buffers[1].WrapBuffer(valueBuffer) +} + +type runEndEncodeFSB[R RunEndsType] struct { + inputLen, inputOffset int64 + inputValidity, inputValues []byte + valueType arrow.DataType + width int +} + +func (re *runEndEncodeFSB[R]) readValue(idx int64) ([]byte, bool) { + if len(re.inputValidity) > 0 && bitutil.BitIsNotSet(re.inputValidity, int(idx)) { + return nil, false + } + + start, end := idx*int64(re.width), (idx+1)*int64(re.width) + return re.inputValues[start:end], true +} + +func (re *runEndEncodeFSB[R]) CountNumberOfRuns() (numValid, numOutput int64) { + offset := re.inputOffset + currentRun, curRunValid := re.readValue(offset) + offset++ + + if curRunValid { + numValid++ + } + numOutput = 1 + + for offset < re.inputOffset+re.inputLen { + value, valid := re.readValue(offset) + offset++ + if valid != curRunValid || !bytes.Equal(value, currentRun) { + currentRun, curRunValid = value, valid + numOutput++ + if valid { + numValid++ + } + } + } + return +} + +func (re *runEndEncodeFSB[R]) PreallocOutput(ctx *exec.KernelCtx, numOutput int64, out *exec.ExecResult) { + runEndsBuffer := ctx.Allocate(int(numOutput) * int(SizeOf[R]())) + var validityBuffer *memory.Buffer + if len(re.inputValidity) > 0 { + validityBuffer = ctx.AllocateBitmap(numOutput) + } + + valueBuffer := ctx.Allocate(re.width * int(numOutput)) + reeType := arrow.RunEndEncodedOf(exec.GetDataType[R](), re.valueType) + out.Release() + + *out = exec.ExecResult{ + Type: reeType, + Len: re.inputLen, + Nulls: 0, + Offset: 0, + Children: []exec.ArraySpan{ + { + Type: reeType.RunEnds(), + Len: numOutput, + }, + { + Type: reeType.Encoded(), + Len: numOutput, + }, + }, + } + + out.Children[0].Buffers[1].WrapBuffer(runEndsBuffer) + if validityBuffer != nil { + out.Children[1].Buffers[0].WrapBuffer(validityBuffer) + } + out.Children[1].Buffers[1].WrapBuffer(valueBuffer) +} + +func (re *runEndEncodeFSB[R]) WriteEncodedRuns(out *exec.ExecResult) int64 { + outputRunEnds := exec.GetData[R](out.Children[0].Buffers[1].Buf) + outputValues := out.Children[1].Buffers[1].Buf + + readOffset := re.inputOffset + currentRun, curRunValid := re.readValue(readOffset) + readOffset++ + + var writeOffset int64 + validityBuf := out.Children[1].Buffers[0].Buf + setValidity := func(valid bool) {} + if len(validityBuf) > 0 { + setValidity = func(valid bool) { + bitutil.SetBitTo(validityBuf, int(writeOffset), valid) + } + } + + writeValue := func(valid bool, value []byte) { + setValidity(valid) + start := writeOffset * int64(re.width) + copy(outputValues[start:], value) + } + + for readOffset < re.inputOffset+re.inputLen { + value, valid := re.readValue(readOffset) + + if valid != curRunValid || !bytes.Equal(value, currentRun) { + writeValue(curRunValid, currentRun) + runEnd := R(readOffset - re.inputOffset) + outputRunEnds[writeOffset] = runEnd + writeOffset++ + curRunValid, currentRun = valid, value + } + + readOffset++ + } + + writeValue(curRunValid, currentRun) + outputRunEnds[writeOffset] = R(re.inputLen) + return writeOffset + 1 +} + +type runEndEncodeLoopBinary[R RunEndsType, O int32 | int64] struct { + inputLen, inputOffset int64 + inputValidity, inputValues []byte + offsetValues []O + valueType arrow.DataType + + estimatedValuesLen int64 +} + +func (re *runEndEncodeLoopBinary[R, O]) readValue(idx int64) ([]byte, bool) { + if len(re.inputValidity) > 0 && bitutil.BitIsNotSet(re.inputValidity, int(idx+re.inputOffset)) { + return nil, false + } + + start, end := re.offsetValues[idx], re.offsetValues[idx+1] + return re.inputValues[start:end], true +} + +func (re *runEndEncodeLoopBinary[R, O]) CountNumberOfRuns() (numValid, numOutput int64) { + re.estimatedValuesLen = 0 + // re.offsetValues already accounts for the input.Offset so we don't + // need to use it as the initial value for `offset` here. + var offset int64 + currentRun, curRunValid := re.readValue(offset) + offset++ + + if curRunValid { + numValid = 1 + re.estimatedValuesLen += int64(len(currentRun)) + } + numOutput = 1 + + for offset < re.inputLen { + value, valid := re.readValue(offset) + offset++ + // new run + if valid != curRunValid || !bytes.Equal(value, currentRun) { + if valid { + re.estimatedValuesLen += int64(len(value)) + } + + currentRun = value + curRunValid = valid + + numOutput++ + if valid { + numValid++ + } + } + } + return +} + +func (re *runEndEncodeLoopBinary[R, O]) PreallocOutput(ctx *exec.KernelCtx, numOutput int64, out *exec.ExecResult) { + runEndsBuffer := ctx.Allocate(int(numOutput) * int(SizeOf[R]())) + var validityBuffer *memory.Buffer + if len(re.inputValidity) > 0 { + validityBuffer = ctx.AllocateBitmap(numOutput) + } + + valueBuffer := ctx.Allocate(int(re.estimatedValuesLen)) + offsetsBuffer := ctx.Allocate(int(numOutput+1) * int(SizeOf[O]())) + + reeType := arrow.RunEndEncodedOf(exec.GetDataType[R](), re.valueType) + *out = exec.ExecResult{ + Type: reeType, + Len: re.inputLen, + Nulls: 0, + Offset: 0, + Children: []exec.ArraySpan{ + { + Type: reeType.RunEnds(), + Len: numOutput, + }, + { + Type: reeType.Encoded(), + Len: numOutput, + }, + }, + } + + out.Children[0].Buffers[1].WrapBuffer(runEndsBuffer) + if validityBuffer != nil { + out.Children[1].Buffers[0].WrapBuffer(validityBuffer) + } + out.Children[1].Buffers[1].WrapBuffer(offsetsBuffer) + out.Children[1].Buffers[2].WrapBuffer(valueBuffer) +} + +func (re *runEndEncodeLoopBinary[R, O]) WriteEncodedRuns(out *exec.ExecResult) int64 { + outputRunEnds := exec.GetData[R](out.Children[0].Buffers[1].Buf) + outputOffsets := exec.GetSpanOffsets[O](&out.Children[1], 1) + outputValues := out.Children[1].Buffers[2].Buf + + // re.offsetValues already accounts for the input.offset so we don't + // need to initalize readOffset to re.inputOffset + var readOffset int64 + currentRun, curRunValid := re.readValue(readOffset) + readOffset++ + + var writeOffset, valueOffset int64 + validityBuf := out.Children[1].Buffers[0].Buf + setValidity := func(valid bool) {} + if len(validityBuf) > 0 { + setValidity = func(valid bool) { + bitutil.SetBitTo(validityBuf, int(writeOffset), valid) + } + } + + outputOffsets[0], outputOffsets = 0, outputOffsets[1:] + + writeValue := func(valid bool, value []byte) { + setValidity(valid) + valueOffset += int64(copy(outputValues[valueOffset:], value)) + outputOffsets[writeOffset] = O(valueOffset) + } + + for readOffset < re.inputLen { + value, valid := re.readValue(readOffset) + + if valid != curRunValid || !bytes.Equal(value, currentRun) { + writeValue(curRunValid, currentRun) + runEnd := R(readOffset) + outputRunEnds[writeOffset] = runEnd + writeOffset++ + curRunValid, currentRun = valid, value + } + readOffset++ + } + + writeValue(curRunValid, currentRun) + outputRunEnds[writeOffset] = R(re.inputLen) + return writeOffset + 1 +} + +func validateRunEndType[R RunEndsType](length int64) error { + runEndMax := MaxOf[R]() + if length > int64(runEndMax) { + return fmt.Errorf("%w: cannot run-end encode arrays with more elements than the run end type can hold: %d", + arrow.ErrInvalid, runEndMax) + } + return nil +} + +func createEncoder[R RunEndsType, V exec.FixedWidthTypes](input *exec.ArraySpan) *runEndEncodeLoopFixedWidth[R, V] { + return &runEndEncodeLoopFixedWidth[R, V]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputValidity: input.Buffers[0].Buf, + inputValues: input.Buffers[1].Buf, + valueType: input.Type, + readValue: readFixedWidthVal[V], + writeValue: writeFixedWidthVal[V], + } +} + +func createVarBinaryEncoder[R RunEndsType, O int32 | int64](input *exec.ArraySpan) *runEndEncodeLoopBinary[R, O] { + return &runEndEncodeLoopBinary[R, O]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputValidity: input.Buffers[0].Buf, + inputValues: input.Buffers[2].Buf, + // exec.GetSpanOffsets applies input.Offset to the resulting slice + offsetValues: exec.GetSpanOffsets[O](input, 1), + valueType: input.Type, + } +} + +func newEncoder[R RunEndsType](input *exec.ArraySpan) encoder { + switch input.Type.ID() { + case arrow.BOOL: + return &runEndEncodeLoopFixedWidth[R, bool]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputValidity: input.Buffers[0].Buf, + inputValues: input.Buffers[1].Buf, + valueType: input.Type, + readValue: readBoolVal, + writeValue: writeBoolVal, + } + // for the other fixed size types, we only need to + // handle the different physical representations. + case arrow.INT8, arrow.UINT8: + return createEncoder[R, uint8](input) + case arrow.INT16, arrow.UINT16: + return createEncoder[R, uint16](input) + case arrow.INT32, arrow.UINT32, arrow.DATE32, + arrow.TIME32, arrow.INTERVAL_MONTHS: + return createEncoder[R, uint32](input) + case arrow.INT64, arrow.UINT64, arrow.DATE64, + arrow.TIME64, arrow.DURATION, arrow.TIMESTAMP: + return createEncoder[R, uint64](input) + case arrow.FLOAT16: + return createEncoder[R, float16.Num](input) + case arrow.FLOAT32: + return createEncoder[R, float32](input) + case arrow.FLOAT64: + return createEncoder[R, float64](input) + case arrow.DECIMAL128: + return createEncoder[R, decimal128.Num](input) + case arrow.DECIMAL256: + return createEncoder[R, decimal256.Num](input) + case arrow.INTERVAL_DAY_TIME: + return createEncoder[R, arrow.DayTimeInterval](input) + case arrow.INTERVAL_MONTH_DAY_NANO: + return createEncoder[R, arrow.MonthDayNanoInterval](input) + case arrow.BINARY, arrow.STRING: + return createVarBinaryEncoder[R, int32](input) + case arrow.LARGE_BINARY, arrow.LARGE_STRING: + return createVarBinaryEncoder[R, int64](input) + case arrow.FIXED_SIZE_BINARY: + return &runEndEncodeFSB[R]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputValidity: input.Buffers[0].Buf, + inputValues: input.Buffers[1].Buf, + valueType: input.Type, + width: input.Type.(*arrow.FixedSizeBinaryType).ByteWidth, + } + } + return nil +} + +type encoder interface { + CountNumberOfRuns() (numValid, numOutput int64) + PreallocOutput(*exec.KernelCtx, int64, *exec.ExecResult) + WriteEncodedRuns(*exec.ExecResult) int64 +} + +func runEndEncodeImpl[R RunEndsType](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + // first pass: count the number of runs + var ( + inputArr = &batch.Values[0].Array + inputLen = inputArr.Len + numOutputRuns int64 + numValidRuns int64 + enc encoder + ) + + if inputLen == 0 { + reeType := arrow.RunEndEncodedOf(exec.GetDataType[R](), inputArr.Type) + *out = exec.ExecResult{ + Type: reeType, + Children: []exec.ArraySpan{ + {Type: reeType.RunEnds()}, {Type: reeType.Encoded()}, + }, + } + return nil + } + + if err := validateRunEndType[R](inputLen); err != nil { + return err + } + + enc = newEncoder[R](inputArr) + numValidRuns, numOutputRuns = enc.CountNumberOfRuns() + enc.PreallocOutput(ctx, numOutputRuns, out) + + out.Children[1].Nulls = numOutputRuns - numValidRuns + + written := enc.WriteEncodedRuns(out) + debug.Assert(written == numOutputRuns, "mismatch number of written values") + return nil +} + +func runEndEncodeExec(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + reeType := ctx.State.(RunEndEncodeState).RunEndType + switch reeType.ID() { + case arrow.INT16: + return runEndEncodeImpl[int16](ctx, batch, out) + case arrow.INT32: + return runEndEncodeImpl[int32](ctx, batch, out) + case arrow.INT64: + return runEndEncodeImpl[int64](ctx, batch, out) + } + + return fmt.Errorf("%w: bad run end type %s", arrow.ErrInvalid, reeType) +} + +type decodeBool[R RunEndsType] struct { + inputLen, inputOffset int64 + inputRunEnds []R + + inputPhysicalOffset int64 + inputValidity []byte + inputValues []byte + inputValueOffset int64 +} + +func (de *decodeBool[R]) PreallocOutput(ctx *exec.KernelCtx, out *exec.ExecResult) { + *out = exec.ExecResult{ + Type: arrow.FixedWidthTypes.Boolean, + Len: de.inputLen, + } + + if len(de.inputValidity) != 0 { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(de.inputLen)) + } + + out.Buffers[1].WrapBuffer(ctx.AllocateBitmap(de.inputLen)) +} + +func (de *decodeBool[R]) ExpandAllRuns(out *exec.ExecResult) int64 { + var ( + writeOffset int64 + runLength, numValid int64 + outputValues = out.Buffers[1].Buf + prevRunEnd = R(de.inputOffset) + hasValidity = len(de.inputValidity) != 0 && len(out.Buffers[0].Buf) != 0 + ) + + for i, runEnd := range de.inputRunEnds[de.inputPhysicalOffset:] { + runLength, prevRunEnd = int64(runEnd-prevRunEnd), runEnd + // if this run is a null, clear the bits and update writeOffset + if hasValidity { + if bitutil.BitIsNotSet(de.inputValidity, int(de.inputValueOffset+de.inputPhysicalOffset)+i) { + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, false) + writeOffset += runLength + continue + } + + // if the output has a validity bitmap, update it with 1s + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, true) + } + + // get the value for this run + where to start writing + value := bitutil.BitIsSet(de.inputValues, int(de.inputValueOffset+de.inputPhysicalOffset)+i) + bitutil.SetBitsTo(outputValues, writeOffset, runLength, value) + writeOffset += runLength + numValid += runLength + } + + return numValid +} + +type decodeFixedWidth[R RunEndsType] struct { + inputLen, inputOffset int64 + inputRunEnds []R + + inputPhysicalOffset int64 + inputValidity []byte + inputValues []byte + inputValueOffset int64 + + valueType arrow.DataType +} + +func (de *decodeFixedWidth[R]) PreallocOutput(ctx *exec.KernelCtx, out *exec.ExecResult) { + *out = exec.ExecResult{ + Type: de.valueType, + Len: de.inputLen, + } + + if len(de.inputValidity) != 0 { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(de.inputLen)) + } + + out.Buffers[1].WrapBuffer(ctx.Allocate(int(de.inputLen) * de.valueType.(arrow.FixedWidthDataType).Bytes())) +} + +func (de *decodeFixedWidth[R]) ExpandAllRuns(out *exec.ExecResult) int64 { + var ( + writeOffset int64 + runLength, numValid int64 + outputValues = out.Buffers[1].Buf + width = de.valueType.(arrow.FixedWidthDataType).Bytes() + inputValues = de.inputValues[(de.inputValueOffset+de.inputPhysicalOffset)*int64(width):] + prevRunEnd = R(de.inputOffset) + hasValidity = len(de.inputValidity) != 0 && len(out.Buffers[0].Buf) != 0 + ) + + for i, runEnd := range de.inputRunEnds[de.inputPhysicalOffset:] { + runLength, prevRunEnd = int64(runEnd-prevRunEnd), runEnd + // if this run is a null, clear the bits and update writeOffset + if hasValidity { + if bitutil.BitIsNotSet(de.inputValidity, int(de.inputValueOffset+de.inputPhysicalOffset)+i) { + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, false) + writeOffset += runLength + continue + } + + // if the output has a validity bitmap, update it with 1s + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, true) + } + + // get the value for this run + where to start writing + var ( + value = inputValues[i*width : (i+1)*width] + outputStart = writeOffset * int64(width) + ) + writeOffset += runLength + numValid += runLength + + // get the slice of our output buffer we want to fill + // just incrementally duplicate the bytes until we've filled + // the slice with runLength copies of the value + outputSlice := outputValues[outputStart : writeOffset*int64(width)] + copy(outputSlice, value) + for j := width; j < len(outputSlice); j *= 2 { + copy(outputSlice[j:], outputSlice[:j]) + } + } + + return numValid +} + +type decodeBinary[R RunEndsType, O int32 | int64] struct { + inputLen, inputLogicalOffset int64 + inputRunEnds []R + + inputPhysicalOffset int64 + inputValuesOffset int64 + inputValidity []byte + inputValues []byte + inputOffsets []O + + valueType arrow.DataType +} + +func (de *decodeBinary[R, O]) PreallocOutput(ctx *exec.KernelCtx, out *exec.ExecResult) { + var ( + runLength int64 + prevRunEnd = R(de.inputLogicalOffset) + totalSize int + ) + + for i, runEnd := range de.inputRunEnds[de.inputPhysicalOffset:] { + runLength, prevRunEnd = int64(runEnd-prevRunEnd), runEnd + + start := de.inputOffsets[de.inputPhysicalOffset+int64(i)] + end := de.inputOffsets[de.inputPhysicalOffset+int64(i)+1] + + totalSize += int(end-start) * int(runLength) + } + + *out = exec.ExecResult{ + Type: de.valueType, + Len: de.inputLen, + } + + if len(de.inputValidity) != 0 { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(de.inputLen)) + } + + out.Buffers[1].WrapBuffer(ctx.Allocate(int(de.inputLen+1) * int(SizeOf[O]()))) + out.Buffers[2].WrapBuffer(ctx.Allocate(totalSize)) +} + +func (de *decodeBinary[R, O]) ExpandAllRuns(out *exec.ExecResult) int64 { + var ( + writeOffset, valueWriteOffset int64 + runLength, numValid int64 + outputOffsets = exec.GetSpanOffsets[O](out, 1) + outputValues = out.Buffers[2].Buf + prevRunEnd = R(de.inputLogicalOffset) + hasValidity = len(de.inputValidity) != 0 && len(out.Buffers[0].Buf) != 0 + ) + + for i, runEnd := range de.inputRunEnds[de.inputPhysicalOffset:] { + runLength, prevRunEnd = int64(runEnd-prevRunEnd), runEnd + + // if this run is a null, clear the bits and update writeOffset + if hasValidity && bitutil.BitIsNotSet(de.inputValidity, int(de.inputValuesOffset+de.inputPhysicalOffset)+i) { + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, false) + } else { + numValid += runLength + if hasValidity { + bitutil.SetBitsTo(out.Buffers[0].Buf, writeOffset, runLength, true) + } + } + + // get the value for this run + where to start writing + // de.inputOffsets already accounts for inputOffset so we don't + // need to add it here, we can just use the physicaloffset and that's + // sufficient to get the correct values. + var ( + start = de.inputOffsets[de.inputPhysicalOffset+int64(i)] + end = de.inputOffsets[de.inputPhysicalOffset+int64(i)+1] + value = de.inputValues[start:end] + + outputValueEnd = valueWriteOffset + int64(len(value)*int(runLength)) + ) + + // get the slice of our output buffer we want to fill + // just incrementally duplicate the bytes until we've filled + // the slice with runLength copies of the value + outputSlice := outputValues[valueWriteOffset:outputValueEnd] + copy(outputSlice, value) + for j := len(value); j < len(outputSlice); j *= 2 { + copy(outputSlice[j:], outputSlice[:j]) + } + + for j := int64(0); j < runLength; j++ { + outputOffsets[writeOffset+j] = O(valueWriteOffset) + valueWriteOffset += int64(len(value)) + } + + writeOffset += runLength + } + + outputOffsets[writeOffset] = O(valueWriteOffset) + return numValid +} + +type decoder interface { + PreallocOutput(*exec.KernelCtx, *exec.ExecResult) + ExpandAllRuns(*exec.ExecResult) int64 +} + +func newDecoder[R RunEndsType](input *exec.ArraySpan) decoder { + logicalOffset := R(input.Offset) + runEnds := exec.GetSpanValues[R](&input.Children[0], 1) + physicalOffset := sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > logicalOffset }) + + switch dt := input.Children[1].Type.(type) { + case *arrow.BooleanType: + return &decodeBool[R]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputValidity: input.Children[1].Buffers[0].Buf, + inputValues: input.Children[1].Buffers[1].Buf, + inputValueOffset: input.Children[1].Offset, + inputPhysicalOffset: int64(physicalOffset), + inputRunEnds: runEnds, + } + case *arrow.BinaryType, *arrow.StringType: + return &decodeBinary[R, int32]{ + inputLen: input.Len, + inputLogicalOffset: input.Offset, + inputRunEnds: runEnds, + inputPhysicalOffset: int64(physicalOffset), + inputValuesOffset: input.Children[1].Offset, + inputValidity: input.Children[1].Buffers[0].Buf, + inputValues: input.Children[1].Buffers[2].Buf, + inputOffsets: exec.GetSpanOffsets[int32](&input.Children[1], 1), + valueType: input.Children[1].Type, + } + case *arrow.LargeBinaryType, *arrow.LargeStringType: + return &decodeBinary[R, int64]{ + inputLen: input.Len, + inputLogicalOffset: input.Offset, + inputRunEnds: runEnds, + inputPhysicalOffset: int64(physicalOffset), + inputValuesOffset: input.Children[1].Offset, + inputValidity: input.Children[1].Buffers[0].Buf, + inputValues: input.Children[1].Buffers[2].Buf, + inputOffsets: exec.GetSpanOffsets[int64](&input.Children[1], 1), + valueType: input.Children[1].Type, + } + case arrow.FixedWidthDataType: + return &decodeFixedWidth[R]{ + inputLen: input.Len, + inputOffset: input.Offset, + inputRunEnds: runEnds, + inputPhysicalOffset: int64(physicalOffset), + inputValidity: input.Children[1].Buffers[0].Buf, + inputValues: input.Children[1].Buffers[1].Buf, + inputValueOffset: input.Children[1].Offset, + valueType: dt, + } + } + + return nil +} + +func runEndDecodeImpl[R RunEndsType](ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + inputArr := &batch.Values[0].Array + + if inputArr.Len == 0 { + return nil + } + + dec := newDecoder[R](inputArr) + dec.PreallocOutput(ctx, out) + out.Nulls = inputArr.Len - dec.ExpandAllRuns(out) + return nil +} + +func runEndDecodeExec(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + reeType := batch.Values[0].Type().(*arrow.RunEndEncodedType) + switch reeType.RunEnds().ID() { + case arrow.INT16: + return runEndDecodeImpl[int16](ctx, batch, out) + case arrow.INT32: + return runEndDecodeImpl[int32](ctx, batch, out) + case arrow.INT64: + return runEndDecodeImpl[int64](ctx, batch, out) + } + + return fmt.Errorf("%w: bad run end type %s", arrow.ErrInvalid, reeType.RunEnds()) +} + +func runEndEncodeOutputTypeResolver(ctx *exec.KernelCtx, inputTypes []arrow.DataType) (arrow.DataType, error) { + reeType := ctx.State.(RunEndEncodeState).RunEndType + return arrow.RunEndEncodedOf(reeType, inputTypes[0]), nil +} + +func runEndDecodeOutputTypeResolver(ctx *exec.KernelCtx, inputTypes []arrow.DataType) (arrow.DataType, error) { + reeType := inputTypes[0].(*arrow.RunEndEncodedType) + return reeType.Encoded(), nil +} + +func GetRunEndEncodeKernels() (encodeKns, decodeKns []exec.VectorKernel) { + baseEncode := exec.VectorKernel{ + NullHandling: exec.NullNoOutput, + MemAlloc: exec.MemNoPrealloc, + CanExecuteChunkWise: true, + ExecFn: runEndEncodeExec, + OutputChunked: true, + } + + baseDecode := exec.VectorKernel{ + NullHandling: exec.NullNoOutput, + MemAlloc: exec.MemNoPrealloc, + CanExecuteChunkWise: true, + ExecFn: runEndDecodeExec, + OutputChunked: true, + } + + baseEncode.Init = exec.OptionsInit[RunEndEncodeState] + + encodeKns, decodeKns = make([]exec.VectorKernel, 0), make([]exec.VectorKernel, 0) + addKernel := func(ty arrow.Type) { + baseEncode.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{exec.NewIDInput(ty)}, + OutType: exec.NewComputedOutputType(runEndEncodeOutputTypeResolver), + } + encodeKns = append(encodeKns, baseEncode) + + baseDecode.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{exec.NewMatchedInput( + exec.RunEndEncoded(exec.Integer(), exec.SameTypeID(ty)))}, + OutType: exec.NewComputedOutputType(runEndDecodeOutputTypeResolver), + } + decodeKns = append(decodeKns, baseDecode) + } + + for _, ty := range primitiveTypes { + addKernel(ty.ID()) + } + addKernel(arrow.BOOL) + + nonPrimitiveSupported := []arrow.Type{ + arrow.FLOAT16, arrow.DECIMAL128, arrow.DECIMAL256, + arrow.TIME32, arrow.TIME64, arrow.TIMESTAMP, + arrow.INTERVAL_DAY_TIME, arrow.INTERVAL_MONTHS, + arrow.INTERVAL_MONTH_DAY_NANO, + arrow.FIXED_SIZE_BINARY, + } + + for _, ty := range nonPrimitiveSupported { + addKernel(ty) + } + + return +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_selection.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_selection.go new file mode 100644 index 0000000..c10f6e6 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/internal/kernels/vector_selection.go @@ -0,0 +1,1789 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package kernels + +import ( + "fmt" + "math" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/bitutils" +) + +type NullSelectionBehavior int8 + +const ( + DropNulls NullSelectionBehavior = iota + EmitNulls +) + +type FilterOptions struct { + NullSelection NullSelectionBehavior `compute:"null_selection_behavior"` +} + +func (FilterOptions) TypeName() string { return "FilterOptions" } + +type FilterState = FilterOptions + +type TakeOptions struct { + BoundsCheck bool +} + +func (TakeOptions) TypeName() string { return "TakeOptions" } + +type TakeState = TakeOptions + +func getFilterOutputSize(filter *exec.ArraySpan, nullSelection NullSelectionBehavior) (size int64) { + if filter.MayHaveNulls() { + counter := bitutils.NewBinaryBitBlockCounter(filter.Buffers[1].Buf, + filter.Buffers[0].Buf, filter.Offset, filter.Offset, filter.Len) + + pos := int64(0) + if nullSelection == EmitNulls { + for pos < filter.Len { + block := counter.NextOrNotWord() + size += int64(block.Popcnt) + pos += int64(block.Len) + } + } else { + for pos < filter.Len { + block := counter.NextAndWord() + size += int64(block.Popcnt) + pos += int64(block.Len) + } + } + return + } + + // filter has no nulls, so we can just use CountSetBits + return int64(bitutil.CountSetBits(filter.Buffers[1].Buf, int(filter.Offset), int(filter.Len))) +} + +func preallocateData(ctx *exec.KernelCtx, length int64, bitWidth int, allocateValidity bool, out *exec.ExecResult) { + out.Len = length + if allocateValidity { + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(length)) + } + if bitWidth == 1 { + out.Buffers[1].WrapBuffer(ctx.AllocateBitmap(length)) + } else { + out.Buffers[1].WrapBuffer(ctx.Allocate(int(length) * (bitWidth / 8))) + } +} + +type builder[T any] interface { + array.Builder + Append(T) + UnsafeAppend(T) + UnsafeAppendBoolToBitmap(bool) +} + +func getTakeIndices[T exec.IntTypes | exec.UintTypes](mem memory.Allocator, filter *exec.ArraySpan, nullSelect NullSelectionBehavior) arrow.ArrayData { + var ( + filterData = filter.Buffers[1].Buf + haveFilterNulls = filter.MayHaveNulls() + filterIsValid = filter.Buffers[0].Buf + idxType = exec.GetDataType[T]() + ) + + if haveFilterNulls && nullSelect == EmitNulls { + // Most complex case: the filter may have nulls and we don't drop them. + // The logic is ternary: + // - filter is null: emit null + // - filter is valid and true: emit index + // - filter is valid and false: don't emit anything + + bldr := array.NewBuilder(mem, idxType).(builder[T]) + defer bldr.Release() + + // position relative to start of filter + var pos T + // current position taking the filter offset into account + posWithOffset := filter.Offset + + // to count blocks where filterData[i] || !filterIsValid[i] + filterCounter := bitutils.NewBinaryBitBlockCounter(filterData, filterIsValid, filter.Offset, filter.Offset, filter.Len) + isValidCounter := bitutils.NewBitBlockCounter(filterIsValid, filter.Offset, filter.Len) + for int64(pos) < filter.Len { + // true OR NOT valid + selectedOrNullBlock := filterCounter.NextOrNotWord() + if selectedOrNullBlock.NoneSet() { + pos += T(selectedOrNullBlock.Len) + posWithOffset += int64(selectedOrNullBlock.Len) + continue + } + bldr.Reserve(int(selectedOrNullBlock.Popcnt)) + + // if the values are all valid and the selectedOrNullBlock + // is full, then we can infer that all the values are true + // and skip the bit checking + isValidBlock := isValidCounter.NextWord() + if selectedOrNullBlock.AllSet() && isValidBlock.AllSet() { + // all the values are selected and non-null + for i := 0; i < int(selectedOrNullBlock.Len); i++ { + bldr.UnsafeAppend(pos) + pos++ + } + posWithOffset += int64(selectedOrNullBlock.Len) + } else { + // some of the values are false or null + for i := 0; i < int(selectedOrNullBlock.Len); i++ { + if bitutil.BitIsSet(filterIsValid, int(posWithOffset)) { + if bitutil.BitIsSet(filterData, int(posWithOffset)) { + bldr.UnsafeAppend(pos) + } + } else { + // null slot, append null + bldr.UnsafeAppendBoolToBitmap(false) + } + pos++ + posWithOffset++ + } + } + } + + result := bldr.NewArray() + defer result.Release() + result.Data().Retain() + return result.Data() + } + + bldr := newBufferBuilder[T](mem) + if haveFilterNulls { + // the filter may have nulls, so we scan the validity bitmap + // and the filter data bitmap together + debug.Assert(nullSelect == DropNulls, "incorrect nullselect logic") + + // position relative to start of the filter + var pos T + // current position taking the filter offset into account + posWithOffset := filter.Offset + + filterCounter := bitutils.NewBinaryBitBlockCounter(filterData, filterIsValid, filter.Offset, filter.Offset, filter.Len) + for int64(pos) < filter.Len { + andBlock := filterCounter.NextAndWord() + bldr.reserve(int(andBlock.Popcnt)) + if andBlock.AllSet() { + // all the values are selected and non-null + for i := 0; i < int(andBlock.Len); i++ { + bldr.unsafeAppend(pos) + pos++ + } + posWithOffset += int64(andBlock.Len) + } else if !andBlock.NoneSet() { + // some values are false or null + for i := 0; i < int(andBlock.Len); i++ { + if bitutil.BitIsSet(filterIsValid, int(posWithOffset)) && bitutil.BitIsSet(filterData, int(posWithOffset)) { + bldr.unsafeAppend(pos) + } + pos++ + posWithOffset++ + } + } else { + pos += T(andBlock.Len) + posWithOffset += int64(andBlock.Len) + } + } + } else { + // filter has no nulls, so we only need to look for true values + bitutils.VisitSetBitRuns(filterData, filter.Offset, filter.Len, + func(pos, length int64) error { + // append consecutive run of indices + bldr.reserve(int(length)) + for i := int64(0); i < length; i++ { + bldr.unsafeAppend(T(pos + i)) + } + return nil + }) + } + + length := bldr.len() + outBuf := bldr.finish() + defer outBuf.Release() + return array.NewData(idxType, length, []*memory.Buffer{nil, outBuf}, nil, 0, 0) +} + +func GetTakeIndices(mem memory.Allocator, filter *exec.ArraySpan, nullSelect NullSelectionBehavior) (arrow.ArrayData, error) { + debug.Assert(filter.Type.ID() == arrow.BOOL, "filter should be a boolean array") + if filter.Len < math.MaxUint16 { + return getTakeIndices[uint16](mem, filter, nullSelect), nil + } else if filter.Len < math.MaxUint32 { + return getTakeIndices[uint32](mem, filter, nullSelect), nil + } + return nil, fmt.Errorf("%w: filter length exceeds UINT32_MAX, consider a different strategy for selecting elements", + arrow.ErrNotImplemented) +} + +type writeFiltered interface { + OutPos() int + WriteValue(int64) + WriteValueSegment(int64, int64) + WriteNull() +} + +type dropNullCounter struct { + dataCounter bitutils.BitBlockCounter + dataValidityCounter bitutils.BinaryBitBlockCounter + hasValidity bool +} + +func newDropNullCounter(validity []byte, data []byte, offset int64, length int64) *dropNullCounter { + return &dropNullCounter{ + dataCounter: *bitutils.NewBitBlockCounter(data, offset, length), + dataValidityCounter: *bitutils.NewBinaryBitBlockCounter(data, validity, offset, offset, length), + hasValidity: len(validity) > 0, + } +} + +func (n *dropNullCounter) NextBlock() bitutils.BitBlockCount { + if n.hasValidity { + // filter is true AND not null + return n.dataValidityCounter.NextAndWord() + } + return n.dataCounter.NextWord() +} + +func primitiveFilterImpl(wr writeFiltered, values *exec.ArraySpan, filter *exec.ArraySpan, nullSelection NullSelectionBehavior, out *exec.ExecResult) { + var ( + valuesIsValid = values.Buffers[0].Buf + filterIsValid = filter.Buffers[0].Buf + filterData = filter.Buffers[1].Buf + outIsValid = out.Buffers[0].Buf + ) + + if filter.Nulls == 0 && values.Nulls == 0 { + // fast filter path when values and filters have no nulls + bitutils.VisitSetBitRuns(filterData, filter.Offset, values.Len, + func(pos, length int64) error { + wr.WriteValueSegment(pos, length) + return nil + }) + return + } + + var ( + dropNulls = newDropNullCounter(filterIsValid, filterData, filter.Offset, values.Len) + dataCounter = bitutils.NewOptionalBitBlockCounter(valuesIsValid, values.Offset, values.Len) + filterValidCounter = bitutils.NewOptionalBitBlockCounter(filterIsValid, filter.Offset, values.Len) + writeNotNull = func(idx int64) { + bitutil.SetBit(outIsValid, int(out.Offset)+wr.OutPos()) + wr.WriteValue(idx) + } + writeMaybeNull = func(idx int64) { + bitutil.SetBitTo(outIsValid, int(out.Offset)+wr.OutPos(), + bitutil.BitIsSet(valuesIsValid, int(values.Offset+idx))) + wr.WriteValue(idx) + } + inPos int64 + ) + + for inPos < values.Len { + filterBlock := dropNulls.NextBlock() + filterValidBlock := filterValidCounter.NextWord() + dataBlock := dataCounter.NextWord() + + switch { + case filterBlock.AllSet() && dataBlock.AllSet(): + // faster path: all values in block are included and not null + bitutil.SetBitsTo(outIsValid, out.Offset+int64(wr.OutPos()), int64(filterBlock.Len), true) + wr.WriteValueSegment(inPos, int64(filterBlock.Len)) + inPos += int64(filterBlock.Len) + case filterBlock.AllSet(): + // faster: all values are selected, but some are null + // batch copy bits from values validity bitmap to output validity bitmap + bitutil.CopyBitmap(valuesIsValid, int(values.Offset+inPos), int(filterBlock.Len), + outIsValid, int(out.Offset)+wr.OutPos()) + wr.WriteValueSegment(inPos, int64(filterBlock.Len)) + inPos += int64(filterBlock.Len) + case filterBlock.NoneSet() && nullSelection == DropNulls: + // for this exceedingly common case in low-selectivity filters + // we can skip further analysis of the data and move onto the next block + inPos += int64(filterBlock.Len) + default: + // some filter values are false or null + if dataBlock.AllSet() { + // no values are null + if filterValidBlock.AllSet() { + // filter is non-null but some values are false + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + writeNotNull(inPos) + } + inPos++ + } + } else if nullSelection == DropNulls { + // if any values are selected, they ARE NOT null + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterIsValid, int(filter.Offset+inPos)) && + bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + writeNotNull(inPos) + } + inPos++ + } + } else { // nullselect == EmitNulls + // data values in this block are not null + for i := 0; i < int(filterBlock.Len); i++ { + isValid := bitutil.BitIsSet(filterIsValid, int(filter.Offset+inPos)) + if isValid && bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + // filter slot is non-null and set + writeNotNull(inPos) + } else if !isValid { + // filter slot is null, so we have a null in the output + bitutil.ClearBit(outIsValid, int(out.Offset)+wr.OutPos()) + wr.WriteNull() + } + inPos++ + } + } + } else { // !dataBlock.AllSet() + // some values are null + if filterValidBlock.AllSet() { + // filter is non-null but some values are false + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + writeMaybeNull(inPos) + } + inPos++ + } + } else if nullSelection == DropNulls { + // if any values are selected they ARE NOT null + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterIsValid, int(filter.Offset+inPos)) && bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + writeMaybeNull(inPos) + } + inPos++ + } + } else { // nullselect == emitnulls + // Data values in this block are not null + for i := 0; i < int(filterBlock.Len); i++ { + isValid := bitutil.BitIsSet(filterIsValid, int(filter.Offset+inPos)) + if isValid && bitutil.BitIsSet(filterData, int(filter.Offset+inPos)) { + // filter slot is non-null and set + writeMaybeNull(inPos) + } else if !isValid { + // filter slot is null, so we have a null in the output + bitutil.ClearBit(outIsValid, int(out.Offset)+wr.OutPos()) + wr.WriteNull() + } + inPos++ + } + } + } + } + } +} + +type filterWriter[T exec.UintTypes] struct { + outPosition int + outOffset int + valuesOffset int + valuesData []T + outData []T +} + +func (f *filterWriter[T]) OutPos() int { return f.outPosition } + +func (f *filterWriter[T]) WriteValue(inPos int64) { + f.outData[f.outPosition] = f.valuesData[inPos] + f.outPosition++ +} + +func (f *filterWriter[T]) WriteValueSegment(inStart, length int64) { + copy(f.outData[f.outPosition:], f.valuesData[inStart:inStart+length]) + f.outPosition += int(length) +} + +func (f *filterWriter[T]) WriteNull() { + var z T + f.outData[f.outPosition] = z + f.outPosition++ +} + +type boolFilterWriter struct { + outPosition int + outOffset int + valuesOffset int + valuesData []byte + outData []byte +} + +func (b *boolFilterWriter) OutPos() int { return b.outPosition } + +func (b *boolFilterWriter) WriteValue(inPos int64) { + bitutil.SetBitTo(b.outData, b.outOffset+b.outPosition, + bitutil.BitIsSet(b.valuesData, b.valuesOffset+int(inPos))) +} + +func (b *boolFilterWriter) WriteValueSegment(inStart, length int64) { + bitutil.CopyBitmap(b.valuesData, b.valuesOffset+int(inStart), int(length), + b.outData, b.outOffset+b.outPosition) + b.outPosition += int(length) +} + +func (b *boolFilterWriter) WriteNull() { + bitutil.ClearBit(b.outData, b.outOffset+b.outPosition) + b.outPosition++ +} + +func PrimitiveFilter(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + values = &batch.Values[0].Array + filter = &batch.Values[1].Array + nullSelection = ctx.State.(FilterState).NullSelection + ) + + values.UpdateNullCount() + filter.UpdateNullCount() + + outputLength := getFilterOutputSize(filter, nullSelection) + + // the output precomputed null count is unknown except in the narrow + // condition that all the values are non-null and the filter will not + // cause any new nulls to be created + if values.Nulls == 0 && (nullSelection == DropNulls || filter.Nulls == 0) { + out.Nulls = 0 + } else { + out.Nulls = array.UnknownNullCount + } + + // when neither the values nor filter is known to have any nulls, + // we will elect the optimized ExecNonNull path where there is no + // need to populate a validity bitmap. + allocateValidity := values.Nulls != 0 || filter.Nulls != 0 + bitWidth := values.Type.(arrow.FixedWidthDataType).BitWidth() + preallocateData(ctx, outputLength, bitWidth, allocateValidity, out) + + var wr writeFiltered + switch bitWidth { + case 1: + wr = &boolFilterWriter{ + outOffset: int(out.Offset), + valuesOffset: int(values.Offset), + outData: out.Buffers[1].Buf, + valuesData: values.Buffers[1].Buf, + } + case 8: + wr = &filterWriter[uint8]{ + outOffset: int(out.Offset), + valuesOffset: int(values.Offset), + outData: exec.GetSpanValues[uint8](out, 1), + valuesData: exec.GetSpanValues[uint8](values, 1), + } + case 16: + wr = &filterWriter[uint16]{ + outOffset: int(out.Offset), + valuesOffset: int(values.Offset), + outData: exec.GetSpanValues[uint16](out, 1), + valuesData: exec.GetSpanValues[uint16](values, 1), + } + case 32: + wr = &filterWriter[uint32]{ + outOffset: int(out.Offset), + valuesOffset: int(values.Offset), + outData: exec.GetSpanValues[uint32](out, 1), + valuesData: exec.GetSpanValues[uint32](values, 1), + } + case 64: + wr = &filterWriter[uint64]{ + outOffset: int(out.Offset), + valuesOffset: int(values.Offset), + outData: exec.GetSpanValues[uint64](out, 1), + valuesData: exec.GetSpanValues[uint64](values, 1), + } + default: + return fmt.Errorf("%w: invalid values bit width", arrow.ErrType) + } + + primitiveFilterImpl(wr, values, filter, nullSelection, out) + return nil +} + +type primitiveGetter[T exec.IntTypes | bool] interface { + IsValid(int64) bool + GetValue(int64) T + NullCount() int64 + Len() int64 +} + +type boolGetter struct { + inner *exec.ArraySpan + values []byte +} + +func (b *boolGetter) IsValid(i int64) bool { + return bitutil.BitIsSet(b.inner.Buffers[0].Buf, int(b.inner.Offset+i)) +} + +func (b *boolGetter) GetValue(i int64) bool { + return bitutil.BitIsSet(b.values, int(b.inner.Offset+i)) +} + +func (b *boolGetter) NullCount() int64 { return b.inner.Nulls } +func (b *boolGetter) Len() int64 { return b.inner.Len } + +type primitiveGetterImpl[T exec.IntTypes] struct { + inner *exec.ArraySpan + values []T +} + +func (p *primitiveGetterImpl[T]) IsValid(i int64) bool { + return bitutil.BitIsSet(p.inner.Buffers[0].Buf, int(p.inner.Offset+i)) +} +func (p *primitiveGetterImpl[T]) GetValue(i int64) T { return p.values[i] } +func (p *primitiveGetterImpl[T]) NullCount() int64 { return p.inner.Nulls } +func (p *primitiveGetterImpl[T]) Len() int64 { return p.inner.Len } + +type chunkedBoolGetter struct { + inner *arrow.Chunked + resolver *exec.ChunkResolver + nulls int64 + len int64 + chunkLengths []int64 + valuesData [][]byte + valuesIsValid [][]byte + valuesOffset []int64 +} + +func newChunkedBoolGetter(arr *arrow.Chunked) *chunkedBoolGetter { + nchunks := len(arr.Chunks()) + lengths := make([]int64, nchunks) + valuesData := make([][]byte, nchunks) + valuesIsValid := make([][]byte, nchunks) + valuesOffset := make([]int64, nchunks) + + for i, c := range arr.Chunks() { + lengths[i] = int64(c.Len()) + valuesOffset[i] = int64(c.Data().Offset()) + valuesIsValid[i] = c.NullBitmapBytes() + valuesData[i] = c.Data().Buffers()[1].Bytes() + } + + return &chunkedBoolGetter{ + inner: arr, + resolver: exec.NewChunkResolver(arr.Chunks()), + nulls: int64(arr.NullN()), + len: int64(arr.Len()), + chunkLengths: lengths, + valuesData: valuesData, + valuesIsValid: valuesIsValid, + valuesOffset: valuesOffset, + } +} + +func (c *chunkedBoolGetter) IsValid(i int64) bool { + chunk, chunkidx := c.resolver.Resolve(i) + bm := c.valuesIsValid[chunk] + if bm == nil { + return true + } + return bitutil.BitIsSet(bm, int(c.valuesOffset[chunk]+chunkidx)) +} + +func (c *chunkedBoolGetter) GetValue(i int64) bool { + chunk, idx := c.resolver.Resolve(i) + return bitutil.BitIsSet(c.valuesData[chunk], int(c.valuesOffset[chunk]+idx)) +} + +func (c *chunkedBoolGetter) NullCount() int64 { return c.nulls } +func (c *chunkedBoolGetter) Len() int64 { return c.len } + +type chunkedPrimitiveGetter[T exec.IntTypes] struct { + inner *arrow.Chunked + resolver *exec.ChunkResolver + nulls int64 + len int64 + chunkLengths []int64 + valuesData [][]T + valuesIsValid [][]byte + valuesOffset []int64 +} + +func newChunkedPrimitiveGetter[T exec.IntTypes](arr *arrow.Chunked) *chunkedPrimitiveGetter[T] { + nchunks := len(arr.Chunks()) + lengths := make([]int64, nchunks) + valuesData := make([][]T, nchunks) + valuesIsValid := make([][]byte, nchunks) + valuesOffset := make([]int64, nchunks) + + for i, c := range arr.Chunks() { + lengths[i] = int64(c.Len()) + valuesOffset[i] = int64(c.Data().Offset()) + valuesIsValid[i] = c.NullBitmapBytes() + valuesData[i] = exec.GetValues[T](c.Data(), 1) + } + + return &chunkedPrimitiveGetter[T]{ + inner: arr, + resolver: exec.NewChunkResolver(arr.Chunks()), + nulls: int64(arr.NullN()), + len: int64(arr.Len()), + chunkLengths: lengths, + valuesData: valuesData, + valuesIsValid: valuesIsValid, + valuesOffset: valuesOffset, + } +} + +func (c *chunkedPrimitiveGetter[T]) IsValid(i int64) bool { + chunk, chunkidx := c.resolver.Resolve(i) + bm := c.valuesIsValid[chunk] + if bm == nil { + return true + } + return bitutil.BitIsSet(bm, int(c.valuesOffset[chunk]+chunkidx)) +} + +func (c *chunkedPrimitiveGetter[T]) GetValue(i int64) T { + chunk, idx := c.resolver.Resolve(i) + return c.valuesData[chunk][idx] +} + +func (c *chunkedPrimitiveGetter[T]) NullCount() int64 { return c.nulls } +func (c *chunkedPrimitiveGetter[T]) Len() int64 { return c.len } + +func primitiveTakeImpl[IdxT exec.UintTypes, ValT exec.IntTypes](values primitiveGetter[ValT], indices *exec.ArraySpan, out *exec.ExecResult) { + var ( + indicesData = exec.GetSpanValues[IdxT](indices, 1) + indicesIsValid = indices.Buffers[0].Buf + indicesOffset = indices.Offset + + outData = exec.GetSpanValues[ValT](out, 1) + outIsValid = out.Buffers[0].Buf + outOffset = out.Offset + ) + + pos, validCount := int64(0), int64(0) + if values.NullCount() == 0 && indices.Nulls == 0 { + // values and indices are both never null + // this means we didn't allocate the validity bitmap + // and can simplify everything + for i, idx := range indicesData { + outData[i] = values.GetValue(int64(idx)) + } + out.Nulls = 0 + return + } + + indicesBitCounter := bitutils.NewOptionalBitBlockCounter(indicesIsValid, indicesOffset, indices.Len) + for pos < indices.Len { + block := indicesBitCounter.NextBlock() + if values.NullCount() == 0 { + // values are never null, so things are easier + validCount += int64(block.Popcnt) + if block.AllSet() { + // fastest path: neither values nor index nulls + bitutil.SetBitsTo(outIsValid, outOffset+pos, int64(block.Len), true) + for i := 0; i < int(block.Len); i++ { + outData[pos] = values.GetValue(int64(indicesData[pos])) + pos++ + } + } else if block.Popcnt > 0 { + // slow path: some indices but not all are null + for i := 0; i < int(block.Len); i++ { + if bitutil.BitIsSet(indicesIsValid, int(indicesOffset+pos)) { + // index is not null + bitutil.SetBit(outIsValid, int(outOffset+pos)) + outData[pos] = values.GetValue(int64(indicesData[pos])) + } + pos++ + } + } else { + pos += int64(block.Len) + } + } else { + // values have nulls, so we must do random access into the values bitmap + if block.AllSet() { + // faster path: indices are not null but values may be + for i := 0; i < int(block.Len); i++ { + if values.IsValid(int64(indicesData[pos])) { + // value is not null + outData[pos] = values.GetValue(int64(indicesData[pos])) + bitutil.SetBit(outIsValid, int(outOffset+pos)) + validCount++ + } + pos++ + } + } else if block.Popcnt > 0 { + // slow path: some but not all indices are null. since we + // are doing random access in general we have to check the + // value nullness one by one + for i := 0; i < int(block.Len); i++ { + if bitutil.BitIsSet(indicesIsValid, int(indicesOffset+pos)) && + values.IsValid(int64(indicesData[pos])) { + // index is not null && value is not null + outData[pos] = values.GetValue(int64(indicesData[pos])) + bitutil.SetBit(outIsValid, int(outOffset+pos)) + validCount++ + } + pos++ + } + } else { + pos += int64(block.Len) + } + } + } + + out.Nulls = out.Len - validCount +} + +func booleanTakeImpl[IdxT exec.UintTypes](values primitiveGetter[bool], indices *exec.ArraySpan, out *exec.ExecResult) { + var ( + indicesData = exec.GetSpanValues[IdxT](indices, 1) + indicesIsValid = indices.Buffers[0].Buf + indicesOffset = indices.Offset + + outData = out.Buffers[1].Buf + outIsValid = out.Buffers[0].Buf + outOffset = out.Offset + ) + + placeDataBit := func(loc int64, index IdxT) { + bitutil.SetBitTo(outData, int(outOffset+loc), values.GetValue(int64(index))) + } + + pos, validCount := int64(0), int64(0) + if values.NullCount() == 0 && indices.Nulls == 0 { + // values and indices are both never null + // this means we didn't allocate the validity bitmap + // and can simplify everything + for i, idx := range indicesData { + placeDataBit(int64(i), idx) + } + out.Nulls = 0 + return + } + + indicesBitCounter := bitutils.NewOptionalBitBlockCounter(indicesIsValid, indicesOffset, indices.Len) + for pos < indices.Len { + block := indicesBitCounter.NextBlock() + if values.NullCount() == 0 { + // values are never null so things are easier + validCount += int64(block.Popcnt) + if block.AllSet() { + // fastest path: neither values nor index nulls + bitutil.SetBitsTo(outIsValid, outOffset+pos, int64(block.Len), true) + for i := 0; i < int(block.Len); i++ { + placeDataBit(pos, indicesData[pos]) + pos++ + } + } else if block.Popcnt > 0 { + // slow path: some but not all indices are null + for i := 0; i < int(block.Len); i++ { + if bitutil.BitIsSet(indicesIsValid, int(indicesOffset+pos)) { + // index is not null + bitutil.SetBit(outIsValid, int(outOffset+pos)) + placeDataBit(pos, indicesData[pos]) + } + pos++ + } + } else { + pos += int64(block.Len) + } + } else { + // values have nulls so we must do random access into the values bitmap + if block.AllSet() { + // faster path: indices are not null but values may be + for i := 0; i < int(block.Len); i++ { + if values.IsValid(int64(indicesData[pos])) { + // value is not null + bitutil.SetBit(outIsValid, int(outOffset+pos)) + placeDataBit(pos, indicesData[pos]) + validCount++ + } + pos++ + } + } else if block.Popcnt > 0 { + // slow path: some but not all indices are null. + // we have to check the values one by one + for i := 0; i < int(block.Len); i++ { + if bitutil.BitIsSet(indicesIsValid, int(indicesOffset+pos)) && + values.IsValid(int64(indicesData[pos])) { + placeDataBit(pos, indicesData[pos]) + bitutil.SetBit(outIsValid, int(outOffset+pos)) + validCount++ + } + pos++ + } + } else { + pos += int64(block.Len) + } + } + } + out.Nulls = out.Len - validCount +} + +func booleanTakeDispatchChunked(values, indices *arrow.Chunked, out []*exec.ExecResult) error { + getter := newChunkedBoolGetter(values) + var fn func(primitiveGetter[bool], *exec.ArraySpan, *exec.ExecResult) + + switch indices.DataType().(arrow.FixedWidthDataType).Bytes() { + case 1: + fn = booleanTakeImpl[uint8] + case 2: + fn = booleanTakeImpl[uint16] + case 4: + fn = booleanTakeImpl[uint32] + case 8: + fn = booleanTakeImpl[uint64] + default: + return fmt.Errorf("%w: invalid indices byte width", arrow.ErrIndex) + } + + var indexSpan exec.ArraySpan + for i, c := range indices.Chunks() { + indexSpan.SetMembers(c.Data()) + fn(getter, &indexSpan, out[i]) + } + return nil +} + +func booleanTakeDispatch(values, indices *exec.ArraySpan, out *exec.ExecResult) error { + getter := &boolGetter{inner: values, values: values.Buffers[1].Buf} + + switch indices.Type.(arrow.FixedWidthDataType).Bytes() { + case 1: + booleanTakeImpl[uint8](getter, indices, out) + case 2: + booleanTakeImpl[uint16](getter, indices, out) + case 4: + booleanTakeImpl[uint32](getter, indices, out) + case 8: + booleanTakeImpl[uint64](getter, indices, out) + default: + return fmt.Errorf("%w: invalid indices byte width", arrow.ErrIndex) + } + return nil +} + +func takeIdxChunkedDispatch[ValT exec.IntTypes](values, indices *arrow.Chunked, out []*exec.ExecResult) error { + getter := newChunkedPrimitiveGetter[ValT](values) + var fn func(primitiveGetter[ValT], *exec.ArraySpan, *exec.ExecResult) + + switch indices.DataType().(arrow.FixedWidthDataType).Bytes() { + case 1: + fn = primitiveTakeImpl[uint8, ValT] + case 2: + fn = primitiveTakeImpl[uint16, ValT] + case 4: + fn = primitiveTakeImpl[uint32, ValT] + case 8: + fn = primitiveTakeImpl[uint64, ValT] + default: + return fmt.Errorf("%w: invalid byte width for indices", arrow.ErrIndex) + } + + var indexSpan exec.ArraySpan + for i, c := range indices.Chunks() { + indexSpan.SetMembers(c.Data()) + fn(getter, &indexSpan, out[i]) + } + return nil +} + +func takeIdxDispatch[ValT exec.IntTypes](values, indices *exec.ArraySpan, out *exec.ExecResult) error { + getter := &primitiveGetterImpl[ValT]{inner: values, values: exec.GetSpanValues[ValT](values, 1)} + + switch indices.Type.(arrow.FixedWidthDataType).Bytes() { + case 1: + primitiveTakeImpl[uint8, ValT](getter, indices, out) + case 2: + primitiveTakeImpl[uint16, ValT](getter, indices, out) + case 4: + primitiveTakeImpl[uint32, ValT](getter, indices, out) + case 8: + primitiveTakeImpl[uint64, ValT](getter, indices, out) + default: + return fmt.Errorf("%w: invalid indices byte width", arrow.ErrIndex) + } + return nil +} + +func PrimitiveTake(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + values = &batch.Values[0].Array + indices = &batch.Values[1].Array + ) + + if ctx.State.(TakeState).BoundsCheck { + if err := checkIndexBounds(indices, uint64(values.Len)); err != nil { + return err + } + } + + bitWidth := values.Type.(arrow.FixedWidthDataType).BitWidth() + allocateValidity := values.Nulls != 0 || indices.Nulls != 0 + preallocateData(ctx, indices.Len, bitWidth, allocateValidity, out) + + switch bitWidth { + case 1: + return booleanTakeDispatch(values, indices, out) + case 8: + return takeIdxDispatch[int8](values, indices, out) + case 16: + return takeIdxDispatch[int16](values, indices, out) + case 32: + return takeIdxDispatch[int32](values, indices, out) + case 64: + return takeIdxDispatch[int64](values, indices, out) + default: + return fmt.Errorf("%w: invalid values byte width for take", arrow.ErrInvalid) + } +} + +func ChunkedPrimitiveTake(ctx *exec.KernelCtx, batch []*arrow.Chunked, out *exec.ExecResult) ([]*exec.ExecResult, error) { + var ( + values = batch[0] + indices = batch[1] + ) + + if ctx.State.(TakeState).BoundsCheck { + if err := checkIndexBoundsChunked(indices, uint64(values.Len())); err != nil { + return nil, err + } + } + + bitWidth := values.DataType().(arrow.FixedWidthDataType).BitWidth() + allocValidity := values.NullN() != 0 || indices.NullN() != 0 + outData := make([]*exec.ExecResult, len(indices.Chunks())) + for i, chunk := range indices.Chunks() { + outData[i] = &exec.ExecResult{Type: out.Type} + preallocateData(ctx, int64(chunk.Len()), bitWidth, allocValidity, outData[i]) + } + + switch bitWidth { + case 1: + return outData, booleanTakeDispatchChunked(values, indices, outData) + case 8: + return outData, takeIdxChunkedDispatch[int8](values, indices, outData) + case 16: + return outData, takeIdxChunkedDispatch[int16](values, indices, outData) + case 32: + return outData, takeIdxChunkedDispatch[int32](values, indices, outData) + case 64: + return outData, takeIdxChunkedDispatch[int64](values, indices, outData) + default: + return nil, fmt.Errorf("%w: invalid values byte width for take", arrow.ErrInvalid) + } +} + +func NullTake(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if ctx.State.(TakeState).BoundsCheck { + if err := checkIndexBounds(&batch.Values[1].Array, uint64(batch.Values[0].Array.Len)); err != nil { + return err + } + } + + // batch.length doesn't take into account the take indices + out.Len = batch.Values[1].Array.Len + out.Type = arrow.Null + return nil +} + +func NullFilter(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + outputLength := getFilterOutputSize(&batch.Values[1].Array, ctx.State.(FilterState).NullSelection) + out.Len = outputLength + out.Type = arrow.Null + return nil +} + +func filterExec(ctx *exec.KernelCtx, outputLen int64, values, selection *exec.ArraySpan, out *exec.ExecResult, visitValid func(idx int64) error, visitNull func() error) error { + var ( + nullSelection = ctx.State.(FilterState).NullSelection + filterData = selection.Buffers[1].Buf + filterIsValid = selection.Buffers[0].Buf + filterOffset = selection.Offset + + // we use 3 block counters for fast scanning + // + // values valid counter: for values null/not-null + // filter valid counter: for filter null/not-null + // filter counter: for filter true/false + valuesIsValid = bitutil.OptionalBitIndexer{Bitmap: values.Buffers[0].Buf, Offset: int(values.Offset)} + valuesValidCounter = bitutils.NewOptionalBitBlockCounter(values.Buffers[0].Buf, values.Offset, values.Len) + filterValidCounter = bitutils.NewOptionalBitBlockCounter(filterIsValid, filterOffset, selection.Len) + filterCounter = bitutils.NewBitBlockCounter(filterData, filterOffset, selection.Len) + inPos int64 + + validityBuilder = validityBuilder{mem: exec.GetAllocator(ctx.Ctx)} + ) + + validityBuilder.Reserve(outputLen) + + appendNotNull := func(idx int64) error { + validityBuilder.UnsafeAppend(true) + return visitValid(idx) + } + + appendNull := func() error { + validityBuilder.UnsafeAppend(false) + return visitNull() + } + + appendMaybeNull := func(idx int64) error { + if valuesIsValid.GetBit(int(idx)) { + return appendNotNull(idx) + } + return appendNull() + } + + for inPos < selection.Len { + filterValidBlock := filterValidCounter.NextWord() + valuesValidBlock := valuesValidCounter.NextWord() + filterBlock := filterCounter.NextWord() + + switch { + case filterBlock.NoneSet() && nullSelection == DropNulls: + // for this exceedingly common case in low-selectivity filters + // we can skip further analysis of the data and move onto the next block + inPos += int64(filterBlock.Len) + case filterValidBlock.AllSet(): + // simpler path: no filter values are null + if filterBlock.AllSet() { + // fastest path, filter values are all true and not null + if valuesValidBlock.AllSet() { + // values aren't null either + validityBuilder.UnsafeAppendN(int64(filterBlock.Len), true) + for i := 0; i < int(filterBlock.Len); i++ { + if err := visitValid(inPos); err != nil { + return err + } + inPos++ + } + } else { + // some values are null in this block + for i := 0; i < int(filterBlock.Len); i++ { + if err := appendMaybeNull(inPos); err != nil { + return err + } + inPos++ + } + } + } else { // !filterBlock.AllSet() + // some filter values are false, but all not null + if valuesValidBlock.AllSet() { + // all the values are not-null, so we can skip null checking for them + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + if err := appendNotNull(inPos); err != nil { + return err + } + } + inPos++ + } + } else { + // some of the values in the block are null + // gotta check each one :( + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + if err := appendMaybeNull(inPos); err != nil { + return err + } + } + inPos++ + } + } + } + default: + // !filterValidBlock.AllSet() + // some filter values are null, so we have to handle drop + // versus emit null + if nullSelection == DropNulls { + // filter null values are treated as false + for i := 0; i < int(filterBlock.Len); i++ { + if bitutil.BitIsSet(filterIsValid, int(filterOffset+inPos)) && + bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + if err := appendMaybeNull(inPos); err != nil { + return err + } + } + inPos++ + } + } else { + // filter null values are appended to output as null + // whether the value in the corresponding slot is valid + // or not + var err error + for i := 0; i < int(filterBlock.Len); i++ { + filterNotNull := bitutil.BitIsSet(filterIsValid, int(filterOffset+inPos)) + if filterNotNull && bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + err = appendMaybeNull(inPos) + } else if !filterNotNull { + // emit null case + err = appendNull() + } + if err != nil { + return err + } + inPos++ + } + } + } + } + + out.Len = int64(validityBuilder.bitLength) + out.Nulls = int64(validityBuilder.falseCount) + out.Buffers[0].WrapBuffer(validityBuilder.Finish()) + return nil +} + +func binaryFilterNonNull[OffsetT int32 | int64](ctx *exec.KernelCtx, values, filter *exec.ArraySpan, outputLen int64, nullSelection NullSelectionBehavior, out *exec.ExecResult) error { + var ( + offsetBuilder = newBufferBuilder[OffsetT](exec.GetAllocator(ctx.Ctx)) + dataBuilder = newBufferBuilder[uint8](exec.GetAllocator(ctx.Ctx)) + rawOffsets = exec.GetSpanOffsets[OffsetT](values, 1) + rawData = values.Buffers[2].Buf + ) + + offsetBuilder.reserve(int(outputLen) + 1) + // get a rough estimate and pre-size the data builder + if values.Len > 0 { + meanValueLength := float64(rawOffsets[values.Len]-rawOffsets[0]) / float64(values.Len) + dataBuilder.reserve(int(meanValueLength * float64(outputLen))) + } + + spaceAvail := dataBuilder.cap() + var offset OffsetT + filterData := filter.Buffers[1].Buf + + err := bitutils.VisitSetBitRuns(filterData, filter.Offset, filter.Len, + func(pos, length int64) error { + start, end := rawOffsets[pos], rawOffsets[pos+length] + // bulk-append raw data + runDataBytes := (end - start) + if runDataBytes > OffsetT(spaceAvail) { + dataBuilder.reserve(int(runDataBytes)) + spaceAvail = dataBuilder.cap() - dataBuilder.len() + } + dataBuilder.unsafeAppendSlice(rawData[start:end]) + spaceAvail -= int(runDataBytes) + curOffset := start + for i := int64(0); i < length; i++ { + offsetBuilder.unsafeAppend(offset) + offset += rawOffsets[i+pos+1] - curOffset + curOffset = rawOffsets[i+pos+1] + } + return nil + }) + + if err != nil { + return err + } + + offsetBuilder.unsafeAppend(offset) + out.Len = outputLen + out.Buffers[1].WrapBuffer(offsetBuilder.finish()) + out.Buffers[2].WrapBuffer(dataBuilder.finish()) + return nil +} + +func binaryFilterImpl[OffsetT int32 | int64](ctx *exec.KernelCtx, values, filter *exec.ArraySpan, outputLen int64, nullSelection NullSelectionBehavior, out *exec.ExecResult) error { + var ( + filterData = filter.Buffers[1].Buf + filterIsValid = filter.Buffers[0].Buf + filterOffset = filter.Offset + + valuesIsValid = values.Buffers[0].Buf + valuesOffset = values.Offset + // output bitmap should already be zero'd out so we just + // have to set valid bits to true + outIsValid = out.Buffers[0].Buf + + rawOffsets = exec.GetSpanOffsets[OffsetT](values, 1) + rawData = values.Buffers[2].Buf + offsetBuilder = newBufferBuilder[OffsetT](exec.GetAllocator(ctx.Ctx)) + dataBuilder = newBufferBuilder[uint8](exec.GetAllocator(ctx.Ctx)) + ) + + offsetBuilder.reserve(int(outputLen) + 1) + if values.Len > 0 { + meanValueLength := float64(rawOffsets[values.Len]-rawOffsets[0]) / float64(values.Len) + dataBuilder.reserve(int(meanValueLength * float64(outputLen))) + } + + spaceAvail := dataBuilder.cap() + var offset OffsetT + + // we use 3 block counters for fast scanning of the filter + // + // * valuesValidCounter: for values null/not-null + // * filterValidCounter: for filter null/not-null + // * filterCounter: for filter true/false + valuesValidCounter := bitutils.NewOptionalBitBlockCounter(values.Buffers[0].Buf, values.Offset, values.Len) + filterValidCounter := bitutils.NewOptionalBitBlockCounter(filterIsValid, filterOffset, filter.Len) + filterCounter := bitutils.NewBitBlockCounter(filterData, filterOffset, filter.Len) + + inPos, outPos := int64(0), int64(0) + + appendRaw := func(data []byte) { + if len(data) > spaceAvail { + dataBuilder.reserve(len(data)) + spaceAvail = dataBuilder.cap() - dataBuilder.len() + } + dataBuilder.unsafeAppendSlice(data) + spaceAvail -= len(data) + } + + appendSingle := func() { + data := rawData[rawOffsets[inPos]:rawOffsets[inPos+1]] + appendRaw(data) + offset += OffsetT(len(data)) + } + + for inPos < filter.Len { + filterValidBlock, valuesValidBlock := filterValidCounter.NextWord(), valuesValidCounter.NextWord() + filterBlock := filterCounter.NextWord() + switch { + case filterBlock.NoneSet() && nullSelection == DropNulls: + // for this exceedingly common case in low-selectivity filters + // we can skip further analysis of the data and move on to the + // next block + inPos += int64(filterBlock.Len) + case filterValidBlock.AllSet(): + // simpler path: no filter values are null + if filterBlock.AllSet() { + // fastest path: filter values are all true and not null + if valuesValidBlock.AllSet() { + // the values aren't null either + bitutil.SetBitsTo(outIsValid, outPos, int64(filterBlock.Len), true) + + // bulk-append raw data + start, end := rawOffsets[inPos], rawOffsets[inPos+int64(filterBlock.Len)] + appendRaw(rawData[start:end]) + // append offsets + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + offsetBuilder.unsafeAppend(offset) + offset += rawOffsets[inPos+1] - rawOffsets[inPos] + } + outPos += int64(filterBlock.Len) + } else { + // some of the values in this block are null + for i := 0; i < int(filterBlock.Len); i, inPos, outPos = i+1, inPos+1, outPos+1 { + offsetBuilder.unsafeAppend(offset) + if bitutil.BitIsSet(valuesIsValid, int(valuesOffset+inPos)) { + bitutil.SetBit(outIsValid, int(outPos)) + appendSingle() + } + } + } + continue + } + // !filterBlock.AllSet() + // some of the filter values are false, but all not null + if valuesValidBlock.AllSet() { + // all the values are non-null, so we can skip null checking + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + if bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + offsetBuilder.unsafeAppend(offset) + bitutil.SetBit(outIsValid, int(outPos)) + outPos++ + appendSingle() + } + } + } else { + // some of the values in the block are null, so we have to check + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + if bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + offsetBuilder.unsafeAppend(offset) + if bitutil.BitIsSet(valuesIsValid, int(valuesOffset+inPos)) { + bitutil.SetBit(outIsValid, int(outPos)) + appendSingle() + } + outPos++ + } + } + } + default: + // !filterValidBlock.AllSet() + // some of the filter values are null, so we have to handle + // the DROP vs EMIT_NULL null selection behavior + if nullSelection == DropNulls { + // filter null values are treated as false + if valuesValidBlock.AllSet() { + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + if bitutil.BitIsSet(filterIsValid, int(filterOffset+inPos)) && + bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + offsetBuilder.unsafeAppend(offset) + bitutil.SetBit(outIsValid, int(outPos)) + outPos++ + appendSingle() + } + } + } else { + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + if bitutil.BitIsSet(filterIsValid, int(filterOffset+inPos)) && + bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + offsetBuilder.unsafeAppend(offset) + if bitutil.BitIsSet(valuesIsValid, int(valuesOffset+inPos)) { + bitutil.SetBit(outIsValid, int(outPos)) + appendSingle() + } + outPos++ + } + } + } + } else { + for i := 0; i < int(filterBlock.Len); i, inPos = i+1, inPos+1 { + filterNotNull := bitutil.BitIsSet(filterIsValid, int(filterOffset+inPos)) + if filterNotNull && bitutil.BitIsSet(filterData, int(filterOffset+inPos)) { + offsetBuilder.unsafeAppend(offset) + if bitutil.BitIsSet(valuesIsValid, int(valuesOffset+inPos)) { + bitutil.SetBit(outIsValid, int(outPos)) + appendSingle() + } + outPos++ + } else if !filterNotNull { + offsetBuilder.unsafeAppend(offset) + outPos++ + } + } + } + } + } + + offsetBuilder.unsafeAppend(offset) + out.Len = outputLen + out.Buffers[1].WrapBuffer(offsetBuilder.finish()) + out.Buffers[2].WrapBuffer(dataBuilder.finish()) + return nil +} + +func takeExecImpl[T exec.UintTypes](ctx *exec.KernelCtx, outputLen int64, values, indices *exec.ArraySpan, out *exec.ExecResult, visitValid func(int64) error, visitNull func() error) error { + var ( + validityBuilder = validityBuilder{mem: exec.GetAllocator(ctx.Ctx)} + indicesValues = exec.GetSpanValues[T](indices, 1) + isValid = indices.Buffers[0].Buf + valuesHaveNulls = values.MayHaveNulls() + + indicesIsValid = bitutil.OptionalBitIndexer{Bitmap: isValid, Offset: int(indices.Offset)} + valuesIsValid = bitutil.OptionalBitIndexer{Bitmap: values.Buffers[0].Buf, Offset: int(values.Offset)} + bitCounter = bitutils.NewOptionalBitBlockCounter(isValid, indices.Offset, indices.Len) + pos int64 + ) + + validityBuilder.Reserve(outputLen) + for pos < indices.Len { + block := bitCounter.NextBlock() + indicesHaveNulls := block.Popcnt < block.Len + if !indicesHaveNulls && !valuesHaveNulls { + // fastest path, neither indices nor values have nulls + validityBuilder.UnsafeAppendN(int64(block.Len), true) + for i := 0; i < int(block.Len); i++ { + if err := visitValid(int64(indicesValues[pos])); err != nil { + return err + } + pos++ + } + } else if block.Popcnt > 0 { + // since we have to branch on whether indices are null or not, + // we combine the "non-null indices block but some values null" + // and "some null indices block but values non-null" into single loop + for i := 0; i < int(block.Len); i++ { + if (!indicesHaveNulls || indicesIsValid.GetBit(int(pos))) && valuesIsValid.GetBit(int(indicesValues[pos])) { + validityBuilder.UnsafeAppend(true) + if err := visitValid(int64(indicesValues[pos])); err != nil { + return err + } + } else { + validityBuilder.UnsafeAppend(false) + if err := visitNull(); err != nil { + return err + } + } + pos++ + } + } else { + // the whole block is null + validityBuilder.UnsafeAppendN(int64(block.Len), false) + for i := 0; i < int(block.Len); i++ { + if err := visitNull(); err != nil { + return err + } + } + pos += int64(block.Len) + } + } + + out.Len = int64(validityBuilder.bitLength) + out.Nulls = int64(validityBuilder.falseCount) + out.Buffers[0].WrapBuffer(validityBuilder.Finish()) + return nil +} + +func takeExec(ctx *exec.KernelCtx, outputLen int64, values, indices *exec.ArraySpan, out *exec.ExecResult, visitValid func(int64) error, visitNull func() error) error { + indexWidth := indices.Type.(arrow.FixedWidthDataType).Bytes() + + switch indexWidth { + case 1: + return takeExecImpl[uint8](ctx, outputLen, values, indices, out, visitValid, visitNull) + case 2: + return takeExecImpl[uint16](ctx, outputLen, values, indices, out, visitValid, visitNull) + case 4: + return takeExecImpl[uint32](ctx, outputLen, values, indices, out, visitValid, visitNull) + case 8: + return takeExecImpl[uint64](ctx, outputLen, values, indices, out, visitValid, visitNull) + default: + return fmt.Errorf("%w: invalid index width", arrow.ErrInvalid) + } +} + +type selectionOutputFn func(*exec.KernelCtx, int64, *exec.ArraySpan, *exec.ArraySpan, *exec.ExecResult, func(int64) error, func() error) error +type selectionImplFn func(*exec.KernelCtx, *exec.ExecSpan, int64, *exec.ExecResult, selectionOutputFn) error + +func FilterExec(impl selectionImplFn) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + selection = &batch.Values[1].Array + outputLength = getFilterOutputSize(selection, ctx.State.(FilterState).NullSelection) + ) + return impl(ctx, batch, outputLength, out, filterExec) + } +} + +func TakeExec(impl selectionImplFn) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if ctx.State.(TakeState).BoundsCheck { + if err := checkIndexBounds(&batch.Values[1].Array, uint64(batch.Values[0].Array.Len)); err != nil { + return err + } + } + + return impl(ctx, batch, batch.Values[1].Array.Len, out, takeExec) + } +} + +func VarBinaryImpl[OffsetT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + rawOffsets = exec.GetSpanOffsets[OffsetT](values, 1) + rawData = values.Buffers[2].Buf + offsetBuilder = newBufferBuilder[OffsetT](exec.GetAllocator(ctx.Ctx)) + dataBuilder = newBufferBuilder[uint8](exec.GetAllocator(ctx.Ctx)) + ) + + // presize the data builder with a rough estimate of the required data size + if values.Len > 0 { + dataLength := rawOffsets[values.Len] - rawOffsets[0] + meanValueLen := float64(dataLength) / float64(values.Len) + dataBuilder.reserve(int(meanValueLen)) + } + + offsetBuilder.reserve(int(outputLength) + 1) + spaceAvail := dataBuilder.cap() + var offset OffsetT + err := fn(ctx, outputLength, values, selection, out, + func(idx int64) error { + offsetBuilder.unsafeAppend(offset) + valOffset := rawOffsets[idx] + valSize := rawOffsets[idx+1] - valOffset + + if valSize == 0 { + return nil + } + offset += valSize + if valSize > OffsetT(spaceAvail) { + dataBuilder.reserve(int(valSize)) + spaceAvail = dataBuilder.cap() - dataBuilder.len() + } + dataBuilder.unsafeAppendSlice(rawData[valOffset : valOffset+valSize]) + spaceAvail -= int(valSize) + return nil + }, func() error { + offsetBuilder.unsafeAppend(offset) + return nil + }) + + if err != nil { + return err + } + + offsetBuilder.unsafeAppend(offset) + out.Buffers[1].WrapBuffer(offsetBuilder.finish()) + out.Buffers[2].WrapBuffer(dataBuilder.finish()) + return nil +} + +func FSBImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + valueSize = int64(values.Type.(arrow.FixedWidthDataType).Bytes()) + valueData = values.Buffers[1].Buf[values.Offset*valueSize:] + ) + + out.Buffers[1].WrapBuffer(ctx.Allocate(int(valueSize * outputLength))) + buf := out.Buffers[1].Buf + + err := fn(ctx, outputLength, values, selection, out, + func(idx int64) error { + start := idx * int64(valueSize) + copy(buf, valueData[start:start+valueSize]) + buf = buf[valueSize:] + return nil + }, + func() error { + buf = buf[valueSize:] + return nil + }) + + if err != nil { + out.Buffers[1].Buf = nil + out.Buffers[1].Owner.Release() + out.Buffers[1].Owner = nil + return err + } + + return nil +} + +func ListImpl[OffsetT int32 | int64](ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + + rawOffsets = exec.GetSpanOffsets[OffsetT](values, 1) + mem = exec.GetAllocator(ctx.Ctx) + offsetBuilder = newBufferBuilder[OffsetT](mem) + childIdxBuilder = newBufferBuilder[OffsetT](mem) + ) + + if values.Len > 0 { + dataLength := rawOffsets[values.Len] - rawOffsets[0] + meanListLen := float64(dataLength) / float64(values.Len) + childIdxBuilder.reserve(int(meanListLen)) + } + + offsetBuilder.reserve(int(outputLength) + 1) + var offset OffsetT + err := fn(ctx, outputLength, values, selection, out, + func(idx int64) error { + offsetBuilder.unsafeAppend(offset) + valueOffset := rawOffsets[idx] + valueLength := rawOffsets[idx+1] - valueOffset + offset += valueLength + childIdxBuilder.reserve(int(valueLength)) + for j := valueOffset; j < valueOffset+valueLength; j++ { + childIdxBuilder.unsafeAppend(j) + } + return nil + }, func() error { + offsetBuilder.unsafeAppend(offset) + return nil + }) + + if err != nil { + return err + } + + offsetBuilder.unsafeAppend(offset) + out.Buffers[1].WrapBuffer(offsetBuilder.finish()) + + out.Children = make([]exec.ArraySpan, 1) + out.Children[0].Type = exec.GetDataType[OffsetT]() + out.Children[0].Len = int64(childIdxBuilder.len()) + out.Children[0].Buffers[1].WrapBuffer(childIdxBuilder.finish()) + + return nil +} + +func FSLImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + + listSize = values.Type.(*arrow.FixedSizeListType).Len() + baseOffset = values.Offset + + childIdxBuilder = array.NewInt64Builder(exec.GetAllocator(ctx.Ctx)) + ) + + // we need to take listSize elements even for null elements of indices + childIdxBuilder.Reserve(int(outputLength) * int(listSize)) + err := fn(ctx, outputLength, values, selection, out, + func(idx int64) error { + offset := (baseOffset + idx) * int64(listSize) + for j := offset; j < (offset + int64(listSize)); j++ { + childIdxBuilder.UnsafeAppend(j) + } + return nil + }, func() error { + for n := int32(0); n < listSize; n++ { + childIdxBuilder.AppendNull() + } + return nil + }) + + if err != nil { + return err + } + + arr := childIdxBuilder.NewArray() + defer arr.Release() + out.Children = make([]exec.ArraySpan, 1) + out.Children[0].TakeOwnership(arr.Data()) + return nil +} + +func DenseUnionImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + + mem = exec.GetAllocator(ctx.Ctx) + valueOffsetBldr = newBufferBuilder[int32](mem) + childIdBldr = newBufferBuilder[int8](mem) + typeCodes = values.Type.(arrow.UnionType).TypeCodes() + childIndicesBldrs = make([]*array.Int32Builder, len(typeCodes)) + ) + + for i := range childIndicesBldrs { + childIndicesBldrs[i] = array.NewInt32Builder(mem) + } + + childIdBldr.reserve(int(outputLength)) + valueOffsetBldr.reserve(int(outputLength)) + + typedValues := values.MakeArray().(*array.DenseUnion) + defer typedValues.Release() + + err := fn(ctx, outputLength, values, selection, out, + func(idx int64) error { + childID := typedValues.ChildID(int(idx)) + childIdBldr.unsafeAppend(typeCodes[childID]) + valueOffset := typedValues.ValueOffset(int(idx)) + valueOffsetBldr.unsafeAppend(int32(childIndicesBldrs[childID].Len())) + childIndicesBldrs[childID].Append(valueOffset) + return nil + }, func() error { + childID := 0 + childIdBldr.unsafeAppend(typeCodes[childID]) + valueOffsetBldr.unsafeAppend(int32(childIndicesBldrs[childID].Len())) + childIndicesBldrs[childID].AppendNull() + return nil + }) + if err != nil { + return err + } + + out.Type = typedValues.DataType() + out.Buffers[1].WrapBuffer(childIdBldr.finish()) + out.Buffers[2].WrapBuffer(valueOffsetBldr.finish()) + + out.Children = make([]exec.ArraySpan, len(childIndicesBldrs)) + for i, b := range childIndicesBldrs { + arr := b.NewArray() + out.Children[i].TakeOwnership(arr.Data()) + arr.Release() + b.Release() + } + return nil +} + +func FilterBinary(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + var ( + nullSelect = ctx.State.(FilterState).NullSelection + values = &batch.Values[0].Array + filter = &batch.Values[1].Array + outputLen = getFilterOutputSize(filter, nullSelect) + ) + + // the output precomputed null count is unknown except in the + // narrow condition that all the values are non-null and the filter + // will not cause any new nulls to be created + if values.Nulls == 0 && (nullSelect == DropNulls || filter.Nulls == 0) { + out.Nulls = 0 + } else { + out.Nulls = array.UnknownNullCount + } + + typeID := values.Type.ID() + if values.Nulls == 0 && filter.Nulls == 0 { + // faster no nulls case + switch { + case arrow.IsBinaryLike(typeID): + return binaryFilterNonNull[int32](ctx, values, filter, outputLen, nullSelect, out) + case arrow.IsLargeBinaryLike(typeID): + return binaryFilterNonNull[int64](ctx, values, filter, outputLen, nullSelect, out) + default: + return fmt.Errorf("%w: invalid type for binary filter", arrow.ErrInvalid) + } + } + + // output may have nulls + out.Buffers[0].WrapBuffer(ctx.AllocateBitmap(outputLen)) + switch { + case arrow.IsBinaryLike(typeID): + return binaryFilterImpl[int32](ctx, values, filter, outputLen, nullSelect, out) + case arrow.IsLargeBinaryLike(typeID): + return binaryFilterImpl[int64](ctx, values, filter, outputLen, nullSelect, out) + } + + return fmt.Errorf("%w: invalid type for binary filter", arrow.ErrInvalid) +} + +func visitNoop() error { return nil } +func visitIdxNoop(int64) error { return nil } + +func StructImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, outputLength int64, out *exec.ExecResult, fn selectionOutputFn) error { + var ( + values = &batch.Values[0].Array + selection = &batch.Values[1].Array + ) + + // nothing we need to do other than generate the validity bitmap + return fn(ctx, outputLength, values, selection, out, visitIdxNoop, visitNoop) +} + +type SelectionKernelData struct { + In exec.InputType + Exec exec.ArrayKernelExec + Chunked exec.ChunkedExec +} + +func ChunkedTakeSupported(dt arrow.DataType) bool { + return arrow.IsPrimitive(dt.ID()) +} + +func GetVectorSelectionKernels() (filterkernels, takeKernels []SelectionKernelData) { + filterkernels = []SelectionKernelData{ + {In: exec.NewMatchedInput(exec.Primitive()), Exec: PrimitiveFilter}, + {In: exec.NewExactInput(arrow.Null), Exec: NullFilter}, + {In: exec.NewIDInput(arrow.DECIMAL128), Exec: FilterExec(FSBImpl)}, + {In: exec.NewIDInput(arrow.DECIMAL256), Exec: FilterExec(FSBImpl)}, + {In: exec.NewIDInput(arrow.FIXED_SIZE_BINARY), Exec: FilterExec(FSBImpl)}, + {In: exec.NewMatchedInput(exec.BinaryLike()), Exec: FilterBinary}, + {In: exec.NewMatchedInput(exec.LargeBinaryLike()), Exec: FilterBinary}, + } + + takeKernels = []SelectionKernelData{ + {In: exec.NewExactInput(arrow.Null), Exec: NullTake}, + {In: exec.NewMatchedInput(exec.Primitive()), Exec: PrimitiveTake, Chunked: ChunkedPrimitiveTake}, + {In: exec.NewIDInput(arrow.DECIMAL128), Exec: TakeExec(FSBImpl)}, + {In: exec.NewIDInput(arrow.DECIMAL256), Exec: TakeExec(FSBImpl)}, + {In: exec.NewIDInput(arrow.FIXED_SIZE_BINARY), Exec: TakeExec(FSBImpl)}, + {In: exec.NewMatchedInput(exec.BinaryLike()), Exec: TakeExec(VarBinaryImpl[int32])}, + {In: exec.NewMatchedInput(exec.LargeBinaryLike()), Exec: TakeExec(VarBinaryImpl[int64])}, + } + return +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/registry.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/registry.go new file mode 100644 index 0000000..3fbb12d --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/registry.go @@ -0,0 +1,209 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "sync" + + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "golang.org/x/exp/maps" + "golang.org/x/exp/slices" +) + +type FunctionRegistry interface { + CanAddFunction(fn Function, allowOverwrite bool) bool + AddFunction(fn Function, allowOverwrite bool) bool + CanAddAlias(target, source string) bool + AddAlias(target, source string) bool + GetFunction(name string) (Function, bool) + GetFunctionNames() []string + NumFunctions() int + + canAddFuncName(string, bool) bool +} + +var ( + registry FunctionRegistry + once sync.Once +) + +func GetFunctionRegistry() FunctionRegistry { + once.Do(func() { + registry = NewRegistry() + RegisterScalarCast(registry) + RegisterVectorSelection(registry) + RegisterScalarBoolean(registry) + RegisterScalarArithmetic(registry) + RegisterScalarComparisons(registry) + RegisterVectorHash(registry) + RegisterVectorRunEndFuncs(registry) + }) + return registry +} + +func NewRegistry() FunctionRegistry { + return &funcRegistry{ + nameToFunction: make(map[string]Function)} +} + +func NewChildRegistry(parent FunctionRegistry) FunctionRegistry { + return &funcRegistry{ + parent: parent.(*funcRegistry), + nameToFunction: make(map[string]Function)} +} + +type funcRegistry struct { + parent *funcRegistry + + mx sync.RWMutex + nameToFunction map[string]Function +} + +func (reg *funcRegistry) getLocker(add bool) sync.Locker { + if add { + return ®.mx + } + return reg.mx.RLocker() +} + +func (reg *funcRegistry) CanAddFunction(fn Function, allowOverwrite bool) bool { + if reg.parent != nil && !reg.parent.CanAddFunction(fn, allowOverwrite) { + return false + } + + return reg.doAddFunction(fn, allowOverwrite, false) +} + +func (reg *funcRegistry) AddFunction(fn Function, allowOverwrite bool) bool { + if reg.parent != nil && !reg.parent.CanAddFunction(fn, allowOverwrite) { + return false + } + + return reg.doAddFunction(fn, allowOverwrite, true) +} + +func (reg *funcRegistry) CanAddAlias(target, source string) bool { + if reg.parent != nil && !reg.parent.canAddFuncName(target, false) { + return false + } + return reg.doAddAlias(target, source, false) +} + +func (reg *funcRegistry) AddAlias(target, source string) bool { + if reg.parent != nil && !reg.parent.canAddFuncName(target, false) { + return false + } + + return reg.doAddAlias(target, source, true) +} + +func (reg *funcRegistry) GetFunction(name string) (Function, bool) { + reg.mx.RLock() + defer reg.mx.RUnlock() + + if fn, ok := reg.nameToFunction[name]; ok { + return fn, ok + } + + if reg.parent != nil { + return reg.parent.GetFunction(name) + } + + return nil, false +} + +func (reg *funcRegistry) GetFunctionNames() (out []string) { + if reg.parent != nil { + out = reg.parent.GetFunctionNames() + } else { + out = make([]string, 0, len(reg.nameToFunction)) + } + reg.mx.RLock() + defer reg.mx.RUnlock() + + out = append(out, maps.Keys(reg.nameToFunction)...) + slices.Sort(out) + return +} + +func (reg *funcRegistry) NumFunctions() (n int) { + if reg.parent != nil { + n = reg.parent.NumFunctions() + } + reg.mx.RLock() + defer reg.mx.RUnlock() + return n + len(reg.nameToFunction) +} + +func (reg *funcRegistry) canAddFuncName(name string, allowOverwrite bool) bool { + if reg.parent != nil { + reg.parent.mx.RLock() + defer reg.parent.mx.RUnlock() + + if !reg.parent.canAddFuncName(name, allowOverwrite) { + return false + } + } + if !allowOverwrite { + _, ok := reg.nameToFunction[name] + return !ok + } + return true +} + +func (reg *funcRegistry) doAddFunction(fn Function, allowOverwrite bool, add bool) bool { + debug.Assert(fn.Validate() == nil, "invalid function") + + lk := reg.getLocker(add) + lk.Lock() + defer lk.Unlock() + + name := fn.Name() + if !reg.canAddFuncName(name, allowOverwrite) { + return false + } + + if add { + reg.nameToFunction[name] = fn + } + return true +} + +func (reg *funcRegistry) doAddAlias(target, source string, add bool) bool { + // source name must exist in the registry or the parent + // check outside the mutex, in case GetFunction has a mutex + // acquisition + fn, ok := reg.GetFunction(source) + if !ok { + return false + } + + lk := reg.getLocker(add) + lk.Lock() + defer lk.Unlock() + + if !reg.canAddFuncName(target, false) { + return false + } + + if add { + reg.nameToFunction[target] = fn + } + return true +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_bool.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_bool.go new file mode 100644 index 0000000..6a00757 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_bool.go @@ -0,0 +1,133 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" +) + +var ( + andDoc = FunctionDoc{ + Summary: "Logical 'and' boolean values", + Description: "When a null is encountered in either input, a null is output.\nFor a different null behavior, see function 'and_kleene'", + ArgNames: []string{"x", "y"}, + } + andNotDoc = FunctionDoc{ + Summary: "Logical 'and not' boolean values", + Description: "When a null is encountered in either input, a null is output.\nFor a different null behavior, see function 'and_not_kleene'", + ArgNames: []string{"x", "y"}, + } + orDoc = FunctionDoc{ + Summary: "Logical 'or' boolean values", + Description: "When a null is encountered in either input, a null is output.\nFor a different null behavior, see function 'or_kleene'", + ArgNames: []string{"x", "y"}, + } + xorDoc = FunctionDoc{ + Summary: "Logical 'xor' boolean values", + Description: "When a null is encountered in either input, a null is output.", + ArgNames: []string{"x", "y"}, + } + andKleeneDoc = FunctionDoc{ + Summary: "Logical 'and' boolean values (Kleene logic)", + Description: `This function behaves as follows with nulls: + + - true and null = null + - null and true = null + - false and null = false + - null and false = false + - null and null = null + + In other words, in this context, a null value really means "unknown" + and an unknown value "and" false is always false. + For a different null behavior, see function "and".`, + ArgNames: []string{"x", "y"}, + } + andNotKleeneDoc = FunctionDoc{ + Summary: "Logical 'and_not' boolean values (Kleene logic)", + Description: `This function behaves as follows with nulls: + + - true and not null = null + - null and not false = null + - false and not null = false + - null and not true = false + - null and not null = null + + In other words, in this context, a null value really means "unknown" + and an unknown value "and not" true is always false, as is false + "and not" an unknown value. + For a different null behavior, see function "and_not".`, + ArgNames: []string{"x", "y"}, + } + orKleeneDoc = FunctionDoc{ + Summary: "Logical 'or' boolean values (Kleene logic)", + Description: `This function behaves as follows with nulls: + + - true or null = true + - null or true = true + - false or null = null + - null or false = null + - null or null = null + + In other words, in this context, a null value really means "unknown" + and an unknown value "or" true is always true. + For a different null behavior, see function "and".`, + ArgNames: []string{"x", "y"}, + } +) + +func makeFunction(reg FunctionRegistry, name string, arity int, ex exec.ArrayKernelExec, doc FunctionDoc, nulls exec.NullHandling) { + fn := NewScalarFunction(name, Arity{NArgs: arity}, doc) + + inTypes := make([]exec.InputType, arity) + for i := range inTypes { + inTypes[i] = exec.NewExactInput(arrow.FixedWidthTypes.Boolean) + } + + k := exec.NewScalarKernel(inTypes, exec.NewOutputType(arrow.FixedWidthTypes.Boolean), ex, nil) + k.NullHandling = nulls + + if err := fn.AddKernel(k); err != nil { + panic(err) + } + + if !reg.AddFunction(fn, false) { + panic(fmt.Errorf("function '%s' already exists", name)) + } +} + +func RegisterScalarBoolean(reg FunctionRegistry) { + makeFunction(reg, "and", 2, kernels.SimpleBinary[kernels.AndOpKernel], + andDoc, exec.NullIntersection) + makeFunction(reg, "and_not", 2, kernels.SimpleBinary[kernels.AndNotOpKernel], + andNotDoc, exec.NullIntersection) + makeFunction(reg, "or", 2, kernels.SimpleBinary[kernels.OrOpKernel], + orDoc, exec.NullIntersection) + makeFunction(reg, "xor", 2, kernels.SimpleBinary[kernels.XorOpKernel], + xorDoc, exec.NullIntersection) + makeFunction(reg, "and_kleene", 2, kernels.SimpleBinary[kernels.KleeneAndOpKernel], + andKleeneDoc, exec.NullComputedPrealloc) + makeFunction(reg, "and_not_kleene", 2, kernels.SimpleBinary[kernels.KleeneAndNotOpKernel], + andNotKleeneDoc, exec.NullComputedPrealloc) + makeFunction(reg, "or_kleene", 2, kernels.SimpleBinary[kernels.KleeneOrOpKernel], + orKleeneDoc, exec.NullComputedPrealloc) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_compare.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_compare.go new file mode 100644 index 0000000..53b573a --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/scalar_compare.go @@ -0,0 +1,137 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" +) + +type compareFunction struct { + ScalarFunction +} + +func (fn *compareFunction) Execute(ctx context.Context, opt FunctionOptions, args ...Datum) (Datum, error) { + return execInternal(ctx, fn, opt, -1, args...) +} + +func (fn *compareFunction) DispatchBest(vals ...arrow.DataType) (exec.Kernel, error) { + if err := fn.checkArity(len(vals)); err != nil { + return nil, err + } + + if hasDecimal(vals...) { + if err := castBinaryDecimalArgs(decPromoteAdd, vals...); err != nil { + return nil, err + } + } + + if kn, err := fn.DispatchExact(vals...); err == nil { + return kn, nil + } + + ensureDictionaryDecoded(vals...) + replaceNullWithOtherType(vals...) + + if dt := commonNumeric(vals...); dt != nil { + replaceTypes(dt, vals...) + } else if dt := commonTemporal(vals...); dt != nil { + replaceTypes(dt, vals...) + } else if dt := commonBinary(vals...); dt != nil { + replaceTypes(dt, vals...) + } + + return fn.DispatchExact(vals...) +} + +type flippedData struct { + *kernels.CompareData + + unflippedExec exec.ArrayKernelExec +} + +func flippedCompare(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + kn := ctx.Kernel.(*exec.ScalarKernel) + knData := kn.Data.(*flippedData) + + flippedBatch := exec.ExecSpan{ + Len: batch.Len, + Values: []exec.ExecValue{batch.Values[1], batch.Values[0]}, + } + return knData.unflippedExec(ctx, &flippedBatch, out) +} + +func makeFlippedCompare(name string, fn *compareFunction, doc FunctionDoc) *compareFunction { + flipped := &compareFunction{*NewScalarFunction(name, Binary(), doc)} + for _, k := range fn.kernels { + flippedKernel := k + if k.Data != nil { + cmpData := k.Data.(*kernels.CompareData) + flippedKernel.Data = &flippedData{CompareData: cmpData, + unflippedExec: k.ExecFn} + } else { + flippedKernel.Data = &flippedData{unflippedExec: k.ExecFn} + } + flippedKernel.ExecFn = flippedCompare + flipped.AddKernel(flippedKernel) + } + return flipped +} + +func RegisterScalarComparisons(reg FunctionRegistry) { + eqFn := &compareFunction{*NewScalarFunction("equal", Binary(), EmptyFuncDoc)} + for _, k := range kernels.CompareKernels(kernels.CmpEQ) { + if err := eqFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(eqFn, false) + + neqFn := &compareFunction{*NewScalarFunction("not_equal", Binary(), EmptyFuncDoc)} + for _, k := range kernels.CompareKernels(kernels.CmpNE) { + if err := neqFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(neqFn, false) + + gtFn := &compareFunction{*NewScalarFunction("greater", Binary(), EmptyFuncDoc)} + for _, k := range kernels.CompareKernels(kernels.CmpGT) { + if err := gtFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(gtFn, false) + + gteFn := &compareFunction{*NewScalarFunction("greater_equal", Binary(), EmptyFuncDoc)} + for _, k := range kernels.CompareKernels(kernels.CmpGE) { + if err := gteFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(gteFn, false) + + ltFn := makeFlippedCompare("less", gtFn, EmptyFuncDoc) + reg.AddFunction(ltFn, false) + lteFn := makeFlippedCompare("less_equal", gteFn, EmptyFuncDoc) + reg.AddFunction(lteFn, false) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/selection.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/selection.go new file mode 100644 index 0000000..7a68a83 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/selection.go @@ -0,0 +1,729 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" + "golang.org/x/sync/errgroup" +) + +var ( + filterDoc = FunctionDoc{ + Summary: "Filter with a boolean selection filter", + Description: `The output is populated with values from the input at positions +where the selection filter is non-zero. Nulls in the selection filter +are handled based on FilterOptions.`, + ArgNames: []string{"input", "selection_filter"}, + OptionsType: "FilterOptions", + } + filterMetaFunc = NewMetaFunction("filter", Binary(), filterDoc, + func(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + if args[1].(ArrayLikeDatum).Type().ID() != arrow.BOOL { + return nil, fmt.Errorf("%w: filter argument must be boolean type", + arrow.ErrNotImplemented) + } + + switch args[0].Kind() { + case KindRecord: + filtOpts, ok := opts.(*FilterOptions) + if !ok { + return nil, fmt.Errorf("%w: invalid options type", arrow.ErrInvalid) + } + + if filter, ok := args[1].(*ArrayDatum); ok { + filterArr := filter.MakeArray() + defer filterArr.Release() + rec, err := FilterRecordBatch(ctx, args[0].(*RecordDatum).Value, filterArr, filtOpts) + if err != nil { + return nil, err + } + return &RecordDatum{Value: rec}, nil + } + return nil, fmt.Errorf("%w: record batch filtering only implemented for Array filter", arrow.ErrNotImplemented) + case KindTable: + filtOpts, ok := opts.(*FilterOptions) + if !ok { + return nil, fmt.Errorf("%w: invalid options type", arrow.ErrInvalid) + } + + tbl, err := FilterTable(ctx, args[0].(*TableDatum).Value, args[1], filtOpts) + if err != nil { + return nil, err + } + return &TableDatum{Value: tbl}, nil + + default: + return CallFunction(ctx, "array_filter", opts, args...) + } + }) + takeDoc = FunctionDoc{ + Summary: "Select values from an input based on indices from another array", + Description: `The output is populated with values from the input at positions +given by "indices". Nulls in "indices" emit null in the output`, + ArgNames: []string{"input", "indices"}, + OptionsType: "TakeOptions", + } + takeMetaFunc = NewMetaFunction("take", Binary(), takeDoc, + func(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + indexKind := args[1].Kind() + if indexKind != KindArray && indexKind != KindChunked { + return nil, fmt.Errorf("%w: unsupported types for take operation: values=%s, indices=%s", + arrow.ErrNotImplemented, args[0], args[1]) + } + + switch args[0].Kind() { + case KindArray: + return takeArrayImpl(ctx, opts, args...) + case KindChunked: + return takeChunkedImpl(ctx, opts, args...) + case KindRecord: + return takeRecordImpl(ctx, opts, args...) + case KindTable: + return takeTableImpl(ctx, opts, args...) + } + + return nil, fmt.Errorf("%w: unsupported types for take operation: values=%s, indices=%s", + arrow.ErrNotImplemented, args[0], args[1]) + }) +) + +func takeTableImpl(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + tbl := args[0].(*TableDatum).Value + ncols := int(tbl.NumCols()) + cols := make([]arrow.Column, ncols) + defer func() { + for _, c := range cols { + c.Release() + } + }() + + eg, cctx := errgroup.WithContext(ctx) + eg.SetLimit(GetExecCtx(ctx).NumParallel) + for i := 0; i < ncols; i++ { + i := i + eg.Go(func() error { + inCol := tbl.Column(i) + result, err := CallFunction(cctx, "take", opts, + &ChunkedDatum{Value: inCol.Data()}, + args[1]) + if err != nil { + return err + } + defer result.Release() + out := result.(ArrayLikeDatum) + chunks := out.Chunks() + if out.Kind() == KindArray { + defer chunks[0].Release() + } + chk := arrow.NewChunked(out.Type(), chunks) + defer chk.Release() + cols[i] = *arrow.NewColumn(inCol.Field(), chk) + return nil + }) + } + + if err := eg.Wait(); err != nil { + return nil, err + } + + final := array.NewTable(tbl.Schema(), cols, -1) + return &TableDatum{Value: final}, nil +} + +func takeRecordImpl(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + indices := args[1] + if indices.Kind() == KindChunked { + newIndices, err := array.Concatenate(indices.(*ChunkedDatum).Chunks(), exec.GetAllocator(ctx)) + if err != nil { + return nil, err + } + defer newIndices.Release() + indices = &ArrayDatum{Value: newIndices.Data()} + } + + rb := args[0].(*RecordDatum).Value + ncols := rb.NumCols() + nrows := args[1].(ArrayLikeDatum).Len() + cols := make([]arrow.Array, ncols) + defer func() { + for _, c := range cols { + if c != nil { + c.Release() + } + } + }() + + eg, cctx := errgroup.WithContext(ctx) + eg.SetLimit(GetExecCtx(ctx).NumParallel) + for i := range rb.Columns() { + i := i + eg.Go(func() error { + out, err := CallFunction(cctx, "array_take", opts, &ArrayDatum{Value: rb.Column(i).Data()}, indices) + if err != nil { + return err + } + defer out.Release() + cols[i] = out.(*ArrayDatum).MakeArray() + return nil + }) + } + + if err := eg.Wait(); err != nil { + return nil, err + } + + outRec := array.NewRecord(rb.Schema(), cols, nrows) + return &RecordDatum{Value: outRec}, nil +} + +func takeArrayImpl(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + switch args[1].Kind() { + case KindArray: + return CallFunction(ctx, "array_take", opts, args...) + case KindChunked: + chunks := args[1].(*ChunkedDatum).Chunks() + out := make([]arrow.Array, len(chunks)) + defer func() { + for _, a := range out { + if a != nil { + a.Release() + } + } + }() + + eg, cctx := errgroup.WithContext(ctx) + eg.SetLimit(GetExecCtx(ctx).NumParallel) + for i := range chunks { + i := i + eg.Go(func() error { + result, err := CallFunction(cctx, "array_take", opts, args[0], &ArrayDatum{Value: chunks[i].Data()}) + if err != nil { + return err + } + defer result.Release() + out[i] = result.(*ArrayDatum).MakeArray() + return nil + }) + } + if err := eg.Wait(); err != nil { + return nil, err + } + return &ChunkedDatum{ + Value: arrow.NewChunked(args[0].(*ArrayDatum).Type(), out)}, nil + } + + return nil, fmt.Errorf("%w: unsupported types for take operation: values=%s, indices=%s", + arrow.ErrNotImplemented, args[0], args[1]) +} + +func takeChunkedImpl(ctx context.Context, opts FunctionOptions, args ...Datum) (Datum, error) { + chunked := args[0].(*ChunkedDatum).Value + var chnkArg *arrow.Chunked + if arg, ok := args[1].(*ArrayDatum); ok { + switch { + case len(chunked.Chunks()) <= 1: + var curChunk arrow.Array + if len(chunked.Chunks()) == 1 { + curChunk = chunked.Chunk(0) + } else { + // no chunks, create an empty one! + curChunk = array.MakeArrayOfNull(exec.GetAllocator(ctx), chunked.DataType(), 0) + defer curChunk.Release() + } + newChunk, err := CallFunction(ctx, "array_take", opts, &ArrayDatum{Value: curChunk.Data()}, arg) + if err != nil { + return nil, err + } + defer newChunk.Release() + outChunks := newChunk.(*ArrayDatum).Chunks() + defer outChunks[0].Release() + return &ChunkedDatum{Value: arrow.NewChunked(outChunks[0].DataType(), outChunks)}, nil + case kernels.ChunkedTakeSupported(chunked.DataType()): + indices := arg.Chunks() + defer indices[0].Release() + chnkArg = arrow.NewChunked(arg.Type(), indices) + defer chnkArg.Release() + default: + values, err := array.Concatenate(chunked.Chunks(), GetAllocator(ctx)) + if err != nil { + return nil, err + } + defer values.Release() + newChunk, err := CallFunction(ctx, "array_take", opts, &ArrayDatum{Value: values.Data()}, arg) + if err != nil { + return nil, err + } + defer newChunk.Release() + outChunks := newChunk.(*ArrayDatum).Chunks() + defer outChunks[0].Release() + return &ChunkedDatum{Value: arrow.NewChunked(outChunks[0].DataType(), outChunks)}, nil + } + } else { + chnkArg = args[1].(*ChunkedDatum).Value + } + + if kernels.ChunkedTakeSupported(chunked.DataType()) { + return CallFunction(ctx, "array_take", opts, args[0], &ChunkedDatum{Value: chnkArg}) + } + + values, err := array.Concatenate(chunked.Chunks(), GetAllocator(ctx)) + if err != nil { + return nil, err + } + defer values.Release() + return CallFunction(ctx, "take", opts, &ArrayDatum{Value: values.Data()}, &ChunkedDatum{Value: chnkArg}) +} + +func Take(ctx context.Context, opts TakeOptions, values, indices Datum) (Datum, error) { + return CallFunction(ctx, "take", &opts, values, indices) +} + +func TakeArray(ctx context.Context, values, indices arrow.Array) (arrow.Array, error) { + v := NewDatum(values) + idx := NewDatum(indices) + defer v.Release() + defer idx.Release() + + out, err := CallFunction(ctx, "array_take", nil, v, idx) + if err != nil { + return nil, err + } + defer out.Release() + + return out.(*ArrayDatum).MakeArray(), nil +} + +func TakeArrayOpts(ctx context.Context, values, indices arrow.Array, opts TakeOptions) (arrow.Array, error) { + v := NewDatum(values) + idx := NewDatum(indices) + defer v.Release() + defer idx.Release() + + out, err := CallFunction(ctx, "array_take", &opts, v, idx) + if err != nil { + return nil, err + } + defer out.Release() + + return out.(*ArrayDatum).MakeArray(), nil +} + +type listArr interface { + arrow.Array + ListValues() arrow.Array +} + +func selectListImpl(fn exec.ArrayKernelExec) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if err := fn(ctx, batch, out); err != nil { + return err + } + + // out.Children[0] contains the child indexes of values that we + // want to take after processing. + values := batch.Values[0].Array.MakeArray().(listArr) + defer values.Release() + + childIndices := out.Children[0].MakeArray() + defer childIndices.Release() + + takenChild, err := TakeArrayOpts(ctx.Ctx, values.ListValues(), childIndices, kernels.TakeOptions{BoundsCheck: false}) + if err != nil { + return err + } + defer takenChild.Release() + + out.Children[0].TakeOwnership(takenChild.Data()) + return nil + } +} + +func denseUnionImpl(fn exec.ArrayKernelExec) exec.ArrayKernelExec { + return func(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + if err := fn(ctx, batch, out); err != nil { + return err + } + + typedValues := batch.Values[0].Array.MakeArray().(*array.DenseUnion) + defer typedValues.Release() + + eg, cctx := errgroup.WithContext(ctx.Ctx) + eg.SetLimit(GetExecCtx(ctx.Ctx).NumParallel) + + for i := 0; i < typedValues.NumFields(); i++ { + i := i + eg.Go(func() error { + arr := typedValues.Field(i) + childIndices := out.Children[i].MakeArray() + defer childIndices.Release() + taken, err := TakeArrayOpts(cctx, arr, childIndices, kernels.TakeOptions{}) + if err != nil { + return err + } + defer taken.Release() + out.Children[i].TakeOwnership(taken.Data()) + return nil + }) + } + + return eg.Wait() + } +} + +func extensionFilterImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + extArray := batch.Values[0].Array.MakeArray().(array.ExtensionArray) + defer extArray.Release() + + selection := batch.Values[1].Array.MakeArray() + defer selection.Release() + result, err := FilterArray(ctx.Ctx, extArray.Storage(), selection, FilterOptions(ctx.State.(kernels.FilterState))) + if err != nil { + return err + } + defer result.Release() + + out.TakeOwnership(result.Data()) + out.Type = extArray.DataType() + return nil +} + +func extensionTakeImpl(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + extArray := batch.Values[0].Array.MakeArray().(array.ExtensionArray) + defer extArray.Release() + + selection := batch.Values[1].Array.MakeArray() + defer selection.Release() + result, err := TakeArrayOpts(ctx.Ctx, extArray.Storage(), selection, TakeOptions(ctx.State.(kernels.TakeState))) + if err != nil { + return err + } + defer result.Release() + + out.TakeOwnership(result.Data()) + out.Type = extArray.DataType() + return nil +} + +func structFilter(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + // transform filter to selection indices and use take + indices, err := kernels.GetTakeIndices(exec.GetAllocator(ctx.Ctx), + &batch.Values[1].Array, ctx.State.(kernels.FilterState).NullSelection) + if err != nil { + return err + } + defer indices.Release() + + filter := NewDatum(indices) + defer filter.Release() + + valData := batch.Values[0].Array.MakeData() + defer valData.Release() + + vals := NewDatum(valData) + defer vals.Release() + + result, err := Take(ctx.Ctx, kernels.TakeOptions{BoundsCheck: false}, vals, filter) + if err != nil { + return err + } + defer result.Release() + + out.TakeOwnership(result.(*ArrayDatum).Value) + return nil +} + +func structTake(ctx *exec.KernelCtx, batch *exec.ExecSpan, out *exec.ExecResult) error { + // generate top level validity bitmap + if err := kernels.TakeExec(kernels.StructImpl)(ctx, batch, out); err != nil { + return err + } + + values := batch.Values[0].Array.MakeArray().(*array.Struct) + defer values.Release() + + // select from children without bounds checking + out.Children = make([]exec.ArraySpan, values.NumField()) + eg, cctx := errgroup.WithContext(ctx.Ctx) + eg.SetLimit(GetExecCtx(ctx.Ctx).NumParallel) + + selection := batch.Values[1].Array.MakeArray() + defer selection.Release() + + for i := range out.Children { + i := i + eg.Go(func() error { + taken, err := TakeArrayOpts(cctx, values.Field(i), selection, kernels.TakeOptions{BoundsCheck: false}) + if err != nil { + return err + } + defer taken.Release() + + out.Children[i].TakeOwnership(taken.Data()) + return nil + }) + } + + return eg.Wait() +} + +// RegisterVectorSelection registers functions that select specific +// values from arrays such as Take and Filter +func RegisterVectorSelection(reg FunctionRegistry) { + filterMetaFunc.defaultOpts = DefaultFilterOptions() + takeMetaFunc.defaultOpts = DefaultTakeOptions() + reg.AddFunction(filterMetaFunc, false) + reg.AddFunction(takeMetaFunc, false) + filterKernels, takeKernels := kernels.GetVectorSelectionKernels() + + filterKernels = append(filterKernels, []kernels.SelectionKernelData{ + {In: exec.NewIDInput(arrow.LIST), Exec: selectListImpl(kernels.FilterExec(kernels.ListImpl[int32]))}, + {In: exec.NewIDInput(arrow.LARGE_LIST), Exec: selectListImpl(kernels.FilterExec(kernels.ListImpl[int64]))}, + {In: exec.NewIDInput(arrow.FIXED_SIZE_LIST), Exec: selectListImpl(kernels.FilterExec(kernels.FSLImpl))}, + {In: exec.NewIDInput(arrow.DENSE_UNION), Exec: denseUnionImpl(kernels.FilterExec(kernels.DenseUnionImpl))}, + {In: exec.NewIDInput(arrow.EXTENSION), Exec: extensionFilterImpl}, + {In: exec.NewIDInput(arrow.STRUCT), Exec: structFilter}, + }...) + + takeKernels = append(takeKernels, []kernels.SelectionKernelData{ + {In: exec.NewIDInput(arrow.LIST), Exec: selectListImpl(kernels.TakeExec(kernels.ListImpl[int32]))}, + {In: exec.NewIDInput(arrow.LARGE_LIST), Exec: selectListImpl(kernels.TakeExec(kernels.ListImpl[int64]))}, + {In: exec.NewIDInput(arrow.FIXED_SIZE_LIST), Exec: selectListImpl(kernels.TakeExec(kernels.FSLImpl))}, + {In: exec.NewIDInput(arrow.DENSE_UNION), Exec: denseUnionImpl(kernels.TakeExec(kernels.DenseUnionImpl))}, + {In: exec.NewIDInput(arrow.EXTENSION), Exec: extensionTakeImpl}, + {In: exec.NewIDInput(arrow.STRUCT), Exec: structTake}, + }...) + + vfunc := NewVectorFunction("array_filter", Binary(), EmptyFuncDoc) + vfunc.defaultOpts = &kernels.FilterOptions{} + + selectionType := exec.NewExactInput(arrow.FixedWidthTypes.Boolean) + basekernel := exec.NewVectorKernelWithSig(nil, nil, exec.OptionsInit[kernels.FilterState]) + for _, kd := range filterKernels { + basekernel.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{kd.In, selectionType}, + OutType: kernels.OutputFirstType, + } + basekernel.ExecFn = kd.Exec + basekernel.ExecChunked = kd.Chunked + vfunc.AddKernel(basekernel) + } + reg.AddFunction(vfunc, false) + + vfunc = NewVectorFunction("array_take", Binary(), EmptyFuncDoc) + vfunc.defaultOpts = DefaultTakeOptions() + + selectionType = exec.NewMatchedInput(exec.Integer()) + basekernel = exec.NewVectorKernelWithSig(nil, nil, exec.OptionsInit[kernels.TakeState]) + basekernel.CanExecuteChunkWise = false + for _, kd := range takeKernels { + basekernel.Signature = &exec.KernelSignature{ + InputTypes: []exec.InputType{kd.In, selectionType}, + OutType: kernels.OutputFirstType, + } + + basekernel.ExecFn = kd.Exec + basekernel.ExecChunked = kd.Chunked + vfunc.AddKernel(basekernel) + } + reg.AddFunction(vfunc, false) +} + +// Filter is a wrapper convenience that is equivalent to calling +// CallFunction(ctx, "filter", &options, values, filter) for filtering +// an input array (values) by a boolean array (filter). The two inputs +// must be the same length. +func Filter(ctx context.Context, values, filter Datum, options FilterOptions) (Datum, error) { + return CallFunction(ctx, "filter", &options, values, filter) +} + +// FilterArray is a convenience method for calling Filter without having +// to manually construct the intervening Datum objects (they will be +// created for you internally here). +func FilterArray(ctx context.Context, values, filter arrow.Array, options FilterOptions) (arrow.Array, error) { + valDatum := NewDatum(values) + filterDatum := NewDatum(filter) + defer valDatum.Release() + defer filterDatum.Release() + + outDatum, err := Filter(ctx, valDatum, filterDatum, options) + if err != nil { + return nil, err + } + + defer outDatum.Release() + return outDatum.(*ArrayDatum).MakeArray(), nil +} + +func FilterRecordBatch(ctx context.Context, batch arrow.Record, filter arrow.Array, opts *FilterOptions) (arrow.Record, error) { + if batch.NumRows() != int64(filter.Len()) { + return nil, fmt.Errorf("%w: filter inputs must all be the same length", arrow.ErrInvalid) + } + + var filterSpan exec.ArraySpan + filterSpan.SetMembers(filter.Data()) + + indices, err := kernels.GetTakeIndices(exec.GetAllocator(ctx), &filterSpan, opts.NullSelection) + if err != nil { + return nil, err + } + defer indices.Release() + + indicesArr := array.MakeFromData(indices) + defer indicesArr.Release() + + cols := make([]arrow.Array, batch.NumCols()) + defer func() { + for _, c := range cols { + if c != nil { + c.Release() + } + } + }() + eg, cctx := errgroup.WithContext(ctx) + eg.SetLimit(GetExecCtx(ctx).NumParallel) + for i, col := range batch.Columns() { + i, col := i, col + eg.Go(func() error { + out, err := TakeArrayOpts(cctx, col, indicesArr, kernels.TakeOptions{BoundsCheck: false}) + if err != nil { + return err + } + cols[i] = out + return nil + }) + } + + if err := eg.Wait(); err != nil { + return nil, err + } + + return array.NewRecord(batch.Schema(), cols, int64(indicesArr.Len())), nil +} + +func FilterTable(ctx context.Context, tbl arrow.Table, filter Datum, opts *FilterOptions) (arrow.Table, error) { + if tbl.NumRows() != filter.Len() { + return nil, fmt.Errorf("%w: filter inputs must all be the same length", arrow.ErrInvalid) + } + + if tbl.NumRows() == 0 { + cols := make([]arrow.Column, tbl.NumCols()) + for i := 0; i < int(tbl.NumCols()); i++ { + cols[i] = *tbl.Column(i) + } + return array.NewTable(tbl.Schema(), cols, 0), nil + } + + // last input element will be the filter array + nCols := tbl.NumCols() + inputs := make([][]arrow.Array, nCols+1) + for i := int64(0); i < nCols; i++ { + inputs[i] = tbl.Column(int(i)).Data().Chunks() + } + + switch ft := filter.(type) { + case *ArrayDatum: + inputs[nCols] = ft.Chunks() + defer inputs[nCols][0].Release() + case *ChunkedDatum: + inputs[nCols] = ft.Chunks() + default: + return nil, fmt.Errorf("%w: filter should be array-like", arrow.ErrNotImplemented) + } + + // rechunk inputs to allow consistent iteration over the respective chunks + inputs = exec.RechunkArraysConsistently(inputs) + + // instead of filtering each column with the boolean filter + // (which would be slow if the table has a large number of columns) + // convert each filter chunk to indices and take() the column + mem := GetAllocator(ctx) + outCols := make([][]arrow.Array, nCols) + // pre-size the output + nChunks := len(inputs[nCols]) + for i := range outCols { + outCols[i] = make([]arrow.Array, nChunks) + } + var outNumRows int64 + var cancel context.CancelFunc + ctx, cancel = context.WithCancel(ctx) + defer cancel() + + eg, cctx := errgroup.WithContext(ctx) + eg.SetLimit(GetExecCtx(cctx).NumParallel) + + var filterSpan exec.ArraySpan + for i, filterChunk := range inputs[nCols] { + filterSpan.SetMembers(filterChunk.Data()) + indices, err := kernels.GetTakeIndices(mem, &filterSpan, opts.NullSelection) + if err != nil { + return nil, err + } + defer indices.Release() + filterChunk.Release() + if indices.Len() == 0 { + for col := int64(0); col < nCols; col++ { + inputs[col][i].Release() + } + continue + } + + // take from all input columns + outNumRows += int64(indices.Len()) + indicesDatum := NewDatum(indices) + defer indicesDatum.Release() + + for col := int64(0); col < nCols; col++ { + columnChunk := inputs[col][i] + defer columnChunk.Release() + i := i + col := col + eg.Go(func() error { + columnDatum := NewDatum(columnChunk) + defer columnDatum.Release() + out, err := Take(cctx, kernels.TakeOptions{BoundsCheck: false}, columnDatum, indicesDatum) + if err != nil { + return err + } + defer out.Release() + outCols[col][i] = out.(*ArrayDatum).MakeArray() + return nil + }) + } + } + + if err := eg.Wait(); err != nil { + return nil, err + } + + outChunks := make([]arrow.Column, nCols) + for i, chunks := range outCols { + chk := arrow.NewChunked(tbl.Column(i).DataType(), chunks) + outChunks[i] = *arrow.NewColumn(tbl.Schema().Field(i), chk) + defer outChunks[i].Release() + chk.Release() + } + + return array.NewTable(tbl.Schema(), outChunks, outNumRows), nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/utils.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/utils.go new file mode 100644 index 0000000..e0c6be3 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/utils.go @@ -0,0 +1,400 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "fmt" + "io" + "math" + "time" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/compute/internal/exec" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "golang.org/x/xerrors" +) + +type bufferWriteSeeker struct { + buf *memory.Buffer + pos int + mem memory.Allocator +} + +func (b *bufferWriteSeeker) Reserve(nbytes int) { + if b.buf == nil { + b.buf = memory.NewResizableBuffer(b.mem) + } + newCap := int(math.Max(float64(b.buf.Cap()), 256)) + for newCap < b.pos+nbytes { + newCap = bitutil.NextPowerOf2(newCap) + } + b.buf.Reserve(newCap) +} + +func (b *bufferWriteSeeker) Write(p []byte) (n int, err error) { + if len(p) == 0 { + return 0, nil + } + + if b.buf == nil { + b.Reserve(len(p)) + } else if b.pos+len(p) >= b.buf.Cap() { + b.Reserve(len(p)) + } + + return b.UnsafeWrite(p) +} + +func (b *bufferWriteSeeker) UnsafeWrite(p []byte) (n int, err error) { + n = copy(b.buf.Buf()[b.pos:], p) + b.pos += len(p) + if b.pos > b.buf.Len() { + b.buf.ResizeNoShrink(b.pos) + } + return +} + +func (b *bufferWriteSeeker) Seek(offset int64, whence int) (int64, error) { + newpos, offs := 0, int(offset) + switch whence { + case io.SeekStart: + newpos = offs + case io.SeekCurrent: + newpos = b.pos + offs + case io.SeekEnd: + newpos = b.buf.Len() + offs + } + if newpos < 0 { + return 0, xerrors.New("negative result pos") + } + b.pos = newpos + return int64(newpos), nil +} + +// ensureDictionaryDecoded is used by DispatchBest to determine +// the proper types for promotion. Casting is then performed by +// the executor before continuing execution: see the implementation +// of execInternal in exec.go after calling DispatchBest. +// +// That casting is where actual decoding would be performed for +// the dictionary +func ensureDictionaryDecoded(vals ...arrow.DataType) { + for i, v := range vals { + if v.ID() == arrow.DICTIONARY { + vals[i] = v.(*arrow.DictionaryType).ValueType + } + } +} + +func replaceNullWithOtherType(vals ...arrow.DataType) { + debug.Assert(len(vals) == 2, "should be length 2") + + if vals[0].ID() == arrow.NULL { + vals[0] = vals[1] + return + } + + if vals[1].ID() == arrow.NULL { + vals[1] = vals[0] + return + } +} + +func commonTemporalResolution(vals ...arrow.DataType) (arrow.TimeUnit, bool) { + isTimeUnit := false + finestUnit := arrow.Second + for _, v := range vals { + switch dt := v.(type) { + case *arrow.Date32Type: + isTimeUnit = true + continue + case *arrow.Date64Type: + finestUnit = exec.Max(finestUnit, arrow.Millisecond) + isTimeUnit = true + case arrow.TemporalWithUnit: + finestUnit = exec.Max(finestUnit, dt.TimeUnit()) + isTimeUnit = true + default: + continue + } + } + return finestUnit, isTimeUnit +} + +func replaceTemporalTypes(unit arrow.TimeUnit, vals ...arrow.DataType) { + for i, v := range vals { + switch dt := v.(type) { + case *arrow.TimestampType: + dt.Unit = unit + vals[i] = dt + case *arrow.Time32Type, *arrow.Time64Type: + if unit > arrow.Millisecond { + vals[i] = &arrow.Time64Type{Unit: unit} + } else { + vals[i] = &arrow.Time32Type{Unit: unit} + } + case *arrow.DurationType: + dt.Unit = unit + vals[i] = dt + case *arrow.Date32Type, *arrow.Date64Type: + vals[i] = &arrow.TimestampType{Unit: unit} + } + } +} + +func replaceTypes(replacement arrow.DataType, vals ...arrow.DataType) { + for i := range vals { + vals[i] = replacement + } +} + +func commonNumeric(vals ...arrow.DataType) arrow.DataType { + for _, v := range vals { + if !arrow.IsFloating(v.ID()) && !arrow.IsInteger(v.ID()) { + // a common numeric type is only possible if all are numeric + return nil + } + if v.ID() == arrow.FLOAT16 { + // float16 arithmetic is not currently supported + return nil + } + } + + for _, v := range vals { + if v.ID() == arrow.FLOAT64 { + return arrow.PrimitiveTypes.Float64 + } + } + + for _, v := range vals { + if v.ID() == arrow.FLOAT32 { + return arrow.PrimitiveTypes.Float32 + } + } + + maxWidthSigned, maxWidthUnsigned := 0, 0 + for _, v := range vals { + if arrow.IsUnsignedInteger(v.ID()) { + maxWidthUnsigned = exec.Max(v.(arrow.FixedWidthDataType).BitWidth(), maxWidthUnsigned) + } else { + maxWidthSigned = exec.Max(v.(arrow.FixedWidthDataType).BitWidth(), maxWidthSigned) + } + } + + if maxWidthSigned == 0 { + switch { + case maxWidthUnsigned >= 64: + return arrow.PrimitiveTypes.Uint64 + case maxWidthUnsigned == 32: + return arrow.PrimitiveTypes.Uint32 + case maxWidthUnsigned == 16: + return arrow.PrimitiveTypes.Uint16 + default: + debug.Assert(maxWidthUnsigned == 8, "bad maxWidthUnsigned") + return arrow.PrimitiveTypes.Uint8 + } + } + + if maxWidthSigned <= maxWidthUnsigned { + maxWidthSigned = bitutil.NextPowerOf2(maxWidthUnsigned + 1) + } + + switch { + case maxWidthSigned >= 64: + return arrow.PrimitiveTypes.Int64 + case maxWidthSigned == 32: + return arrow.PrimitiveTypes.Int32 + case maxWidthSigned == 16: + return arrow.PrimitiveTypes.Int16 + default: + debug.Assert(maxWidthSigned == 8, "bad maxWidthSigned") + return arrow.PrimitiveTypes.Int8 + } +} + +func hasDecimal(vals ...arrow.DataType) bool { + for _, v := range vals { + if arrow.IsDecimal(v.ID()) { + return true + } + } + + return false +} + +type decimalPromotion uint8 + +const ( + decPromoteNone decimalPromotion = iota + decPromoteAdd + decPromoteMultiply + decPromoteDivide +) + +func castBinaryDecimalArgs(promote decimalPromotion, vals ...arrow.DataType) error { + left, right := vals[0], vals[1] + debug.Assert(arrow.IsDecimal(left.ID()) || arrow.IsDecimal(right.ID()), "at least one of the types should be decimal") + + // decimal + float = float + if arrow.IsFloating(left.ID()) { + vals[1] = vals[0] + return nil + } else if arrow.IsFloating(right.ID()) { + vals[0] = vals[1] + return nil + } + + var prec1, scale1, prec2, scale2 int32 + var err error + // decimal + integer = decimal + if arrow.IsDecimal(left.ID()) { + dec := left.(arrow.DecimalType) + prec1, scale1 = dec.GetPrecision(), dec.GetScale() + } else { + debug.Assert(arrow.IsInteger(left.ID()), "floats were already handled, this should be an int") + if prec1, err = kernels.MaxDecimalDigitsForInt(left.ID()); err != nil { + return err + } + } + if arrow.IsDecimal(right.ID()) { + dec := right.(arrow.DecimalType) + prec2, scale2 = dec.GetPrecision(), dec.GetScale() + } else { + debug.Assert(arrow.IsInteger(right.ID()), "float already handled, should be ints") + if prec2, err = kernels.MaxDecimalDigitsForInt(right.ID()); err != nil { + return err + } + } + + if scale1 < 0 || scale2 < 0 { + return fmt.Errorf("%w: decimals with negative scales not supported", arrow.ErrNotImplemented) + } + + // decimal128 + decimal256 = decimal256 + castedID := arrow.DECIMAL128 + if left.ID() == arrow.DECIMAL256 || right.ID() == arrow.DECIMAL256 { + castedID = arrow.DECIMAL256 + } + + // decimal promotion rules compatible with amazon redshift + // https://docs.aws.amazon.com/redshift/latest/dg/r_numeric_computations201.html + var leftScaleup, rightScaleup int32 + + switch promote { + case decPromoteAdd: + leftScaleup = exec.Max(scale1, scale2) - scale1 + rightScaleup = exec.Max(scale1, scale2) - scale2 + case decPromoteMultiply: + case decPromoteDivide: + leftScaleup = exec.Max(4, scale1+prec2-scale2+1) + scale2 - scale1 + default: + debug.Assert(false, fmt.Sprintf("invalid DecimalPromotion value %d", promote)) + } + + vals[0], err = arrow.NewDecimalType(castedID, prec1+leftScaleup, scale1+leftScaleup) + if err != nil { + return err + } + vals[1], err = arrow.NewDecimalType(castedID, prec2+rightScaleup, scale2+rightScaleup) + return err +} + +func commonTemporal(vals ...arrow.DataType) arrow.DataType { + var ( + finestUnit = arrow.Second + zone *string + loc *time.Location + sawDate32, sawDate64 bool + ) + + for _, ty := range vals { + switch ty.ID() { + case arrow.DATE32: + // date32's unit is days, but the coarsest we have is seconds + sawDate32 = true + case arrow.DATE64: + finestUnit = exec.Max(finestUnit, arrow.Millisecond) + sawDate64 = true + case arrow.TIMESTAMP: + ts := ty.(*arrow.TimestampType) + if ts.TimeZone != "" { + tz, _ := ts.GetZone() + if loc != nil && loc != tz { + return nil + } + loc = tz + } + zone = &ts.TimeZone + finestUnit = exec.Max(finestUnit, ts.Unit) + default: + return nil + } + } + + switch { + case zone != nil: + // at least one timestamp seen + return &arrow.TimestampType{Unit: finestUnit, TimeZone: *zone} + case sawDate64: + return arrow.FixedWidthTypes.Date64 + case sawDate32: + return arrow.FixedWidthTypes.Date32 + } + return nil +} + +func commonBinary(vals ...arrow.DataType) arrow.DataType { + var ( + allUTF8, allOffset32, allFixedWidth = true, true, true + ) + + for _, ty := range vals { + switch ty.ID() { + case arrow.STRING: + allFixedWidth = false + case arrow.BINARY: + allFixedWidth, allUTF8 = false, false + case arrow.FIXED_SIZE_BINARY: + allUTF8 = false + case arrow.LARGE_BINARY: + allOffset32, allFixedWidth, allUTF8 = false, false, false + case arrow.LARGE_STRING: + allOffset32, allFixedWidth = false, false + default: + return nil + } + } + + switch { + case allFixedWidth: + // at least for the purposes of comparison, no need to cast + return nil + case allUTF8: + if allOffset32 { + return arrow.BinaryTypes.String + } + return arrow.BinaryTypes.LargeString + case allOffset32: + return arrow.BinaryTypes.Binary + } + return arrow.BinaryTypes.LargeBinary +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_hash.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_hash.go new file mode 100644 index 0000000..42ec942 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_hash.go @@ -0,0 +1,59 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" +) + +var ( + uniqueDoc = FunctionDoc{ + Summary: "Compute unique elements", + Description: "Return an array with distinct values. Nulls in the input are ignored", + ArgNames: []string{"array"}, + } +) + +func Unique(ctx context.Context, values Datum) (Datum, error) { + return CallFunction(ctx, "unique", nil, values) +} + +func UniqueArray(ctx context.Context, values arrow.Array) (arrow.Array, error) { + out, err := Unique(ctx, &ArrayDatum{Value: values.Data()}) + if err != nil { + return nil, err + } + defer out.Release() + + return out.(*ArrayDatum).MakeArray(), nil +} + +func RegisterVectorHash(reg FunctionRegistry) { + unique, _, _ := kernels.GetVectorHashKernels() + uniqFn := NewVectorFunction("unique", Unary(), uniqueDoc) + for _, vd := range unique { + if err := uniqFn.AddKernel(vd); err != nil { + panic(err) + } + } + reg.AddFunction(uniqFn, false) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_run_ends.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_run_ends.go new file mode 100644 index 0000000..0a34c9e --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/compute/vector_run_ends.go @@ -0,0 +1,90 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package compute + +import ( + "context" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/compute/internal/kernels" +) + +var ( + runEndEncodeDoc = FunctionDoc{ + Summary: "Run-end encode array", + Description: "Return a run-end encoded version of the input array", + ArgNames: []string{"array"}, + OptionsType: "RunEndEncodeOptions", + OptionsRequired: true, + } + runEndDecodeDoc = FunctionDoc{ + Summary: "Decode run-end encoded array", + Description: "Return a decoded version of a run-end encoded input array", + ArgNames: []string{"array"}, + } +) + +type RunEndEncodeOptions = kernels.RunEndEncodeState + +func RegisterVectorRunEndFuncs(reg FunctionRegistry) { + encKns, decKns := kernels.GetRunEndEncodeKernels() + encFn := NewVectorFunction("run_end_encode", Unary(), runEndEncodeDoc) + for _, k := range encKns { + if err := encFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(encFn, false) + + decFn := NewVectorFunction("run_end_decode", Unary(), runEndDecodeDoc) + for _, k := range decKns { + if err := decFn.AddKernel(k); err != nil { + panic(err) + } + } + reg.AddFunction(decFn, false) +} + +func RunEndEncode(ctx context.Context, opts RunEndEncodeOptions, arg Datum) (Datum, error) { + return CallFunction(ctx, "run_end_encode", &opts, arg) +} + +func RunEndEncodeArray(ctx context.Context, opts RunEndEncodeOptions, input arrow.Array) (arrow.Array, error) { + out, err := RunEndEncode(ctx, opts, &ArrayDatum{Value: input.Data()}) + if err != nil { + return nil, err + } + defer out.Release() + + return out.(*ArrayDatum).MakeArray(), nil +} + +func RunEndDecode(ctx context.Context, arg Datum) (Datum, error) { + return CallFunction(ctx, "run_end_decode", nil, arg) +} + +func RunEndDecodeArray(ctx context.Context, input arrow.Array) (arrow.Array, error) { + out, err := RunEndDecode(ctx, &ArrayDatum{Value: input.Data()}) + if err != nil { + return nil, err + } + defer out.Release() + + return out.(*ArrayDatum).MakeArray(), nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype.go similarity index 94% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype.go index 2cd27cf..8f9ad2e 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype.go @@ -21,7 +21,7 @@ import ( "hash/maphash" "strings" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) // Type is a logical type. They can be expressed as @@ -150,12 +150,7 @@ const ( // calendar interval with three fields INTERVAL_MONTH_DAY_NANO - // INTERVAL could be any of the interval types, kept to avoid breaking anyone - // after switching to individual type ids for the interval types that were using - // it when calling MakeFromData or NewBuilder - // - // Deprecated and will be removed in the next major version release - INTERVAL + RUN_END_ENCODED // Alias to ensure we do not break any consumers DECIMAL = DECIMAL128 @@ -291,6 +286,26 @@ func IsUnsignedInteger(t Type) bool { return false } +// IsSignedInteger is a helper that returns true if the type ID provided is +// one of the int integral types (int8, int16, int32, int64) +func IsSignedInteger(t Type) bool { + switch t { + case INT8, INT16, INT32, INT64: + return true + } + return false +} + +// IsFloating is a helper that returns true if the type ID provided is +// one of Float16, Float32, or Float64 +func IsFloating(t Type) bool { + switch t { + case FLOAT16, FLOAT32, FLOAT64: + return true + } + return false +} + // IsPrimitive returns true if the provided type ID represents a fixed width // primitive type. func IsPrimitive(t Type) bool { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_binary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_binary.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_binary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_binary.go diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_encoded.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_encoded.go new file mode 100644 index 0000000..c1750a8 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_encoded.go @@ -0,0 +1,67 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 arrow + +type EncodedType interface { + DataType + Encoded() DataType +} + +// RunEndEncodedType is the datatype to represent a run-end encoded +// array of data. ValueNullable defaults to true, but can be set false +// if this should represent a type with a non-nullable value field. +type RunEndEncodedType struct { + runEnds DataType + values DataType + ValueNullable bool +} + +func RunEndEncodedOf(runEnds, values DataType) *RunEndEncodedType { + return &RunEndEncodedType{runEnds: runEnds, values: values, ValueNullable: true} +} + +func (*RunEndEncodedType) ID() Type { return RUN_END_ENCODED } +func (*RunEndEncodedType) Name() string { return "run_end_encoded" } +func (*RunEndEncodedType) Layout() DataTypeLayout { + return DataTypeLayout{Buffers: []BufferSpec{SpecAlwaysNull()}} +} + +func (t *RunEndEncodedType) String() string { + return t.Name() + "" +} + +func (t *RunEndEncodedType) Fingerprint() string { + return typeFingerprint(t) + "{" + t.runEnds.Fingerprint() + ";" + t.values.Fingerprint() + ";}" +} + +func (t *RunEndEncodedType) RunEnds() DataType { return t.runEnds } +func (t *RunEndEncodedType) Encoded() DataType { return t.values } + +func (t *RunEndEncodedType) Fields() []Field { + return []Field{ + {Name: "run_ends", Type: t.runEnds}, + {Name: "values", Type: t.values, Nullable: t.ValueNullable}, + } +} + +func (*RunEndEncodedType) ValidRunEndsType(dt DataType) bool { + switch dt.ID() { + case INT16, INT32, INT64: + return true + } + return false +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_extension.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_extension.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_extension.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_extension.go index 0c1c35c..271c8b0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_extension.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_extension.go @@ -129,11 +129,10 @@ type ExtensionType interface { // ExtensionBase is the base struct for user-defined Extension Types which must be // embedded in any user-defined types like so: // -// type UserDefinedType struct { -// arrow.ExtensionBase -// // any other data -// } -// +// type UserDefinedType struct { +// arrow.ExtensionBase +// // any other data +// } type ExtensionBase struct { // Storage is the underlying storage type Storage DataType @@ -165,6 +164,7 @@ func (e *ExtensionBase) Fields() []Field { func (e *ExtensionBase) Layout() DataTypeLayout { return e.Storage.Layout() } // this no-op exists to ensure that this type must be embedded in any user-defined extension type. +// //lint:ignore U1000 this function is intentionally unused as it only exists to ensure embedding happens func (ExtensionBase) mustEmbedExtensionBase() {} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_fixedwidth.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_fixedwidth.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_fixedwidth.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_fixedwidth.go index 12f752d..2a2bbc7 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_fixedwidth.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_fixedwidth.go @@ -317,6 +317,8 @@ const ( Nanosecond ) +var TimeUnitValues = []TimeUnit{Second, Millisecond, Microsecond, Nanosecond} + func (u TimeUnit) Multiplier() time.Duration { return [...]time.Duration{time.Second, time.Millisecond, time.Microsecond, time.Nanosecond}[uint(u)&3] } @@ -519,6 +521,23 @@ func (Float16Type) Layout() DataTypeLayout { return DataTypeLayout{Buffers: []BufferSpec{SpecBitmap(), SpecFixedWidth(Float16SizeBytes)}} } +type DecimalType interface { + DataType + GetPrecision() int32 + GetScale() int32 +} + +func NewDecimalType(id Type, prec, scale int32) (DecimalType, error) { + switch id { + case DECIMAL128: + return &Decimal128Type{Precision: prec, Scale: scale}, nil + case DECIMAL256: + return &Decimal256Type{Precision: prec, Scale: scale}, nil + default: + return nil, fmt.Errorf("%w: must use DECIMAL128 or DECIMAL256 to create a DecimalType", ErrInvalid) + } +} + // Decimal128Type represents a fixed-size 128-bit decimal type. type Decimal128Type struct { Precision int32 @@ -535,6 +554,8 @@ func (t *Decimal128Type) String() string { func (t *Decimal128Type) Fingerprint() string { return fmt.Sprintf("%s[%d,%d,%d]", typeFingerprint(t), t.BitWidth(), t.Precision, t.Scale) } +func (t *Decimal128Type) GetPrecision() int32 { return t.Precision } +func (t *Decimal128Type) GetScale() int32 { return t.Scale } func (Decimal128Type) Layout() DataTypeLayout { return DataTypeLayout{Buffers: []BufferSpec{SpecBitmap(), SpecFixedWidth(Decimal128SizeBytes)}} @@ -556,6 +577,8 @@ func (t *Decimal256Type) String() string { func (t *Decimal256Type) Fingerprint() string { return fmt.Sprintf("%s[%d,%d,%d]", typeFingerprint(t), t.BitWidth(), t.Precision, t.Scale) } +func (t *Decimal256Type) GetPrecision() int32 { return t.Precision } +func (t *Decimal256Type) GetScale() int32 { return t.Scale } func (Decimal256Type) Layout() DataTypeLayout { return DataTypeLayout{Buffers: []BufferSpec{SpecBitmap(), SpecFixedWidth(Decimal256SizeBytes)}} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_nested.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_nested.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_nested.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_nested.go index 94f422d..a6e280c 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_nested.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_nested.go @@ -22,7 +22,7 @@ import ( "strconv" "strings" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) type NestedType interface { @@ -205,6 +205,8 @@ func (t *FixedSizeListType) String() string { return fmt.Sprintf("fixed_size_list<%s: %s>[%d]", t.elem.Name, t.elem.Type, t.n) } +func (t *FixedSizeListType) SetElemNullable(n bool) { t.elem.Nullable = n } + // Elem returns the FixedSizeListType's element type. func (t *FixedSizeListType) Elem() DataType { return t.elem.Type } @@ -335,6 +337,23 @@ func MapOf(key, item DataType) *MapType { return &MapType{value: ListOf(StructOf(Field{Name: "key", Type: key}, Field{Name: "value", Type: item, Nullable: true}))} } +func MapOfWithMetadata(key DataType, keyMetadata Metadata, item DataType, itemMetadata Metadata) *MapType { + if key == nil || item == nil { + panic("arrow: nil key or item type for MapType") + } + + return &MapType{value: ListOf(StructOf(Field{ + Name: "key", + Type: key, + Metadata: keyMetadata, + }, Field{ + Name: "value", + Type: item, + Nullable: true, + Metadata: itemMetadata, + }))} +} + func (*MapType) ID() Type { return MAP } func (*MapType) Name() string { return "map" } @@ -346,6 +365,11 @@ func (t *MapType) String() string { if t.KeysSorted { o.WriteString(", keys_sorted") } + if t.ItemField().Nullable { + o.WriteString(", items_nullable") + } else { + o.WriteString(", items_non_nullable") + } o.WriteString(">") return o.String() } @@ -596,7 +620,7 @@ func (t *SparseUnionType) Fingerprint() string { return typeFingerprint(t) + "[s" + t.fingerprint() } func (SparseUnionType) Layout() DataTypeLayout { - return DataTypeLayout{Buffers: []BufferSpec{SpecAlwaysNull(), SpecFixedWidth(Uint8SizeBytes)}} + return DataTypeLayout{Buffers: []BufferSpec{SpecFixedWidth(Uint8SizeBytes)}} } func (t *SparseUnionType) String() string { return t.Name() + t.unionType.String() @@ -659,7 +683,7 @@ func (t *DenseUnionType) Fingerprint() string { } func (DenseUnionType) Layout() DataTypeLayout { - return DataTypeLayout{Buffers: []BufferSpec{SpecAlwaysNull(), SpecFixedWidth(Uint8SizeBytes), SpecFixedWidth(Int32SizeBytes)}} + return DataTypeLayout{Buffers: []BufferSpec{SpecFixedWidth(Uint8SizeBytes), SpecFixedWidth(Int32SizeBytes)}} } func (DenseUnionType) OffsetTypeTraits() OffsetTraits { return Int32Traits } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_null.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_null.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_null.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_null.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go.tmpldata b/ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go.tmpldata similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/datatype_numeric.gen.go.tmpldata rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/datatype_numeric.gen.go.tmpldata diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal128/decimal128.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal128/decimal128.go similarity index 81% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal128/decimal128.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal128/decimal128.go index dbe5de9..7b8c0f9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal128/decimal128.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal128/decimal128.go @@ -21,14 +21,19 @@ import ( "fmt" "math" "math/big" + "math/bits" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) var ( MaxDecimal128 = New(542101086242752217, 687399551400673280-1) ) +func GetMaxValue(prec int32) Num { + return scaleMultipliers[prec].Sub(FromU64(1)) +} + // Num represents a signed 128-bit integer in two's complement. // Calculations wrap around and overflow is ignored. // @@ -101,6 +106,39 @@ func (n Num) Negate() Num { return n } +func (n Num) Add(rhs Num) Num { + n.hi += rhs.hi + var carry uint64 + n.lo, carry = bits.Add64(n.lo, rhs.lo, 0) + n.hi += int64(carry) + return n +} + +func (n Num) Sub(rhs Num) Num { + n.hi -= rhs.hi + var borrow uint64 + n.lo, borrow = bits.Sub64(n.lo, rhs.lo, 0) + n.hi -= int64(borrow) + return n +} + +func (n Num) Mul(rhs Num) Num { + hi, lo := bits.Mul64(n.lo, rhs.lo) + hi += (uint64(n.hi) * rhs.lo) + (n.lo * uint64(rhs.hi)) + return Num{hi: int64(hi), lo: lo} +} + +func (n Num) Div(rhs Num) (res, rem Num) { + b := n.BigInt() + out, remainder := b.QuoRem(b, rhs.BigInt(), &big.Int{}) + return FromBigInt(out), FromBigInt(remainder) +} + +func (n Num) Pow(rhs Num) Num { + b := n.BigInt() + return FromBigInt(b.Exp(b, rhs.BigInt(), nil)) +} + func scalePositiveFloat64(v float64, prec, scale int32) (float64, error) { var pscale float64 if scale >= -38 && scale <= 38 { @@ -135,12 +173,16 @@ func fromPositiveFloat64(v float64, prec, scale int32) (Num, error) { // Aren't floating point values so much fun? // // example value to use: -// v := float32(1.8446746e+15) +// +// v := float32(1.8446746e+15) // // You'll end up with a different values if you do: -// FromFloat64(float64(v), 20, 4) +// +// FromFloat64(float64(v), 20, 4) +// // vs -// FromFloat32(v, 20, 4) +// +// FromFloat32(v, 20, 4) // // because float64(v) == 1844674629206016 rather than 1844674600000000 func fromPositiveFloat32(v float32, prec, scale int32) (Num, error) { @@ -182,6 +224,53 @@ func FromFloat64(v float64, prec, scale int32) (Num, error) { return fromPositiveFloat64(v, prec, scale) } +func FromString(v string, prec, scale int32) (n Num, err error) { + // time for some math! + // Our input precision means "number of digits of precision" but the + // math/big library refers to precision in floating point terms + // where it refers to the "number of bits of precision in the mantissa". + // So we need to figure out how many bits we should use for precision, + // based on the input precision. Too much precision and we're not rounding + // when we should. Too little precision and we round when we shouldn't. + // + // In general, the number of decimal digits you get from a given number + // of bits will be: + // + // digits = log[base 10](2^nbits) + // + // it thus follows that: + // + // digits = nbits * log[base 10](2) + // nbits = digits / log[base 10](2) + // + // So we need to account for our scale since we're going to be multiplying + // by 10^scale in order to get the integral value we're actually going to use + // So to get our number of bits we do: + // + // (prec + scale + 1) / log[base10](2) + // + // Finally, we still have a sign bit, so we -1 to account for the sign bit. + // Aren't floating point numbers fun? + var precInBits = uint(math.Round(float64(prec+scale+1)/math.Log10(2))) + 1 + + var out *big.Float + out, _, err = big.ParseFloat(v, 10, 127, big.ToNearestEven) + if err != nil { + return + } + + var tmp big.Int + val, _ := out.Mul(out, big.NewFloat(math.Pow10(int(scale)))).SetPrec(precInBits).Int(&tmp) + if val.BitLen() > 127 { + return Num{}, errors.New("bitlen too large for decimal128") + } + n = FromBigInt(val) + if !n.FitsInPrecision(prec) { + err = fmt.Errorf("val %v doesn't fit in precision %d", n, prec) + } + return +} + // ToFloat32 returns a float32 value representative of this decimal128.Num, // but with the given scale. func (n Num) ToFloat32(scale int32) float32 { @@ -217,7 +306,9 @@ func (n Num) HighBits() int64 { return n.hi } // Sign returns: // // -1 if x < 0 -// 0 if x == 0 +// +// 0 if x == 0 +// // +1 if x > 0 func (n Num) Sign() int { if n == (Num{}) { @@ -241,8 +332,12 @@ func (n Num) BigInt() *big.Int { return toBigIntPositive(n) } +func (n Num) Greater(other Num) bool { + return other.Less(n) +} + func (n Num) GreaterEqual(other Num) bool { - return n == other || !n.Less(other) + return !n.Less(other) } // Less returns true if the value represented by n is < other @@ -346,6 +441,16 @@ func (n Num) FitsInPrecision(prec int32) bool { return n.Abs().Less(scaleMultipliers[prec]) } +func (n Num) ToString(scale int32) string { + f := (&big.Float{}).SetInt(n.BigInt()) + f.Quo(f, (&big.Float{}).SetInt(scaleMultipliers[scale].BigInt())) + return f.Text('f', int(scale)) +} + +func GetScaleMultiplier(pow int) Num { return scaleMultipliers[pow] } + +func GetHalfScaleMultiplier(pow int) Num { return scaleMultipliersHalf[pow] } + var ( scaleMultipliers = [...]Num{ FromU64(1), @@ -367,7 +472,6 @@ var ( FromU64(10000000000000000), FromU64(100000000000000000), FromU64(1000000000000000000), - FromU64(10000000000000000000), New(0, 10000000000000000000), New(5, 7766279631452241920), New(54, 3875820019684212736), diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal256/decimal256.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal256/decimal256.go similarity index 83% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal256/decimal256.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal256/decimal256.go index 7888d67..3a1e57b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/decimal256/decimal256.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/decimal256/decimal256.go @@ -21,9 +21,10 @@ import ( "fmt" "math" "math/big" + "math/bits" - "github.com/apache/arrow/go/v10/arrow/decimal128" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) const ( @@ -31,6 +32,10 @@ const ( MaxScale = 76 ) +func GetMaxValue(prec int32) Num { + return scaleMultipliers[prec].Sub(FromU64(1)) +} + type Num struct { // arr[0] is the lowest bits, arr[3] is the highest bits arr [4]uint64 @@ -40,8 +45,8 @@ type Num struct { // the highest bits with the rest of the values in order down to the // lowest bits // -// ie: New(1, 2, 3, 4) returns with the elements in little-endian order -// {4, 3, 2, 1} but each value is still represented as the native endianness +// ie: New(1, 2, 3, 4) returns with the elements in little-endian order +// {4, 3, 2, 1} but each value is still represented as the native endianness func New(x1, x2, x3, x4 uint64) Num { return Num{[4]uint64{x4, x3, x2, x1}} } @@ -84,6 +89,94 @@ func (n Num) Negate() Num { return n } +func (n Num) Add(rhs Num) Num { + var carry uint64 + for i, v := range n.arr { + n.arr[i], carry = bits.Add64(v, rhs.arr[i], carry) + } + return n +} + +func (n Num) Sub(rhs Num) Num { + return n.Add(rhs.Negate()) +} + +func (n Num) Mul(rhs Num) Num { + b := n.BigInt() + return FromBigInt(b.Mul(b, rhs.BigInt())) +} + +func (n Num) Div(rhs Num) (res, rem Num) { + b := n.BigInt() + out, remainder := b.QuoRem(b, rhs.BigInt(), &big.Int{}) + return FromBigInt(out), FromBigInt(remainder) +} + +func (n Num) Pow(rhs Num) Num { + b := n.BigInt() + return FromBigInt(b.Exp(b, rhs.BigInt(), nil)) +} + +var pt5 = big.NewFloat(0.5) + +func FromString(v string, prec, scale int32) (n Num, err error) { + // time for some math! + // Our input precision means "number of digits of precision" but the + // math/big library refers to precision in floating point terms + // where it refers to the "number of bits of precision in the mantissa". + // So we need to figure out how many bits we should use for precision, + // based on the input precision. Too much precision and we're not rounding + // when we should. Too little precision and we round when we shouldn't. + // + // In general, the number of decimal digits you get from a given number + // of bits will be: + // + // digits = log[base 10](2^nbits) + // + // it thus follows that: + // + // digits = nbits * log[base 10](2) + // nbits = digits / log[base 10](2) + // + // So we need to account for our scale since we're going to be multiplying + // by 10^scale in order to get the integral value we're actually going to use + // So to get our number of bits we do: + // + // (prec + scale + 1) / log[base10](2) + // + // Finally, we still have a sign bit, so we -1 to account for the sign bit. + // Aren't floating point numbers fun? + var precInBits = uint(math.Round(float64(prec+scale+1)/math.Log10(2))) + 1 + + var out *big.Float + out, _, err = big.ParseFloat(v, 10, 255, big.ToNearestEven) + if err != nil { + return + } + + out.Mul(out, big.NewFloat(math.Pow10(int(scale)))).SetPrec(precInBits) + // Since we're going to truncate this to get an integer, we need to round + // the value instead because of edge cases so that we match how other implementations + // (e.g. C++) handles Decimal values. So if we're negative we'll subtract 0.5 and if + // we're positive we'll add 0.5. + if out.Signbit() { + out.Sub(out, pt5) + } else { + out.Add(out, pt5) + } + + var tmp big.Int + val, _ := out.Int(&tmp) + if val.BitLen() > 255 { + return Num{}, errors.New("bitlen too large for decimal256") + } + n = FromBigInt(val) + if !n.FitsInPrecision(prec) { + err = fmt.Errorf("value %v doesn't fit in precision %d", n, prec) + } + return +} + func FromFloat32(v float32, prec, scale int32) (Num, error) { debug.Assert(prec > 0 && prec <= 76, "invalid precision for converting to decimal256") @@ -124,12 +217,16 @@ func FromFloat64(v float64, prec, scale int32) (Num, error) { // Aren't floating point values so much fun? // // example value to use: -// v := float32(1.8446746e+15) +// +// v := float32(1.8446746e+15) // // You'll end up with a different values if you do: -// FromFloat64(float64(v), 20, 4) +// +// FromFloat64(float64(v), 20, 4) +// // vs -// FromFloat32(v, 20, 4) +// +// FromFloat32(v, 20, 4) // // because float64(v) == 1844674629206016 rather than 1844674600000000 func fromPositiveFloat32(v float32, prec, scale int32) (Num, error) { @@ -268,11 +365,12 @@ func (n Num) BigInt() *big.Int { return toBigIntPositive(n) } +func (n Num) Greater(other Num) bool { + return other.Less(n) +} + func (n Num) GreaterEqual(other Num) bool { - return (n.arr[0] == other.arr[0] && - n.arr[1] == other.arr[1] && - n.arr[2] == other.arr[2] && - n.arr[3] == other.arr[3]) || !n.Less(other) + return !n.Less(other) } func (n Num) Less(other Num) bool { @@ -315,22 +413,17 @@ func (n Num) ReduceScaleBy(reduce int32, round bool) Num { } func (n Num) rescaleWouldCauseDataLoss(deltaScale int32, multiplier Num) (out Num, loss bool) { - var ( - value, result, remainder *big.Int - ) - value = n.BigInt() if deltaScale < 0 { - result, remainder = new(big.Int).QuoRem(value, multiplier.BigInt(), new(big.Int)) - return FromBigInt(result), remainder.Cmp(big.NewInt(0)) != 0 + var remainder Num + out, remainder = n.Div(multiplier) + return out, remainder != Num{} } - result = (&big.Int{}).Mul(value, multiplier.BigInt()) - out = FromBigInt(result) - cmp := result.Cmp(value) + out = n.Mul(multiplier) if n.Sign() < 0 { - loss = cmp == 1 + loss = n.Less(out) } else { - loss = cmp == -1 + loss = out.Less(n) } return } @@ -366,6 +459,16 @@ func (n Num) FitsInPrecision(prec int32) bool { return n.Abs().Less(scaleMultipliers[prec]) } +func (n Num) ToString(scale int32) string { + f := (&big.Float{}).SetInt(n.BigInt()) + f.Quo(f, (&big.Float{}).SetInt(scaleMultipliers[scale].BigInt())) + return f.Text('f', int(scale)) +} + +func GetScaleMultiplier(pow int) Num { return scaleMultipliers[pow] } + +func GetHalfScaleMultiplier(pow int) Num { return scaleMultipliersHalf[pow] } + var ( scaleMultipliers = [...]Num{ FromU64(1), diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/doc.go similarity index 92% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/doc.go index ddefda4..a9770da 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/doc.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/doc.go @@ -28,10 +28,14 @@ The fundamental data structure in Arrow is an Array, which holds a sequence of v consists of memory holding the data and an additional validity bitmap that indicates if the corresponding entry in the array is valid (not null). If the array has no null entries, it is possible to omit this bitmap. +Requirements + +Despite the go.mod stating go1.18, everything except for the compute package +is able to be built with go1.17 (and most is also compatible with go1.16). */ package arrow -const PkgVersion = "10.0.1" +const PkgVersion = "12.0.1" //go:generate go run _tools/tmpl/main.go -i -data=numeric.tmpldata type_traits_numeric.gen.go.tmpl type_traits_numeric.gen_test.go.tmpl array/numeric.gen.go.tmpl array/numericbuilder.gen.go.tmpl array/bufferbuilder_numeric.gen.go.tmpl //go:generate go run _tools/tmpl/main.go -i -data=datatype_numeric.gen.go.tmpldata datatype_numeric.gen.go.tmpl tensor/numeric.gen.go.tmpl tensor/numeric.gen_test.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/encoded/ree_utils.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/encoded/ree_utils.go new file mode 100644 index 0000000..1d8a6a7 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/encoded/ree_utils.go @@ -0,0 +1,219 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 encoded + +import ( + "math" + "sort" + + "github.com/apache/arrow/go/v12/arrow" +) + +// FindPhysicalIndex performs a binary search on the run-ends to return +// the appropriate physical offset into the values/run-ends that corresponds +// with the logical index provided when called. If the array's logical offset +// is provided, this is equivalent to calling FindPhysicalOffset. +// +// For example, an array with run-ends [10, 20, 30, 40, 50] and a logicalIdx +// of 25 will return the value 2. This returns the smallest offset +// whose run-end is greater than the logicalIdx requested, which would +// also be the index into the values that contains the correct value. +// +// This function assumes it receives Run End Encoded array data +func FindPhysicalIndex(arr arrow.ArrayData, logicalIdx int) int { + data := arr.Children()[0] + if data.Len() == 0 { + return 0 + } + + switch data.DataType().ID() { + case arrow.INT16: + runEnds := arrow.Int16Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[data.Offset() : data.Offset()+data.Len()] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int16(logicalIdx) }) + case arrow.INT32: + runEnds := arrow.Int32Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[data.Offset() : data.Offset()+data.Len()] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int32(logicalIdx) }) + case arrow.INT64: + runEnds := arrow.Int64Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[data.Offset() : data.Offset()+data.Len()] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int64(logicalIdx) }) + default: + panic("only int16, int32, and int64 are allowed for the run-ends") + } +} + +// FindPhysicalOffset performs a binary search on the run-ends to return +// the appropriate physical offset into the values/run-ends that corresponds +// with the logical offset defined in the array. +// +// For example, an array with run-ends [10, 20, 30, 40, 50] and a logical +// offset of 25 will return the value 2. This returns the smallest offset +// whose run-end is greater than the logical offset, which would also be the +// offset index into the values that contains the correct value. +// +// This function assumes it receives Run End Encoded array data +func FindPhysicalOffset(arr arrow.ArrayData) int { + return FindPhysicalIndex(arr, arr.Offset()) +} + +// GetPhysicalLength returns the physical number of values which are in +// the passed in RunEndEncoded array data. This will take into account +// the offset and length of the array as reported in the array data +// (so that it properly handles slices). +// +// This function assumes it receives Run End Encoded array data +func GetPhysicalLength(arr arrow.ArrayData) int { + if arr.Len() == 0 { + return 0 + } + + data := arr.Children()[0] + physicalOffset := FindPhysicalOffset(arr) + start, length := data.Offset()+physicalOffset, data.Len()-physicalOffset + offset := arr.Offset() + arr.Len() - 1 + + switch data.DataType().ID() { + case arrow.INT16: + runEnds := arrow.Int16Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[start : start+length] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int16(offset) }) + 1 + case arrow.INT32: + runEnds := arrow.Int32Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[start : start+length] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int32(offset) }) + 1 + case arrow.INT64: + runEnds := arrow.Int64Traits.CastFromBytes(data.Buffers()[1].Bytes()) + runEnds = runEnds[start : start+length] + return sort.Search(len(runEnds), func(i int) bool { return runEnds[i] > int64(offset) }) + 1 + default: + panic("arrow/rle: can only get rle.PhysicalLength for int16/int32/int64 run ends array") + } +} + +func getRunEnds(arr arrow.ArrayData) func(int64) int64 { + switch arr.DataType().ID() { + case arrow.INT16: + runEnds := arrow.Int16Traits.CastFromBytes(arr.Buffers()[1].Bytes()) + runEnds = runEnds[arr.Offset() : arr.Offset()+arr.Len()] + return func(i int64) int64 { return int64(runEnds[i]) } + case arrow.INT32: + runEnds := arrow.Int32Traits.CastFromBytes(arr.Buffers()[1].Bytes()) + runEnds = runEnds[arr.Offset() : arr.Offset()+arr.Len()] + return func(i int64) int64 { return int64(runEnds[i]) } + case arrow.INT64: + runEnds := arrow.Int64Traits.CastFromBytes(arr.Buffers()[1].Bytes()) + runEnds = runEnds[arr.Offset() : arr.Offset()+arr.Len()] + return func(i int64) int64 { return int64(runEnds[i]) } + default: + panic("only int16, int32, and int64 are allowed for the run-ends") + } +} + +// MergedRuns is used to take two Run End Encoded arrays and iterate +// them, finding the correct physical indices to correspond with the +// runs. +type MergedRuns struct { + inputs [2]arrow.Array + runIndex [2]int64 + inputRunEnds [2]func(int64) int64 + runEnds [2]int64 + logicalLen int + logicalPos int + mergedEnd int64 +} + +// NewMergedRuns takes two RunEndEncoded arrays and returns a MergedRuns +// object that will allow iterating over the physical indices of the runs. +func NewMergedRuns(inputs [2]arrow.Array) *MergedRuns { + if len(inputs) == 0 { + return &MergedRuns{logicalLen: 0} + } + + mr := &MergedRuns{inputs: inputs, logicalLen: inputs[0].Len()} + for i, in := range inputs { + if in.DataType().ID() != arrow.RUN_END_ENCODED { + panic("arrow/rle: NewMergedRuns can only be called with RunLengthEncoded arrays") + } + if in.Len() != mr.logicalLen { + panic("arrow/rle: can only merge runs of RLE arrays of the same length") + } + + mr.inputRunEnds[i] = getRunEnds(in.Data().Children()[0]) + // initialize the runIndex at the physical offset - 1 so the first + // call to Next will increment it to the correct initial offset + // since the initial state is logicalPos == 0 and mergedEnd == 0 + mr.runIndex[i] = int64(FindPhysicalOffset(in.Data())) - 1 + } + + return mr +} + +// Next returns true if there are more values/runs to iterate and false +// when one of the arrays has reached the end. +func (mr *MergedRuns) Next() bool { + mr.logicalPos = int(mr.mergedEnd) + if mr.isEnd() { + return false + } + + for i := range mr.inputs { + if mr.logicalPos == int(mr.runEnds[i]) { + mr.runIndex[i]++ + } + } + mr.findMergedRun() + + return true +} + +// IndexIntoBuffer returns the physical index into the value buffer of +// the passed in array index (ie: 0 for the first array and 1 for the second) +// this takes into account the offset of the array so it is the true physical +// index into the value *buffer* in the child. +func (mr *MergedRuns) IndexIntoBuffer(id int) int64 { + return mr.runIndex[id] + int64(mr.inputs[id].Data().Children()[1].Offset()) +} + +// IndexIntoArray is like IndexIntoBuffer but it doesn't take into account +// the array offset and instead is the index that can be used with the .Value +// method on the array to get the correct value. +func (mr *MergedRuns) IndexIntoArray(id int) int64 { return mr.runIndex[id] } + +// RunLength returns the logical length of the current merged run being looked at. +func (mr *MergedRuns) RunLength() int64 { return mr.mergedEnd - int64(mr.logicalPos) } + +// AccumulatedRunLength returns the logical run end of the current merged run. +func (mr *MergedRuns) AccumulatedRunLength() int64 { return mr.mergedEnd } + +func (mr *MergedRuns) findMergedRun() { + mr.mergedEnd = int64(math.MaxInt64) + for i, in := range mr.inputs { + // logical indices of the end of the run we are currently in each input + mr.runEnds[i] = int64(mr.inputRunEnds[i](mr.runIndex[i]) - int64(in.Data().Offset())) + // the logical length may end in the middle of a run, in case the array was sliced + if mr.logicalLen < int(mr.runEnds[i]) { + mr.runEnds[i] = int64(mr.logicalLen) + } + if mr.runEnds[i] < mr.mergedEnd { + mr.mergedEnd = mr.runEnds[i] + } + } +} + +func (mr *MergedRuns) isEnd() bool { return mr.logicalPos == mr.logicalLen } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/big.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/big.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/big.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/big.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/endian.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/endian.go similarity index 91% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/endian.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/endian.go index 37ee3b1..4ae6ded 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/endian.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/endian.go @@ -17,8 +17,8 @@ package endian import ( - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" ) type Endianness flatbuf.Endianness diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/little.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/little.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/endian/little.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/endian/little.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/errors.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/errors.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/errors.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/errors.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/float16/float16.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/float16/float16.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/float16/float16.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/float16/float16.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/assert_off.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/assert_off.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/assert_off.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/assert_off.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/assert_on.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/assert_on.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/assert_on.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/assert_on.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/doc.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/doc.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/log_off.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/log_off.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/log_off.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/log_off.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/log_on.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/log_on.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/log_on.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/log_on.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/util.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/util.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/debug/util.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/debug/util.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/dictutils/dict.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/dictutils/dict.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/dictutils/dict.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/dictutils/dict.go index 561923f..fb986d7 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/dictutils/dict.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/dictutils/dict.go @@ -21,9 +21,9 @@ import ( "fmt" "hash/maphash" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/memory" ) type Kind int8 diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Binary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Binary.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Binary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Binary.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Block.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Block.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Block.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Block.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/BodyCompression.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/BodyCompression.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/BodyCompression.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/BodyCompression.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/BodyCompressionMethod.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/BodyCompressionMethod.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/BodyCompressionMethod.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/BodyCompressionMethod.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Bool.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Bool.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Bool.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Bool.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Buffer.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Buffer.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Buffer.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Buffer.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/CompressionType.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/CompressionType.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/CompressionType.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/CompressionType.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Date.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Date.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Date.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Date.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DateUnit.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DateUnit.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DateUnit.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DateUnit.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Decimal.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Decimal.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Decimal.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Decimal.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryBatch.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryBatch.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryBatch.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryBatch.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryEncoding.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryEncoding.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryEncoding.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryEncoding.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryKind.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryKind.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/DictionaryKind.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/DictionaryKind.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Duration.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Duration.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Duration.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Duration.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Endianness.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Endianness.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Endianness.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Endianness.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Feature.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Feature.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Feature.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Feature.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Field.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Field.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Field.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Field.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FieldNode.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FieldNode.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FieldNode.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FieldNode.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FixedSizeBinary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FixedSizeBinary.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FixedSizeBinary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FixedSizeBinary.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FixedSizeList.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FixedSizeList.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FixedSizeList.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FixedSizeList.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FloatingPoint.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FloatingPoint.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/FloatingPoint.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/FloatingPoint.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Footer.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Footer.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Footer.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Footer.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Int.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Int.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Int.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Int.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Interval.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Interval.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Interval.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Interval.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/IntervalUnit.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/IntervalUnit.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/IntervalUnit.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/IntervalUnit.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/KeyValue.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/KeyValue.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/KeyValue.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/KeyValue.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeBinary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeBinary.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeBinary.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeBinary.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeList.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeList.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeList.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeList.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeUtf8.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeUtf8.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/LargeUtf8.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/LargeUtf8.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/List.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/List.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/List.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/List.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Map.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Map.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Map.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Map.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Message.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Message.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Message.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Message.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/MessageHeader.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/MessageHeader.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/MessageHeader.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/MessageHeader.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/MetadataVersion.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/MetadataVersion.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/MetadataVersion.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/MetadataVersion.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Null.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Null.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Null.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Null.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Precision.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Precision.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Precision.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Precision.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/RecordBatch.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RecordBatch.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/RecordBatch.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RecordBatch.go diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunEndEncoded.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunEndEncoded.go new file mode 100644 index 0000000..fa414c1 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunEndEncoded.go @@ -0,0 +1,55 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 the FlatBuffers compiler. DO NOT EDIT. + +package flatbuf + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +/// Contains two child arrays, run_ends and values. +/// The run_ends child array must be a 16/32/64-bit integer array +/// which encodes the indices at which the run with the value in +/// each corresponding index in the values child array ends. +/// Like list/struct types, the value array can be of any type. +type RunEndEncoded struct { + _tab flatbuffers.Table +} + +func GetRootAsRunEndEncoded(buf []byte, offset flatbuffers.UOffsetT) *RunEndEncoded { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &RunEndEncoded{} + x.Init(buf, n+offset) + return x +} + +func (rcv *RunEndEncoded) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *RunEndEncoded) Table() flatbuffers.Table { + return rcv._tab +} + +func RunEndEncodedStart(builder *flatbuffers.Builder) { + builder.StartObject(0) +} +func RunEndEncodedEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunLengthEncoded.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunLengthEncoded.go new file mode 100644 index 0000000..8822c06 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/RunLengthEncoded.go @@ -0,0 +1,50 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 the FlatBuffers compiler. DO NOT EDIT. + +package flatbuf + +import ( + flatbuffers "github.com/google/flatbuffers/go" +) + +type RunLengthEncoded struct { + _tab flatbuffers.Table +} + +func GetRootAsRunLengthEncoded(buf []byte, offset flatbuffers.UOffsetT) *RunLengthEncoded { + n := flatbuffers.GetUOffsetT(buf[offset:]) + x := &RunLengthEncoded{} + x.Init(buf, n+offset) + return x +} + +func (rcv *RunLengthEncoded) Init(buf []byte, i flatbuffers.UOffsetT) { + rcv._tab.Bytes = buf + rcv._tab.Pos = i +} + +func (rcv *RunLengthEncoded) Table() flatbuffers.Table { + return rcv._tab +} + +func RunLengthEncodedStart(builder *flatbuffers.Builder) { + builder.StartObject(0) +} +func RunLengthEncodedEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT { + return builder.EndObject() +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Schema.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Schema.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Schema.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Schema.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixCompressedAxis.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixCompressedAxis.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixCompressedAxis.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixCompressedAxis.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixIndexCSR.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixIndexCSR.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixIndexCSR.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixIndexCSR.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixIndexCSX.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixIndexCSX.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseMatrixIndexCSX.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseMatrixIndexCSX.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensor.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensor.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensor.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensor.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndex.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndex.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndex.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndex.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndexCOO.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndexCOO.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndexCOO.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndexCOO.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndexCSF.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndexCSF.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/SparseTensorIndexCSF.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/SparseTensorIndexCSF.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Struct_.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Struct_.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Struct_.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Struct_.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Tensor.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Tensor.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Tensor.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Tensor.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/TensorDim.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/TensorDim.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/TensorDim.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/TensorDim.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Time.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Time.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Time.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Time.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/TimeUnit.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/TimeUnit.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/TimeUnit.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/TimeUnit.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Timestamp.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Timestamp.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Timestamp.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Timestamp.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Type.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Type.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Type.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Type.go index 319c6c6..707444b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Type.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Type.go @@ -48,6 +48,7 @@ const ( TypeLargeBinary Type = 19 TypeLargeUtf8 Type = 20 TypeLargeList Type = 21 + TypeRunEndEncoded Type = 22 ) var EnumNamesType = map[Type]string{ @@ -73,6 +74,7 @@ var EnumNamesType = map[Type]string{ TypeLargeBinary: "LargeBinary", TypeLargeUtf8: "LargeUtf8", TypeLargeList: "LargeList", + TypeRunEndEncoded: "RunEndEncoded", } var EnumValuesType = map[string]Type{ @@ -98,6 +100,7 @@ var EnumValuesType = map[string]Type{ "LargeBinary": TypeLargeBinary, "LargeUtf8": TypeLargeUtf8, "LargeList": TypeLargeList, + "RunEndEncoded": TypeRunEndEncoded, } func (v Type) String() string { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Union.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Union.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Union.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Union.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/UnionMode.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/UnionMode.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/UnionMode.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/UnionMode.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Utf8.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Utf8.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/flatbuf/Utf8.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/flatbuf/Utf8.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/utils.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/utils.go similarity index 90% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/utils.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/utils.go index cdaad6b..c19d2d2 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/internal/utils.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/internal/utils.go @@ -17,8 +17,8 @@ package internal import ( - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" ) const CurMetadataVersion = flatbuf.MetadataVersionV5 @@ -40,7 +40,7 @@ func HasValidityBitmap(id arrow.Type, version flatbuf.MetadataVersion) bool { } switch id { - case arrow.NULL, arrow.DENSE_UNION, arrow.SPARSE_UNION: + case arrow.NULL, arrow.DENSE_UNION, arrow.SPARSE_UNION, arrow.RUN_END_ENCODED: return false } return true diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/compression.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/compression.go similarity index 87% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/compression.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/compression.go index a8c2b61..7ba7606 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/compression.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/compression.go @@ -19,8 +19,9 @@ package ipc import ( "io" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" "github.com/klauspost/compress/zstd" "github.com/pierrec/lz4/v4" ) @@ -118,3 +119,17 @@ func getDecompressor(codec flatbuf.CompressionType) decompressor { } return nil } + +type bufferWriter struct { + buf *memory.Buffer + pos int +} + +func (bw *bufferWriter) Write(p []byte) (n int, err error) { + if bw.pos+len(p) >= bw.buf.Cap() { + bw.buf.Reserve(bw.pos + len(p)) + } + n = copy(bw.buf.Buf()[bw.pos:], p) + bw.pos += n + return +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/endian_swap.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/endian_swap.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/endian_swap.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/endian_swap.go index a61b653..c20d727 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/endian_swap.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/endian_swap.go @@ -20,9 +20,9 @@ import ( "errors" "math/bits" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/memory" ) // swap the endianness of the array's buffers as needed in-place to save diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_reader.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_reader.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_reader.go index 8a1a9b9..f008bd4 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_reader.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_reader.go @@ -23,14 +23,14 @@ import ( "fmt" "io" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/endian" - "github.com/apache/arrow/go/v10/arrow/internal" - "github.com/apache/arrow/go/v10/arrow/internal/dictutils" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/internal" + "github.com/apache/arrow/go/v12/arrow/internal/dictutils" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) // FileReader is an Arrow file reader. @@ -411,7 +411,7 @@ func (src *ipcSource) buffer(i int) *memory.Buffer { src.codec.Reset(sr) r = src.codec } else { - raw.Resize(int(buf.Length())) + raw.Resize(int(buf.Length() - 8)) } if _, err = io.ReadFull(r, raw.Bytes()); err != nil { @@ -499,6 +499,17 @@ func (ctx *arrayLoaderContext) loadArray(dt arrow.DataType) arrow.ArrayData { defer storage.Release() return array.NewData(dt, storage.Len(), storage.Buffers(), storage.Children(), storage.NullN(), storage.Offset()) + case *arrow.RunEndEncodedType: + field, buffers := ctx.loadCommon(dt.ID(), 1) + defer releaseBuffers(buffers) + + runEnds := ctx.loadChild(dt.RunEnds()) + defer runEnds.Release() + values := ctx.loadChild(dt.Encoded()) + defer values.Release() + + return array.NewData(dt, int(field.Length()), buffers, []arrow.ArrayData{runEnds, values}, int(field.NullCount()), 0) + case arrow.UnionType: return ctx.loadUnion(dt) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_writer.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_writer.go similarity index 92% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_writer.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_writer.go index 2d91ea4..20c82b9 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/file_writer.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/file_writer.go @@ -21,11 +21,11 @@ import ( "fmt" "io" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal/dictutils" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal/dictutils" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) // PayloadWriter is an interface for injecting a different payloadwriter @@ -274,10 +274,11 @@ type FileWriter struct { pw PayloadWriter - schema *arrow.Schema - mapper dictutils.Mapper - codec flatbuf.CompressionType - compressNP int + schema *arrow.Schema + mapper dictutils.Mapper + codec flatbuf.CompressionType + compressNP int + minSpaceSavings *float64 // map of the last written dictionaries by id // so we can avoid writing the same dictionary over and over @@ -294,12 +295,13 @@ func NewFileWriter(w io.WriteSeeker, opts ...Option) (*FileWriter, error) { ) f := FileWriter{ - w: w, - pw: &pwriter{w: w, schema: cfg.schema, pos: -1}, - mem: cfg.alloc, - schema: cfg.schema, - codec: cfg.codec, - compressNP: cfg.compressNP, + w: w, + pw: &pwriter{w: w, schema: cfg.schema, pos: -1}, + mem: cfg.alloc, + schema: cfg.schema, + codec: cfg.codec, + compressNP: cfg.compressNP, + minSpaceSavings: cfg.minSpaceSavings, } pos, err := f.w.Seek(0, io.SeekCurrent) @@ -343,7 +345,7 @@ func (f *FileWriter) Write(rec arrow.Record) error { const allow64b = true var ( data = Payload{msg: MessageRecordBatch} - enc = newRecordEncoder(f.mem, 0, kMaxNestingDepth, allow64b, f.codec, f.compressNP) + enc = newRecordEncoder(f.mem, 0, kMaxNestingDepth, allow64b, f.codec, f.compressNP, f.minSpaceSavings) ) defer data.Release() diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/ipc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/ipc.go similarity index 84% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/ipc.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/ipc.go index 44a19b8..e651a99 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/ipc.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/ipc.go @@ -19,10 +19,10 @@ package ipc import ( "io" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/arrio" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/arrio" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) const ( @@ -71,6 +71,7 @@ type config struct { ensureNativeEndian bool noAutoSchema bool emitDictDeltas bool + minSpaceSavings *float64 } func newConfig(opts ...Option) *config { @@ -168,6 +169,26 @@ func WithDictionaryDeltas(v bool) Option { } } +// WithMinSpaceSavings specifies a percentage of space savings for +// compression to be applied to buffers. +// +// Space savings is calculated as (1.0 - compressedSize / uncompressedSize). +// +// For example, if minSpaceSavings = 0.1, a 100-byte body buffer won't +// undergo compression if its expected compressed size exceeds 90 bytes. +// If this option is unset, compression will be used indiscriminately. If +// no codec was supplied, this option is ignored. +// +// Values outside of the range [0,1] are handled as errors. +// +// Note that enabling this option may result in unreadable data for Arrow +// Go and C++ versions prior to 12.0.0. +func WithMinSpaceSavings(savings float64) Option { + return func(cfg *config) { + cfg.minSpaceSavings = &savings + } +} + var ( _ arrio.Reader = (*Reader)(nil) _ arrio.Writer = (*Writer)(nil) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/message.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/message.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/message.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/message.go index db9f614..adc231c 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/message.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/message.go @@ -22,9 +22,9 @@ import ( "io" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) // MetadataVersion represents the Arrow metadata version. diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/metadata.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/metadata.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/metadata.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/metadata.go index 0bcd24d..980425e 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/metadata.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/metadata.go @@ -23,11 +23,11 @@ import ( "io" "sort" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/endian" - "github.com/apache/arrow/go/v10/arrow/internal/dictutils" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/internal/dictutils" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" flatbuffers "github.com/google/flatbuffers/go" ) @@ -425,6 +425,19 @@ func (fv *fieldVisitor) visit(field arrow.Field) { flatbuf.MapAddKeysSorted(fv.b, dt.KeysSorted) fv.offset = flatbuf.MapEnd(fv.b) + case *arrow.RunEndEncodedType: + fv.dtype = flatbuf.TypeRunEndEncoded + var offsets [2]flatbuffers.UOffsetT + offsets[0] = fieldToFB(fv.b, fv.pos.Child(0), + arrow.Field{Name: "run_ends", Type: dt.RunEnds()}, fv.memo) + offsets[1] = fieldToFB(fv.b, fv.pos.Child(1), + arrow.Field{Name: "values", Type: dt.Encoded(), Nullable: true}, fv.memo) + flatbuf.RunEndEncodedStart(fv.b) + fv.b.PrependUOffsetT(offsets[1]) + fv.b.PrependUOffsetT(offsets[0]) + fv.offset = flatbuf.RunEndEncodedEnd(fv.b) + fv.kids = append(fv.kids, offsets[0], offsets[1]) + case arrow.ExtensionType: field.Type = dt.StorageType() fv.visit(field) @@ -793,11 +806,22 @@ func concreteTypeFromFB(typ flatbuf.Type, data flatbuffers.Table, children []arr var dt flatbuf.Map dt.Init(data.Bytes, data.Pos) ret := arrow.MapOf(pairType.Field(0).Type, pairType.Field(1).Type) + ret.SetItemNullable(pairType.Field(1).Nullable) ret.KeysSorted = dt.KeysSorted() return ret, nil + case flatbuf.TypeRunEndEncoded: + if len(children) != 2 { + return nil, fmt.Errorf("%w: arrow/ipc: RunEndEncoded must have exactly 2 child fields", arrow.ErrInvalid) + } + switch children[0].Type.ID() { + case arrow.INT16, arrow.INT32, arrow.INT64: + default: + return nil, fmt.Errorf("%w: arrow/ipc: run-end encoded run_ends field must be one of int16, int32, or int64 type", arrow.ErrInvalid) + } + return arrow.RunEndEncodedOf(children[0].Type, children[1].Type), nil + default: - // FIXME(sbinet): implement all the other types. panic(fmt.Errorf("arrow/ipc: type %v not implemented", flatbuf.EnumNamesType[typ])) } } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/reader.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/reader.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/reader.go index 0af22bd..9c502f6 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/reader.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/reader.go @@ -23,13 +23,13 @@ import ( "io" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/endian" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/internal/dictutils" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/dictutils" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) // Reader reads records from an io.Reader. diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/writer.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/writer.go similarity index 87% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/writer.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/writer.go index ef20e70..93c6d8d 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/ipc/writer.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/ipc/writer.go @@ -17,7 +17,6 @@ package ipc import ( - "bytes" "context" "encoding/binary" "errors" @@ -27,14 +26,14 @@ import ( "sync" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/arrow/internal" - "github.com/apache/arrow/go/v10/arrow/internal/debug" - "github.com/apache/arrow/go/v10/arrow/internal/dictutils" - "github.com/apache/arrow/go/v10/arrow/internal/flatbuf" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/internal" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/dictutils" + "github.com/apache/arrow/go/v12/arrow/internal/flatbuf" + "github.com/apache/arrow/go/v12/arrow/memory" ) type swriter struct { @@ -81,11 +80,12 @@ type Writer struct { mem memory.Allocator pw PayloadWriter - started bool - schema *arrow.Schema - mapper dictutils.Mapper - codec flatbuf.CompressionType - compressNP int + started bool + schema *arrow.Schema + mapper dictutils.Mapper + codec flatbuf.CompressionType + compressNP int + minSpaceSavings *float64 // map of the last written dictionaries by id // so we can avoid writing the same dictionary over and over @@ -99,12 +99,13 @@ type Writer struct { func NewWriterWithPayloadWriter(pw PayloadWriter, opts ...Option) *Writer { cfg := newConfig(opts...) return &Writer{ - mem: cfg.alloc, - pw: pw, - schema: cfg.schema, - codec: cfg.codec, - compressNP: cfg.compressNP, - emitDictDeltas: cfg.emitDictDeltas, + mem: cfg.alloc, + pw: pw, + schema: cfg.schema, + codec: cfg.codec, + compressNP: cfg.compressNP, + minSpaceSavings: cfg.minSpaceSavings, + emitDictDeltas: cfg.emitDictDeltas, } } @@ -168,7 +169,7 @@ func (w *Writer) Write(rec arrow.Record) (err error) { const allow64b = true var ( data = Payload{msg: MessageRecordBatch} - enc = newRecordEncoder(w.mem, 0, kMaxNestingDepth, allow64b, w.codec, w.compressNP) + enc = newRecordEncoder(w.mem, 0, kMaxNestingDepth, allow64b, w.codec, w.compressNP, w.minSpaceSavings) ) defer data.Release() @@ -302,24 +303,36 @@ type recordEncoder struct { fields []fieldMetadata meta []bufferMetadata - depth int64 - start int64 - allow64b bool - codec flatbuf.CompressionType - compressNP int + depth int64 + start int64 + allow64b bool + codec flatbuf.CompressionType + compressNP int + minSpaceSavings *float64 } -func newRecordEncoder(mem memory.Allocator, startOffset, maxDepth int64, allow64b bool, codec flatbuf.CompressionType, compressNP int) *recordEncoder { +func newRecordEncoder(mem memory.Allocator, startOffset, maxDepth int64, allow64b bool, codec flatbuf.CompressionType, compressNP int, minSpaceSavings *float64) *recordEncoder { return &recordEncoder{ - mem: mem, - start: startOffset, - depth: maxDepth, - allow64b: allow64b, - codec: codec, - compressNP: compressNP, + mem: mem, + start: startOffset, + depth: maxDepth, + allow64b: allow64b, + codec: codec, + compressNP: compressNP, + minSpaceSavings: minSpaceSavings, } } +func (w *recordEncoder) shouldCompress(uncompressed, compressed int) bool { + debug.Assert(uncompressed > 0, "uncompressed size is 0") + if w.minSpaceSavings == nil { + return true + } + + savings := 1.0 - float64(compressed)/float64(uncompressed) + return savings >= *w.minSpaceSavings +} + func (w *recordEncoder) reset() { w.start = 0 w.fields = make([]fieldMetadata, 0) @@ -330,19 +343,35 @@ func (w *recordEncoder) compressBodyBuffers(p *Payload) error { if p.body[idx] == nil || p.body[idx].Len() == 0 { return nil } - var buf bytes.Buffer - buf.Grow(codec.MaxCompressedLen(p.body[idx].Len()) + arrow.Int64SizeBytes) - if err := binary.Write(&buf, binary.LittleEndian, uint64(p.body[idx].Len())); err != nil { - return err - } - codec.Reset(&buf) - if _, err := codec.Write(p.body[idx].Bytes()); err != nil { + + buf := memory.NewResizableBuffer(w.mem) + buf.Reserve(codec.MaxCompressedLen(p.body[idx].Len()) + arrow.Int64SizeBytes) + + binary.LittleEndian.PutUint64(buf.Buf(), uint64(p.body[idx].Len())) + bw := &bufferWriter{buf: buf, pos: arrow.Int64SizeBytes} + codec.Reset(bw) + + n, err := codec.Write(p.body[idx].Bytes()) + if err != nil { return err } if err := codec.Close(); err != nil { return err } - p.body[idx] = memory.NewBufferBytes(buf.Bytes()) + + finalLen := bw.pos + compressedLen := bw.pos - arrow.Int64SizeBytes + if !w.shouldCompress(n, compressedLen) { + n = copy(buf.Buf()[arrow.Int64SizeBytes:], p.body[idx].Bytes()) + // size of -1 indicates to the reader that the body + // doesn't need to be decompressed + var noprefix int64 = -1 + binary.LittleEndian.PutUint64(buf.Buf(), uint64(noprefix)) + finalLen = n + arrow.Int64SizeBytes + } + bw.buf.Resize(finalLen) + p.body[idx].Release() + p.body[idx] = buf return nil } @@ -402,7 +431,6 @@ func (w *recordEncoder) compressBodyBuffers(p *Payload) error { } func (w *recordEncoder) encode(p *Payload, rec arrow.Record) error { - // perform depth-first traversal of the row-batch for i, col := range rec.Columns() { err := w.visit(p, col) @@ -412,6 +440,14 @@ func (w *recordEncoder) encode(p *Payload, rec arrow.Record) error { } if w.codec != -1 { + if w.minSpaceSavings != nil { + pct := *w.minSpaceSavings + if pct < 0 || pct > 1 { + p.Release() + return fmt.Errorf("%w: minSpaceSavings not in range [0,1]. Provided %.05f", + arrow.ErrInvalid, pct) + } + } w.compressBodyBuffers(p) } @@ -649,44 +685,7 @@ func (w *recordEncoder) visit(p *Payload, arr arrow.Array) error { } } w.depth++ - case *arrow.MapType: - arr := arr.(*array.Map) - voffsets, err := w.getZeroBasedValueOffsets(arr) - if err != nil { - return fmt.Errorf("could not retrieve zero-based value offsets for array %T: %w", arr, err) - } - p.body = append(p.body, voffsets) - - w.depth-- - var ( - values = arr.ListValues() - mustRelease = false - values_offset int64 - values_length int64 - ) - defer func() { - if mustRelease { - values.Release() - } - }() - - if voffsets != nil { - values_offset = int64(arr.Offsets()[0]) - values_length = int64(arr.Offsets()[arr.Len()]) - values_offset - } - - if len(arr.Offsets()) != 0 || values_length < int64(values.Len()) { - // must also slice the values - values = array.NewSlice(values, values_offset, values_length) - mustRelease = true - } - err = w.visit(p, values) - - if err != nil { - return fmt.Errorf("could not visit list element for array %T: %w", arr, err) - } - w.depth++ - case *arrow.ListType, *arrow.LargeListType: + case *arrow.MapType, *arrow.ListType, *arrow.LargeListType: arr := arr.(array.ListLike) voffsets, err := w.getZeroBasedValueOffsets(arr) if err != nil { @@ -699,7 +698,7 @@ func (w *recordEncoder) visit(p *Payload, arr arrow.Array) error { values = arr.ListValues() mustRelease = false values_offset int64 - values_length int64 + values_end int64 ) defer func() { if mustRelease { @@ -709,13 +708,12 @@ func (w *recordEncoder) visit(p *Payload, arr arrow.Array) error { if arr.Len() > 0 && voffsets != nil { values_offset, _ = arr.ValueOffsets(0) - _, values_length = arr.ValueOffsets(arr.Len() - 1) - values_length -= values_offset + _, values_end = arr.ValueOffsets(arr.Len() - 1) } - if arr.Len() != 0 || values_length < int64(values.Len()) { + if arr.Len() != 0 || values_end < int64(values.Len()) { // must also slice the values - values = array.NewSlice(values, values_offset, values_length) + values = array.NewSlice(values, values_offset, values_end) mustRelease = true } err = w.visit(p, values) @@ -744,6 +742,21 @@ func (w *recordEncoder) visit(p *Payload, arr arrow.Array) error { } w.depth++ + case *arrow.RunEndEncodedType: + arr := arr.(*array.RunEndEncoded) + w.depth-- + child := arr.LogicalRunEndsArray(w.mem) + defer child.Release() + if err := w.visit(p, child); err != nil { + return err + } + child = arr.LogicalValuesArray() + defer child.Release() + if err := w.visit(p, child); err != nil { + return err + } + w.depth++ + default: panic(fmt.Errorf("arrow/ipc: unknown array %T (dtype=%T)", arr, dtype)) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/Makefile b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/Makefile similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/Makefile rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/Makefile diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/allocator.go similarity index 80% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/allocator.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/allocator.go index da6be44..1427190 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/allocator.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/allocator.go @@ -25,9 +25,3 @@ type Allocator interface { Reallocate(size int, b []byte) []byte Free(b []byte) } - -// DefaultAllocator is a default implementation of Allocator and can be used anywhere -// an Allocator is required. -// -// DefaultAllocator is safe to use from multiple goroutines. -var DefaultAllocator Allocator = NewGoAllocator() diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/buffer.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/buffer.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/buffer.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/buffer.go index cbffc7c..ce445d2 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/buffer.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/buffer.go @@ -19,7 +19,7 @@ package memory import ( "sync/atomic" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) // Buffer is a wrapper type for a buffer of bytes. diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator.go index 0eb7145..1c149c0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator.go @@ -22,7 +22,7 @@ package memory import ( "runtime" - cga "github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc" + cga "github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc" ) // CgoArrowAllocator is an allocator which exposes the C++ memory pool class diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator_defaults.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator_defaults.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator_defaults.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator_defaults.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator_logging.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator_logging.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/cgo_allocator_logging.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/cgo_allocator_logging.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/checked_allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/checked_allocator.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/checked_allocator.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/checked_allocator.go diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_allocator.go new file mode 100644 index 0000000..f60cacc --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_allocator.go @@ -0,0 +1,25 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build !mallocator || !cgo + +package memory + +// DefaultAllocator is a default implementation of Allocator and can be used anywhere +// an Allocator is required. +// +// DefaultAllocator is safe to use from multiple goroutines. +var DefaultAllocator Allocator = NewGoAllocator() diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_mallocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_mallocator.go new file mode 100644 index 0000000..060bf48 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/default_mallocator.go @@ -0,0 +1,29 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build mallocator && cgo + +package memory + +import ( + "github.com/apache/arrow/go/v12/arrow/memory/mallocator" +) + +// DefaultAllocator is a default implementation of Allocator and can be used anywhere +// an Allocator is required. +// +// DefaultAllocator is safe to use from multiple goroutines. +var DefaultAllocator Allocator = mallocator.NewMallocator() diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/doc.go similarity index 88% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/doc.go index 959f88b..20a28e4 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/doc.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/doc.go @@ -16,5 +16,7 @@ /* Package memory provides support for allocating and manipulating memory at a low level. + +The build tag 'mallocator' will switch the default allocator to one backed by libc malloc. This also requires CGO. */ package memory diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/go_allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/go_allocator.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/go_allocator.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/go_allocator.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.cc b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.cc similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.cc rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.cc diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.h b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.h similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/allocator.h rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/allocator.h diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/helpers.h b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/helpers.h similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc/helpers.h rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc/helpers.h diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/doc.go new file mode 100644 index 0000000..a399d85 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/doc.go @@ -0,0 +1,21 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 mallocator defines an allocator implementation for +// memory.Allocator which defers to libc malloc. It requires +// usage of CGO. +package mallocator diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/mallocator.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/mallocator.go new file mode 100644 index 0000000..18e0377 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/mallocator/mallocator.go @@ -0,0 +1,115 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 mallocator + +// #include +// #include +// +// void* realloc_and_initialize(void* ptr, size_t old_len, size_t new_len) { +// void* new_ptr = realloc(ptr, new_len); +// if (new_ptr && new_len > old_len) { +// memset(new_ptr + old_len, 0, new_len - old_len); +// } +// return new_ptr; +// } +import "C" + +import ( + "reflect" + "sync/atomic" + "unsafe" +) + +// Mallocator is an allocator which defers to libc malloc. +// +// The priamry reason to use this is when exporting data across the C Data +// Interface. CGO requires that pointers to Go memory are not stored in C +// memory, which is exactly what the C Data Interface would otherwise +// require. By allocating with Mallocator up front, we can safely export the +// buffers in Arrow arrays without copying buffers or violating CGO rules. +// +// The build tag 'mallocator' will also make this the default allocator. +type Mallocator struct { + allocatedBytes uint64 +} + +func NewMallocator() *Mallocator { return &Mallocator{} } + +func (alloc *Mallocator) Allocate(size int) []byte { + // Use calloc to zero-initialize memory. + // > ...the current implementation may sometimes cause a runtime error if the + // > contents of the C memory appear to be a Go pointer. Therefore, avoid + // > passing uninitialized C memory to Go code if the Go code is going to store + // > pointer values in it. Zero out the memory in C before passing it to Go. + if size < 0 { + panic("mallocator: negative size") + } + ptr, err := C.calloc(C.size_t(size), 1) + if err != nil { + panic(err) + } else if ptr == nil { + panic("mallocator: out of memory") + } + atomic.AddUint64(&alloc.allocatedBytes, uint64(size)) + return unsafe.Slice((*byte)(ptr), size) +} + +func (alloc *Mallocator) Free(b []byte) { + sh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) + C.free(unsafe.Pointer(sh.Data)) + // Subtract sh.Len via two's complement (since atomic doesn't offer subtract) + atomic.AddUint64(&alloc.allocatedBytes, ^(uint64(sh.Len) - 1)) +} + +func (alloc *Mallocator) Reallocate(size int, b []byte) []byte { + if size < 0 { + panic("mallocator: negative size") + } + sh := (*reflect.SliceHeader)(unsafe.Pointer(&b)) + ptr, err := C.realloc_and_initialize(unsafe.Pointer(sh.Data), C.size_t(sh.Cap), C.size_t(size)) + if err != nil { + panic(err) + } else if ptr == nil && size != 0 { + panic("mallocator: out of memory") + } + delta := size - len(b) + if delta >= 0 { + atomic.AddUint64(&alloc.allocatedBytes, uint64(delta)) + } else { + atomic.AddUint64(&alloc.allocatedBytes, ^(uint64(-delta) - 1)) + } + return unsafe.Slice((*byte)(ptr), size) +} + +func (alloc *Mallocator) AllocatedBytes() int64 { + return int64(alloc.allocatedBytes) +} + +// Duplicate interface to avoid circular import +type TestingT interface { + Errorf(format string, args ...interface{}) + Helper() +} + +func (alloc *Mallocator) AssertSize(t TestingT, sz int) { + cur := alloc.AllocatedBytes() + if int64(sz) != cur { + t.Helper() + t.Errorf("invalid memory size exp=%d, got=%d", sz, cur) + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_amd64.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_amd64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_arm64.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_arm64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_avx2_amd64.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_avx2_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_avx2_amd64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_avx2_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_avx2_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_avx2_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_js_wasm.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_js_wasm.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_js_wasm.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_js_wasm.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_neon_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_neon_arm64.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_neon_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_neon_arm64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_neon_arm64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_neon_arm64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_neon_arm64.s rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_neon_arm64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_noasm.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_noasm.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_noasm.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_sse4_amd64.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_sse4_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_sse4_amd64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_sse4_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/memory_sse4_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/memory_sse4_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/util.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/util.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/memory/util.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/memory/util.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/numeric.schema.json b/ext/vendor/github.com/apache/arrow/go/v12/arrow/numeric.schema.json similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/numeric.schema.json rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/numeric.schema.json diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/numeric.tmpldata b/ext/vendor/github.com/apache/arrow/go/v12/arrow/numeric.tmpldata similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/numeric.tmpldata rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/numeric.tmpldata diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/record.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/record.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/record.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/record.go index fa63641..b93f101 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/record.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/record.go @@ -37,6 +37,7 @@ type Record interface { Columns() []Array Column(i int) Array ColumnName(i int) string + SetColumn(i int, col Array) (Record, error) // NewSlice constructs a zero-copy slice of the record with the indicated // indices i and j, corresponding to array[i:j]. diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/append.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/append.go new file mode 100644 index 0000000..335f0ae --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/append.go @@ -0,0 +1,263 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.18 + +package scalar + +import ( + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/float16" + "golang.org/x/exp/constraints" +) + +type primitives interface { + bool | float16.Num | decimal128.Num | + decimal256.Num | constraints.Integer | constraints.Float | + arrow.DayTimeInterval | arrow.MonthInterval | arrow.MonthDayNanoInterval +} + +type builder[T primitives | []byte] interface { + AppendNull() + UnsafeAppend(T) + UnsafeAppendBoolToBitmap(bool) +} + +type binaryBuilder interface { + builder[[]byte] + ReserveData(int) +} + +func appendPrimitive[T primitives, B builder[T]](bldr B, scalars []Scalar) { + for _, sc := range scalars { + if sc.IsValid() { + bldr.UnsafeAppend(sc.value().(T)) + } else { + bldr.UnsafeAppendBoolToBitmap(false) + } + } +} + +func appendBinary(bldr binaryBuilder, scalars []Scalar) { + var dataSize int + for _, s := range scalars { + s := s.(BinaryScalar) + if s.IsValid() { + dataSize += len(s.Data()) + } + } + + bldr.ReserveData(dataSize) + for _, sc := range scalars { + s := sc.(BinaryScalar) + if s.IsValid() { + bldr.UnsafeAppend(s.Data()) + } else { + bldr.AppendNull() + } + } +} + +// Append requires the passed in builder and scalar to have the same datatype +// otherwise it will return an error. Will return arrow.ErrNotImplemented if +// the type hasn't been implemented for this. +// +// NOTE only available in go1.18+ +func Append(bldr array.Builder, s Scalar) error { + return AppendSlice(bldr, []Scalar{s}) +} + +// AppendSlice requires the passed in builder and all scalars in the slice +// to have the same datatype otherwise it will return an error. Will return +// arrow.ErrNotImplemented if the type hasn't been implemented for this. +// +// NOTE only available in go1.18+ +func AppendSlice(bldr array.Builder, scalars []Scalar) error { + if len(scalars) == 0 { + return nil + } + + ty := bldr.Type() + for _, sc := range scalars { + if !arrow.TypeEqual(ty, sc.DataType()) { + return fmt.Errorf("%w: cannot append scalar of type %s to builder for type %s", + arrow.ErrInvalid, scalars[0].DataType(), bldr.Type()) + } + } + + bldr.Reserve(len(scalars)) + switch bldr := bldr.(type) { + case *array.BooleanBuilder: + appendPrimitive[bool](bldr, scalars) + case *array.Decimal128Builder: + appendPrimitive[decimal128.Num](bldr, scalars) + case *array.Decimal256Builder: + appendPrimitive[decimal256.Num](bldr, scalars) + case *array.FixedSizeBinaryBuilder: + for _, sc := range scalars { + s := sc.(*FixedSizeBinary) + if s.Valid { + bldr.UnsafeAppend(s.Value.Bytes()) + } else { + bldr.UnsafeAppendBoolToBitmap(false) + } + } + case *array.Int8Builder: + appendPrimitive[int8](bldr, scalars) + case *array.Uint8Builder: + appendPrimitive[uint8](bldr, scalars) + case *array.Int16Builder: + appendPrimitive[int16](bldr, scalars) + case *array.Uint16Builder: + appendPrimitive[uint16](bldr, scalars) + case *array.Int32Builder: + appendPrimitive[int32](bldr, scalars) + case *array.Uint32Builder: + appendPrimitive[uint32](bldr, scalars) + case *array.Int64Builder: + appendPrimitive[int64](bldr, scalars) + case *array.Uint64Builder: + appendPrimitive[uint64](bldr, scalars) + case *array.Float16Builder: + appendPrimitive[float16.Num](bldr, scalars) + case *array.Float32Builder: + appendPrimitive[float32](bldr, scalars) + case *array.Float64Builder: + appendPrimitive[float64](bldr, scalars) + case *array.Date32Builder: + appendPrimitive[arrow.Date32](bldr, scalars) + case *array.Date64Builder: + appendPrimitive[arrow.Date64](bldr, scalars) + case *array.Time32Builder: + appendPrimitive[arrow.Time32](bldr, scalars) + case *array.Time64Builder: + appendPrimitive[arrow.Time64](bldr, scalars) + case *array.DayTimeIntervalBuilder: + appendPrimitive[arrow.DayTimeInterval](bldr, scalars) + case *array.MonthIntervalBuilder: + appendPrimitive[arrow.MonthInterval](bldr, scalars) + case *array.MonthDayNanoIntervalBuilder: + appendPrimitive[arrow.MonthDayNanoInterval](bldr, scalars) + case *array.DurationBuilder: + appendPrimitive[arrow.Duration](bldr, scalars) + case *array.TimestampBuilder: + appendPrimitive[arrow.Timestamp](bldr, scalars) + case array.StringLikeBuilder: + appendBinary(bldr, scalars) + case *array.BinaryBuilder: + appendBinary(bldr, scalars) + case array.ListLikeBuilder: + var numChildren int + for _, s := range scalars { + if !s.IsValid() { + continue + } + numChildren += s.(ListScalar).GetList().Len() + } + bldr.ValueBuilder().Reserve(numChildren) + + for _, s := range scalars { + bldr.Append(s.IsValid()) + if s.IsValid() { + list := s.(ListScalar).GetList() + for i := 0; i < list.Len(); i++ { + sc, err := GetScalar(list, i) + if err != nil { + return err + } + if err := Append(bldr.ValueBuilder(), sc); err != nil { + return err + } + } + } + } + case *array.StructBuilder: + for _, sc := range scalars { + s := sc.(*Struct) + for i := 0; i < bldr.NumField(); i++ { + if !s.Valid || s.Value[i] == nil { + bldr.FieldBuilder(i).UnsafeAppendBoolToBitmap(false) + } else { + if err := Append(bldr.FieldBuilder(i), s.Value[i]); err != nil { + return err + } + } + } + bldr.UnsafeAppendBoolToBitmap(s.Valid) + } + case *array.SparseUnionBuilder: + ty := ty.(*arrow.SparseUnionType) + for i := 0; i < bldr.NumChildren(); i++ { + bldr.Child(i).Reserve(len(scalars)) + } + + for _, s := range scalars { + // for each scalar + // 1. append the type code + // 2. append the value to the corresponding child + // 3. append null to the other children + s := s.(*SparseUnion) + bldr.Append(s.TypeCode) + for i := range ty.Fields() { + child := bldr.Child(i) + if s.ChildID == i { + if s.Valid { + if err := Append(child, s.Value[i]); err != nil { + return err + } + } else { + child.UnsafeAppendBoolToBitmap(false) + } + } else { + child.UnsafeAppendBoolToBitmap(false) + } + } + } + case *array.DenseUnionBuilder: + ty := ty.(*arrow.DenseUnionType) + for i := 0; i < bldr.NumChildren(); i++ { + bldr.Child(i).Reserve(len(scalars)) + } + + for _, s := range scalars { + s := s.(*DenseUnion) + fieldIndex := ty.ChildIDs()[s.TypeCode] + bldr.Append(s.TypeCode) + + for i := range ty.Fields() { + child := bldr.Child(i) + if i == fieldIndex { + if s.Valid { + if err := Append(child, s.Value); err != nil { + return err + } + } else { + child.UnsafeAppendBoolToBitmap(false) + } + } + } + } + default: + return fmt.Errorf("%w: append scalar for type %s", arrow.ErrNotImplemented, ty) + } + + return nil +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/binary.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/binary.go new file mode 100644 index 0000000..483ae2d --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/binary.go @@ -0,0 +1,203 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "bytes" + "fmt" + "unicode/utf8" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/memory" +) + +type BinaryScalar interface { + Scalar + + Retain() + Release() + Buffer() *memory.Buffer + Data() []byte +} + +type Binary struct { + scalar + + Value *memory.Buffer +} + +func (b *Binary) Retain() { + if b.Value != nil { + b.Value.Retain() + } +} + +func (b *Binary) Release() { + if b.Value != nil { + b.Value.Release() + } +} + +func (b *Binary) value() interface{} { return b.Value } +func (b *Binary) Data() []byte { return b.Value.Bytes() } +func (b *Binary) equals(rhs Scalar) bool { + return bytes.Equal(b.Value.Bytes(), rhs.(BinaryScalar).Data()) +} +func (b *Binary) Buffer() *memory.Buffer { return b.Value } +func (b *Binary) String() string { + if !b.Valid { + return "null" + } + + return string(b.Value.Bytes()) +} + +func (b *Binary) CastTo(to arrow.DataType) (Scalar, error) { + if !b.Valid { + return MakeNullScalar(to), nil + } + + switch to.ID() { + case arrow.BINARY: + return NewBinaryScalar(b.Value, b.Type), nil + case arrow.LARGE_BINARY: + return NewLargeBinaryScalar(b.Value), nil + case arrow.STRING: + return NewStringScalarFromBuffer(b.Value), nil + case arrow.LARGE_STRING: + return NewLargeStringScalarFromBuffer(b.Value), nil + case arrow.FIXED_SIZE_BINARY: + if b.Value.Len() == to.(*arrow.FixedSizeBinaryType).ByteWidth { + return NewFixedSizeBinaryScalar(b.Value, to), nil + } + } + + return nil, fmt.Errorf("cannot cast non-null binary scalar to type %s", to) +} + +func (b *Binary) Validate() (err error) { + err = b.scalar.Validate() + if err == nil { + err = validateOptional(&b.scalar, b.Value, "value") + } + return +} + +func (b *Binary) ValidateFull() error { + return b.Validate() +} + +func NewBinaryScalar(val *memory.Buffer, typ arrow.DataType) *Binary { + val.Retain() + return &Binary{scalar{typ, true}, val} +} + +type LargeBinary struct { + *Binary +} + +func NewLargeBinaryScalar(val *memory.Buffer) *LargeBinary { + return &LargeBinary{NewBinaryScalar(val, arrow.BinaryTypes.LargeBinary)} +} + +type String struct { + *Binary +} + +func (s *String) Validate() error { + return s.Binary.Validate() +} + +func (s *String) ValidateFull() (err error) { + if err = s.Validate(); err != nil { + return + } + if s.Valid && !utf8.ValidString(string(s.Value.Bytes())) { + err = fmt.Errorf("%s scalar contains invalid utf8 data", s.Type) + } + return +} + +func (s *String) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if to.ID() == arrow.FIXED_SIZE_BINARY { + if s.Value.Len() == to.(*arrow.FixedSizeBinaryType).ByteWidth { + return NewFixedSizeBinaryScalar(s.Value, to), nil + } + return nil, fmt.Errorf("cannot convert string scalar of %s to type %s", string(s.Value.Bytes()), to) + } + + return ParseScalar(to, string(s.Value.Bytes())) +} + +func NewStringScalar(val string) *String { + buf := memory.NewBufferBytes([]byte(val)) + defer buf.Release() + return NewStringScalarFromBuffer(buf) +} + +func NewStringScalarFromBuffer(val *memory.Buffer) *String { + // NewBinaryScalar will call Retain on val, so we don't have to + return &String{NewBinaryScalar(val, arrow.BinaryTypes.String)} +} + +// alias the String struct we are embedding so it doesn't hide the +// String() function that we want to expose +type stringScalar = String + +type LargeString struct { + *stringScalar +} + +func NewLargeStringScalar(val string) *LargeString { + buf := memory.NewBufferBytes([]byte(val)) + defer buf.Release() + return NewLargeStringScalarFromBuffer(buf) +} + +func NewLargeStringScalarFromBuffer(val *memory.Buffer) *LargeString { + // NewBinaryScalar will call retain on val, so we don't have to + return &LargeString{stringScalar: &String{NewBinaryScalar(val, arrow.BinaryTypes.LargeString)}} +} + +type FixedSizeBinary struct { + *Binary +} + +func (b *FixedSizeBinary) Validate() (err error) { + if err = b.Binary.Validate(); err != nil { + return + } + + if b.Valid { + width := b.Type.(*arrow.FixedSizeBinaryType).ByteWidth + if b.Value.Len() != width { + err = fmt.Errorf("%s scalar should have a value of size %d, got %d", b.Type, width, b.Value.Len()) + } + } + return +} + +func (b *FixedSizeBinary) ValidateFull() error { return b.Validate() } + +func NewFixedSizeBinaryScalar(val *memory.Buffer, typ arrow.DataType) *FixedSizeBinary { + // NewBinaryScalar will call Retain on val, so we don't have to + return &FixedSizeBinary{NewBinaryScalar(val, typ)} +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/compare.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/compare.go new file mode 100644 index 0000000..c7950e5 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/compare.go @@ -0,0 +1,97 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import "github.com/apache/arrow/go/v12/arrow" + +// Equals returns true if two scalars are equal, which means they have the same +// datatype, validity and value. +func Equals(left, right Scalar) bool { + if left == right { + return true + } + + if !arrow.TypeEqual(left.DataType(), right.DataType()) { + return false + } + + if left.IsValid() != right.IsValid() { + return false + } + + if !left.IsValid() { + return true + } + + return left.equals(right) +} + +type equalOption struct { + atol float64 // absolute tolerance + nansEq bool // whether NaNs are considered equal +} + +// EqualOption is a functional option type used to configure how Records and Arrays are compared. +type EqualOption func(*equalOption) + +// WithNaNsEqual configures the comparison functions so that NaNs are considered equal. +func WithNaNsEqual(val bool) EqualOption { + return func(eo *equalOption) { + eo.nansEq = val + } +} + +// WithAbsTolerance configures the comparison functions so that 2 floating point values +// v1 and v2 are considered equal if |v1-v2| <= atol. +func WithAbsTolerance(atol float64) EqualOption { + return func(eo *equalOption) { + eo.atol = atol + } +} + +const defaultAbsoluteTolerance = 1e-5 + +type approxEqualScalar interface { + approxEquals(Scalar, equalOption) bool +} + +func ApproxEquals(left, right Scalar, opts ...EqualOption) bool { + eq := equalOption{ + atol: defaultAbsoluteTolerance, + nansEq: false, + } + for _, opt := range opts { + opt(&eq) + } + + switch { + case left == right: + return true + case !arrow.TypeEqual(left.DataType(), right.DataType()): + return false + case left.IsValid() != right.IsValid(): + return false + case !left.IsValid(): + return true + } + + if approx, ok := left.(approxEqualScalar); ok { + return approx.approxEquals(right, eq) + } + + return left.equals(right) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/nested.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/nested.go new file mode 100644 index 0000000..9de5681 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/nested.go @@ -0,0 +1,821 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "bytes" + "errors" + "fmt" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "golang.org/x/xerrors" +) + +type ListScalar interface { + Scalar + GetList() arrow.Array + Release() + Retain() +} + +type List struct { + scalar + Value arrow.Array +} + +func (l *List) Release() { + if l.Value != nil { + l.Value.Release() + } +} + +func (l *List) Retain() { + if l.Value != nil { + l.Value.Retain() + } +} + +func (l *List) value() interface{} { return l.Value } +func (l *List) GetList() arrow.Array { return l.Value } +func (l *List) equals(rhs Scalar) bool { + return array.Equal(l.Value, rhs.(ListScalar).GetList()) +} +func (l *List) Validate() (err error) { + if err = l.scalar.Validate(); err != nil { + return + } + if err = validateOptional(&l.scalar, l.Value, "value"); err != nil { + return + } + + if !l.Valid { + return + } + + var ( + valueType arrow.DataType + ) + + switch dt := l.Type.(type) { + case *arrow.ListType: + valueType = dt.Elem() + case *arrow.LargeListType: + valueType = dt.Elem() + case *arrow.FixedSizeListType: + valueType = dt.Elem() + case *arrow.MapType: + valueType = dt.ValueType() + } + listType := l.Type + + if !arrow.TypeEqual(l.Value.DataType(), valueType) { + err = fmt.Errorf("%s scalar should have a value of type %s, got %s", + listType, valueType, l.Value.DataType()) + } + return +} + +func (l *List) ValidateFull() error { return l.Validate() } +func (l *List) CastTo(to arrow.DataType) (Scalar, error) { + if !l.Valid { + return MakeNullScalar(to), nil + } + + if arrow.TypeEqual(l.Type, to) { + return l, nil + } + + if to.ID() == arrow.STRING { + var bld bytes.Buffer + fmt.Fprint(&bld, l.Value) + buf := memory.NewBufferBytes(bld.Bytes()) + defer buf.Release() + return NewStringScalarFromBuffer(buf), nil + } + + return nil, fmt.Errorf("cannot convert non-nil list scalar to type %s", to) +} + +func (l *List) String() string { + if !l.Valid { + return "null" + } + val, err := l.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func NewListScalar(val arrow.Array) *List { + return &List{scalar{arrow.ListOf(val.DataType()), true}, array.MakeFromData(val.Data())} +} + +func NewListScalarData(val arrow.ArrayData) *List { + return &List{scalar{arrow.ListOf(val.DataType()), true}, array.MakeFromData(val)} +} + +type LargeList struct { + *List +} + +func NewLargeListScalar(val arrow.Array) *LargeList { + return &LargeList{&List{scalar{arrow.LargeListOf(val.DataType()), true}, array.MakeFromData(val.Data())}} +} + +func NewLargeListScalarData(val arrow.ArrayData) *LargeList { + return &LargeList{&List{scalar{arrow.LargeListOf(val.DataType()), true}, array.MakeFromData(val)}} +} + +func makeMapType(typ *arrow.StructType) *arrow.MapType { + debug.Assert(len(typ.Fields()) == 2, "must pass struct with only 2 fields for MapScalar") + return arrow.MapOf(typ.Field(0).Type, typ.Field(1).Type) +} + +type Map struct { + *List +} + +func NewMapScalar(val arrow.Array) *Map { + return &Map{&List{scalar{makeMapType(val.DataType().(*arrow.StructType)), true}, array.MakeFromData(val.Data())}} +} + +type FixedSizeList struct { + *List +} + +func (f *FixedSizeList) Validate() (err error) { + if err = f.List.Validate(); err != nil { + return + } + + if f.Valid { + listType := f.Type.(*arrow.FixedSizeListType) + if f.Value.Len() != int(listType.Len()) { + return fmt.Errorf("%s scalar should have a child value of length %d, got %d", + f.Type, listType.Len(), f.Value.Len()) + } + } + return +} + +func (f *FixedSizeList) ValidateFull() error { return f.Validate() } + +func NewFixedSizeListScalar(val arrow.Array) *FixedSizeList { + return NewFixedSizeListScalarWithType(val, arrow.FixedSizeListOf(int32(val.Len()), val.DataType())) +} + +func NewFixedSizeListScalarWithType(val arrow.Array, typ arrow.DataType) *FixedSizeList { + debug.Assert(val.Len() == int(typ.(*arrow.FixedSizeListType).Len()), "length of value for fixed size list scalar must match type") + return &FixedSizeList{&List{scalar{typ, true}, array.MakeFromData(val.Data())}} +} + +type Vector []Scalar + +type Struct struct { + scalar + Value Vector +} + +func (s *Struct) Release() { + for _, v := range s.Value { + if v, ok := v.(Releasable); ok { + v.Release() + } + } +} + +func (s *Struct) Field(name string) (Scalar, error) { + idx, ok := s.Type.(*arrow.StructType).FieldIdx(name) + if !ok { + return nil, fmt.Errorf("no field named %s found in struct scalar %s", name, s.Type) + } + + return s.Value[idx], nil +} + +func (s *Struct) value() interface{} { return s.Value } + +func (s *Struct) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Struct) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if to.ID() != arrow.STRING { + return nil, fmt.Errorf("cannot cast non-null struct scalar to type %s", to) + } + + var bld bytes.Buffer + st := s.Type.(*arrow.StructType) + bld.WriteByte('{') + for i, v := range s.Value { + if i > 0 { + bld.WriteString(", ") + } + bld.WriteString(fmt.Sprintf("%s:%s = %s", st.Field(i).Name, st.Field(i).Type, v.String())) + } + bld.WriteByte('}') + buf := memory.NewBufferBytes(bld.Bytes()) + defer buf.Release() + return NewStringScalarFromBuffer(buf), nil +} + +func (s *Struct) equals(rhs Scalar) bool { + right := rhs.(*Struct) + if len(s.Value) != len(right.Value) { + return false + } + + for i := range s.Value { + if !Equals(s.Value[i], right.Value[i]) { + return false + } + } + return true +} + +func (s *Struct) Validate() (err error) { + if err = s.scalar.Validate(); err != nil { + return + } + + if !s.Valid { + for _, v := range s.Value { + if v.IsValid() { + err = fmt.Errorf("%s scalar is marked null but has child values", s.Type) + return + } + } + return + } + + st := s.Type.(*arrow.StructType) + num := len(st.Fields()) + if len(s.Value) != num { + return fmt.Errorf("non-null %s scalar should have %d child values, got %d", s.Type, num, len(s.Value)) + } + + for i, f := range st.Fields() { + if s.Value[i] == nil { + return fmt.Errorf("non-null %s scalar has missing child value at index %d", s.Type, i) + } + + err = s.Value[i].Validate() + if err != nil { + return fmt.Errorf("%s scalar fails validation for child at index %d: %w", s.Type, i, err) + } + + if !arrow.TypeEqual(s.Value[i].DataType(), f.Type) { + return fmt.Errorf("%s scalar should have a child value of type %s at index %d, got %s", s.Type, f.Type, i, s.Value[i].DataType()) + } + } + return +} + +func (s *Struct) ValidateFull() (err error) { + if err = s.scalar.ValidateFull(); err != nil { + return + } + + if !s.Valid { + for _, v := range s.Value { + if v.IsValid() { + err = fmt.Errorf("%s scalar is marked null but has child values", s.Type) + return + } + } + return + } + + st := s.Type.(*arrow.StructType) + num := len(st.Fields()) + if len(s.Value) != num { + return fmt.Errorf("non-null %s scalar should have %d child values, got %d", s.Type, num, len(s.Value)) + } + + for i, f := range st.Fields() { + if s.Value[i] == nil { + return fmt.Errorf("non-null %s scalar has missing child value at index %d", s.Type, i) + } + + err = s.Value[i].ValidateFull() + if err != nil { + return fmt.Errorf("%s scalar fails validation for child at index %d: %w", s.Type, i, err) + } + + if !arrow.TypeEqual(s.Value[i].DataType(), f.Type) { + return fmt.Errorf("%s scalar should have a child value of type %s at index %d, got %s", s.Type, f.Type, i, s.Value[i].DataType()) + } + } + return +} + +func NewStructScalar(val []Scalar, typ arrow.DataType) *Struct { + return &Struct{scalar{typ, true}, val} +} + +func NewStructScalarWithNames(val []Scalar, names []string) (*Struct, error) { + if len(val) != len(names) { + return nil, xerrors.New("mismatching number of field names and child scalars") + } + + fields := make([]arrow.Field, len(names)) + for i, n := range names { + fields[i] = arrow.Field{Name: n, Type: val[i].DataType(), Nullable: true} + } + return NewStructScalar(val, arrow.StructOf(fields...)), nil +} + +type Dictionary struct { + scalar + + Value struct { + Index Scalar + Dict arrow.Array + } +} + +func NewNullDictScalar(dt arrow.DataType) *Dictionary { + ret := &Dictionary{scalar: scalar{dt, false}} + ret.Value.Index = MakeNullScalar(dt.(*arrow.DictionaryType).IndexType) + ret.Value.Dict = nil + return ret +} + +func NewDictScalar(index Scalar, dict arrow.Array) *Dictionary { + ret := &Dictionary{scalar: scalar{&arrow.DictionaryType{IndexType: index.DataType(), ValueType: dict.DataType()}, index.IsValid()}} + ret.Value.Index = index + ret.Value.Dict = dict + ret.Retain() + return ret +} + +func (s *Dictionary) Data() []byte { return s.Value.Index.(PrimitiveScalar).Data() } + +func (s *Dictionary) Retain() { + if r, ok := s.Value.Index.(Releasable); ok { + r.Retain() + } + if s.Value.Dict != (arrow.Array)(nil) { + s.Value.Dict.Retain() + } +} + +func (s *Dictionary) Release() { + if r, ok := s.Value.Index.(Releasable); ok { + r.Release() + } + if s.Value.Dict != (arrow.Array)(nil) { + s.Value.Dict.Release() + } +} + +func (s *Dictionary) Validate() (err error) { + dt, ok := s.Type.(*arrow.DictionaryType) + if !ok { + return errors.New("arrow/scalar: dictionary scalar should have type Dictionary") + } + + if s.Value.Index == (Scalar)(nil) { + return fmt.Errorf("%s scalar doesn't have an index value", dt) + } + + if err = s.Value.Index.Validate(); err != nil { + return fmt.Errorf("%s scalar fails validation for index value: %w", dt, err) + } + + if !arrow.TypeEqual(s.Value.Index.DataType(), dt.IndexType) { + return fmt.Errorf("%s scalar should have an index value of type %s, got %s", + dt, dt.IndexType, s.Value.Index.DataType()) + } + + if s.IsValid() && !s.Value.Index.IsValid() { + return fmt.Errorf("non-null %s scalar has null index value", dt) + } + + if !s.IsValid() && s.Value.Index.IsValid() { + return fmt.Errorf("null %s scalar has non-null index value", dt) + } + + if !s.IsValid() { + return + } + + if s.Value.Dict == (arrow.Array)(nil) { + return fmt.Errorf("%s scalar doesn't have a dictionary value", dt) + } + + if !arrow.TypeEqual(s.Value.Dict.DataType(), dt.ValueType) { + return fmt.Errorf("%s scalar's value type doesn't match dict type: got %s", dt, s.Value.Dict.DataType()) + } + + return +} + +func (s *Dictionary) ValidateFull() (err error) { + if err = s.Validate(); err != nil { + return + } + + if !s.Value.Index.IsValid() { + return nil + } + + max := s.Value.Dict.Len() - 1 + switch idx := s.Value.Index.value().(type) { + case int8: + if idx < 0 || int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case uint8: + if int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case int16: + if idx < 0 || int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case uint16: + if int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case int32: + if idx < 0 || int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case uint32: + if int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case int64: + if idx < 0 || int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + case uint64: + if int(idx) > max { + err = fmt.Errorf("%s scalar index value out of bounds: %d", s.DataType(), idx) + } + } + + return +} + +func (s *Dictionary) String() string { + if !s.Valid { + return "null" + } + + return s.Value.Dict.String() + "[" + s.Value.Index.String() + "]" +} + +func (s *Dictionary) equals(rhs Scalar) bool { + return s.Value.Index.equals(rhs.(*Dictionary).Value.Index) && + array.Equal(s.Value.Dict, rhs.(*Dictionary).Value.Dict) +} + +func (s *Dictionary) CastTo(arrow.DataType) (Scalar, error) { + return nil, fmt.Errorf("cast from scalar %s not implemented", s.DataType()) +} + +func (s *Dictionary) GetEncodedValue() (Scalar, error) { + dt := s.Type.(*arrow.DictionaryType) + if !s.IsValid() { + return MakeNullScalar(dt.ValueType), nil + } + + var idxValue int + switch dt.IndexType.ID() { + case arrow.INT8: + idxValue = int(s.Value.Index.value().(int8)) + case arrow.UINT8: + idxValue = int(s.Value.Index.value().(uint8)) + case arrow.INT16: + idxValue = int(s.Value.Index.value().(int16)) + case arrow.UINT16: + idxValue = int(s.Value.Index.value().(uint16)) + case arrow.INT32: + idxValue = int(s.Value.Index.value().(int32)) + case arrow.UINT32: + idxValue = int(s.Value.Index.value().(uint32)) + case arrow.INT64: + idxValue = int(s.Value.Index.value().(int64)) + case arrow.UINT64: + idxValue = int(s.Value.Index.value().(uint64)) + default: + return nil, fmt.Errorf("unimplemented dictionary type %s", dt.IndexType) + } + return GetScalar(s.Value.Dict, idxValue) +} + +func (s *Dictionary) value() interface{} { + return s.Value.Index.value() +} + +type Union interface { + Scalar + ChildValue() Scalar + Release() +} + +type SparseUnion struct { + scalar + + TypeCode arrow.UnionTypeCode + Value []Scalar + ChildID int +} + +func (s *SparseUnion) equals(rhs Scalar) bool { + right := rhs.(*SparseUnion) + return Equals(s.ChildValue(), right.ChildValue()) +} + +func (s *SparseUnion) value() interface{} { return s.ChildValue() } + +func (s *SparseUnion) String() string { + dt := s.Type.(*arrow.SparseUnionType) + val := s.ChildValue() + return "union{" + dt.Fields()[dt.ChildIDs()[s.TypeCode]].String() + " = " + val.String() + "}" +} + +func (s *SparseUnion) Retain() { + for _, v := range s.Value { + if v, ok := v.(Releasable); ok { + v.Retain() + } + } +} + +func (s *SparseUnion) Release() { + for _, v := range s.Value { + if v, ok := v.(Releasable); ok { + v.Release() + } + } +} + +func (s *SparseUnion) Validate() (err error) { + dt := s.Type.(*arrow.SparseUnionType) + if len(dt.Fields()) != len(s.Value) { + return fmt.Errorf("sparse union scalar value had %d fields but type has %d fields", len(dt.Fields()), len(s.Value)) + } + + if s.TypeCode < 0 || int(s.TypeCode) >= len(dt.ChildIDs()) || dt.ChildIDs()[s.TypeCode] == arrow.InvalidUnionChildID { + return fmt.Errorf("%s scalar has invalid type code %d", dt, s.TypeCode) + } + + for i, f := range dt.Fields() { + v := s.Value[i] + if !arrow.TypeEqual(f.Type, v.DataType()) { + return fmt.Errorf("%s value for field %s had incorrect type of %s", dt, f, v.DataType()) + } + if err = v.Validate(); err != nil { + return err + } + } + return +} + +func (s *SparseUnion) ValidateFull() (err error) { + dt := s.Type.(*arrow.SparseUnionType) + if len(dt.Fields()) != len(s.Value) { + return fmt.Errorf("sparse union scalar value had %d fields but type has %d fields", len(dt.Fields()), len(s.Value)) + } + + if s.TypeCode < 0 || int(s.TypeCode) >= len(dt.ChildIDs()) || dt.ChildIDs()[s.TypeCode] == arrow.InvalidUnionChildID { + return fmt.Errorf("%s scalar has invalid type code %d", dt, s.TypeCode) + } + + for i, f := range dt.Fields() { + v := s.Value[i] + if !arrow.TypeEqual(f.Type, v.DataType()) { + return fmt.Errorf("%s value for field %s had incorrect type of %s", dt, f, v.DataType()) + } + if err = v.ValidateFull(); err != nil { + return err + } + } + return +} + +func (s *SparseUnion) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + switch to.ID() { + case arrow.STRING: + return NewStringScalar(s.String()), nil + case arrow.LARGE_STRING: + return NewLargeStringScalar(s.String()), nil + } + + return nil, fmt.Errorf("cannot cast non-nil union to type other than string") +} + +func (s *SparseUnion) ChildValue() Scalar { return s.Value[s.ChildID] } + +func NewSparseUnionScalar(val []Scalar, code arrow.UnionTypeCode, dt *arrow.SparseUnionType) *SparseUnion { + ret := &SparseUnion{ + scalar: scalar{dt, true}, + TypeCode: code, + Value: val, + ChildID: dt.ChildIDs()[code], + } + ret.Valid = ret.Value[ret.ChildID].IsValid() + return ret +} + +func NewSparseUnionScalarFromValue(val Scalar, idx int, dt *arrow.SparseUnionType) *SparseUnion { + code := dt.TypeCodes()[idx] + values := make([]Scalar, len(dt.Fields())) + for i, f := range dt.Fields() { + if i == idx { + values[i] = val + } else { + values[i] = MakeNullScalar(f.Type) + } + } + return NewSparseUnionScalar(values, code, dt) +} + +type DenseUnion struct { + scalar + + TypeCode arrow.UnionTypeCode + Value Scalar +} + +func (s *DenseUnion) equals(rhs Scalar) bool { + right := rhs.(*DenseUnion) + return Equals(s.Value, right.Value) +} + +func (s *DenseUnion) value() interface{} { return s.ChildValue() } + +func (s *DenseUnion) String() string { + dt := s.Type.(*arrow.DenseUnionType) + return "union{" + dt.Fields()[dt.ChildIDs()[s.TypeCode]].String() + " = " + s.Value.String() + "}" +} + +func (s *DenseUnion) Retain() { + if v, ok := s.Value.(Releasable); ok { + v.Retain() + } +} + +func (s *DenseUnion) Release() { + if v, ok := s.Value.(Releasable); ok { + v.Release() + } +} + +func (s *DenseUnion) Validate() (err error) { + dt := s.Type.(*arrow.DenseUnionType) + if s.TypeCode < 0 || int(s.TypeCode) >= len(dt.ChildIDs()) || dt.ChildIDs()[s.TypeCode] == arrow.InvalidUnionChildID { + return fmt.Errorf("%s scalar has invalid type code %d", dt, s.TypeCode) + } + fieldType := dt.Fields()[dt.ChildIDs()[s.TypeCode]].Type + if !arrow.TypeEqual(fieldType, s.Value.DataType()) { + return fmt.Errorf("%s scalar with type code %d should have an underlying value of type %s, got %s", + s.Type, s.TypeCode, fieldType, s.Value.DataType()) + } + return s.Value.Validate() +} + +func (s *DenseUnion) ValidateFull() error { + dt := s.Type.(*arrow.DenseUnionType) + if s.TypeCode < 0 || int(s.TypeCode) >= len(dt.ChildIDs()) || dt.ChildIDs()[s.TypeCode] == arrow.InvalidUnionChildID { + return fmt.Errorf("%s scalar has invalid type code %d", dt, s.TypeCode) + } + fieldType := dt.Fields()[dt.ChildIDs()[s.TypeCode]].Type + if !arrow.TypeEqual(fieldType, s.Value.DataType()) { + return fmt.Errorf("%s scalar with type code %d should have an underlying value of type %s, got %s", + s.Type, s.TypeCode, fieldType, s.Value.DataType()) + } + return s.Value.ValidateFull() +} + +func (s *DenseUnion) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + switch to.ID() { + case arrow.STRING: + return NewStringScalar(s.String()), nil + case arrow.LARGE_STRING: + return NewLargeStringScalar(s.String()), nil + } + + return nil, fmt.Errorf("cannot cast non-nil union to type other than string") +} + +func (s *DenseUnion) ChildValue() Scalar { return s.Value } + +func NewDenseUnionScalar(v Scalar, code arrow.UnionTypeCode, dt *arrow.DenseUnionType) *DenseUnion { + return &DenseUnion{scalar: scalar{dt, v.IsValid()}, TypeCode: code, Value: v} +} + +type RunEndEncoded struct { + scalar + + Value Scalar +} + +func NewRunEndEncodedScalar(v Scalar, dt *arrow.RunEndEncodedType) *RunEndEncoded { + return &RunEndEncoded{scalar: scalar{dt, v.IsValid()}, Value: v} +} + +func (s *RunEndEncoded) Release() { + if r, ok := s.Value.(Releasable); ok { + r.Release() + } +} + +func (s *RunEndEncoded) value() interface{} { return s.Value.value() } + +func (s *RunEndEncoded) Validate() (err error) { + if err = s.Value.Validate(); err != nil { + return + } + + if err = validateOptional(&s.scalar, s.value(), "value"); err != nil { + return + } + + if !s.Valid { + return + } + + if s.Type.ID() != arrow.RUN_END_ENCODED { + return fmt.Errorf("%w: run-end-encoded scalar should not have type %s", + arrow.ErrInvalid, s.Type) + } + + if !arrow.TypeEqual(s.Value.DataType(), s.Type.(*arrow.RunEndEncodedType).Encoded()) { + return fmt.Errorf("%w: run-end-encoded scalar value type %s does not match type %s", + arrow.ErrInvalid, s.Value.DataType(), s.Type) + } + return +} + +func (s *RunEndEncoded) ValidateFull() error { return s.Validate() } + +func (s *RunEndEncoded) equals(rhs Scalar) bool { + other := rhs.(*RunEndEncoded) + return Equals(s.Value, other.Value) +} + +func (s *RunEndEncoded) String() string { + return s.Value.String() +} + +func (s *RunEndEncoded) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if arrow.TypeEqual(s.Type, to) { + return s, nil + } + + if otherREE, ok := to.(*arrow.RunEndEncodedType); ok { + sc, err := s.Value.CastTo(otherREE.Encoded()) + if err != nil { + return nil, err + } + + return NewRunEndEncodedScalar(sc, otherREE), nil + } + + return s.Value.CastTo(to) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go new file mode 100644 index 0000000..4dbeaf8 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go @@ -0,0 +1,797 @@ +// Code generated by scalar/numeric.gen.go.tmpl. DO NOT EDIT. + +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "fmt" + "math" + "reflect" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" +) + +type Int8 struct { + scalar + Value int8 +} + +func (s *Int8) Data() []byte { + return (*[arrow.Int8SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Int8) equals(rhs Scalar) bool { + return s.Value == rhs.(*Int8).Value +} + +func (s *Int8) value() interface{} { + return s.Value +} + +func (s *Int8) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Int8) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type int8 to type %s", dt) +} + +func NewInt8Scalar(val int8) *Int8 { + return &Int8{scalar{Type: arrow.PrimitiveTypes.Int8, Valid: true}, val} +} + +type Int16 struct { + scalar + Value int16 +} + +func (s *Int16) Data() []byte { + return (*[arrow.Int16SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Int16) equals(rhs Scalar) bool { + return s.Value == rhs.(*Int16).Value +} + +func (s *Int16) value() interface{} { + return s.Value +} + +func (s *Int16) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Int16) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type int16 to type %s", dt) +} + +func NewInt16Scalar(val int16) *Int16 { + return &Int16{scalar{Type: arrow.PrimitiveTypes.Int16, Valid: true}, val} +} + +type Int32 struct { + scalar + Value int32 +} + +func (s *Int32) Data() []byte { + return (*[arrow.Int32SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Int32) equals(rhs Scalar) bool { + return s.Value == rhs.(*Int32).Value +} + +func (s *Int32) value() interface{} { + return s.Value +} + +func (s *Int32) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Int32) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type int32 to type %s", dt) +} + +func NewInt32Scalar(val int32) *Int32 { + return &Int32{scalar{Type: arrow.PrimitiveTypes.Int32, Valid: true}, val} +} + +type Int64 struct { + scalar + Value int64 +} + +func (s *Int64) Data() []byte { + return (*[arrow.Int64SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Int64) equals(rhs Scalar) bool { + return s.Value == rhs.(*Int64).Value +} + +func (s *Int64) value() interface{} { + return s.Value +} + +func (s *Int64) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Int64) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type int64 to type %s", dt) +} + +func NewInt64Scalar(val int64) *Int64 { + return &Int64{scalar{Type: arrow.PrimitiveTypes.Int64, Valid: true}, val} +} + +type Uint8 struct { + scalar + Value uint8 +} + +func (s *Uint8) Data() []byte { + return (*[arrow.Uint8SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Uint8) equals(rhs Scalar) bool { + return s.Value == rhs.(*Uint8).Value +} + +func (s *Uint8) value() interface{} { + return s.Value +} + +func (s *Uint8) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Uint8) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type uint8 to type %s", dt) +} + +func NewUint8Scalar(val uint8) *Uint8 { + return &Uint8{scalar{Type: arrow.PrimitiveTypes.Uint8, Valid: true}, val} +} + +type Uint16 struct { + scalar + Value uint16 +} + +func (s *Uint16) Data() []byte { + return (*[arrow.Uint16SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Uint16) equals(rhs Scalar) bool { + return s.Value == rhs.(*Uint16).Value +} + +func (s *Uint16) value() interface{} { + return s.Value +} + +func (s *Uint16) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Uint16) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type uint16 to type %s", dt) +} + +func NewUint16Scalar(val uint16) *Uint16 { + return &Uint16{scalar{Type: arrow.PrimitiveTypes.Uint16, Valid: true}, val} +} + +type Uint32 struct { + scalar + Value uint32 +} + +func (s *Uint32) Data() []byte { + return (*[arrow.Uint32SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Uint32) equals(rhs Scalar) bool { + return s.Value == rhs.(*Uint32).Value +} + +func (s *Uint32) value() interface{} { + return s.Value +} + +func (s *Uint32) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Uint32) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type uint32 to type %s", dt) +} + +func NewUint32Scalar(val uint32) *Uint32 { + return &Uint32{scalar{Type: arrow.PrimitiveTypes.Uint32, Valid: true}, val} +} + +type Uint64 struct { + scalar + Value uint64 +} + +func (s *Uint64) Data() []byte { + return (*[arrow.Uint64SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Uint64) equals(rhs Scalar) bool { + return s.Value == rhs.(*Uint64).Value +} + +func (s *Uint64) value() interface{} { + return s.Value +} + +func (s *Uint64) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Uint64) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + return NewDecimal128Scalar(decimal128.FromU64(s.Value), dt), nil + case *arrow.Decimal256Type: + return NewDecimal256Scalar(decimal256.FromU64(s.Value), dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type uint64 to type %s", dt) +} + +func NewUint64Scalar(val uint64) *Uint64 { + return &Uint64{scalar{Type: arrow.PrimitiveTypes.Uint64, Valid: true}, val} +} + +type Float32 struct { + scalar + Value float32 +} + +func (s *Float32) Data() []byte { + return (*[arrow.Float32SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Float32) equals(rhs Scalar) bool { + return s.Value == rhs.(*Float32).Value +} + +func (s *Float32) approxEquals(rhs Scalar, eq equalOption) bool { + v1 := float64(s.Value) + v2 := float64(rhs.(*Float32).Value) + switch { + case eq.nansEq: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) + default: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol + } +} + +func (s *Float32) value() interface{} { + return s.Value +} + +func (s *Float32) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Float32) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + v, err := decimal128.FromFloat32(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(v, dt), nil + case *arrow.Decimal256Type: + v, err := decimal256.FromFloat32(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(v, dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type float32 to type %s", dt) +} + +func NewFloat32Scalar(val float32) *Float32 { + return &Float32{scalar{Type: arrow.PrimitiveTypes.Float32, Valid: true}, val} +} + +type Float64 struct { + scalar + Value float64 +} + +func (s *Float64) Data() []byte { + return (*[arrow.Float64SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Float64) equals(rhs Scalar) bool { + return s.Value == rhs.(*Float64).Value +} + +func (s *Float64) approxEquals(rhs Scalar, eq equalOption) bool { + v1 := float64(s.Value) + v2 := float64(rhs.(*Float64).Value) + switch { + case eq.nansEq: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) + default: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol + } +} + +func (s *Float64) value() interface{} { + return s.Value +} + +func (s *Float64) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Float64) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: + v, err := decimal128.FromFloat64(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(v, dt), nil + case *arrow.Decimal256Type: + v, err := decimal256.FromFloat64(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(v, dt), nil + } + + return nil, fmt.Errorf("invalid scalar cast from type float64 to type %s", dt) +} + +func NewFloat64Scalar(val float64) *Float64 { + return &Float64{scalar{Type: arrow.PrimitiveTypes.Float64, Valid: true}, val} +} + +var numericMap = map[arrow.Type]struct { + scalarFunc reflect.Value + valueType reflect.Type +}{ + arrow.INT8: {scalarFunc: reflect.ValueOf(NewInt8Scalar), valueType: reflect.TypeOf(int8(0))}, + arrow.INT16: {scalarFunc: reflect.ValueOf(NewInt16Scalar), valueType: reflect.TypeOf(int16(0))}, + arrow.INT32: {scalarFunc: reflect.ValueOf(NewInt32Scalar), valueType: reflect.TypeOf(int32(0))}, + arrow.INT64: {scalarFunc: reflect.ValueOf(NewInt64Scalar), valueType: reflect.TypeOf(int64(0))}, + arrow.UINT8: {scalarFunc: reflect.ValueOf(NewUint8Scalar), valueType: reflect.TypeOf(uint8(0))}, + arrow.UINT16: {scalarFunc: reflect.ValueOf(NewUint16Scalar), valueType: reflect.TypeOf(uint16(0))}, + arrow.UINT32: {scalarFunc: reflect.ValueOf(NewUint32Scalar), valueType: reflect.TypeOf(uint32(0))}, + arrow.UINT64: {scalarFunc: reflect.ValueOf(NewUint64Scalar), valueType: reflect.TypeOf(uint64(0))}, + arrow.FLOAT32: {scalarFunc: reflect.ValueOf(NewFloat32Scalar), valueType: reflect.TypeOf(float32(0))}, + arrow.FLOAT64: {scalarFunc: reflect.ValueOf(NewFloat64Scalar), valueType: reflect.TypeOf(float64(0))}, +} + +var ( + _ Scalar = (*Int8)(nil) + _ Scalar = (*Int16)(nil) + _ Scalar = (*Int32)(nil) + _ Scalar = (*Int64)(nil) + _ Scalar = (*Uint8)(nil) + _ Scalar = (*Uint16)(nil) + _ Scalar = (*Uint32)(nil) + _ Scalar = (*Uint64)(nil) + _ Scalar = (*Float32)(nil) + _ Scalar = (*Float64)(nil) +) diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpl new file mode 100644 index 0000000..c0733d6 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpl @@ -0,0 +1,149 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +{{range .In}} +type {{.Name}} struct { + scalar + Value {{.Type}} +} + +func (s *{{.Name}}) Data() []byte { + return (*[arrow.{{.Name}}SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *{{.Name}}) equals(rhs Scalar) bool { + return s.Value == rhs.(*{{.Name}}).Value +} + +{{if or (eq .Name "Float32") (eq .Name "Float64") }} +func (s *{{.Name}}) approxEquals(rhs Scalar, eq equalOption) bool { + v1 := float64(s.Value) + v2 := float64(rhs.(*{{.Name}}).Value) + switch { + case eq.nansEq: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol || (math.IsNaN(v1) && math.IsNaN(v2)) + default: + return v1 == v2 || math.Abs(v1-v2) <= eq.atol + } +} +{{end}} + +func (s *{{.Name}}) value() interface{} { + return s.Value +} + +func (s *{{.Name}}) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *{{.Name}}) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + r, ok := numericMap[dt.ID()] + if ok { + return convertToNumeric(reflect.ValueOf(s.Value), r.valueType, r.scalarFunc), nil + } + + switch dt := dt.(type) { + case *arrow.BooleanType: + return NewBooleanScalar(s.Value != 0), nil + case *arrow.Date32Type: + return NewDate32Scalar(arrow.Date32(s.Value)), nil + case *arrow.Date64Type: + return NewDate64Scalar(arrow.Date64(s.Value)), nil + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(s.Value), dt), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(s.Value), dt), nil + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(s.Value), dt), nil + case *arrow.MonthIntervalType: + return NewMonthIntervalScalar(arrow.MonthInterval(s.Value)), nil + case *arrow.StringType: + return NewStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.LargeStringType: + return NewLargeStringScalar(fmt.Sprintf("%v", s.Value)), nil + case *arrow.Decimal128Type: +{{if eq .Name "Float32" -}} + v, err := decimal128.FromFloat32(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(v, dt), nil +{{else if eq .Name "Float64" -}} + v, err := decimal128.FromFloat64(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(v, dt), nil +{{else if eq .Name "Uint64" -}} + return NewDecimal128Scalar(decimal128.FromU64(s.Value), dt), nil +{{else -}} + return NewDecimal128Scalar(decimal128.FromI64(int64(s.Value)), dt), nil +{{end -}} + case *arrow.Decimal256Type: +{{if eq .Name "Float32" -}} + v, err := decimal256.FromFloat32(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(v, dt), nil +{{else if eq .Name "Float64" -}} + v, err := decimal256.FromFloat64(s.Value, dt.Precision, dt.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(v, dt), nil +{{else if eq .Name "Uint64" -}} + return NewDecimal256Scalar(decimal256.FromU64(s.Value), dt), nil +{{else -}} + return NewDecimal256Scalar(decimal256.FromI64(int64(s.Value)), dt), nil +{{end -}} + } + + return nil, fmt.Errorf("invalid scalar cast from type {{.Type}} to type %s", dt) +} + +func New{{.Name}}Scalar(val {{.Type}}) *{{.Name}} { + return &{{.Name}}{scalar{Type: arrow.PrimitiveTypes.{{.Name}}, Valid: true}, val} +} +{{end}} + +var numericMap = map[arrow.Type]struct{ + scalarFunc reflect.Value + valueType reflect.Type +}{ +{{range .In -}} + arrow.{{.Name|upper}}: {scalarFunc: reflect.ValueOf(New{{.Name}}Scalar), valueType: reflect.TypeOf({{.Type}}(0)) }, +{{end}} +} + +var ( +{{range .In -}} + _ Scalar = (*{{.Name}})(nil) +{{end}} +) diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpldata b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpldata new file mode 100644 index 0000000..415b51b --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen.go.tmpldata @@ -0,0 +1,52 @@ +[ + { + "Name": "Int8", + "Type": "int8", + "Size": 8 + }, + { + "Name": "Int16", + "Type": "int16", + "Size": 16 + }, + { + "Name": "Int32", + "Type": "int32", + "Size": 32 + }, + { + "Name": "Int64", + "Type": "int64", + "Size": 64 + }, + { + "Name": "Uint8", + "Type": "uint8", + "Size": 8 + }, + { + "Name": "Uint16", + "Type": "uint16", + "Size": 16 + }, + { + "Name": "Uint32", + "Type": "uint32", + "Size": 32 + }, + { + "Name": "Uint64", + "Type": "uint64", + "Size": 64 + }, + { + "Name": "Float32", + "Type": "float32", + "Size": 32 + }, + { + "Name": "Float64", + "Type": "float64", + "Size": 64 + } +] diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen_test.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen_test.go.tmpl new file mode 100644 index 0000000..e837de9 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/numeric.gen_test.go.tmpl @@ -0,0 +1,63 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar_test + +import ( + "testing" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/scalar" + "github.com/stretchr/testify/assert" +) + + +{{range .In}} +func TestBasic{{.Name}}Scalars(t *testing.T) { + value := {{.Type}}(1) + + scalarVal := scalar.New{{.Name}}Scalar(value) + assert.Equal(t, value, scalarVal.Value) + assert.True(t, scalarVal.IsValid()) + assert.NoError(t, scalarVal.ValidateFull()) + + expectedType := arrow.PrimitiveTypes.{{.Name}} + assert.True(t, arrow.TypeEqual(scalarVal.DataType(), expectedType)) + + other := {{.Type}}(2) + scalarOther := scalar.New{{.Name}}Scalar(other) + assert.NotEqual(t, scalarVal, scalarOther) + assert.False(t, scalar.Equals(scalarVal, scalarOther)) + + scalarVal.Value = other + assert.Equal(t, other, scalarVal.Value) + assert.Equal(t, scalarVal, scalarOther) + assert.True(t, scalar.Equals(scalarVal, scalarOther)) + + nullVal := scalar.MakeNullScalar(arrow.PrimitiveTypes.{{.Name}}) + assert.False(t, nullVal.IsValid()) + assert.NoError(t, nullVal.ValidateFull()) +} + +func TestMakeScalar{{.Name}}(t *testing.T) { + three := scalar.MakeScalar({{.Type}}(3)) + assert.NoError(t, three.ValidateFull()) + assert.Equal(t, scalar.New{{.Name}}Scalar(3), three) + + assertMakeScalar(t, scalar.New{{.Name}}Scalar(3), {{.Type}}(3)) + assertParseScalar(t, arrow.PrimitiveTypes.{{.Name}}, "3", scalar.New{{.Name}}Scalar(3)) +} +{{end}} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/parse.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/parse.go new file mode 100644 index 0000000..326ea07 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/parse.go @@ -0,0 +1,777 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "errors" + "fmt" + "math/bits" + "reflect" + "strconv" + "strings" + "time" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/memory" +) + +type TypeToScalar interface { + ToScalar() (Scalar, error) +} + +type TypeFromScalar interface { + FromStructScalar(*Struct) error +} + +type hasTypename interface { + TypeName() string +} + +var ( + hasTypenameType = reflect.TypeOf((*hasTypename)(nil)).Elem() + dataTypeType = reflect.TypeOf((*arrow.DataType)(nil)).Elem() +) + +func FromScalar(sc *Struct, val interface{}) error { + if sc == nil || len(sc.Value) == 0 { + return nil + } + + if v, ok := val.(TypeFromScalar); ok { + return v.FromStructScalar(sc) + } + + v := reflect.ValueOf(val) + if v.Kind() != reflect.Ptr { + return errors.New("fromscalar must be given a pointer to an object to populate") + } + value := reflect.Indirect(v) + + for i := 0; i < value.Type().NumField(); i++ { + fld := value.Type().Field(i) + tag := fld.Tag.Get("compute") + if tag == "-" || fld.Name == "_type_name" { + continue + } + + fldVal, err := sc.Field(tag) + if err != nil { + return err + } + if err := setFromScalar(fldVal, value.Field(i)); err != nil { + return err + } + } + + return nil +} + +func setFromScalar(s Scalar, v reflect.Value) error { + if v.Type() == dataTypeType { + v.Set(reflect.ValueOf(s.DataType())) + return nil + } + + switch s := s.(type) { + case BinaryScalar: + value := s.value().(*memory.Buffer) + switch v.Kind() { + case reflect.String: + if value == nil { + v.SetString("") + } else { + v.SetString(string(value.Bytes())) + } + default: + if value == nil { + v.SetBytes(nil) + } else { + v.SetBytes(value.Bytes()) + } + } + case ListScalar: + return fromListScalar(s, v) + case *Struct: + return FromScalar(s, v.Interface()) + default: + if v.Type() == reflect.TypeOf(arrow.TimeUnit(0)) { + v.Set(reflect.ValueOf(arrow.TimeUnit(s.value().(uint32)))) + } else { + v.Set(reflect.ValueOf(s.value())) + } + } + return nil +} + +func ToScalar(val interface{}, mem memory.Allocator) (Scalar, error) { + switch v := val.(type) { + case arrow.DataType: + return MakeScalar(v), nil + case TypeToScalar: + return v.ToScalar() + } + + v := reflect.Indirect(reflect.ValueOf(val)) + switch v.Kind() { + case reflect.Struct: + scalars := make([]Scalar, 0, v.Type().NumField()) + fields := make([]string, 0, v.Type().NumField()) + for i := 0; i < v.Type().NumField(); i++ { + fld := v.Type().Field(i) + tag := fld.Tag.Get("compute") + if tag == "-" { + continue + } + + fldVal := v.Field(i) + s, err := ToScalar(fldVal.Interface(), mem) + if err != nil { + return nil, err + } + scalars = append(scalars, s) + fields = append(fields, tag) + } + + if v.Type().Implements(hasTypenameType) { + t := val.(hasTypename) + scalars = append(scalars, NewBinaryScalar(memory.NewBufferBytes([]byte(t.TypeName())), arrow.BinaryTypes.Binary)) + fields = append(fields, "_type_name") + } + + return NewStructScalarWithNames(scalars, fields) + case reflect.Slice: + return createListScalar(v, mem) + default: + return MakeScalar(val), nil + } +} + +func createListScalar(sliceval reflect.Value, mem memory.Allocator) (Scalar, error) { + if sliceval.Kind() != reflect.Slice { + return nil, fmt.Errorf("createListScalar only works for slices, not %s", sliceval.Kind()) + } + + var arr arrow.Array + + switch sliceval.Type().Elem().Kind() { + case reflect.String: + bldr := array.NewStringBuilder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]string), nil) + arr = bldr.NewArray() + case reflect.Bool: + bldr := array.NewBooleanBuilder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]bool), nil) + arr = bldr.NewArray() + case reflect.Int8: + bldr := array.NewInt8Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]int8), nil) + arr = bldr.NewArray() + case reflect.Uint8: + bldr := array.NewUint8Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]uint8), nil) + arr = bldr.NewArray() + case reflect.Int16: + bldr := array.NewInt16Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]int16), nil) + arr = bldr.NewArray() + case reflect.Uint16: + bldr := array.NewUint16Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]uint16), nil) + arr = bldr.NewArray() + case reflect.Int32: + bldr := array.NewInt32Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]int32), nil) + arr = bldr.NewArray() + case reflect.Uint32: + bldr := array.NewUint32Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]uint32), nil) + arr = bldr.NewArray() + case reflect.Int64: + bldr := array.NewInt64Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]int64), nil) + arr = bldr.NewArray() + case reflect.Uint64: + bldr := array.NewUint64Builder(mem) + defer bldr.Release() + bldr.AppendValues(sliceval.Interface().([]uint64), nil) + arr = bldr.NewArray() + case reflect.Int: + if bits.UintSize == 32 { + bldr := array.NewInt32Builder(mem) + defer bldr.Release() + for _, v := range sliceval.Interface().([]int) { + bldr.Append(int32(v)) + } + arr = bldr.NewArray() + break + } + bldr := array.NewInt64Builder(mem) + defer bldr.Release() + for _, v := range sliceval.Interface().([]int) { + bldr.Append(int64(v)) + } + arr = bldr.NewArray() + case reflect.Uint: + if bits.UintSize == 32 { + bldr := array.NewUint32Builder(mem) + defer bldr.Release() + for _, v := range sliceval.Interface().([]uint) { + bldr.Append(uint32(v)) + } + arr = bldr.NewArray() + break + } + bldr := array.NewUint64Builder(mem) + defer bldr.Release() + for _, v := range sliceval.Interface().([]uint) { + bldr.Append(uint64(v)) + } + arr = bldr.NewArray() + case reflect.Ptr: + meta, ok := sliceval.Interface().([]*arrow.Metadata) + if !ok { + break + } + + bldr := array.NewMapBuilder(mem, arrow.BinaryTypes.Binary, arrow.BinaryTypes.Binary, false) + defer bldr.Release() + + kbldr := bldr.KeyBuilder().(*array.BinaryBuilder) + ibldr := bldr.ItemBuilder().(*array.BinaryBuilder) + for _, md := range meta { + bldr.Append(true) + if md != nil { + kbldr.AppendStringValues(md.Keys(), nil) + ibldr.AppendStringValues(md.Values(), nil) + } + } + + arr := bldr.NewMapArray() + defer arr.Release() + + return NewListScalar(arr), nil + } + + if arr == nil { + return nil, fmt.Errorf("createListScalar not implemented for %s", sliceval.Type()) + } + + defer arr.Release() + return MakeScalarParam(arr, arrow.ListOf(arr.DataType())) +} + +func fromListScalar(s ListScalar, v reflect.Value) error { + if v.Kind() != reflect.Slice { + return fmt.Errorf("could not populate field from list scalar, incompatible types: %s is not a slice", v.Type().String()) + } + + arr := s.GetList() + v.Set(reflect.MakeSlice(v.Type(), arr.Len(), arr.Len())) + switch arr := arr.(type) { + case *array.Boolean: + for i := 0; i < arr.Len(); i++ { + v.Index(i).SetBool(arr.Value(i)) + } + case *array.Int8: + reflect.Copy(v, reflect.ValueOf(arr.Int8Values())) + case *array.Uint8: + reflect.Copy(v, reflect.ValueOf(arr.Uint8Values())) + case *array.Int16: + reflect.Copy(v, reflect.ValueOf(arr.Int16Values())) + case *array.Uint16: + reflect.Copy(v, reflect.ValueOf(arr.Uint16Values())) + case *array.Int32: + reflect.Copy(v, reflect.ValueOf(arr.Int32Values())) + case *array.Uint32: + reflect.Copy(v, reflect.ValueOf(arr.Uint32Values())) + case *array.Int64: + reflect.Copy(v, reflect.ValueOf(arr.Int64Values())) + case *array.Uint64: + reflect.Copy(v, reflect.ValueOf(arr.Uint64Values())) + case *array.Float32: + reflect.Copy(v, reflect.ValueOf(arr.Float32Values())) + case *array.Float64: + reflect.Copy(v, reflect.ValueOf(arr.Float64Values())) + case *array.Binary: + for i := 0; i < arr.Len(); i++ { + v.Index(i).SetString(arr.ValueString(i)) + } + case *array.String: + for i := 0; i < arr.Len(); i++ { + v.Index(i).SetString(arr.Value(i)) + } + case *array.Map: + // only implementing slice of metadata for now + if v.Type().Elem() != reflect.PtrTo(reflect.TypeOf(arrow.Metadata{})) { + return fmt.Errorf("unimplemented fromListScalar type %s to %s", arr.DataType(), v.Type().String()) + } + + var ( + offsets = arr.Offsets() + keys = arr.Keys().(*array.Binary) + values = arr.Items().(*array.Binary) + metaKeys []string + metaValues []string + ) + + for i, o := range offsets[:len(offsets)-1] { + start := o + end := offsets[i+1] + + metaKeys = make([]string, end-start) + metaValues = make([]string, end-start) + for j := start; j < end; j++ { + metaKeys = append(metaKeys, keys.ValueString(int(j))) + metaValues = append(metaValues, values.ValueString(int(j))) + } + + m := arrow.NewMetadata(metaKeys, metaValues) + v.Index(i).Set(reflect.ValueOf(&m)) + } + + default: + return fmt.Errorf("unimplemented fromListScalar type: %s", arr.DataType()) + } + + return nil +} + +// MakeScalarParam is for converting a value to a scalar when it requires a +// parameterized data type such as a time type that needs units, or a fixed +// size list which needs it's size. +// +// Will fall back to MakeScalar without the passed in type if not one of the +// parameterized types. +func MakeScalarParam(val interface{}, dt arrow.DataType) (Scalar, error) { + switch v := val.(type) { + case []byte: + buf := memory.NewBufferBytes(v) + defer buf.Release() + + switch dt.ID() { + case arrow.BINARY: + return NewBinaryScalar(buf, dt), nil + case arrow.LARGE_BINARY: + return NewLargeBinaryScalar(buf), nil + case arrow.STRING: + return NewStringScalarFromBuffer(buf), nil + case arrow.LARGE_STRING: + return NewLargeStringScalarFromBuffer(buf), nil + case arrow.FIXED_SIZE_BINARY: + if buf.Len() == dt.(*arrow.FixedSizeBinaryType).ByteWidth { + return NewFixedSizeBinaryScalar(buf, dt), nil + } + return nil, fmt.Errorf("invalid scalar value of len %d for type %s", v, dt) + } + case *memory.Buffer: + switch dt.ID() { + case arrow.BINARY: + return NewBinaryScalar(v, dt), nil + case arrow.LARGE_BINARY: + return NewLargeBinaryScalar(v), nil + case arrow.STRING: + return NewStringScalarFromBuffer(v), nil + case arrow.LARGE_STRING: + return NewLargeStringScalarFromBuffer(v), nil + case arrow.FIXED_SIZE_BINARY: + if v.Len() == dt.(*arrow.FixedSizeBinaryType).ByteWidth { + return NewFixedSizeBinaryScalar(v, dt), nil + } + return nil, fmt.Errorf("invalid scalar value of len %d for type %s", v.Len(), dt) + } + case string: + switch { + case arrow.IsBaseBinary(dt.ID()): + buf := memory.NewBufferBytes([]byte(v)) + defer buf.Release() + + switch dt.ID() { + case arrow.BINARY: + return NewBinaryScalar(buf, dt), nil + case arrow.LARGE_BINARY: + return NewLargeBinaryScalar(buf), nil + case arrow.STRING: + return NewStringScalar(v), nil + case arrow.LARGE_STRING: + return NewLargeStringScalar(v), nil + } + case arrow.IsInteger(dt.ID()): + bits := dt.(arrow.FixedWidthDataType).BitWidth() + if arrow.IsUnsignedInteger(dt.ID()) { + val, err := strconv.ParseUint(v, 0, bits) + if err != nil { + return nil, err + } + return MakeUnsignedIntegerScalar(val, bits) + } + val, err := strconv.ParseInt(v, 0, bits) + if err != nil { + return nil, err + } + return MakeIntegerScalar(val, bits) + case arrow.IsFixedSizeBinary(dt.ID()): + switch dt.ID() { + case arrow.FIXED_SIZE_BINARY: + ty := dt.(*arrow.FixedSizeBinaryType) + if len(v) != ty.ByteWidth { + return nil, fmt.Errorf("%w: invalid length for fixed size binary scalar", arrow.ErrInvalid) + } + return NewFixedSizeBinaryScalar(memory.NewBufferBytes([]byte(v)), ty), nil + case arrow.DECIMAL128: + ty := dt.(*arrow.Decimal128Type) + n, err := decimal128.FromString(v, ty.Precision, ty.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(n, ty), nil + case arrow.DECIMAL256: + ty := dt.(*arrow.Decimal256Type) + n, err := decimal256.FromString(v, ty.Precision, ty.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(n, ty), nil + } + case arrow.IsFloating(dt.ID()): + bits := dt.(arrow.FixedWidthDataType).BitWidth() + val, err := strconv.ParseFloat(v, bits) + if err != nil { + return nil, err + } + if bits == 32 { + return NewFloat32Scalar(float32(val)), nil + } + return NewFloat64Scalar(val), nil + case dt.ID() == arrow.TIMESTAMP: + ty := dt.(*arrow.TimestampType) + if ty.TimeZone == "" || strings.ToLower(ty.TimeZone) == "utc" { + ts, err := arrow.TimestampFromString(v, ty.Unit) + if err != nil { + return nil, err + } + return NewTimestampScalar(ts, dt), nil + } + loc, err := time.LoadLocation(ty.TimeZone) + if err != nil { + return nil, err + } + ts, _, err := arrow.TimestampFromStringInLocation(v, ty.Unit, loc) + if err != nil { + return nil, err + } + return NewTimestampScalar(ts, ty), nil + } + case arrow.Time32: + return NewTime32Scalar(v, dt), nil + case arrow.Time64: + return NewTime64Scalar(v, dt), nil + case arrow.Timestamp: + return NewTimestampScalar(v, dt), nil + case arrow.Array: + switch dt.ID() { + case arrow.LIST: + if !arrow.TypeEqual(v.DataType(), dt.(*arrow.ListType).Elem()) { + return nil, fmt.Errorf("inconsistent type for list scalar array and data type") + } + return NewListScalar(v), nil + case arrow.LARGE_LIST: + if !arrow.TypeEqual(v.DataType(), dt.(*arrow.LargeListType).Elem()) { + return nil, fmt.Errorf("inconsistent type for large list scalar array and data type") + } + return NewLargeListScalar(v), nil + case arrow.FIXED_SIZE_LIST: + if !arrow.TypeEqual(v.DataType(), dt.(*arrow.FixedSizeListType).Elem()) { + return nil, fmt.Errorf("inconsistent type for list scalar array and data type") + } + return NewFixedSizeListScalarWithType(v, dt), nil + case arrow.MAP: + if !arrow.TypeEqual(dt.(*arrow.MapType).ValueType(), v.DataType()) { + return nil, fmt.Errorf("inconsistent type for map scalar type") + } + return NewMapScalar(v), nil + } + case decimal128.Num: + if _, ok := dt.(*arrow.Decimal128Type); !ok { + return nil, fmt.Errorf("mismatch cannot create decimal128 scalar with incorrect data type") + } + + return NewDecimal128Scalar(v, dt), nil + case decimal256.Num: + if _, ok := dt.(*arrow.Decimal256Type); !ok { + return nil, fmt.Errorf("mismatch cannot create decimal256 scalar with incorrect data type") + } + + return NewDecimal256Scalar(v, dt), nil + + } + + if arrow.IsInteger(dt.ID()) { + bits := dt.(arrow.FixedWidthDataType).BitWidth() + val := reflect.ValueOf(val) + if arrow.IsUnsignedInteger(dt.ID()) { + return MakeUnsignedIntegerScalar(val.Convert(reflect.TypeOf(uint64(0))).Uint(), bits) + } + return MakeIntegerScalar(val.Convert(reflect.TypeOf(int64(0))).Int(), bits) + } + + if dt.ID() == arrow.DICTIONARY { + return MakeScalarParam(val, dt.(*arrow.DictionaryType).ValueType) + } + return MakeScalar(val), nil +} + +// MakeScalar creates a scalar of the passed in type via reflection. +func MakeScalar(val interface{}) Scalar { + switch v := val.(type) { + case nil: + return ScalarNull + case bool: + return NewBooleanScalar(v) + case int8: + return NewInt8Scalar(v) + case uint8: + return NewUint8Scalar(v) + case int16: + return NewInt16Scalar(v) + case uint16: + return NewUint16Scalar(v) + case int32: + return NewInt32Scalar(v) + case uint32: + return NewUint32Scalar(v) + case int64: + return NewInt64Scalar(v) + case uint64: + return NewUint64Scalar(v) + case int: + // determine size of an int on this system + switch bits.UintSize { + case 32: + return NewInt32Scalar(int32(v)) + case 64: + return NewInt64Scalar(int64(v)) + } + case uint: + // determine size of an int on this system + switch bits.UintSize { + case 32: + return NewUint32Scalar(uint32(v)) + case 64: + return NewUint64Scalar(uint64(v)) + } + case []byte: + buf := memory.NewBufferBytes(v) + defer buf.Release() + return NewBinaryScalar(buf, arrow.BinaryTypes.Binary) + case string: + return NewStringScalar(v) + case arrow.Date32: + return NewDate32Scalar(v) + case arrow.Date64: + return NewDate64Scalar(v) + case float16.Num: + return NewFloat16Scalar(v) + case float32: + return NewFloat32Scalar(v) + case float64: + return NewFloat64Scalar(v) + case arrow.MonthInterval: + return NewMonthIntervalScalar(v) + case arrow.DayTimeInterval: + return NewDayTimeIntervalScalar(v) + case arrow.MonthDayNanoInterval: + return NewMonthDayNanoIntervalScalar(v) + case arrow.DataType: + return MakeNullScalar(v) + default: + testval := reflect.ValueOf(v) + if testval.Type().ConvertibleTo(reflect.TypeOf(uint32(0))) { + return NewUint32Scalar(uint32(testval.Convert(reflect.TypeOf(uint32(0))).Uint())) + } + } + + panic(fmt.Errorf("makescalar not implemented for type value %#v", val)) +} + +// MakeIntegerScalar is a helper function for creating an integer scalar of a +// given bitsize. +func MakeIntegerScalar(v int64, bitsize int) (Scalar, error) { + switch bitsize { + case 8: + return NewInt8Scalar(int8(v)), nil + case 16: + return NewInt16Scalar(int16(v)), nil + case 32: + return NewInt32Scalar(int32(v)), nil + case 64: + return NewInt64Scalar(int64(v)), nil + } + return nil, fmt.Errorf("invalid bitsize for integer scalar: %d", bitsize) +} + +// MakeUnsignedIntegerScalar is a helper function for creating an unsigned int +// scalar of the specified bit width. +func MakeUnsignedIntegerScalar(v uint64, bitsize int) (Scalar, error) { + switch bitsize { + case 8: + return NewUint8Scalar(uint8(v)), nil + case 16: + return NewUint16Scalar(uint16(v)), nil + case 32: + return NewUint32Scalar(uint32(v)), nil + case 64: + return NewUint64Scalar(uint64(v)), nil + } + return nil, fmt.Errorf("invalid bitsize for uint scalar: %d", bitsize) +} + +// ParseScalar parses a string to create a scalar of the passed in type. Currently +// does not support any nested types such as Structs or Lists. +func ParseScalar(dt arrow.DataType, val string) (Scalar, error) { + switch dt.ID() { + case arrow.STRING: + return NewStringScalar(val), nil + case arrow.BINARY: + buf := memory.NewBufferBytes([]byte(val)) + defer buf.Release() + return NewBinaryScalar(buf, dt), nil + case arrow.FIXED_SIZE_BINARY: + if len(val) != dt.(*arrow.FixedSizeBinaryType).ByteWidth { + return nil, fmt.Errorf("invalid value %s for scalar of type %s", val, dt) + } + buf := memory.NewBufferBytes([]byte(val)) + defer buf.Release() + return NewFixedSizeBinaryScalar(buf, dt), nil + case arrow.BOOL: + val, err := strconv.ParseBool(val) + if err != nil { + return nil, err + } + return NewBooleanScalar(val), nil + case arrow.INT8, arrow.INT16, arrow.INT32, arrow.INT64: + width := dt.(arrow.FixedWidthDataType).BitWidth() + val, err := strconv.ParseInt(val, 0, width) + if err != nil { + return nil, err + } + return MakeIntegerScalar(val, width) + case arrow.UINT8, arrow.UINT16, arrow.UINT32, arrow.UINT64: + width := dt.(arrow.FixedWidthDataType).BitWidth() + val, err := strconv.ParseUint(val, 0, width) + if err != nil { + return nil, err + } + return MakeUnsignedIntegerScalar(val, width) + case arrow.FLOAT16: + val, err := strconv.ParseFloat(val, 32) + if err != nil { + return nil, err + } + return NewFloat16ScalarFromFloat32(float32(val)), nil + case arrow.FLOAT32, arrow.FLOAT64: + width := dt.(arrow.FixedWidthDataType).BitWidth() + val, err := strconv.ParseFloat(val, width) + if err != nil { + return nil, err + } + switch width { + case 32: + return NewFloat32Scalar(float32(val)), nil + case 64: + return NewFloat64Scalar(float64(val)), nil + } + case arrow.TIMESTAMP: + value, err := arrow.TimestampFromString(val, dt.(*arrow.TimestampType).Unit) + if err != nil { + return nil, err + } + return NewTimestampScalar(value, dt), nil + case arrow.DURATION: + value, err := time.ParseDuration(val) + if err != nil { + return nil, err + } + unit := dt.(*arrow.DurationType).Unit + var out arrow.Duration + switch unit { + case arrow.Nanosecond: + out = arrow.Duration(value.Nanoseconds()) + case arrow.Microsecond: + out = arrow.Duration(value.Microseconds()) + case arrow.Millisecond: + out = arrow.Duration(value.Milliseconds()) + case arrow.Second: + out = arrow.Duration(value.Seconds()) + } + return NewDurationScalar(out, dt), nil + case arrow.DATE32, arrow.DATE64: + out, err := time.ParseInLocation("2006-01-02", val, time.UTC) + if err != nil { + return nil, err + } + if dt.ID() == arrow.DATE32 { + return NewDate32Scalar(arrow.Date32FromTime(out)), nil + } else { + return NewDate64Scalar(arrow.Date64FromTime(out)), nil + } + case arrow.TIME32: + tm, err := arrow.Time32FromString(val, dt.(*arrow.Time32Type).Unit) + if err != nil { + return nil, err + } + + return NewTime32Scalar(tm, dt), nil + case arrow.TIME64: + tm, err := arrow.Time64FromString(val, dt.(*arrow.Time64Type).Unit) + if err != nil { + return nil, err + } + + return NewTime64Scalar(tm, dt), nil + case arrow.DICTIONARY: + return ParseScalar(dt.(*arrow.DictionaryType).ValueType, val) + case arrow.DECIMAL128: + typ := dt.(*arrow.Decimal128Type) + n, err := decimal128.FromString(val, typ.Precision, typ.Scale) + if err != nil { + return nil, err + } + return NewDecimal128Scalar(n, typ), nil + case arrow.DECIMAL256: + typ := dt.(*arrow.Decimal256Type) + n, err := decimal256.FromString(val, typ.Precision, typ.Scale) + if err != nil { + return nil, err + } + return NewDecimal256Scalar(n, typ), nil + } + + return nil, fmt.Errorf("parsing of scalar for type %s not implemented", dt) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/scalar.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/scalar.go new file mode 100644 index 0000000..190a7c3 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/scalar.go @@ -0,0 +1,1064 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "encoding/binary" + "fmt" + "hash/maphash" + "math" + "math/big" + "reflect" + "strconv" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/encoded" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/memory" + "golang.org/x/xerrors" +) + +// Scalar represents a single value of a specific DataType as opposed to +// an array. +// +// Scalars are useful for passing single value inputs to compute functions +// (not yet implemented) or for representing individual array elements, +// (with a non-trivial cost though). +type Scalar interface { + fmt.Stringer + // IsValid returns true if the value is non-null, otherwise false. + IsValid() bool + // The datatype of the value in this scalar + DataType() arrow.DataType + // Performs cheap validation checks, returns nil if successful + Validate() error + // Perform more expensive validation checks, returns nil if successful + ValidateFull() error + // Cast the value to the desired DataType (returns an error if unable to do so) + // should take semantics into account and modify the value accordingly. + CastTo(arrow.DataType) (Scalar, error) + + // internal only functions for delegation + value() interface{} + equals(Scalar) bool +} + +type Releasable interface { + Release() + Retain() +} + +func validateOptional(s *scalar, value interface{}, valueDesc string) error { + if s.Valid && value == nil { + return fmt.Errorf("%s scalar is marked valid but doesn't have a %s", s.Type, valueDesc) + } + if !s.Valid && value != nil && !reflect.ValueOf(value).IsNil() { + return fmt.Errorf("%s scalar is marked null but has a %s", s.Type, valueDesc) + } + return nil +} + +type scalar struct { + Type arrow.DataType + Valid bool +} + +func (s *scalar) String() string { + if !s.Valid { + return "null" + } + + return "..." +} + +func (s *scalar) IsValid() bool { return s.Valid } + +func (s *scalar) Validate() error { + if s.Type == nil { + return xerrors.New("scalar lacks a type") + } + return nil +} + +func (s *scalar) ValidateFull() error { + return s.Validate() +} + +func (s scalar) DataType() arrow.DataType { return s.Type } + +type Null struct { + scalar +} + +// by the time we get here we already know that the rhs is the right type +func (n *Null) equals(s Scalar) bool { + debug.Assert(s.DataType().ID() == arrow.NULL, "scalar null equals should only receive null") + return true +} + +func (n *Null) value() interface{} { return nil } + +func (n *Null) CastTo(dt arrow.DataType) (Scalar, error) { + return MakeNullScalar(dt), nil +} + +func (n *Null) Validate() (err error) { + err = n.scalar.Validate() + if err != nil { + return + } + if n.Valid { + err = xerrors.New("null scalar should have Valid = false") + } + return +} + +func (n *Null) ValidateFull() error { return n.Validate() } + +var ( + ScalarNull *Null = &Null{scalar{Type: arrow.Null, Valid: false}} +) + +type PrimitiveScalar interface { + Scalar + Data() []byte +} + +type Boolean struct { + scalar + Value bool +} + +// by the time we get here we already know that the rhs is the right type +func (n *Boolean) equals(rhs Scalar) bool { + return n.Value == rhs.(*Boolean).Value +} + +func (s *Boolean) value() interface{} { return s.Value } + +func (s *Boolean) Data() []byte { + return (*[1]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Boolean) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Boolean) CastTo(dt arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(dt), nil + } + + if dt.ID() == arrow.STRING { + return NewStringScalar(strconv.FormatBool(s.Value)), nil + } + + val := 0 + if s.Value { + val = 1 + } + + switch dt.ID() { + case arrow.UINT8: + return NewUint8Scalar(uint8(val)), nil + case arrow.INT8: + return NewInt8Scalar(int8(val)), nil + case arrow.UINT16: + return NewUint16Scalar(uint16(val)), nil + case arrow.INT16: + return NewInt16Scalar(int16(val)), nil + case arrow.UINT32: + return NewUint32Scalar(uint32(val)), nil + case arrow.INT32: + return NewInt32Scalar(int32(val)), nil + case arrow.UINT64: + return NewUint64Scalar(uint64(val)), nil + case arrow.INT64: + return NewInt64Scalar(int64(val)), nil + case arrow.FLOAT16: + return NewFloat16Scalar(float16.New(float32(val))), nil + case arrow.FLOAT32: + return NewFloat32Scalar(float32(val)), nil + case arrow.FLOAT64: + return NewFloat64Scalar(float64(val)), nil + default: + return nil, fmt.Errorf("invalid scalar cast from type bool to type %s", dt) + } +} + +func NewBooleanScalar(val bool) *Boolean { + return &Boolean{scalar{arrow.FixedWidthTypes.Boolean, true}, val} +} + +type Float16 struct { + scalar + Value float16.Num +} + +func (s *Float16) value() interface{} { return s.Value } + +func (f *Float16) Data() []byte { + return (*[arrow.Float16SizeBytes]byte)(unsafe.Pointer(&f.Value))[:] +} +func (f *Float16) equals(rhs Scalar) bool { + return f.Value == rhs.(*Float16).Value +} +func (f *Float16) CastTo(to arrow.DataType) (Scalar, error) { + if !f.Valid { + return MakeNullScalar(to), nil + } + + if r, ok := numericMap[to.ID()]; ok { + return convertToNumeric(reflect.ValueOf(f.Value.Float32()), r.valueType, r.scalarFunc), nil + } + + if to.ID() == arrow.BOOL { + return NewBooleanScalar(f.Value.Uint16() != 0), nil + } else if to.ID() == arrow.STRING { + return NewStringScalar(f.Value.String()), nil + } + + return nil, fmt.Errorf("cannot cast non-null float16 scalar to type %s", to) +} + +func (s *Float16) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func NewFloat16ScalarFromFloat32(val float32) *Float16 { + return NewFloat16Scalar(float16.New(val)) +} + +func NewFloat16Scalar(val float16.Num) *Float16 { + return &Float16{scalar{arrow.FixedWidthTypes.Float16, true}, val} +} + +type Decimal128 struct { + scalar + Value decimal128.Num +} + +func (s *Decimal128) Data() []byte { + return (*[arrow.Decimal128SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Decimal128) value() interface{} { return s.Value } + +func (s *Decimal128) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Decimal128) equals(rhs Scalar) bool { + return s.Value == rhs.(*Decimal128).Value +} + +func (s *Decimal128) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + dt := s.Type.(*arrow.Decimal128Type) + + switch to.ID() { + case arrow.DECIMAL128: + to := to.(*arrow.Decimal128Type) + newVal, err := s.Value.Rescale(dt.Scale, to.Scale) + if err != nil { + return nil, err + } + if !newVal.FitsInPrecision(to.Precision) { + return nil, fmt.Errorf("decimal128 value %v will not fit in new precision %d", newVal, to.Precision) + } + return NewDecimal128Scalar(newVal, to), nil + case arrow.DECIMAL256: + to := to.(*arrow.Decimal256Type) + newVal, err := decimal256.FromDecimal128(s.Value).Rescale(dt.Scale, to.Scale) + if err != nil { + return nil, err + } + if !newVal.FitsInPrecision(to.Precision) { + return nil, fmt.Errorf("decimal256 value %v will not fit in new precision %d", newVal, to.Precision) + } + return NewDecimal256Scalar(newVal, to), nil + case arrow.STRING: + dt := s.Type.(*arrow.Decimal128Type) + scale := big.NewFloat(math.Pow10(int(dt.Scale))) + val := (&big.Float{}).SetInt(s.Value.BigInt()) + return NewStringScalar(val.Quo(val, scale).Text('g', int(dt.Precision))), nil + } + + return nil, fmt.Errorf("cannot cast non-nil decimal128 scalar to type %s", to) +} + +func NewDecimal128Scalar(val decimal128.Num, typ arrow.DataType) *Decimal128 { + return &Decimal128{scalar{typ, true}, val} +} + +type Decimal256 struct { + scalar + Value decimal256.Num +} + +func (s *Decimal256) Data() []byte { + return (*[arrow.Decimal256SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Decimal256) value() interface{} { return s.Value } + +func (s *Decimal256) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Decimal256) equals(rhs Scalar) bool { + return s.Value == rhs.(*Decimal256).Value +} + +func (s *Decimal256) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + dt := s.Type.(*arrow.Decimal256Type) + + switch to.ID() { + case arrow.DECIMAL256: + to := to.(*arrow.Decimal256Type) + newVal, err := s.Value.Rescale(dt.Scale, to.Scale) + if err != nil { + return nil, err + } + if !newVal.FitsInPrecision(to.Precision) { + return nil, fmt.Errorf("decimal256 value %v will not fit in new precision %d", newVal, to.Precision) + } + return NewDecimal256Scalar(newVal, to), nil + case arrow.STRING: + scale := big.NewFloat(math.Pow10(int(dt.Scale))) + val := (&big.Float{}).SetInt(s.Value.BigInt()) + return NewStringScalar(val.Quo(val, scale).Text('g', int(dt.Precision))), nil + } + + return nil, fmt.Errorf("cannot cast non-nil decimal128 scalar to type %s", to) +} + +func NewDecimal256Scalar(val decimal256.Num, typ arrow.DataType) *Decimal256 { + return &Decimal256{scalar{typ, true}, val} +} + +type Extension struct { + scalar + Value Scalar +} + +func (s *Extension) value() interface{} { return s.Value } +func (s *Extension) equals(rhs Scalar) bool { + return Equals(s.Value, rhs.(*Extension).Value) +} +func (e *Extension) Validate() (err error) { + if err = e.scalar.Validate(); err != nil { + return err + } + + if !e.Valid { + if e.Value != nil { + err = fmt.Errorf("null %s scalar has storage value", e.Type) + } + return + } + + switch { + case e.Value == nil: + err = fmt.Errorf("non-null %s scalar doesn't have a storage value", e.Type) + case !e.Value.IsValid(): + err = fmt.Errorf("non-null %s scalar has a null storage value", e.Type) + default: + if err = e.Value.Validate(); err != nil { + err = fmt.Errorf("%s scalar fails validation for storage value: %w", e.Type, err) + } + } + return +} + +func (e *Extension) ValidateFull() error { + if err := e.Validate(); err != nil { + return err + } + + if e.Valid { + return e.Value.ValidateFull() + } + return nil +} + +func (s *Extension) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if arrow.TypeEqual(s.Type, to) { + return s, nil + } + + return nil, fmt.Errorf("cannot cast non-null extension scalar of type %s to type %s", s.Type, to) +} + +func (s *Extension) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func NewExtensionScalar(storage Scalar, typ arrow.DataType) *Extension { + return &Extension{scalar{typ, true}, storage} +} + +func convertToNumeric(v reflect.Value, to reflect.Type, fn reflect.Value) Scalar { + return fn.Call([]reflect.Value{v.Convert(to)})[0].Interface().(Scalar) +} + +// MakeNullScalar creates a scalar value of the desired type representing a null value +func MakeNullScalar(dt arrow.DataType) Scalar { + return makeNullFn[byte(dt.ID()&0x3f)](dt) +} + +func invalidScalarType(dt arrow.DataType) Scalar { + panic("invalid scalar type: " + dt.ID().String()) +} + +type scalarMakeNullFn func(arrow.DataType) Scalar + +var makeNullFn [64]scalarMakeNullFn + +func init() { + makeNullFn = [...]scalarMakeNullFn{ + arrow.NULL: func(dt arrow.DataType) Scalar { return ScalarNull }, + arrow.BOOL: func(dt arrow.DataType) Scalar { return &Boolean{scalar: scalar{dt, false}} }, + arrow.UINT8: func(dt arrow.DataType) Scalar { return &Uint8{scalar: scalar{dt, false}} }, + arrow.INT8: func(dt arrow.DataType) Scalar { return &Int8{scalar: scalar{dt, false}} }, + arrow.UINT16: func(dt arrow.DataType) Scalar { return &Uint16{scalar: scalar{dt, false}} }, + arrow.INT16: func(dt arrow.DataType) Scalar { return &Int16{scalar: scalar{dt, false}} }, + arrow.UINT32: func(dt arrow.DataType) Scalar { return &Uint32{scalar: scalar{dt, false}} }, + arrow.INT32: func(dt arrow.DataType) Scalar { return &Int32{scalar: scalar{dt, false}} }, + arrow.UINT64: func(dt arrow.DataType) Scalar { return &Uint64{scalar: scalar{dt, false}} }, + arrow.INT64: func(dt arrow.DataType) Scalar { return &Int64{scalar: scalar{dt, false}} }, + arrow.FLOAT16: func(dt arrow.DataType) Scalar { return &Float16{scalar: scalar{dt, false}} }, + arrow.FLOAT32: func(dt arrow.DataType) Scalar { return &Float32{scalar: scalar{dt, false}} }, + arrow.FLOAT64: func(dt arrow.DataType) Scalar { return &Float64{scalar: scalar{dt, false}} }, + arrow.STRING: func(dt arrow.DataType) Scalar { return &String{&Binary{scalar: scalar{dt, false}}} }, + arrow.BINARY: func(dt arrow.DataType) Scalar { return &Binary{scalar: scalar{dt, false}} }, + arrow.FIXED_SIZE_BINARY: func(dt arrow.DataType) Scalar { return &FixedSizeBinary{&Binary{scalar: scalar{dt, false}}} }, + arrow.DATE32: func(dt arrow.DataType) Scalar { return &Date32{scalar: scalar{dt, false}} }, + arrow.DATE64: func(dt arrow.DataType) Scalar { return &Date64{scalar: scalar{dt, false}} }, + arrow.TIMESTAMP: func(dt arrow.DataType) Scalar { return &Timestamp{scalar: scalar{dt, false}} }, + arrow.TIME32: func(dt arrow.DataType) Scalar { return &Time32{scalar: scalar{dt, false}} }, + arrow.TIME64: func(dt arrow.DataType) Scalar { return &Time64{scalar: scalar{dt, false}} }, + arrow.INTERVAL_MONTHS: func(dt arrow.DataType) Scalar { return &MonthInterval{scalar: scalar{dt, false}} }, + arrow.INTERVAL_DAY_TIME: func(dt arrow.DataType) Scalar { return &DayTimeInterval{scalar: scalar{dt, false}} }, + arrow.INTERVAL_MONTH_DAY_NANO: func(dt arrow.DataType) Scalar { return &MonthDayNanoInterval{scalar: scalar{dt, false}} }, + arrow.DECIMAL128: func(dt arrow.DataType) Scalar { return &Decimal128{scalar: scalar{dt, false}} }, + arrow.LIST: func(dt arrow.DataType) Scalar { return &List{scalar: scalar{dt, false}} }, + arrow.STRUCT: func(dt arrow.DataType) Scalar { + typ := dt.(*arrow.StructType) + values := make([]Scalar, len(typ.Fields())) + for i, f := range typ.Fields() { + values[i] = MakeNullScalar(f.Type) + } + return &Struct{scalar: scalar{dt, false}, Value: values} + }, + arrow.SPARSE_UNION: func(dt arrow.DataType) Scalar { + typ := dt.(*arrow.SparseUnionType) + if len(typ.Fields()) == 0 { + panic("cannot make scalar of empty union type") + } + values := make([]Scalar, len(typ.Fields())) + for i, f := range typ.Fields() { + values[i] = MakeNullScalar(f.Type) + } + return NewSparseUnionScalar(values, typ.TypeCodes()[0], typ) + }, + arrow.DENSE_UNION: func(dt arrow.DataType) Scalar { + typ := dt.(*arrow.DenseUnionType) + if len(typ.Fields()) == 0 { + panic("cannot make scalar of empty union type") + } + return NewDenseUnionScalar(MakeNullScalar(typ.Fields()[0].Type), typ.TypeCodes()[0], typ) + }, + arrow.DICTIONARY: func(dt arrow.DataType) Scalar { return NewNullDictScalar(dt) }, + arrow.LARGE_STRING: func(dt arrow.DataType) Scalar { return &LargeString{&String{&Binary{scalar: scalar{dt, false}}}} }, + arrow.LARGE_BINARY: func(dt arrow.DataType) Scalar { return &LargeBinary{&Binary{scalar: scalar{dt, false}}} }, + arrow.LARGE_LIST: func(dt arrow.DataType) Scalar { return &LargeList{&List{scalar: scalar{dt, false}}} }, + arrow.DECIMAL256: func(dt arrow.DataType) Scalar { return &Decimal256{scalar: scalar{dt, false}} }, + arrow.MAP: func(dt arrow.DataType) Scalar { return &Map{&List{scalar: scalar{dt, false}}} }, + arrow.EXTENSION: func(dt arrow.DataType) Scalar { + return &Extension{scalar: scalar{dt, false}, Value: MakeNullScalar(dt.(arrow.ExtensionType).StorageType())} + }, + arrow.FIXED_SIZE_LIST: func(dt arrow.DataType) Scalar { return &FixedSizeList{&List{scalar: scalar{dt, false}}} }, + arrow.DURATION: func(dt arrow.DataType) Scalar { return &Duration{scalar: scalar{dt, false}} }, + arrow.RUN_END_ENCODED: func(dt arrow.DataType) Scalar { return &RunEndEncoded{scalar: scalar{dt, false}} }, + // invalid data types to fill out array size 2^6 - 1 + 63: invalidScalarType, + } + + f := numericMap[arrow.FLOAT16] + f.scalarFunc = reflect.ValueOf(NewFloat16ScalarFromFloat32) + f.valueType = reflect.TypeOf(float32(0)) + numericMap[arrow.FLOAT16] = f +} + +// GetScalar creates a scalar object from the value at a given index in the +// passed in array, returns an error if unable to do so. +func GetScalar(arr arrow.Array, idx int) (Scalar, error) { + if arr.DataType().ID() != arrow.DICTIONARY && arr.IsNull(idx) { + return MakeNullScalar(arr.DataType()), nil + } + + if idx >= arr.Len() { + return nil, fmt.Errorf("%w: called GetScalar with index larger than array len", + arrow.ErrIndex) + } + + switch arr := arr.(type) { + case *array.Binary: + buf := memory.NewBufferBytes(arr.Value(idx)) + defer buf.Release() + return NewBinaryScalar(buf, arr.DataType()), nil + case *array.LargeBinary: + buf := memory.NewBufferBytes(arr.Value(idx)) + defer buf.Release() + return NewLargeBinaryScalar(buf), nil + case *array.Boolean: + return NewBooleanScalar(arr.Value(idx)), nil + case *array.Date32: + return NewDate32Scalar(arr.Value(idx)), nil + case *array.Date64: + return NewDate64Scalar(arr.Value(idx)), nil + case *array.DayTimeInterval: + return NewDayTimeIntervalScalar(arr.Value(idx)), nil + case *array.Decimal128: + return NewDecimal128Scalar(arr.Value(idx), arr.DataType()), nil + case *array.Decimal256: + return NewDecimal256Scalar(arr.Value(idx), arr.DataType()), nil + case *array.Duration: + return NewDurationScalar(arr.Value(idx), arr.DataType()), nil + case array.ExtensionArray: + storage, err := GetScalar(arr.Storage(), idx) + if err != nil { + return nil, err + } + return NewExtensionScalar(storage, arr.DataType()), nil + case *array.FixedSizeBinary: + buf := memory.NewBufferBytes(arr.Value(idx)) + defer buf.Release() + return NewFixedSizeBinaryScalar(buf, arr.DataType()), nil + case *array.FixedSizeList: + size := int(arr.DataType().(*arrow.FixedSizeListType).Len()) + slice := array.NewSlice(arr.ListValues(), int64(idx*size), int64((idx+1)*size)) + defer slice.Release() + return NewFixedSizeListScalarWithType(slice, arr.DataType()), nil + case *array.Float16: + return NewFloat16Scalar(arr.Value(idx)), nil + case *array.Float32: + return NewFloat32Scalar(arr.Value(idx)), nil + case *array.Float64: + return NewFloat64Scalar(arr.Value(idx)), nil + case *array.Int8: + return NewInt8Scalar(arr.Value(idx)), nil + case *array.Int16: + return NewInt16Scalar(arr.Value(idx)), nil + case *array.Int32: + return NewInt32Scalar(arr.Value(idx)), nil + case *array.Int64: + return NewInt64Scalar(arr.Value(idx)), nil + case *array.Uint8: + return NewUint8Scalar(arr.Value(idx)), nil + case *array.Uint16: + return NewUint16Scalar(arr.Value(idx)), nil + case *array.Uint32: + return NewUint32Scalar(arr.Value(idx)), nil + case *array.Uint64: + return NewUint64Scalar(arr.Value(idx)), nil + case *array.List: + offsets := arr.Offsets() + slice := array.NewSlice(arr.ListValues(), int64(offsets[idx]), int64(offsets[idx+1])) + defer slice.Release() + return NewListScalar(slice), nil + case *array.LargeList: + offsets := arr.Offsets() + slice := array.NewSlice(arr.ListValues(), int64(offsets[idx]), int64(offsets[idx+1])) + defer slice.Release() + return NewLargeListScalar(slice), nil + case *array.Map: + offsets := arr.Offsets() + slice := array.NewSlice(arr.ListValues(), int64(offsets[idx]), int64(offsets[idx+1])) + defer slice.Release() + return NewMapScalar(slice), nil + case *array.MonthInterval: + return NewMonthIntervalScalar(arr.Value(idx)), nil + case *array.MonthDayNanoInterval: + return NewMonthDayNanoIntervalScalar(arr.Value(idx)), nil + case *array.Null: + return ScalarNull, nil + case *array.String: + return NewStringScalar(arr.Value(idx)), nil + case *array.LargeString: + return NewLargeStringScalar(arr.Value(idx)), nil + case *array.Struct: + children := make(Vector, arr.NumField()) + for i := range children { + child, err := GetScalar(arr.Field(i), idx) + if err != nil { + return nil, err + } + children[i] = child + } + return NewStructScalar(children, arr.DataType()), nil + case *array.Time32: + return NewTime32Scalar(arr.Value(idx), arr.DataType()), nil + case *array.Time64: + return NewTime64Scalar(arr.Value(idx), arr.DataType()), nil + case *array.Timestamp: + return NewTimestampScalar(arr.Value(idx), arr.DataType()), nil + case *array.RunEndEncoded: + physicalIndex := encoded.FindPhysicalIndex(arr.Data(), arr.Offset()+idx) + value, err := GetScalar(arr.Values(), physicalIndex) + if err != nil { + return nil, err + } + + return NewRunEndEncodedScalar(value, arr.DataType().(*arrow.RunEndEncodedType)), nil + case *array.Dictionary: + ty := arr.DataType().(*arrow.DictionaryType) + valid := arr.IsValid(idx) + scalar := &Dictionary{scalar: scalar{ty, valid}} + if valid { + index, err := MakeScalarParam(arr.GetValueIndex(idx), ty.IndexType) + if err != nil { + return nil, err + } + + scalar.Value.Index = index + } else { + scalar.Value.Index = MakeNullScalar(ty.IndexType) + } + + scalar.Value.Dict = arr.Dictionary() + scalar.Value.Dict.Retain() + return scalar, nil + case *array.SparseUnion: + var err error + typeCode := arr.TypeCode(idx) + children := make([]Scalar, arr.NumFields()) + defer func() { + if err != nil { + for _, c := range children { + if c == nil { + break + } + + if v, ok := c.(Releasable); ok { + v.Release() + } + } + } + }() + + for i := range arr.UnionType().Fields() { + if children[i], err = GetScalar(arr.Field(i), idx); err != nil { + return nil, err + } + } + return NewSparseUnionScalar(children, typeCode, arr.UnionType().(*arrow.SparseUnionType)), nil + case *array.DenseUnion: + typeCode := arr.TypeCode(idx) + child := arr.Field(arr.ChildID(idx)) + offset := arr.ValueOffset(idx) + value, err := GetScalar(child, int(offset)) + if err != nil { + return nil, err + } + return NewDenseUnionScalar(value, typeCode, arr.UnionType().(*arrow.DenseUnionType)), nil + } + + return nil, fmt.Errorf("cannot create scalar from array of type %s", arr.DataType()) +} + +// MakeArrayOfNull creates an array of size length which is all null of the given data type. +// +// Deprecated: Use array.MakeArrayOfNull +func MakeArrayOfNull(dt arrow.DataType, length int, mem memory.Allocator) arrow.Array { + var ( + buffers = []*memory.Buffer{nil} + children []arrow.ArrayData + ) + + buffers[0] = memory.NewResizableBuffer(mem) + buffers[0].Resize(int(bitutil.BytesForBits(int64(length)))) + defer buffers[0].Release() + + switch t := dt.(type) { + case arrow.NestedType: + fieldList := t.Fields() + children = make([]arrow.ArrayData, len(fieldList)) + for i, f := range fieldList { + arr := MakeArrayOfNull(f.Type, length, mem) + defer arr.Release() + children[i] = arr.Data() + } + case arrow.FixedWidthDataType: + buffers = append(buffers, memory.NewResizableBuffer(mem)) + buffers[1].Resize(int(bitutil.BytesForBits(int64(t.BitWidth()))) * length) + defer buffers[1].Release() + case arrow.BinaryDataType: + buffers = append(buffers, memory.NewResizableBuffer(mem), nil) + buffers[1].Resize(arrow.Int32Traits.BytesRequired(length + 1)) + defer buffers[1].Release() + } + + data := array.NewData(dt, length, buffers, children, length, 0) + defer data.Release() + return array.MakeFromData(data) +} + +// MakeArrayFromScalar returns an array filled with the scalar value repeated length times. +// Not yet implemented for nested types such as Struct, List, extension and so on. +func MakeArrayFromScalar(sc Scalar, length int, mem memory.Allocator) (arrow.Array, error) { + if !sc.IsValid() { + return MakeArrayOfNull(sc.DataType(), length, mem), nil + } + + createOffsets := func(valLength int32) *memory.Buffer { + buffer := memory.NewResizableBuffer(mem) + buffer.Resize(arrow.Int32Traits.BytesRequired(length + 1)) + + out := arrow.Int32Traits.CastFromBytes(buffer.Bytes()) + for i, offset := 0, int32(0); i < length+1; i, offset = i+1, offset+valLength { + out[i] = offset + } + return buffer + } + + createBuffer := func(data []byte) *memory.Buffer { + buffer := memory.NewResizableBuffer(mem) + buffer.Resize(len(data) * length) + + out := buffer.Bytes() + copy(out, data) + for j := len(data); j < len(out); j *= 2 { + copy(out[j:], out[:j]) + } + return buffer + } + + finishFixedWidth := func(data []byte) arrow.ArrayData { + buffer := createBuffer(data) + defer buffer.Release() + return array.NewData(sc.DataType(), length, []*memory.Buffer{nil, buffer}, nil, 0, 0) + } + + switch s := sc.(type) { + case *Boolean: + data := memory.NewResizableBuffer(mem) + defer data.Release() + data.Resize(int(bitutil.BytesForBits(int64(length)))) + c := byte(0x00) + if s.Value { + c = 0xFF + } + memory.Set(data.Bytes(), c) + return array.NewBoolean(length, data, nil, 0), nil + case BinaryScalar: + if s.DataType().ID() == arrow.FIXED_SIZE_BINARY { + data := finishFixedWidth(s.Data()) + defer data.Release() + return array.MakeFromData(data), nil + } + + valuesBuf := createBuffer(s.Data()) + offsetsBuf := createOffsets(int32(len(s.Data()))) + data := array.NewData(sc.DataType(), length, []*memory.Buffer{nil, offsetsBuf, valuesBuf}, nil, 0, 0) + defer func() { + valuesBuf.Release() + offsetsBuf.Release() + data.Release() + }() + return array.MakeFromData(data), nil + case *Decimal128: + data := finishFixedWidth(arrow.Decimal128Traits.CastToBytes([]decimal128.Num{s.Value})) + defer data.Release() + return array.MakeFromData(data), nil + case *Decimal256: + data := finishFixedWidth(arrow.Decimal256Traits.CastToBytes([]decimal256.Num{s.Value})) + defer data.Release() + return array.MakeFromData(data), nil + case PrimitiveScalar: + data := finishFixedWidth(s.Data()) + defer data.Release() + return array.MakeFromData(data), nil + case *List: + values := make([]arrow.Array, length) + for i := range values { + values[i] = s.Value + } + + valueArray, err := array.Concatenate(values, mem) + if err != nil { + return nil, err + } + defer valueArray.Release() + + offsetsBuf := createOffsets(int32(s.Value.Len())) + defer offsetsBuf.Release() + data := array.NewData(s.DataType(), length, []*memory.Buffer{nil, offsetsBuf}, []arrow.ArrayData{valueArray.Data()}, 0, 0) + defer data.Release() + return array.MakeFromData(data), nil + case *FixedSizeList: + values := make([]arrow.Array, length) + for i := range values { + values[i] = s.Value + } + + valueArray, err := array.Concatenate(values, mem) + if err != nil { + return nil, err + } + defer valueArray.Release() + + data := array.NewData(s.DataType(), length, []*memory.Buffer{nil}, []arrow.ArrayData{valueArray.Data()}, 0, 0) + defer data.Release() + return array.MakeFromData(data), nil + case *Struct: + fields := make([]arrow.ArrayData, 0) + for _, v := range s.Value { + arr, err := MakeArrayFromScalar(v, length, mem) + if err != nil { + return nil, err + } + defer arr.Release() + fields = append(fields, arr.Data()) + } + + data := array.NewData(s.DataType(), length, []*memory.Buffer{nil}, fields, 0, 0) + defer data.Release() + return array.NewStructData(data), nil + case *Map: + structArr := s.GetList().(*array.Struct) + keys := make([]arrow.Array, length) + values := make([]arrow.Array, length) + for i := 0; i < length; i++ { + keys[i] = structArr.Field(0) + values[i] = structArr.Field(1) + } + + keyArr, err := array.Concatenate(keys, mem) + if err != nil { + return nil, err + } + defer keyArr.Release() + + valueArr, err := array.Concatenate(values, mem) + if err != nil { + return nil, err + } + defer valueArr.Release() + + offsetsBuf := createOffsets(int32(structArr.Len())) + outStructArr := array.NewData(structArr.DataType(), keyArr.Len(), []*memory.Buffer{nil}, []arrow.ArrayData{keyArr.Data(), valueArr.Data()}, 0, 0) + data := array.NewData(s.DataType(), length, []*memory.Buffer{nil, offsetsBuf}, []arrow.ArrayData{outStructArr}, 0, 0) + defer func() { + offsetsBuf.Release() + outStructArr.Release() + data.Release() + }() + return array.MakeFromData(data), nil + case *RunEndEncoded: + dt := s.DataType().(*arrow.RunEndEncodedType) + + var endBytes []byte + switch dt.RunEnds().ID() { + case arrow.INT16: + if length > math.MaxInt16 { + return nil, fmt.Errorf("%w: length overflows int16 run ends", arrow.ErrInvalid) + } + + v := int16(length) + endBytes = (*[2]byte)(unsafe.Pointer(&v))[:] + case arrow.INT32: + if length > math.MaxInt32 { + return nil, fmt.Errorf("%w: final length overflows int32 run ends", arrow.ErrInvalid) + } + + v := int32(length) + endBytes = (*[4]byte)(unsafe.Pointer(&v))[:] + case arrow.INT64: + v := int64(length) + endBytes = (*[8]byte)(unsafe.Pointer(&v))[:] + } + + endBuf := createBuffer(endBytes) + defer endBuf.Release() + + valueArr, err := MakeArrayFromScalar(s.Value, 1, mem) + if err != nil { + return nil, err + } + defer valueArr.Release() + + runEndsData := array.NewData(dt.RunEnds(), 1, []*memory.Buffer{nil, endBuf}, nil, 0, 0) + defer runEndsData.Release() + + finalData := array.NewData(s.DataType(), length, []*memory.Buffer{nil}, + []arrow.ArrayData{runEndsData, valueArr.Data()}, 0, 0) + defer finalData.Release() + return array.NewRunEndEncodedData(finalData), nil + default: + return nil, fmt.Errorf("array from scalar not yet implemented for type %s", sc.DataType()) + } +} + +func Hash(seed maphash.Seed, s Scalar) uint64 { + var h maphash.Hash + h.SetSeed(seed) + binary.Write(&h, endian.Native, arrow.HashType(seed, s.DataType())) + + out := h.Sum64() + if !s.IsValid() { + return out + } + + hash := func() { + out ^= h.Sum64() + h.Reset() + } + + valueHash := func(v interface{}) uint64 { + switch v := v.(type) { + case int32: + h.Write((*[4]byte)(unsafe.Pointer(&v))[:]) + case int64: + h.Write((*[8]byte)(unsafe.Pointer(&v))[:]) + case arrow.Date32: + binary.Write(&h, endian.Native, uint32(v)) + case arrow.Time32: + binary.Write(&h, endian.Native, uint32(v)) + case arrow.MonthInterval: + binary.Write(&h, endian.Native, uint32(v)) + case arrow.Duration: + binary.Write(&h, endian.Native, uint64(v)) + case arrow.Date64: + binary.Write(&h, endian.Native, uint64(v)) + case arrow.Time64: + binary.Write(&h, endian.Native, uint64(v)) + case arrow.Timestamp: + binary.Write(&h, endian.Native, uint64(v)) + case float16.Num: + binary.Write(&h, endian.Native, v.Uint16()) + case decimal128.Num: + binary.Write(&h, endian.Native, v.LowBits()) + hash() + binary.Write(&h, endian.Native, uint64(v.HighBits())) + case decimal256.Num: + arr := v.Array() + binary.Write(&h, endian.Native, arr[3]) + hash() + binary.Write(&h, endian.Native, arr[2]) + hash() + binary.Write(&h, endian.Native, arr[1]) + hash() + binary.Write(&h, endian.Native, arr[0]) + } + hash() + return out + } + + h.Reset() + switch s := s.(type) { + case *Null: + case *Extension: + out ^= Hash(seed, s.Value) + case *DayTimeInterval: + return valueHash(s.Value.Days) & valueHash(s.Value.Milliseconds) + case *MonthDayNanoInterval: + return valueHash(s.Value.Months) & valueHash(s.Value.Days) & valueHash(s.Value.Nanoseconds) + case *SparseUnion: + // typecode is ignored when comparing for equality, so don't hash it either + out ^= Hash(seed, s.Value[s.ChildID]) + case *DenseUnion: + // typecode is ignored when comparing equality, so don't hash it either + out ^= Hash(seed, s.Value) + case *Dictionary: + if s.Value.Index.IsValid() { + out ^= Hash(seed, s.Value.Index) + } + case *RunEndEncoded: + return Hash(seed, s.Value) + case PrimitiveScalar: + h.Write(s.Data()) + hash() + case TemporalScalar: + return valueHash(s.value()) + case ListScalar: + array.Hash(&h, s.GetList().Data()) + hash() + case *Struct: + for _, c := range s.Value { + if c.IsValid() { + out ^= Hash(seed, c) + } + } + } + + return out +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/temporal.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/temporal.go new file mode 100644 index 0000000..6b6eff7 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/scalar/temporal.go @@ -0,0 +1,481 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 scalar + +import ( + "fmt" + "reflect" + "time" + "unsafe" + + "github.com/apache/arrow/go/v12/arrow" +) + +func temporalToString(s TemporalScalar) string { + switch s := s.(type) { + case *Date32: + return time.Unix(0, 0).UTC().AddDate(0, 0, int(s.Value)).Format("2006-01-02") + case *Date64: + days := int(int64(s.Value) / (time.Hour * 24).Milliseconds()) + return time.Unix(0, 0).UTC().AddDate(0, 0, days).Format("2006-01-02") + case *Duration: + return fmt.Sprint(time.Duration(s.Value) * s.Unit().Multiplier()) + case *Time32: + return time.Unix(0, int64(s.Value)*int64(s.Unit().Multiplier())).UTC().Format("15:04:05.999") + case *Time64: + return time.Unix(0, int64(s.Value)*int64(s.Unit().Multiplier())).UTC().Format("15:04:05.999999999") + case *Timestamp: + return time.Unix(0, int64(s.Value)*int64(s.Unit().Multiplier())).UTC().Format("2006-01-02 15:04:05.999999999") + } + return "..." +} + +type TemporalScalar interface { + Scalar + temporal() +} + +type Duration struct { + scalar + Value arrow.Duration +} + +func (Duration) temporal() {} +func (s *Duration) value() interface{} { return s.Value } +func (s *Duration) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Duration) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Duration) equals(rhs Scalar) bool { + return s.Value == rhs.(*Duration).Value +} + +func (s *Duration) Unit() arrow.TimeUnit { + return s.DataType().(*arrow.TimestampType).Unit +} +func (s *Duration) Data() []byte { + return (*[arrow.DurationSizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func NewDurationScalar(val arrow.Duration, typ arrow.DataType) *Duration { + return &Duration{scalar{typ, true}, val} +} + +type DateScalar interface { + TemporalScalar + ToTime() time.Time + date() +} + +type TimeScalar interface { + TemporalScalar + Unit() arrow.TimeUnit + ToTime() time.Time + time() +} + +type IntervalScalar interface { + TemporalScalar + interval() +} + +const millisecondsInDay = (time.Hour * 24) / time.Millisecond + +func castTemporal(from TemporalScalar, to arrow.DataType) (Scalar, error) { + if arrow.TypeEqual(from.DataType(), to) { + return from, nil + } + + if !from.IsValid() { + return MakeNullScalar(to), nil + } + + if r, ok := numericMap[to.ID()]; ok { + return convertToNumeric(reflect.ValueOf(from.value()), r.valueType, r.scalarFunc), nil + } + + if to.ID() == arrow.STRING { + return NewStringScalar(temporalToString(from)), nil + } + + switch s := from.(type) { + case DateScalar: + if to.ID() == arrow.TIMESTAMP { + var newValue int64 + switch s := s.(type) { + case *Date32: + newValue = int64(s.Value) * int64(millisecondsInDay) + case *Date64: + newValue = int64(s.Value) + } + return NewTimestampScalar(arrow.Timestamp(arrow.ConvertTimestampValue(arrow.Millisecond, to.(*arrow.TimestampType).Unit, newValue)), to), nil + } + + switch s := s.(type) { + case *Date32: + if to.ID() == arrow.DATE64 { + return NewDate64Scalar(arrow.Date64(s.Value) * arrow.Date64(millisecondsInDay)), nil + } + case *Date64: + if to.ID() == arrow.DATE32 { + return NewDate32Scalar(arrow.Date32(s.Value / arrow.Date64(millisecondsInDay))), nil + } + } + case *Timestamp: + switch to := to.(type) { + case *arrow.TimestampType: + return NewTimestampScalar(arrow.Timestamp(arrow.ConvertTimestampValue(s.Unit(), to.Unit, int64(s.Value))), to), nil + case *arrow.Date32Type: + millis := arrow.ConvertTimestampValue(s.Unit(), arrow.Millisecond, int64(s.Value)) + return NewDate32Scalar(arrow.Date32(millis / int64(millisecondsInDay))), nil + case *arrow.Date64Type: + millis := arrow.ConvertTimestampValue(s.Unit(), arrow.Millisecond, int64(s.Value)) + return NewDate64Scalar(arrow.Date64(millis - millis%int64(millisecondsInDay))), nil + } + case TimeScalar: + switch to := to.(type) { + case *arrow.Time32Type: + return NewTime32Scalar(arrow.Time32(arrow.ConvertTimestampValue(s.Unit(), to.Unit, int64(s.value().(arrow.Time64)))), to), nil + case *arrow.Time64Type: + return NewTime64Scalar(arrow.Time64(arrow.ConvertTimestampValue(s.Unit(), to.Unit, int64(s.value().(arrow.Time32)))), to), nil + } + + case *Duration: + switch to := to.(type) { + case *arrow.StringType: + + case *arrow.DurationType: + return NewDurationScalar(arrow.Duration(arrow.ConvertTimestampValue(s.Unit(), to.Unit, int64(s.Value))), to), nil + } + } + + return nil, fmt.Errorf("") +} + +type Date32 struct { + scalar + Value arrow.Date32 +} + +func (Date32) temporal() {} +func (Date32) date() {} +func (s *Date32) value() interface{} { return s.Value } +func (s *Date32) Data() []byte { + return (*[arrow.Date32SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *Date32) equals(rhs Scalar) bool { + return s.Value == rhs.(*Date32).Value +} +func (s *Date32) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Date32) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} +func (s *Date32) ToTime() time.Time { + return s.Value.ToTime() +} + +func NewDate32Scalar(val arrow.Date32) *Date32 { + return &Date32{scalar{arrow.FixedWidthTypes.Date32, true}, val} +} + +type Date64 struct { + scalar + Value arrow.Date64 +} + +func (Date64) temporal() {} +func (Date64) date() {} +func (s *Date64) value() interface{} { return s.Value } +func (s *Date64) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Date64) Data() []byte { + return (*[arrow.Date64SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *Date64) equals(rhs Scalar) bool { + return s.Value == rhs.(*Date64).Value +} +func (s *Date64) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} +func (s *Date64) ToTime() time.Time { + return s.Value.ToTime() +} + +func NewDate64Scalar(val arrow.Date64) *Date64 { + return &Date64{scalar{arrow.FixedWidthTypes.Date64, true}, val} +} + +type Time32 struct { + scalar + Value arrow.Time32 +} + +func (Time32) temporal() {} +func (Time32) time() {} +func (s *Time32) value() interface{} { return s.Value } +func (s *Time32) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Time32) Unit() arrow.TimeUnit { + return s.DataType().(*arrow.Time32Type).Unit +} +func (s *Time32) equals(rhs Scalar) bool { + return s.Value == rhs.(*Time32).Value +} +func (s *Time32) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Time32) Data() []byte { + return (*[arrow.Time32SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func (s *Time32) ToTime() time.Time { + return s.Value.ToTime(s.Unit()) +} + +func NewTime32Scalar(val arrow.Time32, typ arrow.DataType) *Time32 { + return &Time32{scalar{typ, true}, val} +} + +type Time64 struct { + scalar + Value arrow.Time64 +} + +func (Time64) temporal() {} +func (Time64) time() {} +func (s *Time64) value() interface{} { return s.Value } +func (s *Time64) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Time64) Unit() arrow.TimeUnit { + return s.DataType().(*arrow.Time64Type).Unit +} +func (s *Time64) Data() []byte { + return (*[arrow.Time64SizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *Time64) equals(rhs Scalar) bool { + return s.Value == rhs.(*Time64).Value +} +func (s *Time64) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Time64) ToTime() time.Time { + return s.Value.ToTime(s.Unit()) +} + +func NewTime64Scalar(val arrow.Time64, typ arrow.DataType) *Time64 { + return &Time64{scalar{typ, true}, val} +} + +type Timestamp struct { + scalar + Value arrow.Timestamp +} + +func (Timestamp) temporal() {} +func (Timestamp) time() {} +func (s *Timestamp) value() interface{} { return s.Value } +func (s *Timestamp) CastTo(to arrow.DataType) (Scalar, error) { return castTemporal(s, to) } +func (s *Timestamp) Unit() arrow.TimeUnit { + return s.DataType().(*arrow.TimestampType).Unit +} +func (s *Timestamp) Data() []byte { + return (*[arrow.TimestampSizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *Timestamp) equals(rhs Scalar) bool { + return s.Value == rhs.(*Timestamp).Value +} +func (s *Timestamp) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *Timestamp) ToTime() time.Time { + return s.Value.ToTime(s.Unit()) +} + +func NewTimestampScalar(val arrow.Timestamp, typ arrow.DataType) *Timestamp { + return &Timestamp{scalar{typ, true}, val} +} + +type MonthInterval struct { + scalar + Value arrow.MonthInterval +} + +func (MonthInterval) temporal() {} +func (MonthInterval) interval() {} +func (s *MonthInterval) value() interface{} { return s.Value } +func (s *MonthInterval) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if !arrow.TypeEqual(s.DataType(), to) { + return nil, fmt.Errorf("non-null monthinterval scalar cannot be cast to anything other than monthinterval") + } + + return s, nil +} +func (s *MonthInterval) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} +func (s *MonthInterval) equals(rhs Scalar) bool { + return s.Value == rhs.(*MonthInterval).Value +} +func (s *MonthInterval) Data() []byte { + return (*[arrow.MonthIntervalSizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} + +func NewMonthIntervalScalar(val arrow.MonthInterval) *MonthInterval { + return &MonthInterval{scalar{arrow.FixedWidthTypes.MonthInterval, true}, val} +} + +type DayTimeInterval struct { + scalar + Value arrow.DayTimeInterval +} + +func (DayTimeInterval) temporal() {} +func (DayTimeInterval) interval() {} +func (s *DayTimeInterval) value() interface{} { return s.Value } +func (s *DayTimeInterval) Data() []byte { + return (*[arrow.DayTimeIntervalSizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *DayTimeInterval) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *DayTimeInterval) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if !arrow.TypeEqual(s.DataType(), to) { + return nil, fmt.Errorf("non-null daytimeinterval scalar cannot be cast to anything other than monthinterval") + } + + return s, nil +} + +func (s *DayTimeInterval) equals(rhs Scalar) bool { + return s.Value == rhs.(*DayTimeInterval).Value +} + +func NewDayTimeIntervalScalar(val arrow.DayTimeInterval) *DayTimeInterval { + return &DayTimeInterval{scalar{arrow.FixedWidthTypes.DayTimeInterval, true}, val} +} + +type MonthDayNanoInterval struct { + scalar + Value arrow.MonthDayNanoInterval +} + +func (MonthDayNanoInterval) temporal() {} +func (MonthDayNanoInterval) interval() {} +func (s *MonthDayNanoInterval) value() interface{} { return s.Value } +func (s *MonthDayNanoInterval) Data() []byte { + return (*[arrow.MonthDayNanoIntervalSizeBytes]byte)(unsafe.Pointer(&s.Value))[:] +} +func (s *MonthDayNanoInterval) String() string { + if !s.Valid { + return "null" + } + val, err := s.CastTo(arrow.BinaryTypes.String) + if err != nil { + return "..." + } + return string(val.(*String).Value.Bytes()) +} + +func (s *MonthDayNanoInterval) CastTo(to arrow.DataType) (Scalar, error) { + if !s.Valid { + return MakeNullScalar(to), nil + } + + if !arrow.TypeEqual(s.DataType(), to) { + return nil, fmt.Errorf("non-null month_day_nano_interval scalar cannot be cast to anything other than monthinterval") + } + + return s, nil +} + +func (s *MonthDayNanoInterval) equals(rhs Scalar) bool { + return s.Value == rhs.(*MonthDayNanoInterval).Value +} + +func NewMonthDayNanoIntervalScalar(val arrow.MonthDayNanoInterval) *MonthDayNanoInterval { + return &MonthDayNanoInterval{scalar{arrow.FixedWidthTypes.MonthDayNanoInterval, true}, val} +} + +var ( + _ Scalar = (*Date32)(nil) +) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/schema.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/schema.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/schema.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/schema.go index bd44c24..87bfe2b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/schema.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/schema.go @@ -21,7 +21,7 @@ import ( "sort" "strings" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/endian" ) type Metadata struct { @@ -91,6 +91,16 @@ func (md Metadata) FindKey(k string) int { return -1 } +// GetValue returns the value associated with the provided key name. +// If the key does not exist, the second return value is false. +func (md Metadata) GetValue(k string) (string, bool) { + i := md.FindKey(k) + if i < 0 { + return "", false + } + return md.values[i], true +} + func (md Metadata) clone() Metadata { if len(md.keys) == 0 { return Metadata{} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/table.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/table.go similarity index 87% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/table.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/table.go index e0c2caf..0d20d95 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/table.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/table.go @@ -17,9 +17,10 @@ package arrow import ( + "fmt" "sync/atomic" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) // Table represents a logical sequence of chunked arrays of equal length. It is @@ -42,20 +43,19 @@ type Table interface { // To get strongly typed data from a Column, you need to iterate the // chunks and type assert each individual Array. For example: // -// switch column.DataType().ID { -// case arrow.INT32: -// for _, c := range column.Data().Chunks() { -// arr := c.(*array.Int32) -// // do something with arr -// } -// case arrow.INT64: -// for _, c := range column.Data().Chunks() { -// arr := c.(*array.Int64) -// // do something with arr -// } -// case ... +// switch column.DataType().ID { +// case arrow.INT32: +// for _, c := range column.Data().Chunks() { +// arr := c.(*array.Int32) +// // do something with arr // } -// +// case arrow.INT64: +// for _, c := range column.Data().Chunks() { +// arr := c.(*array.Int64) +// // do something with arr +// } +// case ... +// } type Column struct { field Field data *Chunked @@ -69,7 +69,7 @@ type Column struct { // of the ref counting. func NewColumnFromArr(field Field, arr Array) Column { if !TypeEqual(field.Type, arr.DataType()) { - panic("arrow/array: inconsistent data type") + panic(fmt.Errorf("%w: arrow/array: inconsistent data type %s vs %s", ErrInvalid, field.Type, arr.DataType())) } arr.Retain() @@ -98,7 +98,7 @@ func NewColumn(field Field, chunks *Chunked) *Column { if !TypeEqual(col.data.DataType(), col.field.Type) { col.data.Release() - panic("arrow/array: inconsistent data type") + panic(fmt.Errorf("%w: arrow/array: inconsistent data type %s vs %s", ErrInvalid, col.data.DataType(), col.field.Type)) } return &col @@ -148,9 +148,9 @@ func NewChunked(dtype DataType, chunks []Array) *Chunked { if chunk == nil { continue } - + if !TypeEqual(chunk.DataType(), dtype) { - panic("arrow/array: mismatch data type") + panic(fmt.Errorf("%w: arrow/array: mismatch data type %s vs %s", ErrInvalid, chunk.DataType().String(), dtype.String())) } chunk.Retain() arr.chunks = append(arr.chunks, chunk) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/tools.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/tools.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/tools.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/tools.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_string.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_string.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_string.go index 3ba93f3..41a4073 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_string.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_string.go @@ -46,12 +46,12 @@ func _() { _ = x[LARGE_BINARY-35] _ = x[LARGE_LIST-36] _ = x[INTERVAL_MONTH_DAY_NANO-37] - _ = x[INTERVAL-38] + _ = x[RUN_END_ENCODED-38] } -const _Type_name = "NULLBOOLUINT8INT8UINT16INT16UINT32INT32UINT64INT64FLOAT16FLOAT32FLOAT64STRINGBINARYFIXED_SIZE_BINARYDATE32DATE64TIMESTAMPTIME32TIME64INTERVAL_MONTHSINTERVAL_DAY_TIMEDECIMAL128DECIMAL256LISTSTRUCTSPARSE_UNIONDENSE_UNIONDICTIONARYMAPEXTENSIONFIXED_SIZE_LISTDURATIONLARGE_STRINGLARGE_BINARYLARGE_LISTINTERVAL_MONTH_DAY_NANOINTERVAL" +const _Type_name = "NULLBOOLUINT8INT8UINT16INT16UINT32INT32UINT64INT64FLOAT16FLOAT32FLOAT64STRINGBINARYFIXED_SIZE_BINARYDATE32DATE64TIMESTAMPTIME32TIME64INTERVAL_MONTHSINTERVAL_DAY_TIMEDECIMAL128DECIMAL256LISTSTRUCTSPARSE_UNIONDENSE_UNIONDICTIONARYMAPEXTENSIONFIXED_SIZE_LISTDURATIONLARGE_STRINGLARGE_BINARYLARGE_LISTINTERVAL_MONTH_DAY_NANORUN_END_ENCODED" -var _Type_index = [...]uint16{0, 4, 8, 13, 17, 23, 28, 34, 39, 45, 50, 57, 64, 71, 77, 83, 100, 106, 112, 121, 127, 133, 148, 165, 175, 185, 189, 195, 207, 218, 228, 231, 240, 255, 263, 275, 287, 297, 320, 328} +var _Type_index = [...]uint16{0, 4, 8, 13, 17, 23, 28, 34, 39, 45, 50, 57, 64, 71, 77, 83, 100, 106, 112, 121, 127, 133, 148, 165, 175, 185, 189, 195, 207, 218, 228, 231, 240, 255, 263, 275, 287, 297, 320, 335} func (i Type) String() string { if i < 0 || i >= Type(len(_Type_index)-1) { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_boolean.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_boolean.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_boolean.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_boolean.go index 343ec5f..c4e93f5 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_boolean.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_boolean.go @@ -17,7 +17,7 @@ package arrow import ( - "github.com/apache/arrow/go/v10/arrow/bitutil" + "github.com/apache/arrow/go/v12/arrow/bitutil" ) type booleanTraits struct{} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal128.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal128.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal128.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal128.go index 23e7538..1fc653a 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal128.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal128.go @@ -20,8 +20,8 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/decimal128" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/endian" ) // Decimal128 traits diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal256.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal256.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal256.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal256.go index 15e69e9..0fd3256 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_decimal256.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_decimal256.go @@ -20,8 +20,8 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/decimal256" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/decimal256" + "github.com/apache/arrow/go/v12/arrow/endian" ) // Decimal256 traits diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_float16.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_float16.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_float16.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_float16.go index 4408135..1adc6e8 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_float16.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_float16.go @@ -20,8 +20,8 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/float16" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/float16" + "github.com/apache/arrow/go/v12/arrow/endian" ) // Float16 traits diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_interval.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_interval.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_interval.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_interval.go index 1253c50..6d68bd0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_interval.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_interval.go @@ -20,8 +20,8 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/endian" - "github.com/apache/arrow/go/v10/arrow/internal/debug" + "github.com/apache/arrow/go/v12/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/internal/debug" ) var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go index a96f537..725316c 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go @@ -23,7 +23,7 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/endian" ) var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go.tmpl similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go.tmpl index 290d7f3..8b18a92 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen.go.tmpl @@ -21,7 +21,7 @@ import ( "reflect" "unsafe" - "github.com/apache/arrow/go/v10/arrow/endian" + "github.com/apache/arrow/go/v12/arrow/endian" ) var ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen_test.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen_test.go.tmpl similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen_test.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen_test.go.tmpl index aa8c038..8bb1897 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/arrow/type_traits_numeric.gen_test.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/arrow/type_traits_numeric.gen_test.go.tmpl @@ -20,7 +20,7 @@ import ( "reflect" "testing" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" ) {{- range .In}} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/arrow/unionmode_string.go b/ext/vendor/github.com/apache/arrow/go/v12/arrow/unionmode_string.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/arrow/unionmode_string.go rename to ext/vendor/github.com/apache/arrow/go/v12/arrow/unionmode_string.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_block_counter.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_block_counter.go similarity index 92% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_block_counter.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_block_counter.go index 1ecd03e..8f724eb 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_block_counter.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_block_counter.go @@ -21,8 +21,8 @@ import ( "math/bits" "unsafe" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/internal/utils" ) func loadWord(byt []byte) uint64 { @@ -291,6 +291,41 @@ func VisitBitBlocksShort(bitmap []byte, offset, length int64, visitValid func(po return nil } +func VisitTwoBitBlocks(leftBitmap, rightBitmap []byte, leftOffset, rightOffset int64, len int64, visitValid func(pos int64), visitNull func()) { + if leftBitmap == nil || rightBitmap == nil { + // at most one is present + if leftBitmap == nil { + VisitBitBlocks(rightBitmap, rightOffset, len, visitValid, visitNull) + } else { + VisitBitBlocks(leftBitmap, leftOffset, len, visitValid, visitNull) + } + return + } + + bitCounter := NewBinaryBitBlockCounter(leftBitmap, rightBitmap, leftOffset, rightOffset, len) + var pos int64 + for pos < len { + block := bitCounter.NextAndWord() + if block.AllSet() { + for i := 0; i < int(block.Len); i, pos = i+1, pos+1 { + visitValid(pos) + } + } else if block.NoneSet() { + for i := 0; i < int(block.Len); i, pos = i+1, pos+1 { + visitNull() + } + } else { + for i := 0; i < int(block.Len); i, pos = i+1, pos+1 { + if bitutil.BitIsSet(leftBitmap, int(leftOffset+pos)) && bitutil.BitIsSet(rightBitmap, int(rightOffset+pos)) { + visitValid(pos) + } else { + visitNull() + } + } + } + } +} + type bitOp struct { bit func(bool, bool) bool word func(uint64, uint64) uint64 diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_run_reader.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_run_reader.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_run_reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_run_reader.go index 9c6412f..5ff8d51 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_run_reader.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_run_reader.go @@ -22,9 +22,9 @@ import ( "math/bits" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/internal/utils" ) // BitRun represents a run of bits with the same value of length Len diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_set_run_reader.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_set_run_reader.go similarity index 95% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_set_run_reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_set_run_reader.go index 2dae0f9..6369c09 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bit_set_run_reader.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bit_set_run_reader.go @@ -20,8 +20,8 @@ import ( "encoding/binary" "math/bits" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/internal/utils" ) // IsMultipleOf64 returns whether v is a multiple of 64. @@ -344,3 +344,18 @@ func VisitSetBitRuns(bitmap []byte, bitmapOffset int64, length int64, visitFn Vi } return nil } + +func VisitSetBitRunsNoErr(bitmap []byte, bitmapOffset int64, length int64, visitFn func(pos, length int64)) { + if bitmap == nil { + visitFn(0, length) + return + } + rdr := NewSetBitRunReader(bitmap, bitmapOffset, length) + for { + run := rdr.NextRun() + if run.Length == 0 { + break + } + visitFn(run.Pos, run.Length) + } +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bitmap_generate.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bitmap_generate.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bitmap_generate.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bitmap_generate.go index 25b17bf..1428e49 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/bitutils/bitmap_generate.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/bitutils/bitmap_generate.go @@ -16,7 +16,7 @@ package bitutils -import "github.com/apache/arrow/go/v10/arrow/bitutil" +import "github.com/apache/arrow/go/v12/arrow/bitutil" // GenerateBits writes sequential bits to a bitmap. Bits preceding the // initial start offset are preserved, bits following the bitmap may @@ -84,6 +84,8 @@ func GenerateBitsUnrolled(bitmap []byte, start, length int64, g func() bool) { for i := 0; i < 8; i++ { if g() { outResults[i] = 1 + } else { + outResults[i] = 0 } } cur[0] = (outResults[0] | outResults[1]<<1 | outResults[2]<<2 | diff --git a/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_funcs.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_funcs.go new file mode 100644 index 0000000..1a85919 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_funcs.go @@ -0,0 +1,90 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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 hashing + +import ( + "math/bits" + "unsafe" + + "github.com/zeebo/xxh3" +) + +func hashInt(val uint64, alg uint64) uint64 { + // Two of xxhash's prime multipliers (which are chosen for their + // bit dispersion properties) + var multipliers = [2]uint64{11400714785074694791, 14029467366897019727} + // Multiplying by the prime number mixes the low bits into the high bits, + // then byte-swapping (which is a single CPU instruction) allows the + // combined high and low bits to participate in the initial hash table index. + return bits.ReverseBytes64(multipliers[alg] * val) +} + +func hashFloat32(val float32, alg uint64) uint64 { + // grab the raw byte pattern of the + bt := *(*[4]byte)(unsafe.Pointer(&val)) + x := uint64(*(*uint32)(unsafe.Pointer(&bt[0]))) + hx := hashInt(x, alg) + hy := hashInt(x, alg^1) + return 4 ^ hx ^ hy +} + +func hashFloat64(val float64, alg uint64) uint64 { + bt := *(*[8]byte)(unsafe.Pointer(&val)) + hx := hashInt(uint64(*(*uint32)(unsafe.Pointer(&bt[4]))), alg) + hy := hashInt(uint64(*(*uint32)(unsafe.Pointer(&bt[0]))), alg^1) + return 8 ^ hx ^ hy +} + +// prime constants used for slightly increasing the hash quality further +var exprimes = [2]uint64{1609587929392839161, 9650029242287828579} + +// for smaller amounts of bytes this is faster than even calling into +// xxh3 to do the hash, so we specialize in order to get the benefits +// of that performance. +func hash(b []byte, alg uint64) uint64 { + n := uint32(len(b)) + if n <= 16 { + switch { + case n > 8: + // 8 < length <= 16 + // apply same principle as above, but as two 64-bit ints + x := *(*uint64)(unsafe.Pointer(&b[n-8])) + y := *(*uint64)(unsafe.Pointer(&b[0])) + hx := hashInt(x, alg) + hy := hashInt(y, alg^1) + return uint64(n) ^ hx ^ hy + case n >= 4: + // 4 < length <= 8 + // we can read the bytes as two overlapping 32-bit ints, apply different + // hash functions to each in parallel + // then xor the results + x := *(*uint32)(unsafe.Pointer(&b[n-4])) + y := *(*uint32)(unsafe.Pointer(&b[0])) + hx := hashInt(uint64(x), alg) + hy := hashInt(uint64(y), alg^1) + return uint64(n) ^ hx ^ hy + case n > 0: + x := uint32((n << 24) ^ (uint32(b[0]) << 16) ^ (uint32(b[n/2]) << 8) ^ uint32(b[n-1])) + return hashInt(uint64(x), alg) + case n == 0: + return 1 + } + } + + // increase differentiation enough to improve hash quality + return xxh3.Hash(b) + exprimes[alg] +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string.go new file mode 100644 index 0000000..6630010 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string.go @@ -0,0 +1,26 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build go1.20 + +package hashing + +import "unsafe" + +func hashString(val string, alg uint64) uint64 { + buf := unsafe.Slice(unsafe.StringData(val), len(val)) + return hash(buf, alg) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string_go1.19.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string_go1.19.go new file mode 100644 index 0000000..8a79906 --- /dev/null +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/hash_string_go1.19.go @@ -0,0 +1,30 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you 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:build !go1.20 + +package hashing + +import ( + "reflect" + "unsafe" +) + +func hashString(val string, alg uint64) uint64 { + buf := *(*[]byte)(unsafe.Pointer(&val)) + (*reflect.SliceHeader)(unsafe.Pointer(&buf)).Cap = len(val) + return hash(buf, alg) +} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/types.tmpldata b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/types.tmpldata similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/types.tmpldata rename to ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/types.tmpldata diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go index 57d57d9..1ab3bf2 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go @@ -21,9 +21,9 @@ package hashing import ( "math" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/internal/utils" ) type payloadInt8 struct { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go.tmpl similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go.tmpl index ac6d3d1..6066578 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.gen.go.tmpl +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.gen.go.tmpl @@ -17,8 +17,8 @@ package hashing import ( - "github.com/apache/arrow/go/v10/arrow/bitutil" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow/bitutil" + "github.com/apache/arrow/go/v12/internal/utils" ) {{range .In}} diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.go similarity index 81% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.go index 1a33420..c67b56b 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/hashing/xxh3_memo_table.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/hashing/xxh3_memo_table.go @@ -22,13 +22,10 @@ package hashing import ( "bytes" "math" - "math/bits" "reflect" "unsafe" - "github.com/apache/arrow/go/v10/parquet" - - "github.com/zeebo/xxh3" + "github.com/apache/arrow/go/v12/parquet" ) //go:generate go run ../../arrow/_tools/tmpl/main.go -i -data=types.tmpldata xxh3_memo_table.gen.go.tmpl @@ -76,78 +73,6 @@ type NumericMemoTable interface { WriteOutSubsetLE(offset int, out []byte) } -func hashInt(val uint64, alg uint64) uint64 { - // Two of xxhash's prime multipliers (which are chosen for their - // bit dispersion properties) - var multipliers = [2]uint64{11400714785074694791, 14029467366897019727} - // Multiplying by the prime number mixes the low bits into the high bits, - // then byte-swapping (which is a single CPU instruction) allows the - // combined high and low bits to participate in the initial hash table index. - return bits.ReverseBytes64(multipliers[alg] * val) -} - -func hashFloat32(val float32, alg uint64) uint64 { - // grab the raw byte pattern of the - bt := *(*[4]byte)(unsafe.Pointer(&val)) - x := uint64(*(*uint32)(unsafe.Pointer(&bt[0]))) - hx := hashInt(x, alg) - hy := hashInt(x, alg^1) - return 4 ^ hx ^ hy -} - -func hashFloat64(val float64, alg uint64) uint64 { - bt := *(*[8]byte)(unsafe.Pointer(&val)) - hx := hashInt(uint64(*(*uint32)(unsafe.Pointer(&bt[4]))), alg) - hy := hashInt(uint64(*(*uint32)(unsafe.Pointer(&bt[0]))), alg^1) - return 8 ^ hx ^ hy -} - -func hashString(val string, alg uint64) uint64 { - buf := *(*[]byte)(unsafe.Pointer(&val)) - (*reflect.SliceHeader)(unsafe.Pointer(&buf)).Cap = len(val) - return hash(buf, alg) -} - -// prime constants used for slightly increasing the hash quality further -var exprimes = [2]uint64{1609587929392839161, 9650029242287828579} - -// for smaller amounts of bytes this is faster than even calling into -// xxh3 to do the hash, so we specialize in order to get the benefits -// of that performance. -func hash(b []byte, alg uint64) uint64 { - n := uint32(len(b)) - if n <= 16 { - switch { - case n > 8: - // 8 < length <= 16 - // apply same principle as above, but as two 64-bit ints - x := *(*uint64)(unsafe.Pointer(&b[n-8])) - y := *(*uint64)(unsafe.Pointer(&b[0])) - hx := hashInt(x, alg) - hy := hashInt(y, alg^1) - return uint64(n) ^ hx ^ hy - case n >= 4: - // 4 < length <= 8 - // we can read the bytes as two overlapping 32-bit ints, apply different - // hash functions to each in parallel - // then xor the results - x := *(*uint32)(unsafe.Pointer(&b[n-4])) - y := *(*uint32)(unsafe.Pointer(&b[0])) - hx := hashInt(uint64(x), alg) - hy := hashInt(uint64(y), alg^1) - return uint64(n) ^ hx ^ hy - case n > 0: - x := uint32((n << 24) ^ (uint32(b[0]) << 16) ^ (uint32(b[n/2]) << 8) ^ uint32(b[n-1])) - return hashInt(uint64(x), alg) - case n == 0: - return 1 - } - } - - // increase differentiation enough to improve hash quality - return xxh3.Hash(b) + exprimes[alg] -} - const ( sentinel uint64 = 0 loadFactor int64 = 2 @@ -342,6 +267,11 @@ func (b *BinaryMemoTable) GetOrInsertNull() (idx int, found bool) { // helper function to get the offset into the builder data for a given // index value. func (b *BinaryMemoTable) findOffset(idx int) uintptr { + if b.builder.DataLen() == 0 { + // only empty strings, short circuit + return 0 + } + val := b.builder.Value(idx) for len(val) == 0 { idx++ @@ -381,6 +311,31 @@ func (b *BinaryMemoTable) CopyOffsetsSubset(start int, out []int32) { out[sz-start] = int32(b.builder.DataLen() - (int(delta) - int(first))) } +// CopyLargeOffsets copies the list of offsets into the passed in slice, the offsets +// being the start and end values of the underlying allocated bytes in the builder +// for the individual values of the table. out should be at least sized to Size()+1 +func (b *BinaryMemoTable) CopyLargeOffsets(out []int64) { + b.CopyLargeOffsetsSubset(0, out) +} + +// CopyLargeOffsetsSubset is like CopyOffsets but instead of copying all of the offsets, +// it gets a subset of the offsets in the table starting at the index provided by "start". +func (b *BinaryMemoTable) CopyLargeOffsetsSubset(start int, out []int64) { + if b.builder.Len() <= start { + return + } + + first := b.findOffset(0) + delta := b.findOffset(start) + sz := b.Size() + for i := start; i < sz; i++ { + offset := int64(b.findOffset(i) - delta) + out[i-start] = offset + } + + out[sz-start] = int64(b.builder.DataLen() - (int(delta) - int(first))) +} + // CopyValues copies the raw binary data bytes out, out should be a []byte // with at least ValuesSize bytes allocated to copy into. func (b *BinaryMemoTable) CopyValues(out interface{}) { @@ -428,19 +383,20 @@ func (b *BinaryMemoTable) CopyFixedWidthValues(start, width int, out []byte) { } var ( - leftOffset = b.findOffset(start) - nullOffset = b.findOffset(null) - leftSize = nullOffset - leftOffset + leftOffset = b.findOffset(start) + nullOffset = b.findOffset(null) + leftSize = nullOffset - leftOffset + rightOffset = leftOffset + uintptr(b.ValuesSize()) ) if leftSize > 0 { copy(out, b.builder.Value(start)[0:leftSize]) } - rightSize := b.ValuesSize() - int(nullOffset) + rightSize := rightOffset - nullOffset if rightSize > 0 { // skip the null fixed size value - copy(out[int(leftSize)+width:], b.builder.Value(int(nullOffset))[0:rightSize]) + copy(out[int(leftSize)+width:], b.builder.Value(null + 1)[0:rightSize]) } } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/Makefile b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/Makefile similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/Makefile rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/Makefile diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/buf_reader.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/buf_reader.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/buf_reader.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/buf_reader.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/endians_default.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/endians_default.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/endians_default.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/endians_default.go index 28ea6d8..5fd257f 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/endians_default.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/endians_default.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !s390x -// +build !s390x package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/endians_s390x.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/endians_s390x.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/endians_s390x.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/endians_s390x.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/math.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/math.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/math.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/math.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_amd64.go index 9c3c287..5fccddb 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_amd64.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_arm64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_arm64.go index 279488c..7404e95 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_arm64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_arm64.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_avx2_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_avx2_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_avx2_amd64.go index 3e4466f..af67262 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_avx2_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_avx2_amd64.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_avx2_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_avx2_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_avx2_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_neon_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_neon_arm64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_neon_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_neon_arm64.go index db89af4..f9d3c44 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_neon_arm64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_neon_arm64.go @@ -14,7 +14,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -// +build !noasm +//go:build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_neon_arm64.s b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_neon_arm64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_neon_arm64.s rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_neon_arm64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_noasm.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_noasm.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_noasm.go index c2030d2..19c24b5 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_noasm.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_noasm.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build noasm -// +build noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_ppc64le.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_ppc64le.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_ppc64le.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_ppc64le.go index ed1b0e6..ffd2db0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_ppc64le.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_ppc64le.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_s390x.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_s390x.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_s390x.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_s390x.go index ed1b0e6..ffd2db0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_s390x.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_s390x.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_sse4_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_sse4_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_sse4_amd64.go index c886cba..1e12a8d 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_sse4_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_sse4_amd64.go @@ -15,7 +15,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_sse4_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/min_max_sse4_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/min_max_sse4_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.tmpldata b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.tmpldata similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints.tmpldata rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints.tmpldata diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_amd64.go index 0f7c252..d4433d3 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_amd64.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_amd64.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_amd64.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_amd64.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_amd64.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_arm64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_arm64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_arm64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_arm64.go index 2650ceb..cc957cd 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_arm64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_arm64.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_avx2_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_avx2_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_avx2_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_avx2_amd64.go index f2c7335..f1421dd 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_avx2_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_avx2_amd64.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_avx2_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_avx2_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_avx2_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_avx2_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_def.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_def.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_def.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_def.go index 7d7bff7..c9e1c84 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_def.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_def.go @@ -19,7 +19,7 @@ package utils import ( "errors" - "github.com/apache/arrow/go/v10/arrow" + "github.com/apache/arrow/go/v12/arrow" ) //go:generate go run ../../arrow/_tools/tmpl -i -data=transpose_ints.tmpldata -d arch=avx2 transpose_ints_simd.go.tmpl=transpose_ints_avx2_amd64.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_noasm.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_noasm.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_noasm.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_noasm.go index b385427..461aaf3 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_noasm.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_noasm.go @@ -16,8 +16,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build noasm -// +build noasm +//go:build noasm || (!amd64 && !arm64 && !s390x && !ppc64le) package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_noasm.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_noasm.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_noasm.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_noasm.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_ppc64le.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_ppc64le.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_ppc64le.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_ppc64le.go index 2650ceb..cc957cd 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_ppc64le.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_ppc64le.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_s390x.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_s390x.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_s390x.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_s390x.go index 2650ceb..cc957cd 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_s390x.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_s390x.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_s390x.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_s390x.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_s390x.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_s390x.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_simd.go.tmpl b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_simd.go.tmpl similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_simd.go.tmpl rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_simd.go.tmpl diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_sse4_amd64.go b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_sse4_amd64.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_sse4_amd64.go rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_sse4_amd64.go index edaa27d..241ca74 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_sse4_amd64.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_sse4_amd64.go @@ -17,7 +17,6 @@ // limitations under the License. //go:build !noasm -// +build !noasm package utils diff --git a/ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_sse4_amd64.s b/ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_sse4_amd64.s similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/internal/utils/transpose_ints_sse4_amd64.s rename to ext/vendor/github.com/apache/arrow/go/v12/internal/utils/transpose_ints_sse4_amd64.s diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/.gitignore b/ext/vendor/github.com/apache/arrow/go/v12/parquet/.gitignore similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/.gitignore rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/.gitignore diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/brotli.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/brotli.go similarity index 94% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/brotli.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/brotli.go index 5494cba..864cde2 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/brotli.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/brotli.go @@ -19,16 +19,15 @@ package compress import ( "bytes" "io" - "io/ioutil" "github.com/andybalholm/brotli" - "github.com/apache/arrow/go/v10/parquet/internal/debug" + "github.com/apache/arrow/go/v12/parquet/internal/debug" ) type brotliCodec struct{} func (brotliCodec) NewReader(r io.Reader) io.ReadCloser { - return ioutil.NopCloser(brotli.NewReader(r)) + return io.NopCloser(brotli.NewReader(r)) } func (b brotliCodec) EncodeLevel(dst, src []byte, level int) []byte { @@ -74,7 +73,7 @@ func (brotliCodec) Decode(dst, src []byte) []byte { return dst[:sofar] } - dst, err := ioutil.ReadAll(rdr) + dst, err := io.ReadAll(rdr) if err != nil { panic(err) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/compress.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/compress.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/compress.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/compress.go index c81b8c4..6bc0f1e 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/compress.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/compress.go @@ -22,9 +22,8 @@ import ( "compress/flate" "fmt" "io" - "io/ioutil" - "github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet" + "github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet" ) // Compression is an alias to the thrift compression codec enum type for easy use @@ -98,7 +97,7 @@ type nocodec struct{} func (nocodec) NewReader(r io.Reader) io.ReadCloser { ret, ok := r.(io.ReadCloser) if !ok { - return ioutil.NopCloser(r) + return io.NopCloser(r) } return ret } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/gzip.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/gzip.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/gzip.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/gzip.go index c751438..31f1729 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/gzip.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/gzip.go @@ -20,7 +20,6 @@ import ( "bytes" "fmt" "io" - "io/ioutil" "github.com/klauspost/compress/gzip" ) @@ -49,7 +48,7 @@ func (gzipCodec) Decode(dst, src []byte) []byte { return dst[:n] } - dst, err = ioutil.ReadAll(rdr) + dst, err = io.ReadAll(rdr) if err != nil { panic(err) } diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/snappy.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/snappy.go similarity index 96% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/snappy.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/snappy.go index 6468df7..b7fa114 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/snappy.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/snappy.go @@ -18,7 +18,6 @@ package compress import ( "io" - "io/ioutil" "github.com/golang/snappy" ) @@ -42,7 +41,7 @@ func (snappyCodec) Decode(dst, src []byte) []byte { } func (snappyCodec) NewReader(r io.Reader) io.ReadCloser { - return ioutil.NopCloser(snappy.NewReader(r)) + return io.NopCloser(snappy.NewReader(r)) } func (snappyCodec) CompressBound(len int64) int64 { diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/zstd.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/zstd.go similarity index 98% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/zstd.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/zstd.go index 1640a0b..5db24f0 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/compress/zstd.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/compress/zstd.go @@ -20,7 +20,7 @@ import ( "io" "sync" - "github.com/apache/arrow/go/v10/parquet/internal/debug" + "github.com/apache/arrow/go/v12/parquet/internal/debug" "github.com/klauspost/compress/zstd" ) diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/doc.go similarity index 90% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/doc.go index c618361..c387599 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/doc.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/doc.go @@ -20,15 +20,18 @@ // shredding and assembly algorithm to accommodate complex data structures which // can then be used to efficiently store the data. // +// While the go.mod states go1.18, everything here should be compatible +// with go versions 1.17 and 1.16. +// // This implementation is a native go implementation for reading and writing the // parquet file format. // // Install // // You can download the library and cli utilities via: -// go get -u github.com/apache/arrow/go/v10/parquet -// go install github.com/apache/arrow/go/v10/parquet/cmd/parquet_reader@latest -// go install github.com/apache/arrow/go/v10/parquet/cmd/parquet_schema@latest +// go get -u github.com/apache/arrow/go/v12/parquet +// go install github.com/apache/arrow/go/v12/parquet/cmd/parquet_reader@latest +// go install github.com/apache/arrow/go/v12/parquet/cmd/parquet_schema@latest // // Modules // diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/encryption_properties.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/encryption_properties.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/encryption_properties.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/encryption_properties.go index e589ddc..660ee78 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/encryption_properties.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/encryption_properties.go @@ -20,7 +20,7 @@ import ( "crypto/rand" "unicode/utf8" - format "github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet" + format "github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet" ) // Constants that will be used as the default values with encryption/decryption diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/assert_off.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/assert_off.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/assert_off.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/assert_off.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/assert_on.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/assert_on.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/assert_on.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/assert_on.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/doc.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/doc.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/doc.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/doc.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/log_off.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/log_off.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/log_off.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/log_off.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/log_on.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/log_on.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/debug/log_on.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/debug/log_on.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/GoUnusedProtection__.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/GoUnusedProtection__.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/GoUnusedProtection__.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/GoUnusedProtection__.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/parquet-consts.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/parquet-consts.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/parquet-consts.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/parquet-consts.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/parquet.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/parquet.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/parquet.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/parquet.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/staticcheck.conf b/ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/staticcheck.conf similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet/staticcheck.conf rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet/staticcheck.conf diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/reader_properties.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/reader_properties.go similarity index 97% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/reader_properties.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/reader_properties.go index 0e80118..4700e51 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/reader_properties.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/reader_properties.go @@ -21,8 +21,8 @@ import ( "fmt" "io" - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/internal/utils" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/internal/utils" ) // ReaderProperties are used to define how the file reader will handle buffering and allocating buffers diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/tools.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/tools.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/tools.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/tools.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/types.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/types.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/types.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/types.go index cbdcf16..0e6e6ae 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/types.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/types.go @@ -24,8 +24,8 @@ import ( "time" "unsafe" - "github.com/apache/arrow/go/v10/arrow" - format "github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet" + "github.com/apache/arrow/go/v12/arrow" + format "github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet" ) const ( diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/version_string.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/version_string.go similarity index 100% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/version_string.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/version_string.go diff --git a/ext/vendor/github.com/apache/arrow/go/v10/parquet/writer_properties.go b/ext/vendor/github.com/apache/arrow/go/v12/parquet/writer_properties.go similarity index 99% rename from ext/vendor/github.com/apache/arrow/go/v10/parquet/writer_properties.go rename to ext/vendor/github.com/apache/arrow/go/v12/parquet/writer_properties.go index 6134d5f..3faca39 100644 --- a/ext/vendor/github.com/apache/arrow/go/v10/parquet/writer_properties.go +++ b/ext/vendor/github.com/apache/arrow/go/v12/parquet/writer_properties.go @@ -17,8 +17,8 @@ package parquet import ( - "github.com/apache/arrow/go/v10/arrow/memory" - "github.com/apache/arrow/go/v10/parquet/compress" + "github.com/apache/arrow/go/v12/arrow/memory" + "github.com/apache/arrow/go/v12/parquet/compress" ) // Constants for default property values used for the default reader, writer and column props. @@ -46,7 +46,7 @@ const ( DefaultStatsEnabled = true // If the stats are larger than 4K the writer will skip writing them out anyways. DefaultMaxStatsSize int64 = 4096 - DefaultCreatedBy = "parquet-go version 10.0.1" + DefaultCreatedBy = "parquet-go version 12.0.1" DefaultRootName = "schema" ) diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt b/ext/vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt index 5f14d11..899129e 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/NOTICE.txt @@ -1,3 +1,3 @@ AWS SDK for Go -Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Copyright 2014-2015 Stripe, Inc. diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go index 9e95252..781ac0a 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credential_cache.go @@ -178,6 +178,12 @@ func (p *CredentialsCache) Invalidate() { p.creds.Store((*Credentials)(nil)) } +// IsCredentialsProvider returns whether credential provider wrapped by CredentialsCache +// matches the target provider type. +func (p *CredentialsCache) IsCredentialsProvider(target CredentialsProvider) bool { + return IsCredentialsProvider(p.provider, target) +} + // HandleFailRefreshCredentialsCacheStrategy is an interface for // CredentialsCache to allow CredentialsProvider how failed to refresh // credentials is handled. diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go index 24c8ce4..714d4ad 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/credentials.go @@ -3,6 +3,7 @@ package aws import ( "context" "fmt" + "reflect" "time" "github.com/aws/aws-sdk-go-v2/internal/sdk" @@ -129,3 +130,41 @@ type CredentialsProviderFunc func(context.Context) (Credentials, error) func (fn CredentialsProviderFunc) Retrieve(ctx context.Context) (Credentials, error) { return fn(ctx) } + +type isCredentialsProvider interface { + IsCredentialsProvider(CredentialsProvider) bool +} + +// IsCredentialsProvider returns whether the target CredentialProvider is the same type as provider when comparing the +// implementation type. +// +// If provider has a method IsCredentialsProvider(CredentialsProvider) bool it will be responsible for validating +// whether target matches the credential provider type. +// +// When comparing the CredentialProvider implementations provider and target for equality, the following rules are used: +// +// If provider is of type T and target is of type V, true if type *T is the same as type *V, otherwise false +// If provider is of type *T and target is of type V, true if type *T is the same as type *V, otherwise false +// If provider is of type T and target is of type *V, true if type *T is the same as type *V, otherwise false +// If provider is of type *T and target is of type *V,true if type *T is the same as type *V, otherwise false +func IsCredentialsProvider(provider, target CredentialsProvider) bool { + if target == nil || provider == nil { + return provider == target + } + + if x, ok := provider.(isCredentialsProvider); ok { + return x.IsCredentialsProvider(target) + } + + targetType := reflect.TypeOf(target) + if targetType.Kind() != reflect.Ptr { + targetType = reflect.PtrTo(targetType) + } + + providerType := reflect.TypeOf(provider) + if providerType.Kind() != reflect.Ptr { + providerType = reflect.PtrTo(providerType) + } + + return targetType.AssignableTo(providerType) +} diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go index 5ca6826..472cb94 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/go_module_metadata.go @@ -3,4 +3,4 @@ package aws // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.16.16" +const goModuleVersion = "1.17.7" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md index 402849c..c95d493 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.4.10 (2022-12-02) + +* No change notes available for this release. + +# v1.4.9 (2022-10-24) + +* No change notes available for this release. + # v1.4.8 (2022-09-14) * No change notes available for this release. diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go index 048add0..0ca5492 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/go_module_metadata.go @@ -3,4 +3,4 @@ package eventstream // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.4.8" +const goModuleVersion = "1.4.10" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go index c228f7d..6975ce6 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/protocol/xml/error_utils.go @@ -21,26 +21,18 @@ func GetErrorResponseComponents(r io.Reader, noErrorWrapping bool) (ErrorCompone if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF { return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err) } - return ErrorComponents{ - Code: errResponse.Code, - Message: errResponse.Message, - RequestID: errResponse.RequestID, - }, nil + return ErrorComponents(errResponse), nil } var errResponse wrappedErrorResponse if err := xml.NewDecoder(r).Decode(&errResponse); err != nil && err != io.EOF { return ErrorComponents{}, fmt.Errorf("error while deserializing xml error response: %w", err) } - return ErrorComponents{ - Code: errResponse.Code, - Message: errResponse.Message, - RequestID: errResponse.RequestID, - }, nil + return ErrorComponents(errResponse), nil } // noWrappedErrorResponse represents the error response body with -// no internal ... +// wrapped within Error type wrappedErrorResponse struct { Code string `xml:"Error>Code"` Message string `xml:"Error>Message"` diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go index 12a3f0c..d89090a 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/ratelimit/token_rate_limit.go @@ -30,10 +30,6 @@ func NewTokenRateLimit(tokens uint) *TokenRateLimit { } } -func isTimeoutError(error) bool { - return false -} - type canceledError struct { Err error } diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go index 3326289..822fc92 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/retry/middleware.go @@ -11,7 +11,6 @@ import ( awsmiddle "github.com/aws/aws-sdk-go-v2/aws/middleware" "github.com/aws/aws-sdk-go-v2/internal/sdk" "github.com/aws/smithy-go/logging" - "github.com/aws/smithy-go/middleware" smithymiddle "github.com/aws/smithy-go/middleware" "github.com/aws/smithy-go/transport/http" ) @@ -292,7 +291,7 @@ type retryMetadataKey struct{} // Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues // to clear all stack values. func getRetryMetadata(ctx context.Context) (metadata retryMetadata, ok bool) { - metadata, ok = middleware.GetStackValue(ctx, retryMetadataKey{}).(retryMetadata) + metadata, ok = smithymiddle.GetStackValue(ctx, retryMetadataKey{}).(retryMetadata) return metadata, ok } @@ -301,7 +300,7 @@ func getRetryMetadata(ctx context.Context) (metadata retryMetadata, ok bool) { // Scoped to stack values. Use github.com/aws/smithy-go/middleware#ClearStackValues // to clear all stack values. func setRetryMetadata(ctx context.Context, metadata retryMetadata) context.Context { - return middleware.WithStackValue(ctx, retryMetadataKey{}, metadata) + return smithymiddle.WithStackValue(ctx, retryMetadataKey{}, metadata) } // AddRetryMiddlewaresOptions is the set of options that can be passed to diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go index 85a1d8f..64c4c48 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/internal/v4/headers.go @@ -7,6 +7,7 @@ var IgnoredHeaders = Rules{ "Authorization": struct{}{}, "User-Agent": struct{}{}, "X-Amzn-Trace-Id": struct{}{}, + "Expect": struct{}{}, }, }, } diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go index db8377a..749bda6 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/aws/signer/v4/middleware.go @@ -371,13 +371,8 @@ func haveCredentialProvider(p aws.CredentialsProvider) bool { if p == nil { return false } - switch p.(type) { - case aws.AnonymousCredentials, - *aws.AnonymousCredentials: - return false - } - return true + return !aws.IsCredentialsProvider(p, (*aws.AnonymousCredentials)(nil)) } type payloadHashKey struct{} diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md index e16d30c..7a0981d 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/CHANGELOG.md @@ -1,3 +1,97 @@ +# v1.13.18 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.17 (2023-03-14) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.16 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.15 (2023-02-22) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.14 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.13 (2023-02-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.12 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.11 (2023-02-01) + +* No change notes available for this release. + +# v1.13.10 (2023-01-25) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.9 (2023-01-23) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.8 (2023-01-05) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.7 (2022-12-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.6 (2022-12-19) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.5 (2022-12-15) + +* **Bug Fix**: Unify logic between shared config and in finding home directory +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.4 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.3 (2022-11-22) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.2 (2022-11-17) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.1 (2022-11-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.0 (2022-11-11) + +* **Announcement**: When using the SSOTokenProvider, a previous implementation incorrectly compensated for invalid SSOTokenProvider configurations in the shared profile. This has been fixed via PR #1903 and tracked in issue #1846 +* **Feature**: Adds token refresh support (via SSOTokenProvider) when using the SSOCredentialProvider + +# v1.12.24 (2022-11-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.12.23 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.12.22 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.12.21 (2022-09-30) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.12.20 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go index db136bf..c715edb 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/credentials/go_module_metadata.go @@ -3,4 +3,4 @@ package credentials // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.12.20" +const goModuleVersion = "1.13.18" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md index 99808e8..d36e93a 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/CHANGELOG.md @@ -1,3 +1,107 @@ +# v1.11.59 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.58 (2023-03-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.57 (2023-03-14) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.56 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.55 (2023-02-22) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.54 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.53 (2023-02-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.52 (2023-02-14) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.51 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.50 (2023-02-01) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.49 (2023-01-25) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.48 (2023-01-23) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.47 (2023-01-05) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.46 (2022-12-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.45 (2022-12-19) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.44 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.43 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.42 (2022-11-22) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.41 (2022-11-17) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.40 (2022-11-16) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.39 (2022-11-11) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.38 (2022-11-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.37 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.36 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.35 (2022-10-19) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.11.34 (2022-09-30) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.11.33 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go index 6f51b8d..3cd6c2d 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/feature/s3/manager/go_module_metadata.go @@ -3,4 +3,4 @@ package manager // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.11.33" +const goModuleVersion = "1.11.59" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/path_value.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/path_value.go index 7e69bd5..58ef438 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/path_value.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/awsutil/path_value.go @@ -70,7 +70,7 @@ func rValuesAtPath(v interface{}, path string, createPath, caseSensitive, nilTer value = value.FieldByNameFunc(func(name string) bool { if c == name { return true - } else if !caseSensitive && strings.ToLower(name) == strings.ToLower(c) { + } else if !caseSensitive && strings.EqualFold(name, c) { return true } return false diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md index 56750f8..e113795 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/CHANGELOG.md @@ -1,3 +1,35 @@ +# v1.1.31 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.30 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.29 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.28 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.27 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.26 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.25 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.24 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.1.23 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go index 99eaea1..47e3ce3 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/configsources/go_module_metadata.go @@ -3,4 +3,4 @@ package configsources // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.1.23" +const goModuleVersion = "1.1.31" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md index f715bf1..8bed211 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/CHANGELOG.md @@ -1,3 +1,35 @@ +# v2.4.25 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.24 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.23 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.22 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.21 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.20 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.19 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v2.4.18 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v2.4.17 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go index 4c105f8..0ebdc4a 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/endpoints/v2/go_module_metadata.go @@ -3,4 +3,4 @@ package endpoints // goModuleVersion is the tagged release for this module -const goModuleVersion = "2.4.17" +const goModuleVersion = "2.4.25" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md index 2979f8b..ab404bb 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/CHANGELOG.md @@ -1,3 +1,39 @@ +# v1.0.23 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.22 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.21 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.20 (2023-02-14) + +* No change notes available for this release. + +# v1.0.19 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.18 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.17 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.16 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.0.15 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.0.14 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go index d4c420f..ff822ea 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/internal/v4a/go_module_metadata.go @@ -3,4 +3,4 @@ package v4a // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.0.14" +const goModuleVersion = "1.0.23" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md index dec755d..b3998b2 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.9.11 (2022-12-02) + +* No change notes available for this release. + +# v1.9.10 (2022-10-24) + +* No change notes available for this release. + # v1.9.9 (2022-09-14) * No change notes available for this release. diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go index 04ff9fb..f49fa92 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding/go_module_metadata.go @@ -3,4 +3,4 @@ package acceptencoding // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.9.9" +const goModuleVersion = "1.9.11" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md index 90efb09..5c2fb5a 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/CHANGELOG.md @@ -1,3 +1,35 @@ +# v1.1.26 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.25 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.24 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.23 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.22 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.21 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.20 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.1.19 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.1.18 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go index c95af9a..29c440e 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/checksum/go_module_metadata.go @@ -3,4 +3,4 @@ package checksum // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.1.18" +const goModuleVersion = "1.1.26" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md index f19fdf9..fc8eb85 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/CHANGELOG.md @@ -1,3 +1,35 @@ +# v1.9.25 (2023-03-21) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.24 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.23 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.22 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.21 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.20 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.19 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.9.18 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.9.17 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go index da09a14..0aa7a79 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/presigned-url/go_module_metadata.go @@ -3,4 +3,4 @@ package presignedurl // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.9.17" +const goModuleVersion = "1.9.25" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md index ccc3c74..02a44bf 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/CHANGELOG.md @@ -1,3 +1,36 @@ +# v1.14.0 (2023-03-21) + +* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.24 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.23 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.22 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.21 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.20 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.19 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.13.18 (2022-10-21) + +* **Dependency Update**: Updated to the latest SDK module versions + # v1.13.17 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go index 3ebafc3..90cc9b2 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/go_module_metadata.go @@ -3,4 +3,4 @@ package s3shared // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.13.17" +const goModuleVersion = "1.14.0" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go new file mode 100644 index 0000000..0f43ec0 --- /dev/null +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/internal/s3shared/s3100continue.go @@ -0,0 +1,54 @@ +package s3shared + +import ( + "context" + "fmt" + "github.com/aws/smithy-go/middleware" + smithyhttp "github.com/aws/smithy-go/transport/http" +) + +const s3100ContinueID = "S3100Continue" +const default100ContinueThresholdBytes int64 = 1024 * 1024 * 2 + +// Add100Continue add middleware, which adds {Expect: 100-continue} header for s3 client HTTP PUT request larger than 2MB +// or with unknown size streaming bodies, during operation builder step +func Add100Continue(stack *middleware.Stack, continueHeaderThresholdBytes int64) error { + return stack.Build.Add(&s3100Continue{ + continueHeaderThresholdBytes: continueHeaderThresholdBytes, + }, middleware.After) +} + +type s3100Continue struct { + continueHeaderThresholdBytes int64 +} + +// ID returns the middleware identifier +func (m *s3100Continue) ID() string { + return s3100ContinueID +} + +func (m *s3100Continue) HandleBuild( + ctx context.Context, in middleware.BuildInput, next middleware.BuildHandler, +) ( + out middleware.BuildOutput, metadata middleware.Metadata, err error, +) { + sizeLimit := default100ContinueThresholdBytes + switch { + case m.continueHeaderThresholdBytes == -1: + return next.HandleBuild(ctx, in) + case m.continueHeaderThresholdBytes > 0: + sizeLimit = m.continueHeaderThresholdBytes + default: + } + + req, ok := in.Request.(*smithyhttp.Request) + if !ok { + return out, metadata, fmt.Errorf("unknown request type %T", req) + } + + if req.ContentLength == -1 || (req.ContentLength == 0 && req.Body != nil) || req.ContentLength >= sizeLimit { + req.Header.Set("Expect", "100-continue") + } + + return next.HandleBuild(ctx, in) +} diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md index d81bbdb..6b5a46f 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/CHANGELOG.md @@ -1,3 +1,70 @@ +# v1.31.0 (2023-03-21) + +* **Feature**: port v1 sdk 100-continue http header customization for s3 PutObject/UploadPart request and enable user config +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.30.6 (2023-03-10) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.30.5 (2023-02-22) + +* **Bug Fix**: Prevent nil pointer dereference when retrieving error codes. + +# v1.30.4 (2023-02-20) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.30.3 (2023-02-14) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.30.2 (2023-02-03) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.30.1 (2023-01-23) + +* No change notes available for this release. + +# v1.30.0 (2023-01-05) + +* **Feature**: Add `ErrorCodeOverride` field to all error structs (aws/smithy-go#401). + +# v1.29.6 (2022-12-15) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.29.5 (2022-12-02) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.29.4 (2022-11-22) + +* No change notes available for this release. + +# v1.29.3 (2022-11-16) + +* No change notes available for this release. + +# v1.29.2 (2022-11-10) + +* No change notes available for this release. + +# v1.29.1 (2022-10-24) + +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.29.0 (2022-10-21) + +* **Feature**: S3 on Outposts launches support for automatic bucket-style alias. You can use the automatic access point alias instead of an access point ARN for any object-level operation in an Outposts bucket. +* **Bug Fix**: The SDK client has been updated to utilize the `aws.IsCredentialsProvider` function for determining if `aws.AnonymousCredentials` has been configured for the `CredentialProvider`. +* **Dependency Update**: Updated to the latest SDK module versions + +# v1.28.0 (2022-10-19) + +* **Feature**: Updates internal logic for constructing API endpoints. We have added rule-based endpoints and internal model parameters. + # v1.27.11 (2022-09-20) * **Dependency Update**: Updated to the latest SDK module versions diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go index 790cc43..e462917 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_client.go @@ -80,6 +80,11 @@ type Options struct { // Configures the events that will be sent to the configured logger. ClientLogMode aws.ClientLogMode + // The threshold ContentLength in bytes for HTTP PUT request to receive {Expect: + // 100-continue} header. Setting to -1 will disable adding the Expect header to + // requests; setting to 0 will set the threshold to default 2MB + ContinueHeaderThresholdBytes int64 + // The credentials object to use when signing requests. Credentials aws.CredentialsProvider @@ -487,8 +492,7 @@ func resolveCredentialProvider(o *Options) { return } - switch o.Credentials.(type) { - case aws.AnonymousCredentials, *aws.AnonymousCredentials: + if aws.IsCredentialsProvider(o.Credentials, (*aws.AnonymousCredentials)(nil)) { return } @@ -531,6 +535,10 @@ func addMetadataRetrieverMiddleware(stack *middleware.Stack) error { return s3shared.AddMetadataRetrieverMiddleware(stack) } +func add100Continue(stack *middleware.Stack, options Options) error { + return s3shared.Add100Continue(stack, options.ContinueHeaderThresholdBytes) +} + // ComputedInputChecksumsMetadata provides information about the algorithms used to // compute the checksum(s) of the input payload. type ComputedInputChecksumsMetadata struct { diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go index 6433640..aa13f0e 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_PutObject.go @@ -500,6 +500,9 @@ func (c *Client) addOperationPutObjectMiddlewares(stack *middleware.Stack, optio if err = addMetadataRetrieverMiddleware(stack); err != nil { return err } + if err = add100Continue(stack, options); err != nil { + return err + } if err = addPutObjectInputChecksumMiddlewares(stack, options); err != nil { return err } diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go index 2617bed..18d30a1 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/api_op_UploadPart.go @@ -383,6 +383,9 @@ func (c *Client) addOperationUploadPartMiddlewares(stack *middleware.Stack, opti if err = addMetadataRetrieverMiddleware(stack); err != nil { return err } + if err = add100Continue(stack, options); err != nil { + return err + } if err = addUploadPartInputChecksumMiddlewares(stack, options); err != nil { return err } diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go index a791841..1e21a6c 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/go_module_metadata.go @@ -3,4 +3,4 @@ package s3 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.27.11" +const goModuleVersion = "1.31.0" diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/doc.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/doc.go index 9a392d1..e1d1cbe 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/doc.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations/doc.go @@ -46,7 +46,6 @@ an request is serialized, and removes the serialized bucket name from request pa Middleware layering: - Initialize : HTTP Request -> ARN Lookup -> Input-Validation -> Serialize step Serialize : HTTP Request -> Process ARN -> operation serializer -> Update-Endpoint customization -> Remove-Bucket -> next middleware diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go index 4b8457e..dc0215c 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints/endpoints.go @@ -195,6 +195,15 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "s3.dualstack.ap-south-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "ap-south-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.ap-south-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "ap-southeast-1", }: endpoints.Endpoint{ @@ -230,6 +239,15 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "s3.dualstack.ap-southeast-3.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "ap-southeast-4", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "ap-southeast-4", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.ap-southeast-4.amazonaws.com", + }, endpoints.EndpointKey{ Region: "aws-global", }: endpoints.Endpoint{ @@ -269,6 +287,15 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "s3.dualstack.eu-central-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "eu-central-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-central-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.eu-central-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-north-1", }: endpoints.Endpoint{}, @@ -287,6 +314,15 @@ var defaultPartitions = endpoints.Partitions{ }: { Hostname: "s3.dualstack.eu-south-1.amazonaws.com", }, + endpoints.EndpointKey{ + Region: "eu-south-2", + }: endpoints.Endpoint{}, + endpoints.EndpointKey{ + Region: "eu-south-2", + Variant: endpoints.DualStackVariant, + }: { + Hostname: "s3.dualstack.eu-south-2.amazonaws.com", + }, endpoints.EndpointKey{ Region: "eu-west-1", }: endpoints.Endpoint{ diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go index 5b52540..79c5e68 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/enums.go @@ -88,6 +88,7 @@ const ( BucketLocationConstraintApSouth1 BucketLocationConstraint = "ap-south-1" BucketLocationConstraintApSoutheast1 BucketLocationConstraint = "ap-southeast-1" BucketLocationConstraintApSoutheast2 BucketLocationConstraint = "ap-southeast-2" + BucketLocationConstraintApSoutheast3 BucketLocationConstraint = "ap-southeast-3" BucketLocationConstraintCaCentral1 BucketLocationConstraint = "ca-central-1" BucketLocationConstraintCnNorth1 BucketLocationConstraint = "cn-north-1" BucketLocationConstraintCnNorthwest1 BucketLocationConstraint = "cn-northwest-1" @@ -120,6 +121,7 @@ func (BucketLocationConstraint) Values() []BucketLocationConstraint { "ap-south-1", "ap-southeast-1", "ap-southeast-2", + "ap-southeast-3", "ca-central-1", "cn-north-1", "cn-northwest-1", diff --git a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go index 8c3a386..18134c5 100644 --- a/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go +++ b/ext/vendor/github.com/aws/aws-sdk-go-v2/service/s3/types/errors.go @@ -12,6 +12,8 @@ import ( type BucketAlreadyExists struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -24,7 +26,12 @@ func (e *BucketAlreadyExists) ErrorMessage() string { } return *e.Message } -func (e *BucketAlreadyExists) ErrorCode() string { return "BucketAlreadyExists" } +func (e *BucketAlreadyExists) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "BucketAlreadyExists" + } + return *e.ErrorCodeOverride +} func (e *BucketAlreadyExists) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The bucket you tried to create already exists, and you own it. Amazon S3 returns @@ -35,6 +42,8 @@ func (e *BucketAlreadyExists) ErrorFault() smithy.ErrorFault { return smithy.Fau type BucketAlreadyOwnedByYou struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -47,13 +56,20 @@ func (e *BucketAlreadyOwnedByYou) ErrorMessage() string { } return *e.Message } -func (e *BucketAlreadyOwnedByYou) ErrorCode() string { return "BucketAlreadyOwnedByYou" } +func (e *BucketAlreadyOwnedByYou) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "BucketAlreadyOwnedByYou" + } + return *e.ErrorCodeOverride +} func (e *BucketAlreadyOwnedByYou) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // Object is archived and inaccessible until restored. type InvalidObjectState struct { Message *string + ErrorCodeOverride *string + StorageClass StorageClass AccessTier IntelligentTieringAccessTier @@ -69,13 +85,20 @@ func (e *InvalidObjectState) ErrorMessage() string { } return *e.Message } -func (e *InvalidObjectState) ErrorCode() string { return "InvalidObjectState" } +func (e *InvalidObjectState) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "InvalidObjectState" + } + return *e.ErrorCodeOverride +} func (e *InvalidObjectState) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The specified bucket does not exist. type NoSuchBucket struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -88,13 +111,20 @@ func (e *NoSuchBucket) ErrorMessage() string { } return *e.Message } -func (e *NoSuchBucket) ErrorCode() string { return "NoSuchBucket" } +func (e *NoSuchBucket) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "NoSuchBucket" + } + return *e.ErrorCodeOverride +} func (e *NoSuchBucket) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The specified key does not exist. type NoSuchKey struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -107,13 +137,20 @@ func (e *NoSuchKey) ErrorMessage() string { } return *e.Message } -func (e *NoSuchKey) ErrorCode() string { return "NoSuchKey" } +func (e *NoSuchKey) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "NoSuchKey" + } + return *e.ErrorCodeOverride +} func (e *NoSuchKey) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The specified multipart upload does not exist. type NoSuchUpload struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -126,13 +163,20 @@ func (e *NoSuchUpload) ErrorMessage() string { } return *e.Message } -func (e *NoSuchUpload) ErrorCode() string { return "NoSuchUpload" } +func (e *NoSuchUpload) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "NoSuchUpload" + } + return *e.ErrorCodeOverride +} func (e *NoSuchUpload) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The specified content does not exist. type NotFound struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -145,13 +189,20 @@ func (e *NotFound) ErrorMessage() string { } return *e.Message } -func (e *NotFound) ErrorCode() string { return "NotFound" } +func (e *NotFound) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "NotFound" + } + return *e.ErrorCodeOverride +} func (e *NotFound) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // This action is not allowed against this storage tier. type ObjectAlreadyInActiveTierError struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -164,7 +215,12 @@ func (e *ObjectAlreadyInActiveTierError) ErrorMessage() string { } return *e.Message } -func (e *ObjectAlreadyInActiveTierError) ErrorCode() string { return "ObjectAlreadyInActiveTierError" } +func (e *ObjectAlreadyInActiveTierError) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ObjectAlreadyInActiveTierError" + } + return *e.ErrorCodeOverride +} func (e *ObjectAlreadyInActiveTierError) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } // The source object of the COPY action is not in the active tier and is only @@ -172,6 +228,8 @@ func (e *ObjectAlreadyInActiveTierError) ErrorFault() smithy.ErrorFault { return type ObjectNotInActiveTierError struct { Message *string + ErrorCodeOverride *string + noSmithyDocumentSerde } @@ -184,5 +242,10 @@ func (e *ObjectNotInActiveTierError) ErrorMessage() string { } return *e.Message } -func (e *ObjectNotInActiveTierError) ErrorCode() string { return "ObjectNotInActiveTierError" } +func (e *ObjectNotInActiveTierError) ErrorCode() string { + if e == nil || e.ErrorCodeOverride == nil { + return "ObjectNotInActiveTierError" + } + return *e.ErrorCodeOverride +} func (e *ObjectNotInActiveTierError) ErrorFault() smithy.ErrorFault { return smithy.FaultClient } diff --git a/ext/vendor/github.com/aws/smithy-go/CHANGELOG.md b/ext/vendor/github.com/aws/smithy-go/CHANGELOG.md index a608e2b..1e23bf9 100644 --- a/ext/vendor/github.com/aws/smithy-go/CHANGELOG.md +++ b/ext/vendor/github.com/aws/smithy-go/CHANGELOG.md @@ -1,3 +1,13 @@ +# Release (2022-12-02) + +* No change notes available for this release. + +# Release (2022-10-24) + +## Module Highlights +* `github.com/aws/smithy-go`: v1.13.4 + * **Bug Fix**: fixed document type checking for encoding nested types + # Release (2022-09-14) * No change notes available for this release. diff --git a/ext/vendor/github.com/aws/smithy-go/Makefile b/ext/vendor/github.com/aws/smithy-go/Makefile index b8c6574..4b3c209 100644 --- a/ext/vendor/github.com/aws/smithy-go/Makefile +++ b/ext/vendor/github.com/aws/smithy-go/Makefile @@ -14,6 +14,9 @@ REPOTOOLS_CMD_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION} REPOTOOLS_CMD_TAG_RELEASE = ${REPOTOOLS_MODULE}/cmd/tagrelease@${REPOTOOLS_VERSION} REPOTOOLS_CMD_MODULE_VERSION = ${REPOTOOLS_MODULE}/cmd/moduleversion@${REPOTOOLS_VERSION} +UNIT_TEST_TAGS= +BUILD_TAGS= + ifneq ($(PRE_RELEASE_VERSION),) REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS += -preview=${PRE_RELEASE_VERSION} endif @@ -27,6 +30,37 @@ smithy-build: smithy-clean: cd codegen && ./gradlew clean +################## +# Linting/Verify # +################## +.PHONY: verify vet + +verify: vet + +vet: + go vet ${BUILD_TAGS} --all ./... + +################ +# Unit Testing # +################ +.PHONY: unit unit-race unit-test unit-race-test + +unit: verify + go vet ${BUILD_TAGS} --all ./... && \ + go test ${BUILD_TAGS} ${RUN_NONE} ./... && \ + go test -timeout=1m ${UNIT_TEST_TAGS} ./... + +unit-race: verify + go vet ${BUILD_TAGS} --all ./... && \ + go test ${BUILD_TAGS} ${RUN_NONE} ./... && \ + go test -timeout=1m ${UNIT_TEST_TAGS} -race -cpu=4 ./... + +unit-test: verify + go test -timeout=1m ${UNIT_TEST_TAGS} ./... + +unit-race-test: verify + go test -timeout=1m ${UNIT_TEST_TAGS} -race -cpu=4 ./... + ##################### # Release Process # ##################### diff --git a/ext/vendor/github.com/aws/smithy-go/README.md b/ext/vendor/github.com/aws/smithy-go/README.md index 789b378..a4bb43f 100644 --- a/ext/vendor/github.com/aws/smithy-go/README.md +++ b/ext/vendor/github.com/aws/smithy-go/README.md @@ -2,7 +2,7 @@ [![Go Build Status](https://github.com/aws/smithy-go/actions/workflows/go.yml/badge.svg?branch=main)](https://github.com/aws/smithy-go/actions/workflows/go.yml)[![Codegen Build Status](https://github.com/aws/smithy-go/actions/workflows/codegen.yml/badge.svg?branch=main)](https://github.com/aws/smithy-go/actions/workflows/codegen.yml) -Smithy code generators for Go. +[Smithy](https://smithy.io/) code generators for Go. **WARNING: All interfaces are subject to change.** diff --git a/ext/vendor/github.com/aws/smithy-go/encoding/xml/doc.go b/ext/vendor/github.com/aws/smithy-go/encoding/xml/doc.go index d6e1e41..f920009 100644 --- a/ext/vendor/github.com/aws/smithy-go/encoding/xml/doc.go +++ b/ext/vendor/github.com/aws/smithy-go/encoding/xml/doc.go @@ -2,7 +2,7 @@ Package xml holds the XMl encoder utility. This utility is written in accordance to our design to delegate to shape serializer function in which a xml.Value will be passed around. -Resources followed: https://awslabs.github.io/smithy/1.0/spec/core/xml-traits.html# +Resources followed: https://smithy.io/2.0/spec/protocol-traits.html#xml-bindings Member Element diff --git a/ext/vendor/github.com/aws/smithy-go/go_module_metadata.go b/ext/vendor/github.com/aws/smithy-go/go_module_metadata.go index 08db245..8eaac41 100644 --- a/ext/vendor/github.com/aws/smithy-go/go_module_metadata.go +++ b/ext/vendor/github.com/aws/smithy-go/go_module_metadata.go @@ -3,4 +3,4 @@ package smithy // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.13.3" +const goModuleVersion = "1.13.5" diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/README.md b/ext/vendor/github.com/gabriel-vasile/mimetype/README.md index ca1aa78..d310928 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/README.md +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/README.md @@ -30,7 +30,7 @@ ## Features - fast and precise MIME type and file extension detection - long list of [supported MIME types](supported_mimes.md) -- posibility to [extend](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-Extend) with other file formats +- possibility to [extend](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-Extend) with other file formats - common file formats are prioritized - [text vs. binary files differentiation](https://pkg.go.dev/github.com/gabriel-vasile/mimetype#example-package-TextVsBinary) - safe for concurrent usage diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go index 8f893e8..fec11f0 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/archive.go @@ -74,13 +74,21 @@ func CRX(raw []byte, limit uint32) bool { } // Tar matches a (t)ape (ar)chive file. -// -// Signature source: https://www.nationalarchives.gov.uk/PRONOM/Format/proFormatSearch.aspx?status=detailReport&id=385&strPageToDisplay=signatures func Tar(raw []byte, _ uint32) bool { + // The "magic" header field for files in in UStar (POSIX IEEE P1003.1) archives + // has the prefix "ustar". The values of the remaining bytes in this field vary + // by archiver implementation. + if len(raw) >= 512 && bytes.HasPrefix(raw[257:], []byte{0x75, 0x73, 0x74, 0x61, 0x72}) { + return true + } + if len(raw) < 256 { return false } + // The older v7 format has no "magic" field, and therefore must be identified + // with heuristics based on legal ranges of values for other header fields: + // https://www.nationalarchives.gov.uk/PRONOM/Format/proFormatSearch.aspx?status=detailReport&id=385&strPageToDisplay=signatures rules := []struct { min, max uint8 i int diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ftyp.go b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ftyp.go index 27a60e1..6575b4a 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ftyp.go +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/ftyp.go @@ -1,5 +1,7 @@ package magic +import "bytes" + var ( // AVIF matches an AV1 Image File Format still or animated. // Wikipedia page seems outdated listing image/avif-sequence for animations. @@ -37,8 +39,6 @@ var ( // Nero Digital AAC Audio []byte("NDAS"), ) - // QuickTime matches a QuickTime File Format file. - QuickTime = ftyp([]byte("qt "), []byte("moov")) // Mqv matches a Sony / Mobile QuickTime file. Mqv = ftyp([]byte("mqt ")) // M4a matches an audio M4A file. @@ -55,3 +55,34 @@ var ( HeifSequence = ftyp([]byte("msf1"), []byte("hevm"), []byte("hevs"), []byte("avcs")) // TODO: add support for remaining video formats at ftyps.com. ) + +// QuickTime matches a QuickTime File Format file. +// https://www.loc.gov/preservation/digital/formats/fdd/fdd000052.shtml +// https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/QTFFChap1/qtff1.html#//apple_ref/doc/uid/TP40000939-CH203-38190 +// https://github.com/apache/tika/blob/0f5570691133c75ac4472c3340354a6c4080b104/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml#L7758-L7777 +func QuickTime(raw []byte, _ uint32) bool { + if len(raw) < 12 { + return false + } + // First 4 bytes represent the size of the atom as unsigned int. + // Next 4 bytes are the type of the atom. + // For `ftyp` atoms check if first byte in size is 0, otherwise, a text file + // which happens to contain 'ftypqt ' at index 4 will trigger a false positive. + if bytes.Equal(raw[4:12], []byte("ftypqt ")) || + bytes.Equal(raw[4:12], []byte("ftypmoov")) { + return raw[0] == 0x00 + } + basicAtomTypes := [][]byte{ + []byte("moov\x00"), + []byte("mdat\x00"), + []byte("free\x00"), + []byte("skip\x00"), + []byte("pnot\x00"), + } + for _, a := range basicAtomTypes { + if bytes.Equal(raw[4:9], a) { + return true + } + } + return bytes.Equal(raw[:8], []byte("\x00\x00\x00\x08wide")) +} diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/image.go b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/image.go index 355ad94..0eb7e95 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/image.go +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/internal/magic/image.go @@ -44,6 +44,10 @@ var ( Hdr = prefix([]byte("#?RADIANCE\n")) // Xpm matches X PixMap image data. Xpm = prefix([]byte{0x2F, 0x2A, 0x20, 0x58, 0x50, 0x4D, 0x20, 0x2A, 0x2F}) + // Jxs matches a JPEG XS coded image file (ISO/IEC 21122-3). + Jxs = prefix([]byte{0x00, 0x00, 0x00, 0x0C, 0x4A, 0x58, 0x53, 0x20, 0x0D, 0x0A, 0x87, 0x0A}) + // Jxr matches Microsoft HD JXR photo file. + Jxr = prefix([]byte{0x49, 0x49, 0xBC, 0x01}) ) func jpeg2k(sig []byte) Detector { diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/mime.go b/ext/vendor/github.com/gabriel-vasile/mimetype/mime.go index e5a1c4e..62cb15f 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/mime.go +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/mime.go @@ -139,7 +139,7 @@ func (m *MIME) clone(ps map[string]string) *MIME { } // cloneHierarchy creates a clone of m and all its ancestors. The optional MIME -// parametes are set on the last child of the hierarchy. +// parameters are set on the last child of the hierarchy. func (m *MIME) cloneHierarchy(ps map[string]string) *MIME { ret := m.clone(ps) lastChild := ret diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md b/ext/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md index 83d602d..cdec4e6 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/supported_mimes.md @@ -1,4 +1,4 @@ -## 171 Supported MIME types +## 172 Supported MIME types This file is automatically generated when running tests. Do not edit manually. Extension | MIME type | Aliases @@ -46,6 +46,7 @@ Extension | MIME type | Aliases **.jp2** | image/jp2 | - **.jpf** | image/jpx | - **.jpm** | image/jpm | video/jpm +**.jxs** | image/jxs | - **.gif** | image/gif | - **.webp** | image/webp | - **.exe** | application/vnd.microsoft.portable-executable | - @@ -139,6 +140,7 @@ Extension | MIME type | Aliases **.glb** | model/gltf-binary | - **.avif** | image/avif | - **.cab** | application/x-installshield | - +**.jxr** | image/jxr | image/vnd.ms-photo **.txt** | text/plain | - **.html** | text/html | - **.svg** | image/svg+xml | - diff --git a/ext/vendor/github.com/gabriel-vasile/mimetype/tree.go b/ext/vendor/github.com/gabriel-vasile/mimetype/tree.go index ea2d3e2..253bd00 100644 --- a/ext/vendor/github.com/gabriel-vasile/mimetype/tree.go +++ b/ext/vendor/github.com/gabriel-vasile/mimetype/tree.go @@ -18,13 +18,13 @@ import ( var root = newMIME("application/octet-stream", "", func([]byte, uint32) bool { return true }, xpm, sevenZ, zip, pdf, fdf, ole, ps, psd, p7s, ogg, png, jpg, jxl, jp2, jpx, - jpm, gif, webp, exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, ico, mp3, flac, + jpm, jxs, gif, webp, exe, elf, ar, tar, xar, bz2, fits, tiff, bmp, ico, mp3, flac, midi, ape, musePack, amr, wav, aiff, au, mpeg, quickTime, mqv, mp4, webM, threeGP, threeG2, avi, flv, mkv, asf, aac, voc, aMp4, m4a, m3u, m4v, rmvb, gzip, class, swf, crx, ttf, woff, woff2, otf, ttc, eot, wasm, shx, dbf, dcm, rar, djvu, mobi, lit, bpg, sqlite3, dwg, nes, lnk, macho, qcp, icns, heic, heicSeq, heif, heifSeq, hdr, mrc, mdb, accdb, zstd, cab, rpm, xz, lzip, - torrent, cpio, tzif, xcf, pat, gbr, glb, avif, cabIS, + torrent, cpio, tzif, xcf, pat, gbr, glb, avif, cabIS, jxr, // Keep text last because it is the slowest check text, ) @@ -34,7 +34,7 @@ var root = newMIME("application/octet-stream", "", // errMIME is same as root but it does not require locking. var errMIME = newMIME("application/octet-stream", "", func([]byte, uint32) bool { return false }) -// mu guards access to the root MIME tree. Access to root must be synchonized with this lock. +// mu guards access to the root MIME tree. Access to root must be synchronized with this lock. var mu = &sync.RWMutex{} // The list of nodes appended to the root node. @@ -122,6 +122,7 @@ var ( jpx = newMIME("image/jpx", ".jpf", magic.Jpx) jpm = newMIME("image/jpm", ".jpm", magic.Jpm). alias("video/jpm") + jxs = newMIME("image/jxs", ".jxs", magic.Jxs) xpm = newMIME("image/x-xpixmap", ".xpm", magic.Xpm) bpg = newMIME("image/bpg", ".bpg", magic.Bpg) gif = newMIME("image/gif", ".gif", magic.Gif) @@ -255,4 +256,5 @@ var ( gbr = newMIME("image/x-gimp-gbr", ".gbr", magic.Gbr) xfdf = newMIME("application/vnd.adobe.xfdf", ".xfdf", magic.Xfdf) glb = newMIME("model/gltf-binary", ".glb", magic.Glb) + jxr = newMIME("image/jxr", ".jxr", magic.Jxr).alias("image/vnd.ms-photo") ) diff --git a/ext/vendor/github.com/goccy/go-json/Makefile b/ext/vendor/github.com/goccy/go-json/Makefile index 363563a..5bbfc4c 100644 --- a/ext/vendor/github.com/goccy/go-json/Makefile +++ b/ext/vendor/github.com/goccy/go-json/Makefile @@ -22,7 +22,7 @@ cover-html: cover .PHONY: lint lint: golangci-lint - golangci-lint run + $(BIN_DIR)/golangci-lint run golangci-lint: | $(BIN_DIR) @{ \ @@ -30,7 +30,7 @@ golangci-lint: | $(BIN_DIR) GOLANGCI_LINT_TMP_DIR=$$(mktemp -d); \ cd $$GOLANGCI_LINT_TMP_DIR; \ go mod init tmp; \ - GOBIN=$(BIN_DIR) go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.36.0; \ + GOBIN=$(BIN_DIR) go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.48.0; \ rm -rf $$GOLANGCI_LINT_TMP_DIR; \ } diff --git a/ext/vendor/github.com/goccy/go-json/README.md b/ext/vendor/github.com/goccy/go-json/README.md index 5686237..7bacc54 100644 --- a/ext/vendor/github.com/goccy/go-json/README.md +++ b/ext/vendor/github.com/goccy/go-json/README.md @@ -184,7 +184,7 @@ func Marshal(v interface{}) ([]byte, error) { `json.Marshal` and `json.Unmarshal` receive `interface{}` value and they perform type determination dynamically to process. In normal case, you need to use the `reflect` library to determine the type dynamically, but since `reflect.Type` is defined as `interface`, when you call the method of `reflect.Type`, The reflect's argument is escaped. -Therefore, the arguments for `Marshal` and `Unmarshal` are always escape to the heap. +Therefore, the arguments for `Marshal` and `Unmarshal` are always escaped to the heap. However, `go-json` can use the feature of `reflect.Type` while avoiding escaping. `reflect.Type` is defined as `interface`, but in reality `reflect.Type` is implemented only by the structure `rtype` defined in the `reflect` package. diff --git a/ext/vendor/github.com/goccy/go-json/decode.go b/ext/vendor/github.com/goccy/go-json/decode.go index d99749d..74c6ac3 100644 --- a/ext/vendor/github.com/goccy/go-json/decode.go +++ b/ext/vendor/github.com/goccy/go-json/decode.go @@ -83,6 +83,37 @@ func unmarshalContext(ctx context.Context, data []byte, v interface{}, optFuncs return validateEndBuf(src, cursor) } +var ( + pathDecoder = decoder.NewPathDecoder() +) + +func extractFromPath(path *Path, data []byte, optFuncs ...DecodeOptionFunc) ([][]byte, error) { + if path.path.RootSelectorOnly { + return [][]byte{data}, nil + } + src := make([]byte, len(data)+1) // append nul byte to the end + copy(src, data) + + ctx := decoder.TakeRuntimeContext() + ctx.Buf = src + ctx.Option.Flags = 0 + ctx.Option.Flags |= decoder.PathOption + ctx.Option.Path = path.path + for _, optFunc := range optFuncs { + optFunc(ctx.Option) + } + paths, cursor, err := pathDecoder.DecodePath(ctx, 0, 0) + if err != nil { + decoder.ReleaseRuntimeContext(ctx) + return nil, err + } + decoder.ReleaseRuntimeContext(ctx) + if err := validateEndBuf(src, cursor); err != nil { + return nil, err + } + return paths, nil +} + func unmarshalNoEscape(data []byte, v interface{}, optFuncs ...DecodeOptionFunc) error { src := make([]byte, len(data)+1) // append nul byte to the end copy(src, data) diff --git a/ext/vendor/github.com/goccy/go-json/error.go b/ext/vendor/github.com/goccy/go-json/error.go index 94c1339..5b2dcee 100644 --- a/ext/vendor/github.com/goccy/go-json/error.go +++ b/ext/vendor/github.com/goccy/go-json/error.go @@ -37,3 +37,5 @@ type UnmarshalTypeError = errors.UnmarshalTypeError type UnsupportedTypeError = errors.UnsupportedTypeError type UnsupportedValueError = errors.UnsupportedValueError + +type PathError = errors.PathError diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go index 030cb7a..b6876cf 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go @@ -35,3 +35,7 @@ func (d *anonymousFieldDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p = *(*unsafe.Pointer)(p) return d.dec.Decode(ctx, cursor, depth, unsafe.Pointer(uintptr(p)+d.offset)) } + +func (d *anonymousFieldDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return d.dec.DecodePath(ctx, cursor, depth) +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/array.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/array.go index 21f1fd5..8ef91cf 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/array.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/array.go @@ -1,6 +1,7 @@ package decoder import ( + "fmt" "unsafe" "github.com/goccy/go-json/internal/errors" @@ -167,3 +168,7 @@ func (d *arrayDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe } } } + +func (d *arrayDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: array decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/assign.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/assign.go new file mode 100644 index 0000000..c53e6ad --- /dev/null +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/assign.go @@ -0,0 +1,438 @@ +package decoder + +import ( + "fmt" + "reflect" + "strconv" +) + +var ( + nilValue = reflect.ValueOf(nil) +) + +func AssignValue(src, dst reflect.Value) error { + if dst.Type().Kind() != reflect.Ptr { + return fmt.Errorf("invalid dst type. required pointer type: %T", dst.Type()) + } + casted, err := castValue(dst.Elem().Type(), src) + if err != nil { + return err + } + dst.Elem().Set(casted) + return nil +} + +func castValue(t reflect.Type, v reflect.Value) (reflect.Value, error) { + switch t.Kind() { + case reflect.Int: + vv, err := castInt(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(int(vv.Int())), nil + case reflect.Int8: + vv, err := castInt(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(int8(vv.Int())), nil + case reflect.Int16: + vv, err := castInt(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(int16(vv.Int())), nil + case reflect.Int32: + vv, err := castInt(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(int32(vv.Int())), nil + case reflect.Int64: + return castInt(v) + case reflect.Uint: + vv, err := castUint(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(uint(vv.Uint())), nil + case reflect.Uint8: + vv, err := castUint(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(uint8(vv.Uint())), nil + case reflect.Uint16: + vv, err := castUint(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(uint16(vv.Uint())), nil + case reflect.Uint32: + vv, err := castUint(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(uint32(vv.Uint())), nil + case reflect.Uint64: + return castUint(v) + case reflect.Uintptr: + vv, err := castUint(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(uintptr(vv.Uint())), nil + case reflect.String: + return castString(v) + case reflect.Bool: + return castBool(v) + case reflect.Float32: + vv, err := castFloat(v) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(float32(vv.Float())), nil + case reflect.Float64: + return castFloat(v) + case reflect.Array: + return castArray(t, v) + case reflect.Slice: + return castSlice(t, v) + case reflect.Map: + return castMap(t, v) + case reflect.Struct: + return castStruct(t, v) + } + return v, nil +} + +func castInt(v reflect.Value) (reflect.Value, error) { + switch v.Type().Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v, nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return reflect.ValueOf(int64(v.Uint())), nil + case reflect.String: + i64, err := strconv.ParseInt(v.String(), 10, 64) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(i64), nil + case reflect.Bool: + if v.Bool() { + return reflect.ValueOf(int64(1)), nil + } + return reflect.ValueOf(int64(0)), nil + case reflect.Float32, reflect.Float64: + return reflect.ValueOf(int64(v.Float())), nil + case reflect.Array: + if v.Len() > 0 { + return castInt(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to int64 from empty array") + case reflect.Slice: + if v.Len() > 0 { + return castInt(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to int64 from empty slice") + case reflect.Interface: + return castInt(reflect.ValueOf(v.Interface())) + case reflect.Map: + return nilValue, fmt.Errorf("failed to cast to int64 from map") + case reflect.Struct: + return nilValue, fmt.Errorf("failed to cast to int64 from struct") + case reflect.Ptr: + return castInt(v.Elem()) + } + return nilValue, fmt.Errorf("failed to cast to int64 from %s", v.Type().Kind()) +} + +func castUint(v reflect.Value) (reflect.Value, error) { + switch v.Type().Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return reflect.ValueOf(uint64(v.Int())), nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v, nil + case reflect.String: + u64, err := strconv.ParseUint(v.String(), 10, 64) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(u64), nil + case reflect.Bool: + if v.Bool() { + return reflect.ValueOf(uint64(1)), nil + } + return reflect.ValueOf(uint64(0)), nil + case reflect.Float32, reflect.Float64: + return reflect.ValueOf(uint64(v.Float())), nil + case reflect.Array: + if v.Len() > 0 { + return castUint(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to uint64 from empty array") + case reflect.Slice: + if v.Len() > 0 { + return castUint(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to uint64 from empty slice") + case reflect.Interface: + return castUint(reflect.ValueOf(v.Interface())) + case reflect.Map: + return nilValue, fmt.Errorf("failed to cast to uint64 from map") + case reflect.Struct: + return nilValue, fmt.Errorf("failed to cast to uint64 from struct") + case reflect.Ptr: + return castUint(v.Elem()) + } + return nilValue, fmt.Errorf("failed to cast to uint64 from %s", v.Type().Kind()) +} + +func castString(v reflect.Value) (reflect.Value, error) { + switch v.Type().Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return reflect.ValueOf(fmt.Sprint(v.Int())), nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return reflect.ValueOf(fmt.Sprint(v.Uint())), nil + case reflect.String: + return v, nil + case reflect.Bool: + if v.Bool() { + return reflect.ValueOf("true"), nil + } + return reflect.ValueOf("false"), nil + case reflect.Float32, reflect.Float64: + return reflect.ValueOf(fmt.Sprint(v.Float())), nil + case reflect.Array: + if v.Len() > 0 { + return castString(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to string from empty array") + case reflect.Slice: + if v.Len() > 0 { + return castString(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to string from empty slice") + case reflect.Interface: + return castString(reflect.ValueOf(v.Interface())) + case reflect.Map: + return nilValue, fmt.Errorf("failed to cast to string from map") + case reflect.Struct: + return nilValue, fmt.Errorf("failed to cast to string from struct") + case reflect.Ptr: + return castString(v.Elem()) + } + return nilValue, fmt.Errorf("failed to cast to string from %s", v.Type().Kind()) +} + +func castBool(v reflect.Value) (reflect.Value, error) { + switch v.Type().Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + switch v.Int() { + case 0: + return reflect.ValueOf(false), nil + case 1: + return reflect.ValueOf(true), nil + } + return nilValue, fmt.Errorf("failed to cast to bool from %d", v.Int()) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + switch v.Uint() { + case 0: + return reflect.ValueOf(false), nil + case 1: + return reflect.ValueOf(true), nil + } + return nilValue, fmt.Errorf("failed to cast to bool from %d", v.Uint()) + case reflect.String: + b, err := strconv.ParseBool(v.String()) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(b), nil + case reflect.Bool: + return v, nil + case reflect.Float32, reflect.Float64: + switch v.Float() { + case 0: + return reflect.ValueOf(false), nil + case 1: + return reflect.ValueOf(true), nil + } + return nilValue, fmt.Errorf("failed to cast to bool from %f", v.Float()) + case reflect.Array: + if v.Len() > 0 { + return castBool(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to string from empty array") + case reflect.Slice: + if v.Len() > 0 { + return castBool(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to string from empty slice") + case reflect.Interface: + return castBool(reflect.ValueOf(v.Interface())) + case reflect.Map: + return nilValue, fmt.Errorf("failed to cast to string from map") + case reflect.Struct: + return nilValue, fmt.Errorf("failed to cast to string from struct") + case reflect.Ptr: + return castBool(v.Elem()) + } + return nilValue, fmt.Errorf("failed to cast to bool from %s", v.Type().Kind()) +} + +func castFloat(v reflect.Value) (reflect.Value, error) { + switch v.Type().Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return reflect.ValueOf(float64(v.Int())), nil + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return reflect.ValueOf(float64(v.Uint())), nil + case reflect.String: + f64, err := strconv.ParseFloat(v.String(), 64) + if err != nil { + return nilValue, err + } + return reflect.ValueOf(f64), nil + case reflect.Bool: + if v.Bool() { + return reflect.ValueOf(float64(1)), nil + } + return reflect.ValueOf(float64(0)), nil + case reflect.Float32, reflect.Float64: + return v, nil + case reflect.Array: + if v.Len() > 0 { + return castFloat(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to float64 from empty array") + case reflect.Slice: + if v.Len() > 0 { + return castFloat(v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to float64 from empty slice") + case reflect.Interface: + return castFloat(reflect.ValueOf(v.Interface())) + case reflect.Map: + return nilValue, fmt.Errorf("failed to cast to float64 from map") + case reflect.Struct: + return nilValue, fmt.Errorf("failed to cast to float64 from struct") + case reflect.Ptr: + return castFloat(v.Elem()) + } + return nilValue, fmt.Errorf("failed to cast to float64 from %s", v.Type().Kind()) +} + +func castArray(t reflect.Type, v reflect.Value) (reflect.Value, error) { + kind := v.Type().Kind() + if kind == reflect.Interface { + return castArray(t, reflect.ValueOf(v.Interface())) + } + if kind != reflect.Slice && kind != reflect.Array { + return nilValue, fmt.Errorf("failed to cast to array from %s", kind) + } + if t.Elem() == v.Type().Elem() { + return v, nil + } + if t.Len() != v.Len() { + return nilValue, fmt.Errorf("failed to cast [%d]array from slice of %d length", t.Len(), v.Len()) + } + ret := reflect.New(t).Elem() + for i := 0; i < v.Len(); i++ { + vv, err := castValue(t.Elem(), v.Index(i)) + if err != nil { + return nilValue, err + } + ret.Index(i).Set(vv) + } + return ret, nil +} + +func castSlice(t reflect.Type, v reflect.Value) (reflect.Value, error) { + kind := v.Type().Kind() + if kind == reflect.Interface { + return castSlice(t, reflect.ValueOf(v.Interface())) + } + if kind != reflect.Slice && kind != reflect.Array { + return nilValue, fmt.Errorf("failed to cast to slice from %s", kind) + } + if t.Elem() == v.Type().Elem() { + return v, nil + } + ret := reflect.MakeSlice(t, v.Len(), v.Len()) + for i := 0; i < v.Len(); i++ { + vv, err := castValue(t.Elem(), v.Index(i)) + if err != nil { + return nilValue, err + } + ret.Index(i).Set(vv) + } + return ret, nil +} + +func castMap(t reflect.Type, v reflect.Value) (reflect.Value, error) { + ret := reflect.MakeMap(t) + switch v.Type().Kind() { + case reflect.Map: + iter := v.MapRange() + for iter.Next() { + key, err := castValue(t.Key(), iter.Key()) + if err != nil { + return nilValue, err + } + value, err := castValue(t.Elem(), iter.Value()) + if err != nil { + return nilValue, err + } + ret.SetMapIndex(key, value) + } + return ret, nil + case reflect.Interface: + return castMap(t, reflect.ValueOf(v.Interface())) + case reflect.Slice: + if v.Len() > 0 { + return castMap(t, v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to map from empty slice") + } + return nilValue, fmt.Errorf("failed to cast to map from %s", v.Type().Kind()) +} + +func castStruct(t reflect.Type, v reflect.Value) (reflect.Value, error) { + ret := reflect.New(t).Elem() + switch v.Type().Kind() { + case reflect.Map: + iter := v.MapRange() + for iter.Next() { + key := iter.Key() + k, err := castString(key) + if err != nil { + return nilValue, err + } + fieldName := k.String() + field, ok := t.FieldByName(fieldName) + if ok { + value, err := castValue(field.Type, iter.Value()) + if err != nil { + return nilValue, err + } + ret.FieldByName(fieldName).Set(value) + } + } + return ret, nil + case reflect.Struct: + for i := 0; i < v.Type().NumField(); i++ { + name := v.Type().Field(i).Name + ret.FieldByName(name).Set(v.FieldByName(name)) + } + return ret, nil + case reflect.Interface: + return castStruct(t, reflect.ValueOf(v.Interface())) + case reflect.Slice: + if v.Len() > 0 { + return castStruct(t, v.Index(0)) + } + return nilValue, fmt.Errorf("failed to cast to struct from empty slice") + default: + return nilValue, fmt.Errorf("failed to cast to struct from %s", v.Type().Kind()) + } +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/bool.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/bool.go index 455042a..ba6cf5b 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/bool.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/bool.go @@ -1,6 +1,7 @@ package decoder import ( + "fmt" "unsafe" "github.com/goccy/go-json/internal/errors" @@ -76,3 +77,7 @@ func (d *boolDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe. } return 0, errors.ErrUnexpectedEndOfJSON("bool", cursor) } + +func (d *boolDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: bool decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/bytes.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/bytes.go index 92c7dcf..939bf43 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/bytes.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/bytes.go @@ -2,6 +2,7 @@ package decoder import ( "encoding/base64" + "fmt" "unsafe" "github.com/goccy/go-json/internal/errors" @@ -78,6 +79,10 @@ func (d *bytesDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe return cursor, nil } +func (d *bytesDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: []byte decoder does not support decode path") +} + func (d *bytesDecoder) decodeStreamBinary(s *Stream, depth int64, p unsafe.Pointer) ([]byte, error) { c := s.skipWhiteSpace() if c == '[' { diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/float.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/float.go index dfb7168..9b2eb8b 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/float.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/float.go @@ -156,3 +156,15 @@ func (d *floatDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe d.op(p, f64) return cursor, nil } + +func (d *floatDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + buf := ctx.Buf + bytes, c, err := d.decodeByte(buf, cursor) + if err != nil { + return nil, 0, err + } + if bytes == nil { + return [][]byte{nullbytes}, c, nil + } + return [][]byte{bytes}, c, nil +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/func.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/func.go index ee35637..4cc12ca 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/func.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/func.go @@ -2,6 +2,7 @@ package decoder import ( "bytes" + "fmt" "unsafe" "github.com/goccy/go-json/internal/errors" @@ -139,3 +140,7 @@ func (d *funcDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe. } return cursor, errors.ErrInvalidBeginningOfValue(buf[cursor], cursor) } + +func (d *funcDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: func decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/int.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/int.go index 509b753..1a7f081 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/int.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/int.go @@ -240,3 +240,7 @@ func (d *intDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe.P d.op(p, i64) return cursor, nil } + +func (d *intDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: int decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/interface.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/interface.go index 4dbb4be..45c69ab 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/interface.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/interface.go @@ -94,6 +94,7 @@ func (d *interfaceDecoder) numDecoder(s *Stream) Decoder { var ( emptyInterfaceType = runtime.Type2RType(reflect.TypeOf((*interface{})(nil)).Elem()) + EmptyInterfaceType = emptyInterfaceType interfaceMapType = runtime.Type2RType( reflect.TypeOf((*map[string]interface{})(nil)).Elem(), ) @@ -456,3 +457,72 @@ func (d *interfaceDecoder) decodeEmptyInterface(ctx *RuntimeContext, cursor, dep } return cursor, errors.ErrInvalidBeginningOfValue(buf[cursor], cursor) } + +func NewPathDecoder() Decoder { + ifaceDecoder := &interfaceDecoder{ + typ: emptyInterfaceType, + structName: "", + fieldName: "", + floatDecoder: newFloatDecoder("", "", func(p unsafe.Pointer, v float64) { + *(*interface{})(p) = v + }), + numberDecoder: newNumberDecoder("", "", func(p unsafe.Pointer, v json.Number) { + *(*interface{})(p) = v + }), + stringDecoder: newStringDecoder("", ""), + } + ifaceDecoder.sliceDecoder = newSliceDecoder( + ifaceDecoder, + emptyInterfaceType, + emptyInterfaceType.Size(), + "", "", + ) + ifaceDecoder.mapDecoder = newMapDecoder( + interfaceMapType, + stringType, + ifaceDecoder.stringDecoder, + interfaceMapType.Elem(), + ifaceDecoder, + "", "", + ) + return ifaceDecoder +} + +var ( + truebytes = []byte("true") + falsebytes = []byte("false") +) + +func (d *interfaceDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + buf := ctx.Buf + cursor = skipWhiteSpace(buf, cursor) + switch buf[cursor] { + case '{': + return d.mapDecoder.DecodePath(ctx, cursor, depth) + case '[': + return d.sliceDecoder.DecodePath(ctx, cursor, depth) + case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + return d.floatDecoder.DecodePath(ctx, cursor, depth) + case '"': + return d.stringDecoder.DecodePath(ctx, cursor, depth) + case 't': + if err := validateTrue(buf, cursor); err != nil { + return nil, 0, err + } + cursor += 4 + return [][]byte{truebytes}, cursor, nil + case 'f': + if err := validateFalse(buf, cursor); err != nil { + return nil, 0, err + } + cursor += 5 + return [][]byte{falsebytes}, cursor, nil + case 'n': + if err := validateNull(buf, cursor); err != nil { + return nil, 0, err + } + cursor += 4 + return [][]byte{nullbytes}, cursor, nil + } + return nil, cursor, errors.ErrInvalidBeginningOfValue(buf[cursor], cursor) +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/invalid.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/invalid.go index 1ef50a7..4c9721b 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/invalid.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/invalid.go @@ -43,3 +43,13 @@ func (d *invalidDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsa Field: d.fieldName, } } + +func (d *invalidDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, &errors.UnmarshalTypeError{ + Value: "object", + Type: runtime.RType2Type(d.typ), + Offset: cursor, + Struct: d.structName, + Field: d.fieldName, + } +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/map.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/map.go index cb55ef0..7a6eea3 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/map.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/map.go @@ -185,3 +185,96 @@ func (d *mapDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe.P cursor++ } } + +func (d *mapDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + buf := ctx.Buf + depth++ + if depth > maxDecodeNestingDepth { + return nil, 0, errors.ErrExceededMaxDepth(buf[cursor], cursor) + } + + cursor = skipWhiteSpace(buf, cursor) + buflen := int64(len(buf)) + if buflen < 2 { + return nil, 0, errors.ErrExpected("{} for map", cursor) + } + switch buf[cursor] { + case 'n': + if err := validateNull(buf, cursor); err != nil { + return nil, 0, err + } + cursor += 4 + return [][]byte{nullbytes}, cursor, nil + case '{': + default: + return nil, 0, errors.ErrExpected("{ character for map value", cursor) + } + cursor++ + cursor = skipWhiteSpace(buf, cursor) + if buf[cursor] == '}' { + cursor++ + return nil, cursor, nil + } + keyDecoder, ok := d.keyDecoder.(*stringDecoder) + if !ok { + return nil, 0, &errors.UnmarshalTypeError{ + Value: "string", + Type: reflect.TypeOf(""), + Offset: cursor, + Struct: d.structName, + Field: d.fieldName, + } + } + ret := [][]byte{} + for { + key, keyCursor, err := keyDecoder.decodeByte(buf, cursor) + if err != nil { + return nil, 0, err + } + cursor = skipWhiteSpace(buf, keyCursor) + if buf[cursor] != ':' { + return nil, 0, errors.ErrExpected("colon after object key", cursor) + } + cursor++ + child, found, err := ctx.Option.Path.Field(string(key)) + if err != nil { + return nil, 0, err + } + if found { + if child != nil { + oldPath := ctx.Option.Path.node + ctx.Option.Path.node = child + paths, c, err := d.valueDecoder.DecodePath(ctx, cursor, depth) + if err != nil { + return nil, 0, err + } + ctx.Option.Path.node = oldPath + ret = append(ret, paths...) + cursor = c + } else { + start := cursor + end, err := skipValue(buf, cursor, depth) + if err != nil { + return nil, 0, err + } + ret = append(ret, buf[start:end]) + cursor = end + } + } else { + c, err := skipValue(buf, cursor, depth) + if err != nil { + return nil, 0, err + } + cursor = c + } + cursor = skipWhiteSpace(buf, cursor) + if buf[cursor] == '}' { + cursor++ + return ret, cursor, nil + } + if buf[cursor] != ',' { + return nil, 0, errors.ErrExpected("comma after object value", cursor) + } + cursor++ + } +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/number.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/number.go index bf63773..10e5435 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/number.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/number.go @@ -51,6 +51,17 @@ func (d *numberDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsaf return cursor, nil } +func (d *numberDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + bytes, c, err := d.decodeByte(ctx.Buf, cursor) + if err != nil { + return nil, 0, err + } + if bytes == nil { + return [][]byte{nullbytes}, c, nil + } + return [][]byte{bytes}, c, nil +} + func (d *numberDecoder) decodeStreamByte(s *Stream) ([]byte, error) { start := s.cursor for { diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/option.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/option.go index e41f876..502f772 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/option.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/option.go @@ -7,9 +7,11 @@ type OptionFlags uint8 const ( FirstWinOption OptionFlags = 1 << iota ContextOption + PathOption ) type Option struct { Flags OptionFlags Context context.Context + Path *Path } diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/path.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/path.go new file mode 100644 index 0000000..a15ff69 --- /dev/null +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/path.go @@ -0,0 +1,670 @@ +package decoder + +import ( + "fmt" + "reflect" + "strconv" + + "github.com/goccy/go-json/internal/errors" + "github.com/goccy/go-json/internal/runtime" +) + +type PathString string + +func (s PathString) Build() (*Path, error) { + builder := new(PathBuilder) + return builder.Build([]rune(s)) +} + +type PathBuilder struct { + root PathNode + node PathNode + singleQuotePathSelector bool + doubleQuotePathSelector bool +} + +func (b *PathBuilder) Build(buf []rune) (*Path, error) { + node, err := b.build(buf) + if err != nil { + return nil, err + } + return &Path{ + node: node, + RootSelectorOnly: node == nil, + SingleQuotePathSelector: b.singleQuotePathSelector, + DoubleQuotePathSelector: b.doubleQuotePathSelector, + }, nil +} + +func (b *PathBuilder) build(buf []rune) (PathNode, error) { + if len(buf) == 0 { + return nil, errors.ErrEmptyPath() + } + if buf[0] != '$' { + return nil, errors.ErrInvalidPath("JSON Path must start with a $ character") + } + if len(buf) == 1 { + return nil, nil + } + buf = buf[1:] + offset, err := b.buildNext(buf) + if err != nil { + return nil, err + } + if len(buf) > offset { + return nil, errors.ErrInvalidPath("remain invalid path %q", buf[offset:]) + } + return b.root, nil +} + +func (b *PathBuilder) buildNextCharIfExists(buf []rune, cursor int) (int, error) { + if len(buf) > cursor { + offset, err := b.buildNext(buf[cursor:]) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + } + return cursor, nil +} + +func (b *PathBuilder) buildNext(buf []rune) (int, error) { + switch buf[0] { + case '.': + if len(buf) == 1 { + return 0, errors.ErrInvalidPath("JSON Path ends with dot character") + } + offset, err := b.buildSelector(buf[1:]) + if err != nil { + return 0, err + } + return offset + 1, nil + case '[': + if len(buf) == 1 { + return 0, errors.ErrInvalidPath("JSON Path ends with left bracket character") + } + offset, err := b.buildIndex(buf[1:]) + if err != nil { + return 0, err + } + return offset + 1, nil + default: + return 0, errors.ErrInvalidPath("expect dot or left bracket character. but found %c character", buf[0]) + } +} + +func (b *PathBuilder) buildSelector(buf []rune) (int, error) { + switch buf[0] { + case '.': + if len(buf) == 1 { + return 0, errors.ErrInvalidPath("JSON Path ends with double dot character") + } + offset, err := b.buildPathRecursive(buf[1:]) + if err != nil { + return 0, err + } + return 1 + offset, nil + case '[', ']', '$', '*': + return 0, errors.ErrInvalidPath("found invalid path character %c after dot", buf[0]) + } + for cursor := 0; cursor < len(buf); cursor++ { + switch buf[cursor] { + case '$', '*', ']': + return 0, errors.ErrInvalidPath("found %c character in field selector context", buf[cursor]) + case '.': + if cursor+1 >= len(buf) { + return 0, errors.ErrInvalidPath("JSON Path ends with dot character") + } + selector := buf[:cursor] + b.addSelectorNode(string(selector)) + offset, err := b.buildSelector(buf[cursor+1:]) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + case '[': + if cursor+1 >= len(buf) { + return 0, errors.ErrInvalidPath("JSON Path ends with left bracket character") + } + selector := buf[:cursor] + b.addSelectorNode(string(selector)) + offset, err := b.buildIndex(buf[cursor+1:]) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + case '"': + if cursor+1 >= len(buf) { + return 0, errors.ErrInvalidPath("JSON Path ends with double quote character") + } + offset, err := b.buildQuoteSelector(buf[cursor+1:], DoubleQuotePathSelector) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + } + } + b.addSelectorNode(string(buf)) + return len(buf), nil +} + +func (b *PathBuilder) buildQuoteSelector(buf []rune, sel QuotePathSelector) (int, error) { + switch buf[0] { + case '[', ']', '$', '.', '*', '\'', '"': + return 0, errors.ErrInvalidPath("found invalid path character %c after quote", buf[0]) + } + for cursor := 0; cursor < len(buf); cursor++ { + switch buf[cursor] { + case '\'': + if sel != SingleQuotePathSelector { + return 0, errors.ErrInvalidPath("found double quote character in field selector with single quote context") + } + if len(buf) <= cursor+1 { + return 0, errors.ErrInvalidPath("JSON Path ends with single quote character in field selector context") + } + if buf[cursor+1] != ']' { + return 0, errors.ErrInvalidPath("expect right bracket for field selector with single quote but found %c", buf[cursor+1]) + } + selector := buf[:cursor] + b.addSelectorNode(string(selector)) + b.singleQuotePathSelector = true + return b.buildNextCharIfExists(buf, cursor+2) + case '"': + if sel != DoubleQuotePathSelector { + return 0, errors.ErrInvalidPath("found single quote character in field selector with double quote context") + } + selector := buf[:cursor] + b.addSelectorNode(string(selector)) + b.doubleQuotePathSelector = true + return b.buildNextCharIfExists(buf, cursor+1) + } + } + return 0, errors.ErrInvalidPath("couldn't find quote character in selector quote path context") +} + +func (b *PathBuilder) buildPathRecursive(buf []rune) (int, error) { + switch buf[0] { + case '.', '[', ']', '$', '*': + return 0, errors.ErrInvalidPath("found invalid path character %c after double dot", buf[0]) + } + for cursor := 0; cursor < len(buf); cursor++ { + switch buf[cursor] { + case '$', '*', ']': + return 0, errors.ErrInvalidPath("found %c character in field selector context", buf[cursor]) + case '.': + if cursor+1 >= len(buf) { + return 0, errors.ErrInvalidPath("JSON Path ends with dot character") + } + selector := buf[:cursor] + b.addRecursiveNode(string(selector)) + offset, err := b.buildSelector(buf[cursor+1:]) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + case '[': + if cursor+1 >= len(buf) { + return 0, errors.ErrInvalidPath("JSON Path ends with left bracket character") + } + selector := buf[:cursor] + b.addRecursiveNode(string(selector)) + offset, err := b.buildIndex(buf[cursor+1:]) + if err != nil { + return 0, err + } + return cursor + 1 + offset, nil + } + } + b.addRecursiveNode(string(buf)) + return len(buf), nil +} + +func (b *PathBuilder) buildIndex(buf []rune) (int, error) { + switch buf[0] { + case '.', '[', ']', '$': + return 0, errors.ErrInvalidPath("found invalid path character %c after left bracket", buf[0]) + case '\'': + if len(buf) == 1 { + return 0, errors.ErrInvalidPath("JSON Path ends with single quote character") + } + offset, err := b.buildQuoteSelector(buf[1:], SingleQuotePathSelector) + if err != nil { + return 0, err + } + return 1 + offset, nil + case '*': + if len(buf) == 1 { + return 0, errors.ErrInvalidPath("JSON Path ends with star character") + } + if buf[1] != ']' { + return 0, errors.ErrInvalidPath("expect right bracket character for index all path but found %c character", buf[1]) + } + b.addIndexAllNode() + offset := len("*]") + if len(buf) > 2 { + buildOffset, err := b.buildNext(buf[2:]) + if err != nil { + return 0, err + } + return offset + buildOffset, nil + } + return offset, nil + } + + for cursor := 0; cursor < len(buf); cursor++ { + switch buf[cursor] { + case ']': + index, err := strconv.ParseInt(string(buf[:cursor]), 10, 64) + if err != nil { + return 0, errors.ErrInvalidPath("%q is unexpected index path", buf[:cursor]) + } + b.addIndexNode(int(index)) + return b.buildNextCharIfExists(buf, cursor+1) + } + } + return 0, errors.ErrInvalidPath("couldn't find right bracket character in index path context") +} + +func (b *PathBuilder) addIndexAllNode() { + node := newPathIndexAllNode() + if b.root == nil { + b.root = node + b.node = node + } else { + b.node = b.node.chain(node) + } +} + +func (b *PathBuilder) addRecursiveNode(selector string) { + node := newPathRecursiveNode(selector) + if b.root == nil { + b.root = node + b.node = node + } else { + b.node = b.node.chain(node) + } +} + +func (b *PathBuilder) addSelectorNode(name string) { + node := newPathSelectorNode(name) + if b.root == nil { + b.root = node + b.node = node + } else { + b.node = b.node.chain(node) + } +} + +func (b *PathBuilder) addIndexNode(idx int) { + node := newPathIndexNode(idx) + if b.root == nil { + b.root = node + b.node = node + } else { + b.node = b.node.chain(node) + } +} + +type QuotePathSelector int + +const ( + SingleQuotePathSelector QuotePathSelector = 1 + DoubleQuotePathSelector QuotePathSelector = 2 +) + +type Path struct { + node PathNode + RootSelectorOnly bool + SingleQuotePathSelector bool + DoubleQuotePathSelector bool +} + +func (p *Path) Field(sel string) (PathNode, bool, error) { + if p.node == nil { + return nil, false, nil + } + return p.node.Field(sel) +} + +func (p *Path) Get(src, dst reflect.Value) error { + if p.node == nil { + return nil + } + return p.node.Get(src, dst) +} + +func (p *Path) String() string { + if p.node == nil { + return "$" + } + return p.node.String() +} + +type PathNode interface { + fmt.Stringer + Index(idx int) (PathNode, bool, error) + Field(fieldName string) (PathNode, bool, error) + Get(src, dst reflect.Value) error + chain(PathNode) PathNode + target() bool + single() bool +} + +type BasePathNode struct { + child PathNode +} + +func (n *BasePathNode) chain(node PathNode) PathNode { + n.child = node + return node +} + +func (n *BasePathNode) target() bool { + return n.child == nil +} + +func (n *BasePathNode) single() bool { + return true +} + +type PathSelectorNode struct { + *BasePathNode + selector string +} + +func newPathSelectorNode(selector string) *PathSelectorNode { + return &PathSelectorNode{ + BasePathNode: &BasePathNode{}, + selector: selector, + } +} + +func (n *PathSelectorNode) Index(idx int) (PathNode, bool, error) { + return nil, false, &errors.PathError{} +} + +func (n *PathSelectorNode) Field(fieldName string) (PathNode, bool, error) { + if n.selector == fieldName { + return n.child, true, nil + } + return nil, false, nil +} + +func (n *PathSelectorNode) Get(src, dst reflect.Value) error { + switch src.Type().Kind() { + case reflect.Map: + iter := src.MapRange() + for iter.Next() { + key, ok := iter.Key().Interface().(string) + if !ok { + return fmt.Errorf("invalid map key type %T", src.Type().Key()) + } + child, found, err := n.Field(key) + if err != nil { + return err + } + if found { + if child != nil { + return child.Get(iter.Value(), dst) + } + return AssignValue(iter.Value(), dst) + } + } + case reflect.Struct: + typ := src.Type() + for i := 0; i < typ.Len(); i++ { + tag := runtime.StructTagFromField(typ.Field(i)) + child, found, err := n.Field(tag.Key) + if err != nil { + return err + } + if found { + if child != nil { + return child.Get(src.Field(i), dst) + } + return AssignValue(src.Field(i), dst) + } + } + case reflect.Ptr: + return n.Get(src.Elem(), dst) + case reflect.Interface: + return n.Get(reflect.ValueOf(src.Interface()), dst) + case reflect.Float64, reflect.String, reflect.Bool: + return AssignValue(src, dst) + } + return fmt.Errorf("failed to get %s value from %s", n.selector, src.Type()) +} + +func (n *PathSelectorNode) String() string { + s := fmt.Sprintf(".%s", n.selector) + if n.child != nil { + s += n.child.String() + } + return s +} + +type PathIndexNode struct { + *BasePathNode + selector int +} + +func newPathIndexNode(selector int) *PathIndexNode { + return &PathIndexNode{ + BasePathNode: &BasePathNode{}, + selector: selector, + } +} + +func (n *PathIndexNode) Index(idx int) (PathNode, bool, error) { + if n.selector == idx { + return n.child, true, nil + } + return nil, false, nil +} + +func (n *PathIndexNode) Field(fieldName string) (PathNode, bool, error) { + return nil, false, &errors.PathError{} +} + +func (n *PathIndexNode) Get(src, dst reflect.Value) error { + switch src.Type().Kind() { + case reflect.Array, reflect.Slice: + if src.Len() > n.selector { + if n.child != nil { + return n.child.Get(src.Index(n.selector), dst) + } + return AssignValue(src.Index(n.selector), dst) + } + case reflect.Ptr: + return n.Get(src.Elem(), dst) + case reflect.Interface: + return n.Get(reflect.ValueOf(src.Interface()), dst) + } + return fmt.Errorf("failed to get [%d] value from %s", n.selector, src.Type()) +} + +func (n *PathIndexNode) String() string { + s := fmt.Sprintf("[%d]", n.selector) + if n.child != nil { + s += n.child.String() + } + return s +} + +type PathIndexAllNode struct { + *BasePathNode +} + +func newPathIndexAllNode() *PathIndexAllNode { + return &PathIndexAllNode{ + BasePathNode: &BasePathNode{}, + } +} + +func (n *PathIndexAllNode) Index(idx int) (PathNode, bool, error) { + return n.child, true, nil +} + +func (n *PathIndexAllNode) Field(fieldName string) (PathNode, bool, error) { + return nil, false, &errors.PathError{} +} + +func (n *PathIndexAllNode) Get(src, dst reflect.Value) error { + switch src.Type().Kind() { + case reflect.Array, reflect.Slice: + var arr []interface{} + for i := 0; i < src.Len(); i++ { + var v interface{} + rv := reflect.ValueOf(&v) + if n.child != nil { + if err := n.child.Get(src.Index(i), rv); err != nil { + return err + } + } else { + if err := AssignValue(src.Index(i), rv); err != nil { + return err + } + } + arr = append(arr, v) + } + if err := AssignValue(reflect.ValueOf(arr), dst); err != nil { + return err + } + return nil + case reflect.Ptr: + return n.Get(src.Elem(), dst) + case reflect.Interface: + return n.Get(reflect.ValueOf(src.Interface()), dst) + } + return fmt.Errorf("failed to get all value from %s", src.Type()) +} + +func (n *PathIndexAllNode) String() string { + s := "[*]" + if n.child != nil { + s += n.child.String() + } + return s +} + +type PathRecursiveNode struct { + *BasePathNode + selector string +} + +func newPathRecursiveNode(selector string) *PathRecursiveNode { + node := newPathSelectorNode(selector) + return &PathRecursiveNode{ + BasePathNode: &BasePathNode{ + child: node, + }, + selector: selector, + } +} + +func (n *PathRecursiveNode) Field(fieldName string) (PathNode, bool, error) { + if n.selector == fieldName { + return n.child, true, nil + } + return nil, false, nil +} + +func (n *PathRecursiveNode) Index(_ int) (PathNode, bool, error) { + return n, true, nil +} + +func valueToSliceValue(v interface{}) []interface{} { + rv := reflect.ValueOf(v) + ret := []interface{}{} + if rv.Type().Kind() == reflect.Slice || rv.Type().Kind() == reflect.Array { + for i := 0; i < rv.Len(); i++ { + ret = append(ret, rv.Index(i).Interface()) + } + return ret + } + return []interface{}{v} +} + +func (n *PathRecursiveNode) Get(src, dst reflect.Value) error { + if n.child == nil { + return fmt.Errorf("failed to get by recursive path ..%s", n.selector) + } + var arr []interface{} + switch src.Type().Kind() { + case reflect.Map: + iter := src.MapRange() + for iter.Next() { + key, ok := iter.Key().Interface().(string) + if !ok { + return fmt.Errorf("invalid map key type %T", src.Type().Key()) + } + child, found, err := n.Field(key) + if err != nil { + return err + } + if found { + var v interface{} + rv := reflect.ValueOf(&v) + _ = child.Get(iter.Value(), rv) + arr = append(arr, valueToSliceValue(v)...) + } else { + var v interface{} + rv := reflect.ValueOf(&v) + _ = n.Get(iter.Value(), rv) + if v != nil { + arr = append(arr, valueToSliceValue(v)...) + } + } + } + _ = AssignValue(reflect.ValueOf(arr), dst) + return nil + case reflect.Struct: + typ := src.Type() + for i := 0; i < typ.Len(); i++ { + tag := runtime.StructTagFromField(typ.Field(i)) + child, found, err := n.Field(tag.Key) + if err != nil { + return err + } + if found { + var v interface{} + rv := reflect.ValueOf(&v) + _ = child.Get(src.Field(i), rv) + arr = append(arr, valueToSliceValue(v)...) + } else { + var v interface{} + rv := reflect.ValueOf(&v) + _ = n.Get(src.Field(i), rv) + if v != nil { + arr = append(arr, valueToSliceValue(v)...) + } + } + } + _ = AssignValue(reflect.ValueOf(arr), dst) + return nil + case reflect.Array, reflect.Slice: + for i := 0; i < src.Len(); i++ { + var v interface{} + rv := reflect.ValueOf(&v) + _ = n.Get(src.Index(i), rv) + if v != nil { + arr = append(arr, valueToSliceValue(v)...) + } + } + _ = AssignValue(reflect.ValueOf(arr), dst) + return nil + case reflect.Ptr: + return n.Get(src.Elem(), dst) + case reflect.Interface: + return n.Get(reflect.ValueOf(src.Interface()), dst) + } + return fmt.Errorf("failed to get %s value from %s", n.selector, src.Type()) +} + +func (n *PathRecursiveNode) String() string { + s := fmt.Sprintf("..%s", n.selector) + if n.child != nil { + s += n.child.String() + } + return s +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/ptr.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/ptr.go index 2c83b9c..de12e10 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/ptr.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/ptr.go @@ -1,6 +1,7 @@ package decoder import ( + "fmt" "unsafe" "github.com/goccy/go-json/internal/runtime" @@ -34,6 +35,10 @@ func (d *ptrDecoder) contentDecoder() Decoder { //go:linkname unsafe_New reflect.unsafe_New func unsafe_New(*runtime.Type) unsafe.Pointer +func UnsafeNew(t *runtime.Type) unsafe.Pointer { + return unsafe_New(t) +} + func (d *ptrDecoder) DecodeStream(s *Stream, depth int64, p unsafe.Pointer) error { if s.skipWhiteSpace() == nul { s.read() @@ -85,3 +90,7 @@ func (d *ptrDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe.P cursor = c return cursor, nil } + +func (d *ptrDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: ptr decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/slice.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/slice.go index 85b6e11..30a23e4 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/slice.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/slice.go @@ -299,3 +299,82 @@ func (d *sliceDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe } } } + +func (d *sliceDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + buf := ctx.Buf + depth++ + if depth > maxDecodeNestingDepth { + return nil, 0, errors.ErrExceededMaxDepth(buf[cursor], cursor) + } + + ret := [][]byte{} + for { + switch buf[cursor] { + case ' ', '\n', '\t', '\r': + cursor++ + continue + case 'n': + if err := validateNull(buf, cursor); err != nil { + return nil, 0, err + } + cursor += 4 + return [][]byte{nullbytes}, cursor, nil + case '[': + cursor++ + cursor = skipWhiteSpace(buf, cursor) + if buf[cursor] == ']' { + cursor++ + return ret, cursor, nil + } + idx := 0 + for { + child, found, err := ctx.Option.Path.node.Index(idx) + if err != nil { + return nil, 0, err + } + if found { + if child != nil { + oldPath := ctx.Option.Path.node + ctx.Option.Path.node = child + paths, c, err := d.valueDecoder.DecodePath(ctx, cursor, depth) + if err != nil { + return nil, 0, err + } + ctx.Option.Path.node = oldPath + ret = append(ret, paths...) + cursor = c + } else { + start := cursor + end, err := skipValue(buf, cursor, depth) + if err != nil { + return nil, 0, err + } + ret = append(ret, buf[start:end]) + cursor = end + } + } else { + c, err := skipValue(buf, cursor, depth) + if err != nil { + return nil, 0, err + } + cursor = c + } + cursor = skipWhiteSpace(buf, cursor) + switch buf[cursor] { + case ']': + cursor++ + return ret, cursor, nil + case ',': + idx++ + default: + return nil, 0, errors.ErrInvalidCharacter(buf[cursor], "slice", cursor) + } + cursor++ + } + case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + return nil, 0, d.errNumber(cursor) + default: + return nil, 0, errors.ErrUnexpectedEndOfJSON("slice", cursor) + } + } +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/string.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/string.go index d07ad71..32602c9 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/string.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/string.go @@ -60,6 +60,17 @@ func (d *stringDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsaf return cursor, nil } +func (d *stringDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + bytes, c, err := d.decodeByte(ctx.Buf, cursor) + if err != nil { + return nil, 0, err + } + if bytes == nil { + return [][]byte{nullbytes}, c, nil + } + return [][]byte{bytes}, c, nil +} + var ( hexToInt = [256]int{ '0': 0, diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/struct.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/struct.go index 2c64680..6d32654 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/struct.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/struct.go @@ -817,3 +817,7 @@ func (d *structDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsaf cursor++ } } + +func (d *structDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: struct decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/type.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/type.go index 70e9907..beaf3ab 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/type.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/type.go @@ -10,6 +10,7 @@ import ( type Decoder interface { Decode(*RuntimeContext, int64, int64, unsafe.Pointer) (int64, error) + DecodePath(*RuntimeContext, int64, int64) ([][]byte, int64, error) DecodeStream(*Stream, int64, unsafe.Pointer) error } diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/uint.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/uint.go index a62c514..4131731 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/uint.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/uint.go @@ -188,3 +188,7 @@ func (d *uintDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, p unsafe. d.op(p, u64) return cursor, nil } + +func (d *uintDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: uint decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go index e9b25c6..4cd6dbd 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go @@ -3,6 +3,7 @@ package decoder import ( "context" "encoding/json" + "fmt" "unsafe" "github.com/goccy/go-json/internal/errors" @@ -97,3 +98,7 @@ func (d *unmarshalJSONDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, } return end, nil } + +func (d *unmarshalJSONDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: unmarshal json decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go index 1ef2877..6d37993 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go @@ -3,6 +3,7 @@ package decoder import ( "bytes" "encoding" + "fmt" "unicode" "unicode/utf16" "unicode/utf8" @@ -142,6 +143,10 @@ func (d *unmarshalTextDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, return end, nil } +func (d *unmarshalTextDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: unmarshal text decoder does not support decode path") +} + func unquoteBytes(s []byte) (t []byte, ok bool) { length := len(s) if length < 2 || s[0] != '"' || s[length-1] != '"' { diff --git a/ext/vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go b/ext/vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go index 66227ae..0c4e2e6 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go +++ b/ext/vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go @@ -1,6 +1,7 @@ package decoder import ( + "fmt" "reflect" "unsafe" @@ -66,3 +67,7 @@ func (d *wrappedStringDecoder) Decode(ctx *RuntimeContext, cursor, depth int64, ctx.Buf = oldBuf return c, nil } + +func (d *wrappedStringDecoder) DecodePath(ctx *RuntimeContext, cursor, depth int64) ([][]byte, int64, error) { + return nil, 0, fmt.Errorf("json: wrapped string decoder does not support decode path") +} diff --git a/ext/vendor/github.com/goccy/go-json/internal/encoder/compiler.go b/ext/vendor/github.com/goccy/go-json/internal/encoder/compiler.go index bf5e0f9..3b3ff3f 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/encoder/compiler.go +++ b/ext/vendor/github.com/goccy/go-json/internal/encoder/compiler.go @@ -506,8 +506,6 @@ func (c *Compiler) listElemCode(typ *runtime.Type) (Code, error) { func (c *Compiler) mapKeyCode(typ *runtime.Type) (Code, error) { switch { - case c.implementsMarshalJSON(typ): - return c.marshalJSONCode(typ) case c.implementsMarshalText(typ): return c.marshalTextCode(typ) } diff --git a/ext/vendor/github.com/goccy/go-json/internal/errors/error.go b/ext/vendor/github.com/goccy/go-json/internal/errors/error.go index d58e39f..9207d0f 100644 --- a/ext/vendor/github.com/goccy/go-json/internal/errors/error.go +++ b/ext/vendor/github.com/goccy/go-json/internal/errors/error.go @@ -162,3 +162,22 @@ func ErrInvalidBeginningOfValue(c byte, cursor int64) *SyntaxError { Offset: cursor, } } + +type PathError struct { + msg string +} + +func (e *PathError) Error() string { + return fmt.Sprintf("json: invalid path format: %s", e.msg) +} + +func ErrInvalidPath(msg string, args ...interface{}) *PathError { + if len(args) != 0 { + return &PathError{msg: fmt.Sprintf(msg, args...)} + } + return &PathError{msg: msg} +} + +func ErrEmptyPath() *PathError { + return &PathError{msg: "path is empty"} +} diff --git a/ext/vendor/github.com/goccy/go-json/path.go b/ext/vendor/github.com/goccy/go-json/path.go new file mode 100644 index 0000000..38abce7 --- /dev/null +++ b/ext/vendor/github.com/goccy/go-json/path.go @@ -0,0 +1,84 @@ +package json + +import ( + "reflect" + + "github.com/goccy/go-json/internal/decoder" +) + +// CreatePath creates JSON Path. +// +// JSON Path rule +// $ : root object or element. The JSON Path format must start with this operator, which refers to the outermost level of the JSON-formatted string. +// . : child operator. You can identify child values using dot-notation. +// .. : recursive descent. +// [] : subscript operator. If the JSON object is an array, you can use brackets to specify the array index. +// [*] : all objects/elements for array. +// +// Reserved words must be properly escaped when included in Path. +// +// Escape Rule +// single quote style escape: e.g.) `$['a.b'].c` +// double quote style escape: e.g.) `$."a.b".c` +func CreatePath(p string) (*Path, error) { + path, err := decoder.PathString(p).Build() + if err != nil { + return nil, err + } + return &Path{path: path}, nil +} + +// Path represents JSON Path. +type Path struct { + path *decoder.Path +} + +// RootSelectorOnly whether only the root selector ($) is used. +func (p *Path) RootSelectorOnly() bool { + return p.path.RootSelectorOnly +} + +// UsedSingleQuotePathSelector whether single quote-based escaping was done when building the JSON Path. +func (p *Path) UsedSingleQuotePathSelector() bool { + return p.path.SingleQuotePathSelector +} + +// UsedSingleQuotePathSelector whether double quote-based escaping was done when building the JSON Path. +func (p *Path) UsedDoubleQuotePathSelector() bool { + return p.path.DoubleQuotePathSelector +} + +// Extract extracts a specific JSON string. +func (p *Path) Extract(data []byte, optFuncs ...DecodeOptionFunc) ([][]byte, error) { + return extractFromPath(p, data, optFuncs...) +} + +// PathString returns original JSON Path string. +func (p *Path) PathString() string { + return p.path.String() +} + +// Unmarshal extract and decode the value of the part corresponding to JSON Path from the input data. +func (p *Path) Unmarshal(data []byte, v interface{}, optFuncs ...DecodeOptionFunc) error { + contents, err := extractFromPath(p, data, optFuncs...) + if err != nil { + return err + } + results := make([]interface{}, 0, len(contents)) + for _, content := range contents { + var result interface{} + if err := Unmarshal(content, &result); err != nil { + return err + } + results = append(results, result) + } + if err := decoder.AssignValue(reflect.ValueOf(results), reflect.ValueOf(v)); err != nil { + return err + } + return nil +} + +// Get extract and substitute the value of the part corresponding to JSON Path from the input value. +func (p *Path) Get(src, dst interface{}) error { + return p.path.Get(reflect.ValueOf(src), reflect.ValueOf(dst)) +} diff --git a/ext/vendor/github.com/google/flatbuffers/go/builder.go b/ext/vendor/github.com/google/flatbuffers/go/builder.go index d99b590..5d90e8e 100644 --- a/ext/vendor/github.com/google/flatbuffers/go/builder.go +++ b/ext/vendor/github.com/google/flatbuffers/go/builder.go @@ -1,5 +1,7 @@ package flatbuffers +import "sort" + // Builder is a state machine for creating FlatBuffer objects. // Use a Builder to construct object(s) starting from leaf nodes. // @@ -315,6 +317,25 @@ func (b *Builder) EndVector(vectorNumElems int) UOffsetT { return b.Offset() } +// CreateVectorOfTables serializes slice of table offsets into a vector. +func (b *Builder) CreateVectorOfTables(offsets []UOffsetT) UOffsetT { + b.assertNotNested() + b.StartVector(4, len(offsets), 4) + for i := len(offsets) - 1; i >= 0; i-- { + b.PrependUOffsetT(offsets[i]) + } + return b.EndVector(len(offsets)) +} + +type KeyCompare func(o1, o2 UOffsetT, buf []byte) bool + +func (b *Builder) CreateVectorOfSortedTables(offsets []UOffsetT, keyCompare KeyCompare) UOffsetT { + sort.Slice(offsets, func(i, j int) bool { + return keyCompare(offsets[i], offsets[j], b.Bytes) + }) + return b.CreateVectorOfTables(offsets) +} + // CreateSharedString Checks if the string is already written // to the buffer before calling CreateString func (b *Builder) CreateSharedString(s string) UOffsetT { diff --git a/ext/vendor/github.com/google/flatbuffers/go/lib.go b/ext/vendor/github.com/google/flatbuffers/go/lib.go index 9a333ff..9333d8b 100644 --- a/ext/vendor/github.com/google/flatbuffers/go/lib.go +++ b/ext/vendor/github.com/google/flatbuffers/go/lib.go @@ -23,3 +23,8 @@ func GetSizePrefixedRootAs(buf []byte, offset UOffsetT, fb FlatBuffer) { func GetSizePrefix(buf []byte, offset UOffsetT) uint32 { return GetUint32(buf[offset:]) } + +// GetIndirectOffset retrives the relative offset in the provided buffer stored at `offset`. +func GetIndirectOffset(buf []byte, offset UOffsetT) UOffsetT { + return offset + GetUOffsetT(buf[offset:]) +} diff --git a/ext/vendor/github.com/klauspost/compress/.goreleaser.yml b/ext/vendor/github.com/klauspost/compress/.goreleaser.yml index 0af08e6..a2bf06e 100644 --- a/ext/vendor/github.com/klauspost/compress/.goreleaser.yml +++ b/ext/vendor/github.com/klauspost/compress/.goreleaser.yml @@ -3,7 +3,7 @@ before: hooks: - ./gen.sh - - go install mvdan.cc/garble@latest + - go install mvdan.cc/garble@v0.7.2 builds: - diff --git a/ext/vendor/github.com/klauspost/compress/README.md b/ext/vendor/github.com/klauspost/compress/README.md index 3c00c1a..63f2cd5 100644 --- a/ext/vendor/github.com/klauspost/compress/README.md +++ b/ext/vendor/github.com/klauspost/compress/README.md @@ -9,7 +9,6 @@ This package provides various compression algorithms. * [huff0](https://github.com/klauspost/compress/tree/master/huff0) and [FSE](https://github.com/klauspost/compress/tree/master/fse) implementations for raw entropy encoding. * [gzhttp](https://github.com/klauspost/compress/tree/master/gzhttp) Provides client and server wrappers for handling gzipped requests efficiently. * [pgzip](https://github.com/klauspost/pgzip) is a separate package that provides a very fast parallel gzip implementation. -* [fuzz package](https://github.com/klauspost/compress-fuzz) for fuzz testing all compressors/decompressors here. [![Go Reference](https://pkg.go.dev/badge/klauspost/compress.svg)](https://pkg.go.dev/github.com/klauspost/compress?tab=subdirectories) [![Go](https://github.com/klauspost/compress/actions/workflows/go.yml/badge.svg)](https://github.com/klauspost/compress/actions/workflows/go.yml) @@ -17,6 +16,29 @@ This package provides various compression algorithms. # changelog +* Jan 3rd, 2023 (v1.15.14) + + * flate: Improve speed in big stateless blocks https://github.com/klauspost/compress/pull/718 + * zstd: Minor speed tweaks by @greatroar in https://github.com/klauspost/compress/pull/716 https://github.com/klauspost/compress/pull/720 + * export NoGzipResponseWriter for custom ResponseWriter wrappers by @harshavardhana in https://github.com/klauspost/compress/pull/722 + * s2: Add example for indexing and existing stream https://github.com/klauspost/compress/pull/723 + +* Dec 11, 2022 (v1.15.13) + * zstd: Add [MaxEncodedSize](https://pkg.go.dev/github.com/klauspost/compress@v1.15.13/zstd#Encoder.MaxEncodedSize) to encoder https://github.com/klauspost/compress/pull/691 + * zstd: Various tweaks and improvements https://github.com/klauspost/compress/pull/693 https://github.com/klauspost/compress/pull/695 https://github.com/klauspost/compress/pull/696 https://github.com/klauspost/compress/pull/701 https://github.com/klauspost/compress/pull/702 https://github.com/klauspost/compress/pull/703 https://github.com/klauspost/compress/pull/704 https://github.com/klauspost/compress/pull/705 https://github.com/klauspost/compress/pull/706 https://github.com/klauspost/compress/pull/707 https://github.com/klauspost/compress/pull/708 + +* Oct 26, 2022 (v1.15.12) + + * zstd: Tweak decoder allocs. https://github.com/klauspost/compress/pull/680 + * gzhttp: Always delete `HeaderNoCompression` https://github.com/klauspost/compress/pull/683 + +* Sept 26, 2022 (v1.15.11) + + * flate: Improve level 1-3 compression https://github.com/klauspost/compress/pull/678 + * zstd: Improve "best" compression by @nightwolfz in https://github.com/klauspost/compress/pull/677 + * zstd: Fix+reduce decompression allocations https://github.com/klauspost/compress/pull/668 + * zstd: Fix non-effective noescape tag https://github.com/klauspost/compress/pull/667 + * Sept 16, 2022 (v1.15.10) * zstd: Add [WithDecodeAllCapLimit](https://pkg.go.dev/github.com/klauspost/compress@v1.15.10/zstd#WithDecodeAllCapLimit) https://github.com/klauspost/compress/pull/649 diff --git a/ext/vendor/github.com/klauspost/compress/flate/deflate.go b/ext/vendor/github.com/klauspost/compress/flate/deflate.go index 07265dd..8288296 100644 --- a/ext/vendor/github.com/klauspost/compress/flate/deflate.go +++ b/ext/vendor/github.com/klauspost/compress/flate/deflate.go @@ -294,7 +294,6 @@ func (d *compressor) findMatch(pos int, prevHead int, lookahead int) (length, of } offset = 0 - cGain := 0 if d.chain < 100 { for i := prevHead; tries > 0; tries-- { if wEnd == win[i+length] { @@ -322,10 +321,14 @@ func (d *compressor) findMatch(pos int, prevHead int, lookahead int) (length, of return } + // Minimum gain to accept a match. + cGain := 4 + // Some like it higher (CSV), some like it lower (JSON) - const baseCost = 6 + const baseCost = 3 // Base is 4 bytes at with an additional cost. // Matches must be better than this. + for i := prevHead; tries > 0; tries-- { if wEnd == win[i+length] { n := matchLen(win[i:i+minMatchLook], wPos) @@ -333,7 +336,7 @@ func (d *compressor) findMatch(pos int, prevHead int, lookahead int) (length, of // Calculate gain. Estimate newGain := d.h.bitLengthRaw(wPos[:n]) - int(offsetExtraBits[offsetCode(uint32(pos-i))]) - baseCost - int(lengthExtraBits[lengthCodes[(n-3)&255]]) - //fmt.Println(n, "gain:", newGain, "prev:", cGain, "raw:", d.h.bitLengthRaw(wPos[:n])) + //fmt.Println("gain:", newGain, "prev:", cGain, "raw:", d.h.bitLengthRaw(wPos[:n]), "this-len:", n, "prev-len:", length) if newGain > cGain { length = n offset = pos - i @@ -490,27 +493,103 @@ func (d *compressor) deflateLazy() { } if prevLength >= minMatchLength && s.length <= prevLength { - // Check for better match at end... + // No better match, but check for better match at end... // - // checkOff must be >=2 since we otherwise risk checking s.index - // Offset of 2 seems to yield best results. + // Skip forward a number of bytes. + // Offset of 2 seems to yield best results. 3 is sometimes better. const checkOff = 2 - prevIndex := s.index - 1 - if prevIndex+prevLength+checkOff < s.maxInsertIndex { - end := lookahead - if lookahead > maxMatchLength { - end = maxMatchLength - } - end += prevIndex - idx := prevIndex + prevLength - (4 - checkOff) - h := hash4(d.window[idx:]) - ch2 := int(s.hashHead[h]) - s.hashOffset - prevLength + (4 - checkOff) - if ch2 > minIndex { - length := matchLen(d.window[prevIndex:end], d.window[ch2:]) - // It seems like a pure length metric is best. - if length > prevLength { - prevLength = length - prevOffset = prevIndex - ch2 + + // Check all, except full length + if prevLength < maxMatchLength-checkOff { + prevIndex := s.index - 1 + if prevIndex+prevLength < s.maxInsertIndex { + end := lookahead + if lookahead > maxMatchLength+checkOff { + end = maxMatchLength + checkOff + } + end += prevIndex + + // Hash at match end. + h := hash4(d.window[prevIndex+prevLength:]) + ch2 := int(s.hashHead[h]) - s.hashOffset - prevLength + if prevIndex-ch2 != prevOffset && ch2 > minIndex+checkOff { + length := matchLen(d.window[prevIndex+checkOff:end], d.window[ch2+checkOff:]) + // It seems like a pure length metric is best. + if length > prevLength { + prevLength = length + prevOffset = prevIndex - ch2 + + // Extend back... + for i := checkOff - 1; i >= 0; i-- { + if prevLength >= maxMatchLength || d.window[prevIndex+i] != d.window[ch2+i] { + // Emit tokens we "owe" + for j := 0; j <= i; j++ { + d.tokens.AddLiteral(d.window[prevIndex+j]) + if d.tokens.n == maxFlateBlockTokens { + // The block includes the current character + if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { + return + } + d.tokens.Reset() + } + s.index++ + if s.index < s.maxInsertIndex { + h := hash4(d.window[s.index:]) + ch := s.hashHead[h] + s.chainHead = int(ch) + s.hashPrev[s.index&windowMask] = ch + s.hashHead[h] = uint32(s.index + s.hashOffset) + } + } + break + } else { + prevLength++ + } + } + } else if false { + // Check one further ahead. + // Only rarely better, disabled for now. + prevIndex++ + h := hash4(d.window[prevIndex+prevLength:]) + ch2 := int(s.hashHead[h]) - s.hashOffset - prevLength + if prevIndex-ch2 != prevOffset && ch2 > minIndex+checkOff { + length := matchLen(d.window[prevIndex+checkOff:end], d.window[ch2+checkOff:]) + // It seems like a pure length metric is best. + if length > prevLength+checkOff { + prevLength = length + prevOffset = prevIndex - ch2 + prevIndex-- + + // Extend back... + for i := checkOff; i >= 0; i-- { + if prevLength >= maxMatchLength || d.window[prevIndex+i] != d.window[ch2+i-1] { + // Emit tokens we "owe" + for j := 0; j <= i; j++ { + d.tokens.AddLiteral(d.window[prevIndex+j]) + if d.tokens.n == maxFlateBlockTokens { + // The block includes the current character + if d.err = d.writeBlock(&d.tokens, s.index, false); d.err != nil { + return + } + d.tokens.Reset() + } + s.index++ + if s.index < s.maxInsertIndex { + h := hash4(d.window[s.index:]) + ch := s.hashHead[h] + s.chainHead = int(ch) + s.hashPrev[s.index&windowMask] = ch + s.hashHead[h] = uint32(s.index + s.hashOffset) + } + } + break + } else { + prevLength++ + } + } + } + } + } } } } diff --git a/ext/vendor/github.com/klauspost/compress/flate/stateless.go b/ext/vendor/github.com/klauspost/compress/flate/stateless.go index 93a1d15..f3d4139 100644 --- a/ext/vendor/github.com/klauspost/compress/flate/stateless.go +++ b/ext/vendor/github.com/klauspost/compress/flate/stateless.go @@ -86,11 +86,19 @@ func StatelessDeflate(out io.Writer, in []byte, eof bool, dict []byte) error { dict = dict[len(dict)-maxStatelessDict:] } + // For subsequent loops, keep shallow dict reference to avoid alloc+copy. + var inDict []byte + for len(in) > 0 { todo := in - if len(todo) > maxStatelessBlock-len(dict) { + if len(inDict) > 0 { + if len(todo) > maxStatelessBlock-maxStatelessDict { + todo = todo[:maxStatelessBlock-maxStatelessDict] + } + } else if len(todo) > maxStatelessBlock-len(dict) { todo = todo[:maxStatelessBlock-len(dict)] } + inOrg := in in = in[len(todo):] uncompressed := todo if len(dict) > 0 { @@ -102,7 +110,11 @@ func StatelessDeflate(out io.Writer, in []byte, eof bool, dict []byte) error { todo = combined } // Compress - statelessEnc(&dst, todo, int16(len(dict))) + if len(inDict) == 0 { + statelessEnc(&dst, todo, int16(len(dict))) + } else { + statelessEnc(&dst, inDict[:maxStatelessDict+len(todo)], maxStatelessDict) + } isEof := eof && len(in) == 0 if dst.n == 0 { @@ -119,7 +131,8 @@ func StatelessDeflate(out io.Writer, in []byte, eof bool, dict []byte) error { } if len(in) > 0 { // Retain a dict if we have more - dict = todo[len(todo)-maxStatelessDict:] + inDict = inOrg[len(uncompressed)-maxStatelessDict:] + dict = nil dst.Reset() } if bw.err != nil { diff --git a/ext/vendor/github.com/klauspost/compress/fse/compress.go b/ext/vendor/github.com/klauspost/compress/fse/compress.go index 6f34191..dac97e5 100644 --- a/ext/vendor/github.com/klauspost/compress/fse/compress.go +++ b/ext/vendor/github.com/klauspost/compress/fse/compress.go @@ -146,54 +146,51 @@ func (s *Scratch) compress(src []byte) error { c1.encodeZero(tt[src[ip-2]]) ip -= 2 } + src = src[:ip] // Main compression loop. switch { case !s.zeroBits && s.actualTableLog <= 8: // We can encode 4 symbols without requiring a flush. // We do not need to check if any output is 0 bits. - for ip >= 4 { + for ; len(src) >= 4; src = src[:len(src)-4] { s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + v3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1] c2.encode(tt[v0]) c1.encode(tt[v1]) c2.encode(tt[v2]) c1.encode(tt[v3]) - ip -= 4 } case !s.zeroBits: // We do not need to check if any output is 0 bits. - for ip >= 4 { + for ; len(src) >= 4; src = src[:len(src)-4] { s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + v3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1] c2.encode(tt[v0]) c1.encode(tt[v1]) s.bw.flush32() c2.encode(tt[v2]) c1.encode(tt[v3]) - ip -= 4 } case s.actualTableLog <= 8: // We can encode 4 symbols without requiring a flush - for ip >= 4 { + for ; len(src) >= 4; src = src[:len(src)-4] { s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + v3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1] c2.encodeZero(tt[v0]) c1.encodeZero(tt[v1]) c2.encodeZero(tt[v2]) c1.encodeZero(tt[v3]) - ip -= 4 } default: - for ip >= 4 { + for ; len(src) >= 4; src = src[:len(src)-4] { s.bw.flush32() - v3, v2, v1, v0 := src[ip-4], src[ip-3], src[ip-2], src[ip-1] + v3, v2, v1, v0 := src[len(src)-4], src[len(src)-3], src[len(src)-2], src[len(src)-1] c2.encodeZero(tt[v0]) c1.encodeZero(tt[v1]) s.bw.flush32() c2.encodeZero(tt[v2]) c1.encodeZero(tt[v3]) - ip -= 4 } } @@ -459,15 +456,17 @@ func (s *Scratch) countSimple(in []byte) (max int) { for _, v := range in { s.count[v]++ } - m := uint32(0) + m, symlen := uint32(0), s.symbolLen for i, v := range s.count[:] { + if v == 0 { + continue + } if v > m { m = v } - if v > 0 { - s.symbolLen = uint16(i) + 1 - } + symlen = uint16(i) + 1 } + s.symbolLen = symlen return int(m) } diff --git a/ext/vendor/github.com/klauspost/compress/huff0/bitreader.go b/ext/vendor/github.com/klauspost/compress/huff0/bitreader.go index 504a7be..e36d974 100644 --- a/ext/vendor/github.com/klauspost/compress/huff0/bitreader.go +++ b/ext/vendor/github.com/klauspost/compress/huff0/bitreader.go @@ -67,7 +67,6 @@ func (b *bitReaderBytes) fillFast() { // 2 bounds checks. v := b.in[b.off-4 : b.off] - v = v[:4] low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) b.value |= uint64(low) << (b.bitsRead - 32) b.bitsRead -= 32 @@ -88,8 +87,7 @@ func (b *bitReaderBytes) fill() { return } if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] + v := b.in[b.off-4 : b.off] low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) b.value |= uint64(low) << (b.bitsRead - 32) b.bitsRead -= 32 @@ -179,7 +177,6 @@ func (b *bitReaderShifted) fillFast() { // 2 bounds checks. v := b.in[b.off-4 : b.off] - v = v[:4] low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) b.value |= uint64(low) << ((b.bitsRead - 32) & 63) b.bitsRead -= 32 @@ -200,8 +197,7 @@ func (b *bitReaderShifted) fill() { return } if b.off > 4 { - v := b.in[b.off-4:] - v = v[:4] + v := b.in[b.off-4 : b.off] low := (uint32(v[0])) | (uint32(v[1]) << 8) | (uint32(v[2]) << 16) | (uint32(v[3]) << 24) b.value |= uint64(low) << ((b.bitsRead - 32) & 63) b.bitsRead -= 32 diff --git a/ext/vendor/github.com/klauspost/compress/huff0/compress.go b/ext/vendor/github.com/klauspost/compress/huff0/compress.go index 4d14542..cdc9485 100644 --- a/ext/vendor/github.com/klauspost/compress/huff0/compress.go +++ b/ext/vendor/github.com/klauspost/compress/huff0/compress.go @@ -365,29 +365,29 @@ func (s *Scratch) countSimple(in []byte) (max int, reuse bool) { m := uint32(0) if len(s.prevTable) > 0 { for i, v := range s.count[:] { + if v == 0 { + continue + } if v > m { m = v } - if v > 0 { - s.symbolLen = uint16(i) + 1 - if i >= len(s.prevTable) { - reuse = false - } else { - if s.prevTable[i].nBits == 0 { - reuse = false - } - } + s.symbolLen = uint16(i) + 1 + if i >= len(s.prevTable) { + reuse = false + } else if s.prevTable[i].nBits == 0 { + reuse = false } } return int(m), reuse } for i, v := range s.count[:] { + if v == 0 { + continue + } if v > m { m = v } - if v > 0 { - s.symbolLen = uint16(i) + 1 - } + s.symbolLen = uint16(i) + 1 } return int(m), false } @@ -484,34 +484,35 @@ func (s *Scratch) buildCTable() error { // Different from reference implementation. huffNode0 := s.nodes[0 : huffNodesLen+1] - for huffNode[nonNullRank].count == 0 { + for huffNode[nonNullRank].count() == 0 { nonNullRank-- } lowS := int16(nonNullRank) nodeRoot := nodeNb + lowS - 1 lowN := nodeNb - huffNode[nodeNb].count = huffNode[lowS].count + huffNode[lowS-1].count - huffNode[lowS].parent, huffNode[lowS-1].parent = uint16(nodeNb), uint16(nodeNb) + huffNode[nodeNb].setCount(huffNode[lowS].count() + huffNode[lowS-1].count()) + huffNode[lowS].setParent(nodeNb) + huffNode[lowS-1].setParent(nodeNb) nodeNb++ lowS -= 2 for n := nodeNb; n <= nodeRoot; n++ { - huffNode[n].count = 1 << 30 + huffNode[n].setCount(1 << 30) } // fake entry, strong barrier - huffNode0[0].count = 1 << 31 + huffNode0[0].setCount(1 << 31) // create parents for nodeNb <= nodeRoot { var n1, n2 int16 - if huffNode0[lowS+1].count < huffNode0[lowN+1].count { + if huffNode0[lowS+1].count() < huffNode0[lowN+1].count() { n1 = lowS lowS-- } else { n1 = lowN lowN++ } - if huffNode0[lowS+1].count < huffNode0[lowN+1].count { + if huffNode0[lowS+1].count() < huffNode0[lowN+1].count() { n2 = lowS lowS-- } else { @@ -519,18 +520,19 @@ func (s *Scratch) buildCTable() error { lowN++ } - huffNode[nodeNb].count = huffNode0[n1+1].count + huffNode0[n2+1].count - huffNode0[n1+1].parent, huffNode0[n2+1].parent = uint16(nodeNb), uint16(nodeNb) + huffNode[nodeNb].setCount(huffNode0[n1+1].count() + huffNode0[n2+1].count()) + huffNode0[n1+1].setParent(nodeNb) + huffNode0[n2+1].setParent(nodeNb) nodeNb++ } // distribute weights (unlimited tree height) - huffNode[nodeRoot].nbBits = 0 + huffNode[nodeRoot].setNbBits(0) for n := nodeRoot - 1; n >= startNode; n-- { - huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 + huffNode[n].setNbBits(huffNode[huffNode[n].parent()].nbBits() + 1) } for n := uint16(0); n <= nonNullRank; n++ { - huffNode[n].nbBits = huffNode[huffNode[n].parent].nbBits + 1 + huffNode[n].setNbBits(huffNode[huffNode[n].parent()].nbBits() + 1) } s.actualTableLog = s.setMaxHeight(int(nonNullRank)) maxNbBits := s.actualTableLog @@ -542,7 +544,7 @@ func (s *Scratch) buildCTable() error { var nbPerRank [tableLogMax + 1]uint16 var valPerRank [16]uint16 for _, v := range huffNode[:nonNullRank+1] { - nbPerRank[v.nbBits]++ + nbPerRank[v.nbBits()]++ } // determine stating value per rank { @@ -557,7 +559,7 @@ func (s *Scratch) buildCTable() error { // push nbBits per symbol, symbol order for _, v := range huffNode[:nonNullRank+1] { - s.cTable[v.symbol].nBits = v.nbBits + s.cTable[v.symbol()].nBits = v.nbBits() } // assign value within rank, symbol order @@ -603,12 +605,12 @@ func (s *Scratch) huffSort() { pos := rank[r].current rank[r].current++ prev := nodes[(pos-1)&huffNodesMask] - for pos > rank[r].base && c > prev.count { + for pos > rank[r].base && c > prev.count() { nodes[pos&huffNodesMask] = prev pos-- prev = nodes[(pos-1)&huffNodesMask] } - nodes[pos&huffNodesMask] = nodeElt{count: c, symbol: byte(n)} + nodes[pos&huffNodesMask] = makeNodeElt(c, byte(n)) } } @@ -617,7 +619,7 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { huffNode := s.nodes[1 : huffNodesLen+1] //huffNode = huffNode[: huffNodesLen] - largestBits := huffNode[lastNonNull].nbBits + largestBits := huffNode[lastNonNull].nbBits() // early exit : no elt > maxNbBits if largestBits <= maxNbBits { @@ -627,14 +629,14 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { baseCost := int(1) << (largestBits - maxNbBits) n := uint32(lastNonNull) - for huffNode[n].nbBits > maxNbBits { - totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)) - huffNode[n].nbBits = maxNbBits + for huffNode[n].nbBits() > maxNbBits { + totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits())) + huffNode[n].setNbBits(maxNbBits) n-- } // n stops at huffNode[n].nbBits <= maxNbBits - for huffNode[n].nbBits == maxNbBits { + for huffNode[n].nbBits() == maxNbBits { n-- } // n end at index of smallest symbol using < maxNbBits @@ -655,10 +657,10 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { { currentNbBits := maxNbBits for pos := int(n); pos >= 0; pos-- { - if huffNode[pos].nbBits >= currentNbBits { + if huffNode[pos].nbBits() >= currentNbBits { continue } - currentNbBits = huffNode[pos].nbBits // < maxNbBits + currentNbBits = huffNode[pos].nbBits() // < maxNbBits rankLast[maxNbBits-currentNbBits] = uint32(pos) } } @@ -675,8 +677,8 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { if lowPos == noSymbol { break } - highTotal := huffNode[highPos].count - lowTotal := 2 * huffNode[lowPos].count + highTotal := huffNode[highPos].count() + lowTotal := 2 * huffNode[lowPos].count() if highTotal <= lowTotal { break } @@ -692,13 +694,14 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { // this rank is no longer empty rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease] } - huffNode[rankLast[nBitsToDecrease]].nbBits++ + huffNode[rankLast[nBitsToDecrease]].setNbBits(1 + + huffNode[rankLast[nBitsToDecrease]].nbBits()) if rankLast[nBitsToDecrease] == 0 { /* special case, reached largest symbol */ rankLast[nBitsToDecrease] = noSymbol } else { rankLast[nBitsToDecrease]-- - if huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease { + if huffNode[rankLast[nBitsToDecrease]].nbBits() != maxNbBits-nBitsToDecrease { rankLast[nBitsToDecrease] = noSymbol /* this rank is now empty */ } } @@ -706,15 +709,15 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { for totalCost < 0 { /* Sometimes, cost correction overshoot */ if rankLast[1] == noSymbol { /* special case : no rank 1 symbol (using maxNbBits-1); let's create one from largest rank 0 (using maxNbBits) */ - for huffNode[n].nbBits == maxNbBits { + for huffNode[n].nbBits() == maxNbBits { n-- } - huffNode[n+1].nbBits-- + huffNode[n+1].setNbBits(huffNode[n+1].nbBits() - 1) rankLast[1] = n + 1 totalCost++ continue } - huffNode[rankLast[1]+1].nbBits-- + huffNode[rankLast[1]+1].setNbBits(huffNode[rankLast[1]+1].nbBits() - 1) rankLast[1]++ totalCost++ } @@ -722,9 +725,26 @@ func (s *Scratch) setMaxHeight(lastNonNull int) uint8 { return maxNbBits } -type nodeElt struct { - count uint32 - parent uint16 - symbol byte - nbBits uint8 +// A nodeElt is the fields +// +// count uint32 +// parent uint16 +// symbol byte +// nbBits uint8 +// +// in some order, all squashed into an integer so that the compiler +// always loads and stores entire nodeElts instead of separate fields. +type nodeElt uint64 + +func makeNodeElt(count uint32, symbol byte) nodeElt { + return nodeElt(count) | nodeElt(symbol)<<48 } + +func (e *nodeElt) count() uint32 { return uint32(*e) } +func (e *nodeElt) parent() uint16 { return uint16(*e >> 32) } +func (e *nodeElt) symbol() byte { return byte(*e >> 48) } +func (e *nodeElt) nbBits() uint8 { return uint8(*e >> 56) } + +func (e *nodeElt) setCount(c uint32) { *e = (*e)&0xffffffff00000000 | nodeElt(c) } +func (e *nodeElt) setParent(p int16) { *e = (*e)&0xffff0000ffffffff | nodeElt(uint16(p))<<32 } +func (e *nodeElt) setNbBits(n uint8) { *e = (*e)&0x00ffffffffffffff | nodeElt(n)<<56 } diff --git a/ext/vendor/github.com/klauspost/compress/huff0/decompress_amd64.s b/ext/vendor/github.com/klauspost/compress/huff0/decompress_amd64.s index 8d2187a..c4c7ab2 100644 --- a/ext/vendor/github.com/klauspost/compress/huff0/decompress_amd64.s +++ b/ext/vendor/github.com/klauspost/compress/huff0/decompress_amd64.s @@ -4,360 +4,349 @@ // func decompress4x_main_loop_amd64(ctx *decompress4xContext) TEXT ·decompress4x_main_loop_amd64(SB), $0-8 - XORQ DX, DX - // Preload values MOVQ ctx+0(FP), AX MOVBQZX 8(AX), DI - MOVQ 16(AX), SI - MOVQ 48(AX), BX - MOVQ 24(AX), R9 - MOVQ 32(AX), R10 - MOVQ (AX), R11 + MOVQ 16(AX), BX + MOVQ 48(AX), SI + MOVQ 24(AX), R8 + MOVQ 32(AX), R9 + MOVQ (AX), R10 // Main loop main_loop: - MOVQ SI, R8 - CMPQ R8, BX + XORL DX, DX + CMPQ BX, SI SETGE DL // br0.fillFast32() - MOVQ 32(R11), R12 - MOVBQZX 40(R11), R13 - CMPQ R13, $0x20 + MOVQ 32(R10), R11 + MOVBQZX 40(R10), R12 + CMPQ R12, $0x20 JBE skip_fill0 - MOVQ 24(R11), AX - SUBQ $0x20, R13 + MOVQ 24(R10), AX + SUBQ $0x20, R12 SUBQ $0x04, AX - MOVQ (R11), R14 + MOVQ (R10), R13 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (AX)(R14*1), R14 - MOVQ R13, CX - SHLQ CL, R14 - MOVQ AX, 24(R11) - ORQ R14, R12 + MOVL (AX)(R13*1), R13 + MOVQ R12, CX + SHLQ CL, R13 + MOVQ AX, 24(R10) + ORQ R13, R11 - // exhausted = exhausted || (br0.off < 4) - CMPQ AX, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br0.off < 4) + CMPQ AX, $0x04 + ADCB $+0, DL skip_fill0: // val0 := br0.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br0.peekTopBits(peekBits) MOVQ DI, CX - MOVQ R12, R14 - SHRQ CL, R14 + MOVQ R11, R13 + SHRQ CL, R13 // v1 := table[val1&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v1.entry)) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // these two writes get coalesced // out[id * dstEvery + 0] = uint8(v0.entry >> 8) // out[id * dstEvery + 1] = uint8(v1.entry >> 8) - MOVW AX, (R8) + MOVW AX, (BX) // update the bitreader structure - MOVQ R12, 32(R11) - MOVB R13, 40(R11) - ADDQ R9, R8 + MOVQ R11, 32(R10) + MOVB R12, 40(R10) // br1.fillFast32() - MOVQ 80(R11), R12 - MOVBQZX 88(R11), R13 - CMPQ R13, $0x20 + MOVQ 80(R10), R11 + MOVBQZX 88(R10), R12 + CMPQ R12, $0x20 JBE skip_fill1 - MOVQ 72(R11), AX - SUBQ $0x20, R13 + MOVQ 72(R10), AX + SUBQ $0x20, R12 SUBQ $0x04, AX - MOVQ 48(R11), R14 + MOVQ 48(R10), R13 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (AX)(R14*1), R14 - MOVQ R13, CX - SHLQ CL, R14 - MOVQ AX, 72(R11) - ORQ R14, R12 + MOVL (AX)(R13*1), R13 + MOVQ R12, CX + SHLQ CL, R13 + MOVQ AX, 72(R10) + ORQ R13, R11 - // exhausted = exhausted || (br1.off < 4) - CMPQ AX, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br1.off < 4) + CMPQ AX, $0x04 + ADCB $+0, DL skip_fill1: // val0 := br1.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br1.peekTopBits(peekBits) MOVQ DI, CX - MOVQ R12, R14 - SHRQ CL, R14 + MOVQ R11, R13 + SHRQ CL, R13 // v1 := table[val1&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v1.entry)) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // these two writes get coalesced // out[id * dstEvery + 0] = uint8(v0.entry >> 8) // out[id * dstEvery + 1] = uint8(v1.entry >> 8) - MOVW AX, (R8) + MOVW AX, (BX)(R8*1) // update the bitreader structure - MOVQ R12, 80(R11) - MOVB R13, 88(R11) - ADDQ R9, R8 + MOVQ R11, 80(R10) + MOVB R12, 88(R10) // br2.fillFast32() - MOVQ 128(R11), R12 - MOVBQZX 136(R11), R13 - CMPQ R13, $0x20 + MOVQ 128(R10), R11 + MOVBQZX 136(R10), R12 + CMPQ R12, $0x20 JBE skip_fill2 - MOVQ 120(R11), AX - SUBQ $0x20, R13 + MOVQ 120(R10), AX + SUBQ $0x20, R12 SUBQ $0x04, AX - MOVQ 96(R11), R14 + MOVQ 96(R10), R13 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (AX)(R14*1), R14 - MOVQ R13, CX - SHLQ CL, R14 - MOVQ AX, 120(R11) - ORQ R14, R12 + MOVL (AX)(R13*1), R13 + MOVQ R12, CX + SHLQ CL, R13 + MOVQ AX, 120(R10) + ORQ R13, R11 - // exhausted = exhausted || (br2.off < 4) - CMPQ AX, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br2.off < 4) + CMPQ AX, $0x04 + ADCB $+0, DL skip_fill2: // val0 := br2.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br2.peekTopBits(peekBits) MOVQ DI, CX - MOVQ R12, R14 - SHRQ CL, R14 + MOVQ R11, R13 + SHRQ CL, R13 // v1 := table[val1&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v1.entry)) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // these two writes get coalesced // out[id * dstEvery + 0] = uint8(v0.entry >> 8) // out[id * dstEvery + 1] = uint8(v1.entry >> 8) - MOVW AX, (R8) + MOVW AX, (BX)(R8*2) // update the bitreader structure - MOVQ R12, 128(R11) - MOVB R13, 136(R11) - ADDQ R9, R8 + MOVQ R11, 128(R10) + MOVB R12, 136(R10) // br3.fillFast32() - MOVQ 176(R11), R12 - MOVBQZX 184(R11), R13 - CMPQ R13, $0x20 + MOVQ 176(R10), R11 + MOVBQZX 184(R10), R12 + CMPQ R12, $0x20 JBE skip_fill3 - MOVQ 168(R11), AX - SUBQ $0x20, R13 + MOVQ 168(R10), AX + SUBQ $0x20, R12 SUBQ $0x04, AX - MOVQ 144(R11), R14 + MOVQ 144(R10), R13 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (AX)(R14*1), R14 - MOVQ R13, CX - SHLQ CL, R14 - MOVQ AX, 168(R11) - ORQ R14, R12 + MOVL (AX)(R13*1), R13 + MOVQ R12, CX + SHLQ CL, R13 + MOVQ AX, 168(R10) + ORQ R13, R11 - // exhausted = exhausted || (br3.off < 4) - CMPQ AX, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br3.off < 4) + CMPQ AX, $0x04 + ADCB $+0, DL skip_fill3: // val0 := br3.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br3.peekTopBits(peekBits) MOVQ DI, CX - MOVQ R12, R14 - SHRQ CL, R14 + MOVQ R11, R13 + SHRQ CL, R13 // v1 := table[val1&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v1.entry)) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // these two writes get coalesced // out[id * dstEvery + 0] = uint8(v0.entry >> 8) // out[id * dstEvery + 1] = uint8(v1.entry >> 8) - MOVW AX, (R8) + LEAQ (R8)(R8*2), CX + MOVW AX, (BX)(CX*1) // update the bitreader structure - MOVQ R12, 176(R11) - MOVB R13, 184(R11) - ADDQ $0x02, SI + MOVQ R11, 176(R10) + MOVB R12, 184(R10) + ADDQ $0x02, BX TESTB DL, DL JZ main_loop MOVQ ctx+0(FP), AX - SUBQ 16(AX), SI - SHLQ $0x02, SI - MOVQ SI, 40(AX) + SUBQ 16(AX), BX + SHLQ $0x02, BX + MOVQ BX, 40(AX) RET // func decompress4x_8b_main_loop_amd64(ctx *decompress4xContext) TEXT ·decompress4x_8b_main_loop_amd64(SB), $0-8 - XORQ DX, DX - // Preload values MOVQ ctx+0(FP), CX MOVBQZX 8(CX), DI MOVQ 16(CX), BX MOVQ 48(CX), SI - MOVQ 24(CX), R9 - MOVQ 32(CX), R10 - MOVQ (CX), R11 + MOVQ 24(CX), R8 + MOVQ 32(CX), R9 + MOVQ (CX), R10 // Main loop main_loop: - MOVQ BX, R8 - CMPQ R8, SI + XORL DX, DX + CMPQ BX, SI SETGE DL // br0.fillFast32() - MOVQ 32(R11), R12 - MOVBQZX 40(R11), R13 - CMPQ R13, $0x20 + MOVQ 32(R10), R11 + MOVBQZX 40(R10), R12 + CMPQ R12, $0x20 JBE skip_fill0 - MOVQ 24(R11), R14 - SUBQ $0x20, R13 - SUBQ $0x04, R14 - MOVQ (R11), R15 + MOVQ 24(R10), R13 + SUBQ $0x20, R12 + SUBQ $0x04, R13 + MOVQ (R10), R14 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (R14)(R15*1), R15 - MOVQ R13, CX - SHLQ CL, R15 - MOVQ R14, 24(R11) - ORQ R15, R12 + MOVL (R13)(R14*1), R14 + MOVQ R12, CX + SHLQ CL, R14 + MOVQ R13, 24(R10) + ORQ R14, R11 - // exhausted = exhausted || (br0.off < 4) - CMPQ R14, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br0.off < 4) + CMPQ R13, $0x04 + ADCB $+0, DL skip_fill0: // val0 := br0.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br0.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v1 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v1.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // val2 := br0.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v2 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v2.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val3 := br0.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v3 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br0.advance(uint8(v3.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // these four writes get coalesced @@ -365,88 +354,86 @@ skip_fill0: // out[id * dstEvery + 1] = uint8(v1.entry >> 8) // out[id * dstEvery + 3] = uint8(v2.entry >> 8) // out[id * dstEvery + 4] = uint8(v3.entry >> 8) - MOVL AX, (R8) + MOVL AX, (BX) // update the bitreader structure - MOVQ R12, 32(R11) - MOVB R13, 40(R11) - ADDQ R9, R8 + MOVQ R11, 32(R10) + MOVB R12, 40(R10) // br1.fillFast32() - MOVQ 80(R11), R12 - MOVBQZX 88(R11), R13 - CMPQ R13, $0x20 + MOVQ 80(R10), R11 + MOVBQZX 88(R10), R12 + CMPQ R12, $0x20 JBE skip_fill1 - MOVQ 72(R11), R14 - SUBQ $0x20, R13 - SUBQ $0x04, R14 - MOVQ 48(R11), R15 + MOVQ 72(R10), R13 + SUBQ $0x20, R12 + SUBQ $0x04, R13 + MOVQ 48(R10), R14 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (R14)(R15*1), R15 - MOVQ R13, CX - SHLQ CL, R15 - MOVQ R14, 72(R11) - ORQ R15, R12 + MOVL (R13)(R14*1), R14 + MOVQ R12, CX + SHLQ CL, R14 + MOVQ R13, 72(R10) + ORQ R14, R11 - // exhausted = exhausted || (br1.off < 4) - CMPQ R14, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br1.off < 4) + CMPQ R13, $0x04 + ADCB $+0, DL skip_fill1: // val0 := br1.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br1.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v1 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v1.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // val2 := br1.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v2 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v2.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val3 := br1.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v3 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br1.advance(uint8(v3.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // these four writes get coalesced @@ -454,88 +441,86 @@ skip_fill1: // out[id * dstEvery + 1] = uint8(v1.entry >> 8) // out[id * dstEvery + 3] = uint8(v2.entry >> 8) // out[id * dstEvery + 4] = uint8(v3.entry >> 8) - MOVL AX, (R8) + MOVL AX, (BX)(R8*1) // update the bitreader structure - MOVQ R12, 80(R11) - MOVB R13, 88(R11) - ADDQ R9, R8 + MOVQ R11, 80(R10) + MOVB R12, 88(R10) // br2.fillFast32() - MOVQ 128(R11), R12 - MOVBQZX 136(R11), R13 - CMPQ R13, $0x20 + MOVQ 128(R10), R11 + MOVBQZX 136(R10), R12 + CMPQ R12, $0x20 JBE skip_fill2 - MOVQ 120(R11), R14 - SUBQ $0x20, R13 - SUBQ $0x04, R14 - MOVQ 96(R11), R15 + MOVQ 120(R10), R13 + SUBQ $0x20, R12 + SUBQ $0x04, R13 + MOVQ 96(R10), R14 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (R14)(R15*1), R15 - MOVQ R13, CX - SHLQ CL, R15 - MOVQ R14, 120(R11) - ORQ R15, R12 + MOVL (R13)(R14*1), R14 + MOVQ R12, CX + SHLQ CL, R14 + MOVQ R13, 120(R10) + ORQ R14, R11 - // exhausted = exhausted || (br2.off < 4) - CMPQ R14, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br2.off < 4) + CMPQ R13, $0x04 + ADCB $+0, DL skip_fill2: // val0 := br2.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br2.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v1 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v1.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // val2 := br2.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v2 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v2.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val3 := br2.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v3 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br2.advance(uint8(v3.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // these four writes get coalesced @@ -543,88 +528,86 @@ skip_fill2: // out[id * dstEvery + 1] = uint8(v1.entry >> 8) // out[id * dstEvery + 3] = uint8(v2.entry >> 8) // out[id * dstEvery + 4] = uint8(v3.entry >> 8) - MOVL AX, (R8) + MOVL AX, (BX)(R8*2) // update the bitreader structure - MOVQ R12, 128(R11) - MOVB R13, 136(R11) - ADDQ R9, R8 + MOVQ R11, 128(R10) + MOVB R12, 136(R10) // br3.fillFast32() - MOVQ 176(R11), R12 - MOVBQZX 184(R11), R13 - CMPQ R13, $0x20 + MOVQ 176(R10), R11 + MOVBQZX 184(R10), R12 + CMPQ R12, $0x20 JBE skip_fill3 - MOVQ 168(R11), R14 - SUBQ $0x20, R13 - SUBQ $0x04, R14 - MOVQ 144(R11), R15 + MOVQ 168(R10), R13 + SUBQ $0x20, R12 + SUBQ $0x04, R13 + MOVQ 144(R10), R14 // b.value |= uint64(low) << (b.bitsRead & 63) - MOVL (R14)(R15*1), R15 - MOVQ R13, CX - SHLQ CL, R15 - MOVQ R14, 168(R11) - ORQ R15, R12 + MOVL (R13)(R14*1), R14 + MOVQ R12, CX + SHLQ CL, R14 + MOVQ R13, 168(R10) + ORQ R14, R11 - // exhausted = exhausted || (br3.off < 4) - CMPQ R14, $0x04 - SETLT AL - ORB AL, DL + // exhausted += (br3.off < 4) + CMPQ R13, $0x04 + ADCB $+0, DL skip_fill3: // val0 := br3.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v0 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v0.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val1 := br3.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v1 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v1.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // val2 := br3.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v2 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v2.entry) MOVB CH, AH - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 // val3 := br3.peekTopBits(peekBits) - MOVQ R12, R14 + MOVQ R11, R13 MOVQ DI, CX - SHRQ CL, R14 + SHRQ CL, R13 // v3 := table[val0&mask] - MOVW (R10)(R14*2), CX + MOVW (R9)(R13*2), CX // br3.advance(uint8(v3.entry) MOVB CH, AL - SHLQ CL, R12 - ADDB CL, R13 + SHLQ CL, R11 + ADDB CL, R12 BSWAPL AX // these four writes get coalesced @@ -632,11 +615,12 @@ skip_fill3: // out[id * dstEvery + 1] = uint8(v1.entry >> 8) // out[id * dstEvery + 3] = uint8(v2.entry >> 8) // out[id * dstEvery + 4] = uint8(v3.entry >> 8) - MOVL AX, (R8) + LEAQ (R8)(R8*2), CX + MOVL AX, (BX)(CX*1) // update the bitreader structure - MOVQ R12, 176(R11) - MOVB R13, 184(R11) + MOVQ R11, 176(R10) + MOVB R12, 184(R10) ADDQ $0x04, BX TESTB DL, DL JZ main_loop @@ -652,7 +636,7 @@ TEXT ·decompress1x_main_loop_amd64(SB), $0-8 MOVQ 16(CX), DX MOVQ 24(CX), BX CMPQ BX, $0x04 - JB error_max_decoded_size_exeeded + JB error_max_decoded_size_exceeded LEAQ (DX)(BX*1), BX MOVQ (CX), SI MOVQ (SI), R8 @@ -667,7 +651,7 @@ main_loop: // Check if we have room for 4 bytes in the output buffer LEAQ 4(DX), CX CMPQ CX, BX - JGE error_max_decoded_size_exeeded + JGE error_max_decoded_size_exceeded // Decode 4 values CMPQ R11, $0x20 @@ -744,7 +728,7 @@ loop_condition: RET // Report error -error_max_decoded_size_exeeded: +error_max_decoded_size_exceeded: MOVQ ctx+0(FP), AX MOVQ $-1, CX MOVQ CX, 40(AX) @@ -757,7 +741,7 @@ TEXT ·decompress1x_main_loop_bmi2(SB), $0-8 MOVQ 16(CX), DX MOVQ 24(CX), BX CMPQ BX, $0x04 - JB error_max_decoded_size_exeeded + JB error_max_decoded_size_exceeded LEAQ (DX)(BX*1), BX MOVQ (CX), SI MOVQ (SI), R8 @@ -772,7 +756,7 @@ main_loop: // Check if we have room for 4 bytes in the output buffer LEAQ 4(DX), CX CMPQ CX, BX - JGE error_max_decoded_size_exeeded + JGE error_max_decoded_size_exceeded // Decode 4 values CMPQ R11, $0x20 @@ -839,7 +823,7 @@ loop_condition: RET // Report error -error_max_decoded_size_exeeded: +error_max_decoded_size_exceeded: MOVQ ctx+0(FP), AX MOVQ $-1, CX MOVQ CX, 40(AX) diff --git a/ext/vendor/github.com/klauspost/compress/zstd/blockdec.go b/ext/vendor/github.com/klauspost/compress/zstd/blockdec.go index f52d1ae..2445bb4 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/blockdec.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/blockdec.go @@ -82,8 +82,9 @@ type blockDec struct { err error - // Check against this crc - checkCRC []byte + // Check against this crc, if hasCRC is true. + checkCRC uint32 + hasCRC bool // Frame to use for singlethreaded decoding. // Should not be used by the decoder itself since parent may be another frame. @@ -191,16 +192,14 @@ func (b *blockDec) reset(br byteBuffer, windowSize uint64) error { } // Read block data. - if cap(b.dataStorage) < cSize { + if _, ok := br.(*byteBuf); !ok && cap(b.dataStorage) < cSize { + // byteBuf doesn't need a destination buffer. if b.lowMem || cSize > maxCompressedBlockSize { b.dataStorage = make([]byte, 0, cSize+compressedBlockOverAlloc) } else { b.dataStorage = make([]byte, 0, maxCompressedBlockSizeAlloc) } } - if cap(b.dst) <= maxSize { - b.dst = make([]byte, 0, maxSize+1) - } b.data, err = br.readBig(cSize, b.dataStorage) if err != nil { if debugDecoder { @@ -209,6 +208,9 @@ func (b *blockDec) reset(br byteBuffer, windowSize uint64) error { } return err } + if cap(b.dst) <= maxSize { + b.dst = make([]byte, 0, maxSize+1) + } return nil } @@ -232,7 +234,7 @@ func (b *blockDec) decodeBuf(hist *history) error { if b.lowMem { b.dst = make([]byte, b.RLESize) } else { - b.dst = make([]byte, maxBlockSize) + b.dst = make([]byte, maxCompressedBlockSize) } } b.dst = b.dst[:b.RLESize] diff --git a/ext/vendor/github.com/klauspost/compress/zstd/decodeheader.go b/ext/vendor/github.com/klauspost/compress/zstd/decodeheader.go index 5022e71..f6a2409 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/decodeheader.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/decodeheader.go @@ -4,7 +4,6 @@ package zstd import ( - "bytes" "encoding/binary" "errors" "io" @@ -102,8 +101,8 @@ func (h *Header) Decode(in []byte) error { } h.HeaderSize += 4 b, in := in[:4], in[4:] - if !bytes.Equal(b, frameMagic) { - if !bytes.Equal(b[1:4], skippableFrameMagic) || b[0]&0xf0 != 0x50 { + if string(b) != frameMagic { + if string(b[1:4]) != skippableFrameMagic || b[0]&0xf0 != 0x50 { return ErrMagicMismatch } if len(in) < 4 { @@ -153,7 +152,7 @@ func (h *Header) Decode(in []byte) error { } b, in = in[:size], in[size:] h.HeaderSize += int(size) - switch size { + switch len(b) { case 1: h.DictionaryID = uint32(b[0]) case 2: @@ -183,7 +182,7 @@ func (h *Header) Decode(in []byte) error { } b, in = in[:fcsSize], in[fcsSize:] h.HeaderSize += int(fcsSize) - switch fcsSize { + switch len(b) { case 1: h.FrameContentSize = uint64(b[0]) case 2: diff --git a/ext/vendor/github.com/klauspost/compress/zstd/decoder.go b/ext/vendor/github.com/klauspost/compress/zstd/decoder.go index 78c1075..7113e69 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/decoder.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/decoder.go @@ -5,7 +5,6 @@ package zstd import ( - "bytes" "context" "encoding/binary" "io" @@ -41,8 +40,7 @@ type Decoder struct { frame *frameDec // Custom dictionaries. - // Always uses copies. - dicts map[uint32]dict + dicts map[uint32]*dict // streamWg is the waitgroup for all streams streamWg sync.WaitGroup @@ -104,7 +102,7 @@ func NewReader(r io.Reader, opts ...DOption) (*Decoder, error) { } // Transfer option dicts. - d.dicts = make(map[uint32]dict, len(d.o.dicts)) + d.dicts = make(map[uint32]*dict, len(d.o.dicts)) for _, dc := range d.o.dicts { d.dicts[dc.id] = dc } @@ -342,15 +340,8 @@ func (d *Decoder) DecodeAll(input, dst []byte) ([]byte, error) { } return dst, err } - if frame.DictionaryID != nil { - dict, ok := d.dicts[*frame.DictionaryID] - if !ok { - return nil, ErrUnknownDictionary - } - if debugDecoder { - println("setting dict", frame.DictionaryID) - } - frame.history.setDict(&dict) + if err = d.setDict(frame); err != nil { + return nil, err } if frame.WindowSize > d.o.maxWindowSize { if debugDecoder { @@ -459,7 +450,11 @@ func (d *Decoder) nextBlock(blocking bool) (ok bool) { println("got", len(d.current.b), "bytes, error:", d.current.err, "data crc:", tmp) } - if !d.o.ignoreChecksum && len(next.b) > 0 { + if d.o.ignoreChecksum { + return true + } + + if len(next.b) > 0 { n, err := d.current.crc.Write(next.b) if err == nil { if n != len(next.b) { @@ -467,18 +462,16 @@ func (d *Decoder) nextBlock(blocking bool) (ok bool) { } } } - if next.err == nil && next.d != nil && len(next.d.checkCRC) != 0 { - got := d.current.crc.Sum64() - var tmp [4]byte - binary.LittleEndian.PutUint32(tmp[:], uint32(got)) - if !d.o.ignoreChecksum && !bytes.Equal(tmp[:], next.d.checkCRC) { + if next.err == nil && next.d != nil && next.d.hasCRC { + got := uint32(d.current.crc.Sum64()) + if got != next.d.checkCRC { if debugDecoder { - println("CRC Check Failed:", tmp[:], " (got) !=", next.d.checkCRC, "(on stream)") + printf("CRC Check Failed: %08x (got) != %08x (on stream)\n", got, next.d.checkCRC) } d.current.err = ErrCRCMismatch } else { if debugDecoder { - println("CRC ok", tmp[:]) + printf("CRC ok %08x\n", got) } } } @@ -494,18 +487,12 @@ func (d *Decoder) nextBlockSync() (ok bool) { if !d.syncStream.inFrame { d.frame.history.reset() d.current.err = d.frame.reset(&d.syncStream.br) + if d.current.err == nil { + d.current.err = d.setDict(d.frame) + } if d.current.err != nil { return false } - if d.frame.DictionaryID != nil { - dict, ok := d.dicts[*d.frame.DictionaryID] - if !ok { - d.current.err = ErrUnknownDictionary - return false - } else { - d.frame.history.setDict(&dict) - } - } if d.frame.WindowSize > d.o.maxDecodedSize || d.frame.WindowSize > d.o.maxWindowSize { d.current.err = ErrDecoderSizeExceeded return false @@ -770,7 +757,7 @@ func (d *Decoder) startStreamDecoder(ctx context.Context, r io.Reader, output ch if block.lowMem { block.dst = make([]byte, block.RLESize) } else { - block.dst = make([]byte, maxBlockSize) + block.dst = make([]byte, maxCompressedBlockSize) } } block.dst = block.dst[:block.RLESize] @@ -864,13 +851,8 @@ decodeStream: if debugDecoder && err != nil { println("Frame decoder returned", err) } - if err == nil && frame.DictionaryID != nil { - dict, ok := d.dicts[*frame.DictionaryID] - if !ok { - err = ErrUnknownDictionary - } else { - frame.history.setDict(&dict) - } + if err == nil { + err = d.setDict(frame) } if err == nil && d.frame.WindowSize > d.o.maxWindowSize { if debugDecoder { @@ -918,18 +900,22 @@ decodeStream: println("next block returned error:", err) } dec.err = err - dec.checkCRC = nil + dec.hasCRC = false if dec.Last && frame.HasCheckSum && err == nil { crc, err := frame.rawInput.readSmall(4) - if err != nil { + if len(crc) < 4 { + if err == nil { + err = io.ErrUnexpectedEOF + + } println("CRC missing?", err) dec.err = err - } - var tmp [4]byte - copy(tmp[:], crc) - dec.checkCRC = tmp[:] - if debugDecoder { - println("found crc to check:", dec.checkCRC) + } else { + dec.checkCRC = binary.LittleEndian.Uint32(crc) + dec.hasCRC = true + if debugDecoder { + printf("found crc to check: %08x\n", dec.checkCRC) + } } } err = dec.err @@ -948,3 +934,20 @@ decodeStream: hist.reset() d.frame.history.b = frameHistCache } + +func (d *Decoder) setDict(frame *frameDec) (err error) { + dict, ok := d.dicts[frame.DictionaryID] + if ok { + if debugDecoder { + println("setting dict", frame.DictionaryID) + } + frame.history.setDict(dict) + } else if frame.DictionaryID != 0 { + // A zero or missing dictionary id is ambiguous: + // either dictionary zero, or no dictionary. In particular, + // zstd --patch-from uses this id for the source file, + // so only return an error if the dictionary id is not zero. + err = ErrUnknownDictionary + } + return err +} diff --git a/ext/vendor/github.com/klauspost/compress/zstd/decoder_options.go b/ext/vendor/github.com/klauspost/compress/zstd/decoder_options.go index f42448e..07a90dd 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/decoder_options.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/decoder_options.go @@ -6,6 +6,8 @@ package zstd import ( "errors" + "fmt" + "math/bits" "runtime" ) @@ -18,7 +20,7 @@ type decoderOptions struct { concurrent int maxDecodedSize uint64 maxWindowSize uint64 - dicts []dict + dicts []*dict ignoreChecksum bool limitToCap bool decodeBufsBelow int @@ -85,7 +87,13 @@ func WithDecoderMaxMemory(n uint64) DOption { } // WithDecoderDicts allows to register one or more dictionaries for the decoder. -// If several dictionaries with the same ID is provided the last one will be used. +// +// Each slice in dict must be in the [dictionary format] produced by +// "zstd --train" from the Zstandard reference implementation. +// +// If several dictionaries with the same ID are provided, the last one will be used. +// +// [dictionary format]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format func WithDecoderDicts(dicts ...[]byte) DOption { return func(o *decoderOptions) error { for _, b := range dicts { @@ -93,12 +101,24 @@ func WithDecoderDicts(dicts ...[]byte) DOption { if err != nil { return err } - o.dicts = append(o.dicts, *d) + o.dicts = append(o.dicts, d) } return nil } } +// WithEncoderDictRaw registers a dictionary that may be used by the decoder. +// The slice content can be arbitrary data. +func WithDecoderDictRaw(id uint32, content []byte) DOption { + return func(o *decoderOptions) error { + if bits.UintSize > 32 && uint(len(content)) > dictMaxLength { + return fmt.Errorf("dictionary of size %d > 2GiB too large", len(content)) + } + o.dicts = append(o.dicts, &dict{id: id, content: content, offsets: [3]int{1, 4, 8}}) + return nil + } +} + // WithDecoderMaxWindow allows to set a maximum window size for decodes. // This allows rejecting packets that will cause big memory usage. // The Decoder will likely allocate more memory based on the WithDecoderLowmem setting. diff --git a/ext/vendor/github.com/klauspost/compress/zstd/dict.go b/ext/vendor/github.com/klauspost/compress/zstd/dict.go index a36ae83..66a95c1 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/dict.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/dict.go @@ -1,7 +1,6 @@ package zstd import ( - "bytes" "encoding/binary" "errors" "fmt" @@ -20,7 +19,10 @@ type dict struct { content []byte } -var dictMagic = [4]byte{0x37, 0xa4, 0x30, 0xec} +const dictMagic = "\x37\xa4\x30\xec" + +// Maximum dictionary size for the reference implementation (1.5.3) is 2 GiB. +const dictMaxLength = 1 << 31 // ID returns the dictionary id or 0 if d is nil. func (d *dict) ID() uint32 { @@ -50,7 +52,7 @@ func loadDict(b []byte) (*dict, error) { ofDec: sequenceDec{fse: &fseDecoder{}}, mlDec: sequenceDec{fse: &fseDecoder{}}, } - if !bytes.Equal(b[:4], dictMagic[:]) { + if string(b[:4]) != dictMagic { return nil, ErrMagicMismatch } d.id = binary.LittleEndian.Uint32(b[4:8]) diff --git a/ext/vendor/github.com/klauspost/compress/zstd/enc_base.go b/ext/vendor/github.com/klauspost/compress/zstd/enc_base.go index 15ae8ee..bfb2e14 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/enc_base.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/enc_base.go @@ -16,6 +16,7 @@ type fastBase struct { cur int32 // maximum offset. Should be at least 2x block size. maxMatchOff int32 + bufferReset int32 hist []byte crc *xxhash.Digest tmp [8]byte @@ -56,8 +57,8 @@ func (e *fastBase) Block() *blockEnc { } func (e *fastBase) addBlock(src []byte) int32 { - if debugAsserts && e.cur > bufferReset { - panic(fmt.Sprintf("ecur (%d) > buffer reset (%d)", e.cur, bufferReset)) + if debugAsserts && e.cur > e.bufferReset { + panic(fmt.Sprintf("ecur (%d) > buffer reset (%d)", e.cur, e.bufferReset)) } // check if we have space already if len(e.hist)+len(src) > cap(e.hist) { @@ -126,24 +127,7 @@ func (e *fastBase) matchlen(s, t int32, src []byte) int32 { panic(fmt.Sprintf("len(src)-s (%d) > maxCompressedBlockSize (%d)", len(src)-int(s), maxCompressedBlockSize)) } } - a := src[s:] - b := src[t:] - b = b[:len(a)] - end := int32((len(a) >> 3) << 3) - for i := int32(0); i < end; i += 8 { - if diff := load6432(a, i) ^ load6432(b, i); diff != 0 { - return i + int32(bits.TrailingZeros64(diff)>>3) - } - } - - a = a[end:] - b = b[end:] - for i := range a { - if a[i] != b[i] { - return int32(i) + end - } - } - return int32(len(a)) + end + return int32(matchLen(src[s:], src[t:])) } // Reset the encoding table. @@ -171,7 +155,7 @@ func (e *fastBase) resetBase(d *dict, singleBlock bool) { // We offset current position so everything will be out of reach. // If above reset line, history will be purged. - if e.cur < bufferReset { + if e.cur < e.bufferReset { e.cur += e.maxMatchOff + int32(len(e.hist)) } e.hist = e.hist[:0] diff --git a/ext/vendor/github.com/klauspost/compress/zstd/enc_best.go b/ext/vendor/github.com/klauspost/compress/zstd/enc_best.go index dbbb88d..830f5ba 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/enc_best.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/enc_best.go @@ -85,14 +85,10 @@ func (e *bestFastEncoder) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = prevEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = prevEntry{} - } + e.table = [bestShortTableSize]prevEntry{} + e.longTable = [bestLongTableSize]prevEntry{} e.cur = e.maxMatchOff break } @@ -193,8 +189,8 @@ encodeLoop: panic("offset0 was 0") } - bestOf := func(a, b match) match { - if a.est+(a.s-b.s)*bitsPerByte>>10 < b.est+(b.s-a.s)*bitsPerByte>>10 { + bestOf := func(a, b *match) *match { + if a.est-b.est+(a.s-b.s)*bitsPerByte>>10 < 0 { return a } return b @@ -220,22 +216,26 @@ encodeLoop: return m } - best := bestOf(matchAt(candidateL.offset-e.cur, s, uint32(cv), -1), matchAt(candidateL.prev-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateS.offset-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateS.prev-e.cur, s, uint32(cv), -1)) + m1 := matchAt(candidateL.offset-e.cur, s, uint32(cv), -1) + m2 := matchAt(candidateL.prev-e.cur, s, uint32(cv), -1) + m3 := matchAt(candidateS.offset-e.cur, s, uint32(cv), -1) + m4 := matchAt(candidateS.prev-e.cur, s, uint32(cv), -1) + best := bestOf(bestOf(&m1, &m2), bestOf(&m3, &m4)) if canRepeat && best.length < goodEnough { cv32 := uint32(cv >> 8) spp := s + 1 - best = bestOf(best, matchAt(spp-offset1, spp, cv32, 1)) - best = bestOf(best, matchAt(spp-offset2, spp, cv32, 2)) - best = bestOf(best, matchAt(spp-offset3, spp, cv32, 3)) + m1 := matchAt(spp-offset1, spp, cv32, 1) + m2 := matchAt(spp-offset2, spp, cv32, 2) + m3 := matchAt(spp-offset3, spp, cv32, 3) + best = bestOf(bestOf(best, &m1), bestOf(&m2, &m3)) if best.length > 0 { cv32 = uint32(cv >> 24) spp += 2 - best = bestOf(best, matchAt(spp-offset1, spp, cv32, 1)) - best = bestOf(best, matchAt(spp-offset2, spp, cv32, 2)) - best = bestOf(best, matchAt(spp-offset3, spp, cv32, 3)) + m1 := matchAt(spp-offset1, spp, cv32, 1) + m2 := matchAt(spp-offset2, spp, cv32, 2) + m3 := matchAt(spp-offset3, spp, cv32, 3) + best = bestOf(bestOf(best, &m1), bestOf(&m2, &m3)) } } // Load next and check... @@ -262,26 +262,33 @@ encodeLoop: candidateL2 := e.longTable[hashLen(cv2, bestLongTableBits, bestLongLen)] // Short at s+1 - best = bestOf(best, matchAt(candidateS.offset-e.cur, s, uint32(cv), -1)) + m1 := matchAt(candidateS.offset-e.cur, s, uint32(cv), -1) // Long at s+1, s+2 - best = bestOf(best, matchAt(candidateL.offset-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateL.prev-e.cur, s, uint32(cv), -1)) - best = bestOf(best, matchAt(candidateL2.offset-e.cur, s+1, uint32(cv2), -1)) - best = bestOf(best, matchAt(candidateL2.prev-e.cur, s+1, uint32(cv2), -1)) + m2 := matchAt(candidateL.offset-e.cur, s, uint32(cv), -1) + m3 := matchAt(candidateL.prev-e.cur, s, uint32(cv), -1) + m4 := matchAt(candidateL2.offset-e.cur, s+1, uint32(cv2), -1) + m5 := matchAt(candidateL2.prev-e.cur, s+1, uint32(cv2), -1) + best = bestOf(bestOf(bestOf(best, &m1), &m2), bestOf(bestOf(&m3, &m4), &m5)) if false { // Short at s+3. // Too often worse... - best = bestOf(best, matchAt(e.table[hashLen(cv2>>8, bestShortTableBits, bestShortLen)].offset-e.cur, s+2, uint32(cv2>>8), -1)) + m := matchAt(e.table[hashLen(cv2>>8, bestShortTableBits, bestShortLen)].offset-e.cur, s+2, uint32(cv2>>8), -1) + best = bestOf(best, &m) } // See if we can find a better match by checking where the current best ends. // Use that offset to see if we can find a better full match. if sAt := best.s + best.length; sAt < sLimit { nextHashL := hashLen(load6432(src, sAt), bestLongTableBits, bestLongLen) candidateEnd := e.longTable[nextHashL] - if pos := candidateEnd.offset - e.cur - best.length; pos >= 0 { - bestEnd := bestOf(best, matchAt(pos, best.s, load3232(src, best.s), -1)) - if pos := candidateEnd.prev - e.cur - best.length; pos >= 0 { - bestEnd = bestOf(bestEnd, matchAt(pos, best.s, load3232(src, best.s), -1)) + // Start check at a fixed offset to allow for a few mismatches. + // For this compression level 2 yields the best results. + const skipBeginning = 2 + if pos := candidateEnd.offset - e.cur - best.length + skipBeginning; pos >= 0 { + m := matchAt(pos, best.s+skipBeginning, load3232(src, best.s+skipBeginning), -1) + bestEnd := bestOf(best, &m) + if pos := candidateEnd.prev - e.cur - best.length + skipBeginning; pos >= 0 { + m := matchAt(pos, best.s+skipBeginning, load3232(src, best.s+skipBeginning), -1) + bestEnd = bestOf(bestEnd, &m) } best = bestEnd } diff --git a/ext/vendor/github.com/klauspost/compress/zstd/enc_better.go b/ext/vendor/github.com/klauspost/compress/zstd/enc_better.go index d70e3fd..8582f31 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/enc_better.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/enc_better.go @@ -62,14 +62,10 @@ func (e *betterFastEncoder) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = prevEntry{} - } + e.table = [betterShortTableSize]tableEntry{} + e.longTable = [betterLongTableSize]prevEntry{} e.cur = e.maxMatchOff break } @@ -587,7 +583,7 @@ func (e *betterFastEncoderDict) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { for i := range e.table[:] { e.table[i] = tableEntry{} diff --git a/ext/vendor/github.com/klauspost/compress/zstd/enc_dfast.go b/ext/vendor/github.com/klauspost/compress/zstd/enc_dfast.go index 1f4a9a2..7d42510 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/enc_dfast.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/enc_dfast.go @@ -44,14 +44,10 @@ func (e *doubleFastEncoder) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } - for i := range e.longTable[:] { - e.longTable[i] = tableEntry{} - } + e.table = [dFastShortTableSize]tableEntry{} + e.longTable = [dFastLongTableSize]tableEntry{} e.cur = e.maxMatchOff break } @@ -388,7 +384,7 @@ func (e *doubleFastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - if e.cur >= bufferReset { + if e.cur >= e.bufferReset { for i := range e.table[:] { e.table[i] = tableEntry{} } @@ -685,7 +681,7 @@ encodeLoop: } // We do not store history, so we must offset e.cur to avoid false matches for next user. - if e.cur < bufferReset { + if e.cur < e.bufferReset { e.cur += int32(len(src)) } } @@ -700,7 +696,7 @@ func (e *doubleFastEncoderDict) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { for i := range e.table[:] { e.table[i] = tableEntry{} diff --git a/ext/vendor/github.com/klauspost/compress/zstd/enc_fast.go b/ext/vendor/github.com/klauspost/compress/zstd/enc_fast.go index 181edc0..315b1a8 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/enc_fast.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/enc_fast.go @@ -43,7 +43,7 @@ func (e *fastEncoder) Encode(blk *blockEnc, src []byte) { ) // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { for i := range e.table[:] { e.table[i] = tableEntry{} @@ -304,13 +304,13 @@ func (e *fastEncoder) EncodeNoHist(blk *blockEnc, src []byte) { minNonLiteralBlockSize = 1 + 1 + inputMargin ) if debugEncoder { - if len(src) > maxBlockSize { + if len(src) > maxCompressedBlockSize { panic("src too big") } } // Protect against e.cur wraparound. - if e.cur >= bufferReset { + if e.cur >= e.bufferReset { for i := range e.table[:] { e.table[i] = tableEntry{} } @@ -538,7 +538,7 @@ encodeLoop: println("returning, recent offsets:", blk.recentOffsets, "extra literals:", blk.extraLits) } // We do not store history, so we must offset e.cur to avoid false matches for next user. - if e.cur < bufferReset { + if e.cur < e.bufferReset { e.cur += int32(len(src)) } } @@ -555,11 +555,9 @@ func (e *fastEncoderDict) Encode(blk *blockEnc, src []byte) { return } // Protect against e.cur wraparound. - for e.cur >= bufferReset { + for e.cur >= e.bufferReset-int32(len(e.hist)) { if len(e.hist) == 0 { - for i := range e.table[:] { - e.table[i] = tableEntry{} - } + e.table = [tableSize]tableEntry{} e.cur = e.maxMatchOff break } diff --git a/ext/vendor/github.com/klauspost/compress/zstd/encoder.go b/ext/vendor/github.com/klauspost/compress/zstd/encoder.go index 7aaaedb..65c6c36 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/encoder.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/encoder.go @@ -8,6 +8,7 @@ import ( "crypto/rand" "fmt" "io" + "math" rdebug "runtime/debug" "sync" @@ -639,3 +640,37 @@ func (e *Encoder) EncodeAll(src, dst []byte) []byte { } return dst } + +// MaxEncodedSize returns the expected maximum +// size of an encoded block or stream. +func (e *Encoder) MaxEncodedSize(size int) int { + frameHeader := 4 + 2 // magic + frame header & window descriptor + if e.o.dict != nil { + frameHeader += 4 + } + // Frame content size: + if size < 256 { + frameHeader++ + } else if size < 65536+256 { + frameHeader += 2 + } else if size < math.MaxInt32 { + frameHeader += 4 + } else { + frameHeader += 8 + } + // Final crc + if e.o.crc { + frameHeader += 4 + } + + // Max overhead is 3 bytes/block. + // There cannot be 0 blocks. + blocks := (size + e.o.blockSize) / e.o.blockSize + + // Combine, add padding. + maxSz := frameHeader + 3*blocks + size + if e.o.pad > 1 { + maxSz += calcSkippableFrame(int64(maxSz), int64(e.o.pad)) + } + return maxSz +} diff --git a/ext/vendor/github.com/klauspost/compress/zstd/encoder_options.go b/ext/vendor/github.com/klauspost/compress/zstd/encoder_options.go index a7c5e1a..8e15be2 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/encoder_options.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/encoder_options.go @@ -3,6 +3,8 @@ package zstd import ( "errors" "fmt" + "math" + "math/bits" "runtime" "strings" ) @@ -47,22 +49,22 @@ func (o encoderOptions) encoder() encoder { switch o.level { case SpeedFastest: if o.dict != nil { - return &fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}}} + return &fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}} } - return &fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}} + return &fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}} case SpeedDefault: if o.dict != nil { - return &doubleFastEncoderDict{fastEncoderDict: fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}}}} + return &doubleFastEncoderDict{fastEncoderDict: fastEncoderDict{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}}} } - return &doubleFastEncoder{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}}} + return &doubleFastEncoder{fastEncoder: fastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}} case SpeedBetterCompression: if o.dict != nil { - return &betterFastEncoderDict{betterFastEncoder: betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}}} + return &betterFastEncoderDict{betterFastEncoder: betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}}} } - return &betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}} + return &betterFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}} case SpeedBestCompression: - return &bestFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), lowMem: o.lowMem}} + return &bestFastEncoder{fastBase: fastBase{maxMatchOff: int32(o.windowSize), bufferReset: math.MaxInt32 - int32(o.windowSize*2), lowMem: o.lowMem}} } panic("unknown compression level") } @@ -304,7 +306,13 @@ func WithLowerEncoderMem(b bool) EOption { } // WithEncoderDict allows to register a dictionary that will be used for the encode. +// +// The slice dict must be in the [dictionary format] produced by +// "zstd --train" from the Zstandard reference implementation. +// // The encoder *may* choose to use no dictionary instead for certain payloads. +// +// [dictionary format]: https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format func WithEncoderDict(dict []byte) EOption { return func(o *encoderOptions) error { d, err := loadDict(dict) @@ -315,3 +323,17 @@ func WithEncoderDict(dict []byte) EOption { return nil } } + +// WithEncoderDictRaw registers a dictionary that may be used by the encoder. +// +// The slice content may contain arbitrary data. It will be used as an initial +// history. +func WithEncoderDictRaw(id uint32, content []byte) EOption { + return func(o *encoderOptions) error { + if bits.UintSize > 32 && uint(len(content)) > dictMaxLength { + return fmt.Errorf("dictionary of size %d > 2GiB too large", len(content)) + } + o.dict = &dict{id: id, content: content, offsets: [3]int{1, 4, 8}} + return nil + } +} diff --git a/ext/vendor/github.com/klauspost/compress/zstd/framedec.go b/ext/vendor/github.com/klauspost/compress/zstd/framedec.go index b6c5054..d8e8a05 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/framedec.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/framedec.go @@ -5,7 +5,7 @@ package zstd import ( - "bytes" + "encoding/binary" "encoding/hex" "errors" "io" @@ -29,7 +29,7 @@ type frameDec struct { FrameContentSize uint64 - DictionaryID *uint32 + DictionaryID uint32 HasCheckSum bool SingleSegment bool } @@ -43,9 +43,9 @@ const ( MaxWindowSize = 1 << 29 ) -var ( - frameMagic = []byte{0x28, 0xb5, 0x2f, 0xfd} - skippableFrameMagic = []byte{0x2a, 0x4d, 0x18} +const ( + frameMagic = "\x28\xb5\x2f\xfd" + skippableFrameMagic = "\x2a\x4d\x18" ) func newFrameDec(o decoderOptions) *frameDec { @@ -89,9 +89,9 @@ func (d *frameDec) reset(br byteBuffer) error { copy(signature[1:], b) } - if !bytes.Equal(signature[1:4], skippableFrameMagic) || signature[0]&0xf0 != 0x50 { + if string(signature[1:4]) != skippableFrameMagic || signature[0]&0xf0 != 0x50 { if debugDecoder { - println("Not skippable", hex.EncodeToString(signature[:]), hex.EncodeToString(skippableFrameMagic)) + println("Not skippable", hex.EncodeToString(signature[:]), hex.EncodeToString([]byte(skippableFrameMagic))) } // Break if not skippable frame. break @@ -114,9 +114,9 @@ func (d *frameDec) reset(br byteBuffer) error { return err } } - if !bytes.Equal(signature[:], frameMagic) { + if string(signature[:]) != frameMagic { if debugDecoder { - println("Got magic numbers: ", signature, "want:", frameMagic) + println("Got magic numbers: ", signature, "want:", []byte(frameMagic)) } return ErrMagicMismatch } @@ -155,7 +155,7 @@ func (d *frameDec) reset(br byteBuffer) error { // Read Dictionary_ID // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary_id - d.DictionaryID = nil + d.DictionaryID = 0 if size := fhd & 3; size != 0 { if size == 3 { size = 4 @@ -167,7 +167,7 @@ func (d *frameDec) reset(br byteBuffer) error { return err } var id uint32 - switch size { + switch len(b) { case 1: id = uint32(b[0]) case 2: @@ -178,11 +178,7 @@ func (d *frameDec) reset(br byteBuffer) error { if debugDecoder { println("Dict size", size, "ID:", id) } - if id > 0 { - // ID 0 means "sorry, no dictionary anyway". - // https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format - d.DictionaryID = &id - } + d.DictionaryID = id } // Read Frame_Content_Size @@ -204,7 +200,7 @@ func (d *frameDec) reset(br byteBuffer) error { println("Reading Frame content", err) return err } - switch fcsSize { + switch len(b) { case 1: d.FrameContentSize = uint64(b[0]) case 2: @@ -261,11 +257,16 @@ func (d *frameDec) reset(br byteBuffer) error { } d.history.windowSize = int(d.WindowSize) if !d.o.lowMem || d.history.windowSize < maxBlockSize { - // Alloc 2x window size if not low-mem, or very small window size. + // Alloc 2x window size if not low-mem, or window size below 2MB. d.history.allocFrameBuffer = d.history.windowSize * 2 } else { - // Alloc with one additional block - d.history.allocFrameBuffer = d.history.windowSize + maxBlockSize + if d.o.lowMem { + // Alloc with 1MB extra. + d.history.allocFrameBuffer = d.history.windowSize + maxBlockSize/2 + } else { + // Alloc with 2MB extra. + d.history.allocFrameBuffer = d.history.windowSize + maxBlockSize + } } if debugDecoder { @@ -300,7 +301,7 @@ func (d *frameDec) checkCRC() error { } // We can overwrite upper tmp now - want, err := d.rawInput.readSmall(4) + buf, err := d.rawInput.readSmall(4) if err != nil { println("CRC missing?", err) return err @@ -310,22 +311,17 @@ func (d *frameDec) checkCRC() error { return nil } - var tmp [4]byte - got := d.crc.Sum64() - // Flip to match file order. - tmp[0] = byte(got >> 0) - tmp[1] = byte(got >> 8) - tmp[2] = byte(got >> 16) - tmp[3] = byte(got >> 24) + want := binary.LittleEndian.Uint32(buf[:4]) + got := uint32(d.crc.Sum64()) - if !bytes.Equal(tmp[:], want) { + if got != want { if debugDecoder { - println("CRC Check Failed:", tmp[:], "!=", want) + printf("CRC check failed: got %08x, want %08x\n", got, want) } return ErrCRCMismatch } if debugDecoder { - println("CRC ok", tmp[:]) + printf("CRC ok %08x\n", got) } return nil } diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md index 69aa3bb..777290d 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md @@ -2,12 +2,7 @@ VENDORED: Go to [github.com/cespare/xxhash](https://github.com/cespare/xxhash) for original package. - -[![GoDoc](https://godoc.org/github.com/cespare/xxhash?status.svg)](https://godoc.org/github.com/cespare/xxhash) -[![Build Status](https://travis-ci.org/cespare/xxhash.svg?branch=master)](https://travis-ci.org/cespare/xxhash) - -xxhash is a Go implementation of the 64-bit -[xxHash](http://cyan4973.github.io/xxHash/) algorithm, XXH64. This is a +xxhash is a Go implementation of the 64-bit [xxHash] algorithm, XXH64. This is a high-quality hashing algorithm that is much faster than anything in the Go standard library. @@ -28,31 +23,49 @@ func (*Digest) WriteString(string) (int, error) func (*Digest) Sum64() uint64 ``` -This implementation provides a fast pure-Go implementation and an even faster -assembly implementation for amd64. +The package is written with optimized pure Go and also contains even faster +assembly implementations for amd64 and arm64. If desired, the `purego` build tag +opts into using the Go code even on those architectures. + +[xxHash]: http://cyan4973.github.io/xxHash/ + +## Compatibility + +This package is in a module and the latest code is in version 2 of the module. +You need a version of Go with at least "minimal module compatibility" to use +github.com/cespare/xxhash/v2: + +* 1.9.7+ for Go 1.9 +* 1.10.3+ for Go 1.10 +* Go 1.11 or later + +I recommend using the latest release of Go. ## Benchmarks Here are some quick benchmarks comparing the pure-Go and assembly implementations of Sum64. -| input size | purego | asm | -| --- | --- | --- | -| 5 B | 979.66 MB/s | 1291.17 MB/s | -| 100 B | 7475.26 MB/s | 7973.40 MB/s | -| 4 KB | 17573.46 MB/s | 17602.65 MB/s | -| 10 MB | 17131.46 MB/s | 17142.16 MB/s | +| input size | purego | asm | +| ---------- | --------- | --------- | +| 4 B | 1.3 GB/s | 1.2 GB/s | +| 16 B | 2.9 GB/s | 3.5 GB/s | +| 100 B | 6.9 GB/s | 8.1 GB/s | +| 4 KB | 11.7 GB/s | 16.7 GB/s | +| 10 MB | 12.0 GB/s | 17.3 GB/s | -These numbers were generated on Ubuntu 18.04 with an Intel i7-8700K CPU using -the following commands under Go 1.11.2: +These numbers were generated on Ubuntu 20.04 with an Intel Xeon Platinum 8252C +CPU using the following commands under Go 1.19.2: ``` -$ go test -tags purego -benchtime 10s -bench '/xxhash,direct,bytes' -$ go test -benchtime 10s -bench '/xxhash,direct,bytes' +benchstat <(go test -tags purego -benchtime 500ms -count 15 -bench 'Sum64$') +benchstat <(go test -benchtime 500ms -count 15 -bench 'Sum64$') ``` ## Projects using this package - [InfluxDB](https://github.com/influxdata/influxdb) - [Prometheus](https://github.com/prometheus/prometheus) +- [VictoriaMetrics](https://github.com/VictoriaMetrics/VictoriaMetrics) - [FreeCache](https://github.com/coocood/freecache) +- [FastCache](https://github.com/VictoriaMetrics/fastcache) diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go index 2c112a0..fc40c82 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go @@ -18,19 +18,11 @@ const ( prime5 uint64 = 2870177450012600261 ) -// NOTE(caleb): I'm using both consts and vars of the primes. Using consts where -// possible in the Go code is worth a small (but measurable) performance boost -// by avoiding some MOVQs. Vars are needed for the asm and also are useful for -// convenience in the Go code in a few places where we need to intentionally -// avoid constant arithmetic (e.g., v1 := prime1 + prime2 fails because the -// result overflows a uint64). -var ( - prime1v = prime1 - prime2v = prime2 - prime3v = prime3 - prime4v = prime4 - prime5v = prime5 -) +// Store the primes in an array as well. +// +// The consts are used when possible in Go code to avoid MOVs but we need a +// contiguous array of the assembly code. +var primes = [...]uint64{prime1, prime2, prime3, prime4, prime5} // Digest implements hash.Hash64. type Digest struct { @@ -52,10 +44,10 @@ func New() *Digest { // Reset clears the Digest's state so that it can be reused. func (d *Digest) Reset() { - d.v1 = prime1v + prime2 + d.v1 = primes[0] + prime2 d.v2 = prime2 d.v3 = 0 - d.v4 = -prime1v + d.v4 = -primes[0] d.total = 0 d.n = 0 } @@ -71,21 +63,23 @@ func (d *Digest) Write(b []byte) (n int, err error) { n = len(b) d.total += uint64(n) + memleft := d.mem[d.n&(len(d.mem)-1):] + if d.n+n < 32 { // This new data doesn't even fill the current block. - copy(d.mem[d.n:], b) + copy(memleft, b) d.n += n return } if d.n > 0 { // Finish off the partial block. - copy(d.mem[d.n:], b) + c := copy(memleft, b) d.v1 = round(d.v1, u64(d.mem[0:8])) d.v2 = round(d.v2, u64(d.mem[8:16])) d.v3 = round(d.v3, u64(d.mem[16:24])) d.v4 = round(d.v4, u64(d.mem[24:32])) - b = b[32-d.n:] + b = b[c:] d.n = 0 } @@ -135,21 +129,20 @@ func (d *Digest) Sum64() uint64 { h += d.total - i, end := 0, d.n - for ; i+8 <= end; i += 8 { - k1 := round(0, u64(d.mem[i:i+8])) + b := d.mem[:d.n&(len(d.mem)-1)] + for ; len(b) >= 8; b = b[8:] { + k1 := round(0, u64(b[:8])) h ^= k1 h = rol27(h)*prime1 + prime4 } - if i+4 <= end { - h ^= uint64(u32(d.mem[i:i+4])) * prime1 + if len(b) >= 4 { + h ^= uint64(u32(b[:4])) * prime1 h = rol23(h)*prime2 + prime3 - i += 4 + b = b[4:] } - for i < end { - h ^= uint64(d.mem[i]) * prime5 + for ; len(b) > 0; b = b[1:] { + h ^= uint64(b[0]) * prime5 h = rol11(h) * prime1 - i++ } h ^= h >> 33 diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s index cea1785..ddb63aa 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s @@ -1,3 +1,4 @@ +//go:build !appengine && gc && !purego && !noasm // +build !appengine // +build gc // +build !purego @@ -5,212 +6,205 @@ #include "textflag.h" -// Register allocation: -// AX h -// SI pointer to advance through b -// DX n -// BX loop end -// R8 v1, k1 -// R9 v2 -// R10 v3 -// R11 v4 -// R12 tmp -// R13 prime1v -// R14 prime2v -// DI prime4v - -// round reads from and advances the buffer pointer in SI. -// It assumes that R13 has prime1v and R14 has prime2v. -#define round(r) \ - MOVQ (SI), R12 \ - ADDQ $8, SI \ - IMULQ R14, R12 \ - ADDQ R12, r \ - ROLQ $31, r \ - IMULQ R13, r - -// mergeRound applies a merge round on the two registers acc and val. -// It assumes that R13 has prime1v, R14 has prime2v, and DI has prime4v. -#define mergeRound(acc, val) \ - IMULQ R14, val \ - ROLQ $31, val \ - IMULQ R13, val \ - XORQ val, acc \ - IMULQ R13, acc \ - ADDQ DI, acc +// Registers: +#define h AX +#define d AX +#define p SI // pointer to advance through b +#define n DX +#define end BX // loop end +#define v1 R8 +#define v2 R9 +#define v3 R10 +#define v4 R11 +#define x R12 +#define prime1 R13 +#define prime2 R14 +#define prime4 DI + +#define round(acc, x) \ + IMULQ prime2, x \ + ADDQ x, acc \ + ROLQ $31, acc \ + IMULQ prime1, acc + +// round0 performs the operation x = round(0, x). +#define round0(x) \ + IMULQ prime2, x \ + ROLQ $31, x \ + IMULQ prime1, x + +// mergeRound applies a merge round on the two registers acc and x. +// It assumes that prime1, prime2, and prime4 have been loaded. +#define mergeRound(acc, x) \ + round0(x) \ + XORQ x, acc \ + IMULQ prime1, acc \ + ADDQ prime4, acc + +// blockLoop processes as many 32-byte blocks as possible, +// updating v1, v2, v3, and v4. It assumes that there is at least one block +// to process. +#define blockLoop() \ +loop: \ + MOVQ +0(p), x \ + round(v1, x) \ + MOVQ +8(p), x \ + round(v2, x) \ + MOVQ +16(p), x \ + round(v3, x) \ + MOVQ +24(p), x \ + round(v4, x) \ + ADDQ $32, p \ + CMPQ p, end \ + JLE loop // func Sum64(b []byte) uint64 -TEXT ·Sum64(SB), NOSPLIT, $0-32 +TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32 // Load fixed primes. - MOVQ ·prime1v(SB), R13 - MOVQ ·prime2v(SB), R14 - MOVQ ·prime4v(SB), DI + MOVQ ·primes+0(SB), prime1 + MOVQ ·primes+8(SB), prime2 + MOVQ ·primes+24(SB), prime4 // Load slice. - MOVQ b_base+0(FP), SI - MOVQ b_len+8(FP), DX - LEAQ (SI)(DX*1), BX + MOVQ b_base+0(FP), p + MOVQ b_len+8(FP), n + LEAQ (p)(n*1), end // The first loop limit will be len(b)-32. - SUBQ $32, BX + SUBQ $32, end // Check whether we have at least one block. - CMPQ DX, $32 + CMPQ n, $32 JLT noBlocks // Set up initial state (v1, v2, v3, v4). - MOVQ R13, R8 - ADDQ R14, R8 - MOVQ R14, R9 - XORQ R10, R10 - XORQ R11, R11 - SUBQ R13, R11 - - // Loop until SI > BX. -blockLoop: - round(R8) - round(R9) - round(R10) - round(R11) - - CMPQ SI, BX - JLE blockLoop - - MOVQ R8, AX - ROLQ $1, AX - MOVQ R9, R12 - ROLQ $7, R12 - ADDQ R12, AX - MOVQ R10, R12 - ROLQ $12, R12 - ADDQ R12, AX - MOVQ R11, R12 - ROLQ $18, R12 - ADDQ R12, AX - - mergeRound(AX, R8) - mergeRound(AX, R9) - mergeRound(AX, R10) - mergeRound(AX, R11) + MOVQ prime1, v1 + ADDQ prime2, v1 + MOVQ prime2, v2 + XORQ v3, v3 + XORQ v4, v4 + SUBQ prime1, v4 + + blockLoop() + + MOVQ v1, h + ROLQ $1, h + MOVQ v2, x + ROLQ $7, x + ADDQ x, h + MOVQ v3, x + ROLQ $12, x + ADDQ x, h + MOVQ v4, x + ROLQ $18, x + ADDQ x, h + + mergeRound(h, v1) + mergeRound(h, v2) + mergeRound(h, v3) + mergeRound(h, v4) JMP afterBlocks noBlocks: - MOVQ ·prime5v(SB), AX + MOVQ ·primes+32(SB), h afterBlocks: - ADDQ DX, AX - - // Right now BX has len(b)-32, and we want to loop until SI > len(b)-8. - ADDQ $24, BX - - CMPQ SI, BX - JG fourByte - -wordLoop: - // Calculate k1. - MOVQ (SI), R8 - ADDQ $8, SI - IMULQ R14, R8 - ROLQ $31, R8 - IMULQ R13, R8 - - XORQ R8, AX - ROLQ $27, AX - IMULQ R13, AX - ADDQ DI, AX - - CMPQ SI, BX - JLE wordLoop - -fourByte: - ADDQ $4, BX - CMPQ SI, BX - JG singles - - MOVL (SI), R8 - ADDQ $4, SI - IMULQ R13, R8 - XORQ R8, AX - - ROLQ $23, AX - IMULQ R14, AX - ADDQ ·prime3v(SB), AX - -singles: - ADDQ $4, BX - CMPQ SI, BX + ADDQ n, h + + ADDQ $24, end + CMPQ p, end + JG try4 + +loop8: + MOVQ (p), x + ADDQ $8, p + round0(x) + XORQ x, h + ROLQ $27, h + IMULQ prime1, h + ADDQ prime4, h + + CMPQ p, end + JLE loop8 + +try4: + ADDQ $4, end + CMPQ p, end + JG try1 + + MOVL (p), x + ADDQ $4, p + IMULQ prime1, x + XORQ x, h + + ROLQ $23, h + IMULQ prime2, h + ADDQ ·primes+16(SB), h + +try1: + ADDQ $4, end + CMPQ p, end JGE finalize -singlesLoop: - MOVBQZX (SI), R12 - ADDQ $1, SI - IMULQ ·prime5v(SB), R12 - XORQ R12, AX +loop1: + MOVBQZX (p), x + ADDQ $1, p + IMULQ ·primes+32(SB), x + XORQ x, h + ROLQ $11, h + IMULQ prime1, h - ROLQ $11, AX - IMULQ R13, AX - - CMPQ SI, BX - JL singlesLoop + CMPQ p, end + JL loop1 finalize: - MOVQ AX, R12 - SHRQ $33, R12 - XORQ R12, AX - IMULQ R14, AX - MOVQ AX, R12 - SHRQ $29, R12 - XORQ R12, AX - IMULQ ·prime3v(SB), AX - MOVQ AX, R12 - SHRQ $32, R12 - XORQ R12, AX - - MOVQ AX, ret+24(FP) + MOVQ h, x + SHRQ $33, x + XORQ x, h + IMULQ prime2, h + MOVQ h, x + SHRQ $29, x + XORQ x, h + IMULQ ·primes+16(SB), h + MOVQ h, x + SHRQ $32, x + XORQ x, h + + MOVQ h, ret+24(FP) RET -// writeBlocks uses the same registers as above except that it uses AX to store -// the d pointer. - // func writeBlocks(d *Digest, b []byte) int -TEXT ·writeBlocks(SB), NOSPLIT, $0-40 +TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40 // Load fixed primes needed for round. - MOVQ ·prime1v(SB), R13 - MOVQ ·prime2v(SB), R14 + MOVQ ·primes+0(SB), prime1 + MOVQ ·primes+8(SB), prime2 // Load slice. - MOVQ b_base+8(FP), SI - MOVQ b_len+16(FP), DX - LEAQ (SI)(DX*1), BX - SUBQ $32, BX + MOVQ b_base+8(FP), p + MOVQ b_len+16(FP), n + LEAQ (p)(n*1), end + SUBQ $32, end // Load vN from d. - MOVQ d+0(FP), AX - MOVQ 0(AX), R8 // v1 - MOVQ 8(AX), R9 // v2 - MOVQ 16(AX), R10 // v3 - MOVQ 24(AX), R11 // v4 + MOVQ s+0(FP), d + MOVQ 0(d), v1 + MOVQ 8(d), v2 + MOVQ 16(d), v3 + MOVQ 24(d), v4 // We don't need to check the loop condition here; this function is // always called with at least one block of data to process. -blockLoop: - round(R8) - round(R9) - round(R10) - round(R11) - - CMPQ SI, BX - JLE blockLoop + blockLoop() // Copy vN back to d. - MOVQ R8, 0(AX) - MOVQ R9, 8(AX) - MOVQ R10, 16(AX) - MOVQ R11, 24(AX) - - // The number of bytes written is SI minus the old base pointer. - SUBQ b_base+8(FP), SI - MOVQ SI, ret+32(FP) + MOVQ v1, 0(d) + MOVQ v2, 8(d) + MOVQ v3, 16(d) + MOVQ v4, 24(d) + + // The number of bytes written is p minus the old base pointer. + SUBQ b_base+8(FP), p + MOVQ p, ret+32(FP) RET diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s index 4d64a17..17901e0 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s @@ -1,13 +1,17 @@ -// +build gc,!purego,!noasm +//go:build !appengine && gc && !purego && !noasm +// +build !appengine +// +build gc +// +build !purego +// +build !noasm #include "textflag.h" -// Register allocation. +// Registers: #define digest R1 -#define h R2 // Return value. -#define p R3 // Input pointer. -#define len R4 -#define nblocks R5 // len / 32. +#define h R2 // return value +#define p R3 // input pointer +#define n R4 // input length +#define nblocks R5 // n / 32 #define prime1 R7 #define prime2 R8 #define prime3 R9 @@ -25,60 +29,52 @@ #define round(acc, x) \ MADD prime2, acc, x, acc \ ROR $64-31, acc \ - MUL prime1, acc \ + MUL prime1, acc -// x = round(0, x). +// round0 performs the operation x = round(0, x). #define round0(x) \ MUL prime2, x \ ROR $64-31, x \ - MUL prime1, x \ - -#define mergeRound(x) \ - round0(x) \ - EOR x, h \ - MADD h, prime4, prime1, h \ - -// Update v[1-4] with 32-byte blocks. Assumes len >= 32. -#define blocksLoop() \ - LSR $5, len, nblocks \ - PCALIGN $16 \ - loop: \ - LDP.P 32(p), (x1, x2) \ - round(v1, x1) \ - LDP -16(p), (x3, x4) \ - round(v2, x2) \ - SUB $1, nblocks \ - round(v3, x3) \ - round(v4, x4) \ - CBNZ nblocks, loop \ - -// The primes are repeated here to ensure that they're stored -// in a contiguous array, so we can load them with LDP. -DATA primes<> +0(SB)/8, $11400714785074694791 -DATA primes<> +8(SB)/8, $14029467366897019727 -DATA primes<>+16(SB)/8, $1609587929392839161 -DATA primes<>+24(SB)/8, $9650029242287828579 -DATA primes<>+32(SB)/8, $2870177450012600261 -GLOBL primes<>(SB), NOPTR+RODATA, $40 + MUL prime1, x + +#define mergeRound(acc, x) \ + round0(x) \ + EOR x, acc \ + MADD acc, prime4, prime1, acc + +// blockLoop processes as many 32-byte blocks as possible, +// updating v1, v2, v3, and v4. It assumes that n >= 32. +#define blockLoop() \ + LSR $5, n, nblocks \ + PCALIGN $16 \ + loop: \ + LDP.P 16(p), (x1, x2) \ + LDP.P 16(p), (x3, x4) \ + round(v1, x1) \ + round(v2, x2) \ + round(v3, x3) \ + round(v4, x4) \ + SUB $1, nblocks \ + CBNZ nblocks, loop // func Sum64(b []byte) uint64 -TEXT ·Sum64(SB), NOFRAME+NOSPLIT, $0-32 - LDP b_base+0(FP), (p, len) +TEXT ·Sum64(SB), NOSPLIT|NOFRAME, $0-32 + LDP b_base+0(FP), (p, n) - LDP primes<> +0(SB), (prime1, prime2) - LDP primes<>+16(SB), (prime3, prime4) - MOVD primes<>+32(SB), prime5 + LDP ·primes+0(SB), (prime1, prime2) + LDP ·primes+16(SB), (prime3, prime4) + MOVD ·primes+32(SB), prime5 - CMP $32, len - CSEL LO, prime5, ZR, h // if len < 32 { h = prime5 } else { h = 0 } - BLO afterLoop + CMP $32, n + CSEL LT, prime5, ZR, h // if n < 32 { h = prime5 } else { h = 0 } + BLT afterLoop ADD prime1, prime2, v1 MOVD prime2, v2 MOVD $0, v3 NEG prime1, v4 - blocksLoop() + blockLoop() ROR $64-1, v1, x1 ROR $64-7, v2, x2 @@ -88,71 +84,75 @@ TEXT ·Sum64(SB), NOFRAME+NOSPLIT, $0-32 ADD x3, x4 ADD x2, x4, h - mergeRound(v1) - mergeRound(v2) - mergeRound(v3) - mergeRound(v4) + mergeRound(h, v1) + mergeRound(h, v2) + mergeRound(h, v3) + mergeRound(h, v4) afterLoop: - ADD len, h + ADD n, h - TBZ $4, len, try8 + TBZ $4, n, try8 LDP.P 16(p), (x1, x2) round0(x1) + + // NOTE: here and below, sequencing the EOR after the ROR (using a + // rotated register) is worth a small but measurable speedup for small + // inputs. ROR $64-27, h EOR x1 @> 64-27, h, h MADD h, prime4, prime1, h round0(x2) ROR $64-27, h - EOR x2 @> 64-27, h + EOR x2 @> 64-27, h, h MADD h, prime4, prime1, h try8: - TBZ $3, len, try4 + TBZ $3, n, try4 MOVD.P 8(p), x1 round0(x1) ROR $64-27, h - EOR x1 @> 64-27, h + EOR x1 @> 64-27, h, h MADD h, prime4, prime1, h try4: - TBZ $2, len, try2 + TBZ $2, n, try2 MOVWU.P 4(p), x2 MUL prime1, x2 ROR $64-23, h - EOR x2 @> 64-23, h + EOR x2 @> 64-23, h, h MADD h, prime3, prime2, h try2: - TBZ $1, len, try1 + TBZ $1, n, try1 MOVHU.P 2(p), x3 AND $255, x3, x1 LSR $8, x3, x2 MUL prime5, x1 ROR $64-11, h - EOR x1 @> 64-11, h + EOR x1 @> 64-11, h, h MUL prime1, h MUL prime5, x2 ROR $64-11, h - EOR x2 @> 64-11, h + EOR x2 @> 64-11, h, h MUL prime1, h try1: - TBZ $0, len, end + TBZ $0, n, finalize MOVBU (p), x4 MUL prime5, x4 ROR $64-11, h - EOR x4 @> 64-11, h + EOR x4 @> 64-11, h, h MUL prime1, h -end: +finalize: EOR h >> 33, h MUL prime2, h EOR h >> 29, h @@ -163,24 +163,22 @@ end: RET // func writeBlocks(d *Digest, b []byte) int -// -// Assumes len(b) >= 32. -TEXT ·writeBlocks(SB), NOFRAME+NOSPLIT, $0-40 - LDP primes<>(SB), (prime1, prime2) +TEXT ·writeBlocks(SB), NOSPLIT|NOFRAME, $0-40 + LDP ·primes+0(SB), (prime1, prime2) // Load state. Assume v[1-4] are stored contiguously. MOVD d+0(FP), digest LDP 0(digest), (v1, v2) LDP 16(digest), (v3, v4) - LDP b_base+8(FP), (p, len) + LDP b_base+8(FP), (p, n) - blocksLoop() + blockLoop() // Store updated state. STP (v1, v2), 0(digest) STP (v3, v4), 16(digest) - BIC $31, len - MOVD len, ret+32(FP) + BIC $31, n + MOVD n, ret+32(FP) RET diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go index 1a1fac9..d4221ed 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go @@ -13,4 +13,4 @@ package xxhash func Sum64(b []byte) uint64 //go:noescape -func writeBlocks(d *Digest, b []byte) int +func writeBlocks(s *Digest, b []byte) int diff --git a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go index 209cb4a..0be16ce 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go @@ -15,10 +15,10 @@ func Sum64(b []byte) uint64 { var h uint64 if n >= 32 { - v1 := prime1v + prime2 + v1 := primes[0] + prime2 v2 := prime2 v3 := uint64(0) - v4 := -prime1v + v4 := -primes[0] for len(b) >= 32 { v1 = round(v1, u64(b[0:8:len(b)])) v2 = round(v2, u64(b[8:16:len(b)])) @@ -37,19 +37,18 @@ func Sum64(b []byte) uint64 { h += uint64(n) - i, end := 0, len(b) - for ; i+8 <= end; i += 8 { - k1 := round(0, u64(b[i:i+8:len(b)])) + for ; len(b) >= 8; b = b[8:] { + k1 := round(0, u64(b[:8])) h ^= k1 h = rol27(h)*prime1 + prime4 } - if i+4 <= end { - h ^= uint64(u32(b[i:i+4:len(b)])) * prime1 + if len(b) >= 4 { + h ^= uint64(u32(b[:4])) * prime1 h = rol23(h)*prime2 + prime3 - i += 4 + b = b[4:] } - for ; i < end; i++ { - h ^= uint64(b[i]) * prime5 + for ; len(b) > 0; b = b[1:] { + h ^= uint64(b[0]) * prime5 h = rol11(h) * prime1 } diff --git a/ext/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s b/ext/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s index 52e5703..b94993a 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s +++ b/ext/vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s @@ -320,10 +320,6 @@ error_not_enough_literals: MOVQ $0x00000004, ret+24(FP) RET - // Return with not enough output space error - MOVQ $0x00000005, ret+24(FP) - RET - // func sequenceDecs_decode_56_amd64(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int // Requires: CMOV TEXT ·sequenceDecs_decode_56_amd64(SB), $8-32 @@ -617,10 +613,6 @@ error_not_enough_literals: MOVQ $0x00000004, ret+24(FP) RET - // Return with not enough output space error - MOVQ $0x00000005, ret+24(FP) - RET - // func sequenceDecs_decode_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int // Requires: BMI, BMI2, CMOV TEXT ·sequenceDecs_decode_bmi2(SB), $8-32 @@ -897,10 +889,6 @@ error_not_enough_literals: MOVQ $0x00000004, ret+24(FP) RET - // Return with not enough output space error - MOVQ $0x00000005, ret+24(FP) - RET - // func sequenceDecs_decode_56_bmi2(s *sequenceDecs, br *bitReader, ctx *decodeAsmContext) int // Requires: BMI, BMI2, CMOV TEXT ·sequenceDecs_decode_56_bmi2(SB), $8-32 @@ -1152,10 +1140,6 @@ error_not_enough_literals: MOVQ $0x00000004, ret+24(FP) RET - // Return with not enough output space error - MOVQ $0x00000005, ret+24(FP) - RET - // func sequenceDecs_executeSimple_amd64(ctx *executeAsmContext) bool // Requires: SSE TEXT ·sequenceDecs_executeSimple_amd64(SB), $8-9 @@ -1389,8 +1373,7 @@ loop_finished: MOVQ ctx+0(FP), AX MOVQ DX, 24(AX) MOVQ DI, 104(AX) - MOVQ 80(AX), CX - SUBQ CX, SI + SUBQ 80(AX), SI MOVQ SI, 112(AX) RET @@ -1402,8 +1385,7 @@ error_match_off_too_big: MOVQ ctx+0(FP), AX MOVQ DX, 24(AX) MOVQ DI, 104(AX) - MOVQ 80(AX), CX - SUBQ CX, SI + SUBQ 80(AX), SI MOVQ SI, 112(AX) RET @@ -1747,8 +1729,7 @@ loop_finished: MOVQ ctx+0(FP), AX MOVQ DX, 24(AX) MOVQ DI, 104(AX) - MOVQ 80(AX), CX - SUBQ CX, SI + SUBQ 80(AX), SI MOVQ SI, 112(AX) RET @@ -1760,8 +1741,7 @@ error_match_off_too_big: MOVQ ctx+0(FP), AX MOVQ DX, 24(AX) MOVQ DI, 104(AX) - MOVQ 80(AX), CX - SUBQ CX, SI + SUBQ 80(AX), SI MOVQ SI, 112(AX) RET diff --git a/ext/vendor/github.com/klauspost/compress/zstd/zstd.go b/ext/vendor/github.com/klauspost/compress/zstd/zstd.go index 3eb3f1c..5ffa82f 100644 --- a/ext/vendor/github.com/klauspost/compress/zstd/zstd.go +++ b/ext/vendor/github.com/klauspost/compress/zstd/zstd.go @@ -36,9 +36,6 @@ const forcePreDef = false // zstdMinMatch is the minimum zstd match length. const zstdMinMatch = 3 -// Reset the buffer offset when reaching this. -const bufferReset = math.MaxInt32 - MaxWindowSize - // fcsUnknown is used for unknown frame content size. const fcsUnknown = math.MaxUint64 @@ -75,7 +72,6 @@ var ( ErrDecoderSizeExceeded = errors.New("decompressed size exceeds configured limit") // ErrUnknownDictionary is returned if the dictionary ID is unknown. - // For the time being dictionaries are not supported. ErrUnknownDictionary = errors.New("unknown dictionary") // ErrFrameSizeExceeded is returned if the stated frame size is exceeded. @@ -110,26 +106,25 @@ func printf(format string, a ...interface{}) { } } -// matchLen returns the maximum length. +// matchLen returns the maximum common prefix length of a and b. // a must be the shortest of the two. -// The function also returns whether all bytes matched. -func matchLen(a, b []byte) int { - b = b[:len(a)] - for i := 0; i < len(a)-7; i += 8 { - if diff := load64(a, i) ^ load64(b, i); diff != 0 { - return i + (bits.TrailingZeros64(diff) >> 3) +func matchLen(a, b []byte) (n int) { + for ; len(a) >= 8 && len(b) >= 8; a, b = a[8:], b[8:] { + diff := binary.LittleEndian.Uint64(a) ^ binary.LittleEndian.Uint64(b) + if diff != 0 { + return n + bits.TrailingZeros64(diff)>>3 } + n += 8 } - checked := (len(a) >> 3) << 3 - a = a[checked:] - b = b[checked:] for i := range a { if a[i] != b[i] { - return i + checked + break } + n++ } - return len(a) + checked + return n + } func load3232(b []byte, i int32) uint32 { @@ -140,10 +135,6 @@ func load6432(b []byte, i int32) uint64 { return binary.LittleEndian.Uint64(b[i:]) } -func load64(b []byte, i int) uint64 { - return binary.LittleEndian.Uint64(b[i:]) -} - type byter interface { Bytes() []byte Len() int diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt b/ext/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt index 452d28e..2ef4714 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt +++ b/ext/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt @@ -1,35 +1,35 @@ -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2015- Klaus Post & Contributors. -Email: klauspost@gmail.com - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2015- Klaus Post & Contributors. +Email: klauspost@gmail.com + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/README.md b/ext/vendor/github.com/klauspost/cpuid/v2/README.md index 465f4b7..857a93e 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/README.md +++ b/ext/vendor/github.com/klauspost/cpuid/v2/README.md @@ -16,10 +16,17 @@ Package home: https://github.com/klauspost/cpuid ## installing -`go get -u github.com/klauspost/cpuid/v2` using modules. - +`go get -u github.com/klauspost/cpuid/v2` using modules. Drop `v2` for others. +### Homebrew + +For macOS/Linux users, you can install via [brew](https://brew.sh/) + +```sh +$ brew install cpuid +``` + ## example ```Go @@ -39,10 +46,10 @@ func main() { fmt.Println("ThreadsPerCore:", CPU.ThreadsPerCore) fmt.Println("LogicalCores:", CPU.LogicalCores) fmt.Println("Family", CPU.Family, "Model:", CPU.Model, "Vendor ID:", CPU.VendorID) - fmt.Println("Features:", fmt.Sprintf(strings.Join(CPU.FeatureSet(), ","))) + fmt.Println("Features:", strings.Join(CPU.FeatureSet(), ",")) fmt.Println("Cacheline bytes:", CPU.CacheLine) fmt.Println("L1 Data Cache:", CPU.Cache.L1D, "bytes") - fmt.Println("L1 Instruction Cache:", CPU.Cache.L1D, "bytes") + fmt.Println("L1 Instruction Cache:", CPU.Cache.L1I, "bytes") fmt.Println("L2 Cache:", CPU.Cache.L2, "bytes") fmt.Println("L3 Cache:", CPU.Cache.L3, "bytes") fmt.Println("Frequency", CPU.Hz, "hz") @@ -77,10 +84,14 @@ We have Streaming SIMD 2 Extensions The `cpuid.CPU` provides access to CPU features. Use `cpuid.CPU.Supports()` to check for CPU features. A faster `cpuid.CPU.Has()` is provided which will usually be inlined by the gc compiler. +To test a larger number of features, they can be combined using `f := CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SYSCALL, SSE, SSE2)`, etc. +This can be using with `cpuid.CPU.HasAll(f)` to quickly test if all features are supported. + Note that for some cpu/os combinations some features will not be detected. `amd64` has rather good support and should work reliably on all platforms. -Note that hypervisors may not pass through all CPU features. +Note that hypervisors may not pass through all CPU features through to the guest OS, +so even if your host supports a feature it may not be visible on guests. ## arm64 feature detection @@ -132,6 +143,339 @@ func main() { } ``` +## commandline + +Download as binary from: https://github.com/klauspost/cpuid/releases + +Install from source: + +`go install github.com/klauspost/cpuid/v2/cmd/cpuid@latest` + +### Example + +``` +λ cpuid +Name: AMD Ryzen 9 3950X 16-Core Processor +Vendor String: AuthenticAMD +Vendor ID: AMD +PhysicalCores: 16 +Threads Per Core: 2 +Logical Cores: 32 +CPU Family 23 Model: 113 +Features: ADX,AESNI,AVX,AVX2,BMI1,BMI2,CLMUL,CLZERO,CMOV,CMPXCHG8,CPBOOST,CX16,F16C,FMA3,FXSR,FXSROPT,HTT,HYPERVISOR,LAHF,LZCNT,MCAOVERFLOW,MMX,MMXEXT,MOVBE,NX,OSXSAVE,POPCNT,RDRAND,RDSEED,RDTSCP,SCE,SHA,SSE,SSE2,SSE3,SSE4,SSE42,SSE4A,SSSE3,SUCCOR,X87,XSAVE +Microarchitecture level: 3 +Cacheline bytes: 64 +L1 Instruction Cache: 32768 bytes +L1 Data Cache: 32768 bytes +L2 Cache: 524288 bytes +L3 Cache: 16777216 bytes + +``` +### JSON Output: + +``` +λ cpuid --json +{ + "BrandName": "AMD Ryzen 9 3950X 16-Core Processor", + "VendorID": 2, + "VendorString": "AuthenticAMD", + "PhysicalCores": 16, + "ThreadsPerCore": 2, + "LogicalCores": 32, + "Family": 23, + "Model": 113, + "CacheLine": 64, + "Hz": 0, + "BoostFreq": 0, + "Cache": { + "L1I": 32768, + "L1D": 32768, + "L2": 524288, + "L3": 16777216 + }, + "SGX": { + "Available": false, + "LaunchControl": false, + "SGX1Supported": false, + "SGX2Supported": false, + "MaxEnclaveSizeNot64": 0, + "MaxEnclaveSize64": 0, + "EPCSections": null + }, + "Features": [ + "ADX", + "AESNI", + "AVX", + "AVX2", + "BMI1", + "BMI2", + "CLMUL", + "CLZERO", + "CMOV", + "CMPXCHG8", + "CPBOOST", + "CX16", + "F16C", + "FMA3", + "FXSR", + "FXSROPT", + "HTT", + "HYPERVISOR", + "LAHF", + "LZCNT", + "MCAOVERFLOW", + "MMX", + "MMXEXT", + "MOVBE", + "NX", + "OSXSAVE", + "POPCNT", + "RDRAND", + "RDSEED", + "RDTSCP", + "SCE", + "SHA", + "SSE", + "SSE2", + "SSE3", + "SSE4", + "SSE42", + "SSE4A", + "SSSE3", + "SUCCOR", + "X87", + "XSAVE" + ], + "X64Level": 3 +} +``` + +### Check CPU microarch level + +``` +λ cpuid --check-level=3 +2022/03/18 17:04:40 AMD Ryzen 9 3950X 16-Core Processor +2022/03/18 17:04:40 Microarchitecture level 3 is supported. Max level is 3. +Exit Code 0 + +λ cpuid --check-level=4 +2022/03/18 17:06:18 AMD Ryzen 9 3950X 16-Core Processor +2022/03/18 17:06:18 Microarchitecture level 4 not supported. Max level is 3. +Exit Code 1 +``` + + +## Available flags + +### x86 & amd64 + +| Feature Flag | Description | +|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ADX | Intel ADX (Multi-Precision Add-Carry Instruction Extensions) | +| AESNI | Advanced Encryption Standard New Instructions | +| AMD3DNOW | AMD 3DNOW | +| AMD3DNOWEXT | AMD 3DNowExt | +| AMXBF16 | Tile computational operations on BFLOAT16 numbers | +| AMXINT8 | Tile computational operations on 8-bit integers | +| AMXFP16 | Tile computational operations on FP16 numbers | +| AMXTILE | Tile architecture | +| AVX | AVX functions | +| AVX2 | AVX2 functions | +| AVX512BF16 | AVX-512 BFLOAT16 Instructions | +| AVX512BITALG | AVX-512 Bit Algorithms | +| AVX512BW | AVX-512 Byte and Word Instructions | +| AVX512CD | AVX-512 Conflict Detection Instructions | +| AVX512DQ | AVX-512 Doubleword and Quadword Instructions | +| AVX512ER | AVX-512 Exponential and Reciprocal Instructions | +| AVX512F | AVX-512 Foundation | +| AVX512FP16 | AVX-512 FP16 Instructions | +| AVX512IFMA | AVX-512 Integer Fused Multiply-Add Instructions | +| AVX512PF | AVX-512 Prefetch Instructions | +| AVX512VBMI | AVX-512 Vector Bit Manipulation Instructions | +| AVX512VBMI2 | AVX-512 Vector Bit Manipulation Instructions, Version 2 | +| AVX512VL | AVX-512 Vector Length Extensions | +| AVX512VNNI | AVX-512 Vector Neural Network Instructions | +| AVX512VP2INTERSECT | AVX-512 Intersect for D/Q | +| AVX512VPOPCNTDQ | AVX-512 Vector Population Count Doubleword and Quadword | +| AVXIFMA | AVX-IFMA instructions | +| AVXNECONVERT | AVX-NE-CONVERT instructions | +| AVXSLOW | Indicates the CPU performs 2 128 bit operations instead of one | +| AVXVNNI | AVX (VEX encoded) VNNI neural network instructions | +| AVXVNNIINT8 | AVX-VNNI-INT8 instructions | +| BMI1 | Bit Manipulation Instruction Set 1 | +| BMI2 | Bit Manipulation Instruction Set 2 | +| CETIBT | Intel CET Indirect Branch Tracking | +| CETSS | Intel CET Shadow Stack | +| CLDEMOTE | Cache Line Demote | +| CLMUL | Carry-less Multiplication | +| CLZERO | CLZERO instruction supported | +| CMOV | i686 CMOV | +| CMPCCXADD | CMPCCXADD instructions | +| CMPSB_SCADBS_SHORT | Fast short CMPSB and SCASB | +| CMPXCHG8 | CMPXCHG8 instruction | +| CPBOOST | Core Performance Boost | +| CPPC | AMD: Collaborative Processor Performance Control | +| CX16 | CMPXCHG16B Instruction | +| EFER_LMSLE_UNS | AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ | +| ENQCMD | Enqueue Command | +| ERMS | Enhanced REP MOVSB/STOSB | +| F16C | Half-precision floating-point conversion | +| FLUSH_L1D | Flush L1D cache | +| FMA3 | Intel FMA 3. Does not imply AVX. | +| FMA4 | Bulldozer FMA4 functions | +| FP128 | AMD: When set, the internal FP/SIMD execution datapath is 128-bits wide | +| FP256 | AMD: When set, the internal FP/SIMD execution datapath is 256-bits wide | +| FSRM | Fast Short Rep Mov | +| FXSR | FXSAVE, FXRESTOR instructions, CR4 bit 9 | +| FXSROPT | FXSAVE/FXRSTOR optimizations | +| GFNI | Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage. | +| HLE | Hardware Lock Elision | +| HRESET | If set CPU supports history reset and the IA32_HRESET_ENABLE MSR | +| HTT | Hyperthreading (enabled) | +| HWA | Hardware assert supported. Indicates support for MSRC001_10 | +| HYBRID_CPU | This part has CPUs of more than one type. | +| HYPERVISOR | This bit has been reserved by Intel & AMD for use by hypervisors | +| IA32_ARCH_CAP | IA32_ARCH_CAPABILITIES MSR (Intel) | +| IA32_CORE_CAP | IA32_CORE_CAPABILITIES MSR | +| IBPB | Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB) | +| IBRS | AMD: Indirect Branch Restricted Speculation | +| IBRS_PREFERRED | AMD: IBRS is preferred over software solution | +| IBRS_PROVIDES_SMP | AMD: IBRS provides Same Mode Protection | +| IBS | Instruction Based Sampling (AMD) | +| IBSBRNTRGT | Instruction Based Sampling Feature (AMD) | +| IBSFETCHSAM | Instruction Based Sampling Feature (AMD) | +| IBSFFV | Instruction Based Sampling Feature (AMD) | +| IBSOPCNT | Instruction Based Sampling Feature (AMD) | +| IBSOPCNTEXT | Instruction Based Sampling Feature (AMD) | +| IBSOPSAM | Instruction Based Sampling Feature (AMD) | +| IBSRDWROPCNT | Instruction Based Sampling Feature (AMD) | +| IBSRIPINVALIDCHK | Instruction Based Sampling Feature (AMD) | +| IBS_FETCH_CTLX | AMD: IBS fetch control extended MSR supported | +| IBS_OPDATA4 | AMD: IBS op data 4 MSR supported | +| IBS_OPFUSE | AMD: Indicates support for IbsOpFuse | +| IBS_PREVENTHOST | Disallowing IBS use by the host supported | +| IBS_ZEN4 | Fetch and Op IBS support IBS extensions added with Zen4 | +| INT_WBINVD | WBINVD/WBNOINVD are interruptible. | +| INVLPGB | NVLPGB and TLBSYNC instruction supported | +| LAHF | LAHF/SAHF in long mode | +| LAM | If set, CPU supports Linear Address Masking | +| LBRVIRT | LBR virtualization | +| LZCNT | LZCNT instruction | +| MCAOVERFLOW | MCA overflow recovery support. | +| MCDT_NO | Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it. | +| MCOMMIT | MCOMMIT instruction supported | +| MD_CLEAR | VERW clears CPU buffers | +| MMX | standard MMX | +| MMXEXT | SSE integer functions or AMD MMX ext | +| MOVBE | MOVBE instruction (big-endian) | +| MOVDIR64B | Move 64 Bytes as Direct Store | +| MOVDIRI | Move Doubleword as Direct Store | +| MOVSB_ZL | Fast Zero-Length MOVSB | +| MPX | Intel MPX (Memory Protection Extensions) | +| MOVU | MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD | +| MSRIRC | Instruction Retired Counter MSR available | +| MSR_PAGEFLUSH | Page Flush MSR available | +| NRIPS | Indicates support for NRIP save on VMEXIT | +| NX | NX (No-Execute) bit | +| OSXSAVE | XSAVE enabled by OS | +| PCONFIG | PCONFIG for Intel Multi-Key Total Memory Encryption | +| POPCNT | POPCNT instruction | +| PPIN | AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled | +| PREFETCHI | PREFETCHIT0/1 instructions | +| PSFD | AMD: Predictive Store Forward Disable | +| RDPRU | RDPRU instruction supported | +| RDRAND | RDRAND instruction is available | +| RDSEED | RDSEED instruction is available | +| RDTSCP | RDTSCP Instruction | +| RTM | Restricted Transactional Memory | +| RTM_ALWAYS_ABORT | Indicates that the loaded microcode is forcing RTM abort. | +| SERIALIZE | Serialize Instruction Execution | +| SEV | AMD Secure Encrypted Virtualization supported | +| SEV_64BIT | AMD SEV guest execution only allowed from a 64-bit host | +| SEV_ALTERNATIVE | AMD SEV Alternate Injection supported | +| SEV_DEBUGSWAP | Full debug state swap supported for SEV-ES guests | +| SEV_ES | AMD SEV Encrypted State supported | +| SEV_RESTRICTED | AMD SEV Restricted Injection supported | +| SEV_SNP | AMD SEV Secure Nested Paging supported | +| SGX | Software Guard Extensions | +| SGXLC | Software Guard Extensions Launch Control | +| SHA | Intel SHA Extensions | +| SME | AMD Secure Memory Encryption supported | +| SME_COHERENT | AMD Hardware cache coherency across encryption domains enforced | +| SPEC_CTRL_SSBD | Speculative Store Bypass Disable | +| SRBDS_CTRL | SRBDS mitigation MSR available | +| SSE | SSE functions | +| SSE2 | P4 SSE functions | +| SSE3 | Prescott SSE3 functions | +| SSE4 | Penryn SSE4.1 functions | +| SSE42 | Nehalem SSE4.2 functions | +| SSE4A | AMD Barcelona microarchitecture SSE4a instructions | +| SSSE3 | Conroe SSSE3 functions | +| STIBP | Single Thread Indirect Branch Predictors | +| STIBP_ALWAYSON | AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On | +| STOSB_SHORT | Fast short STOSB | +| SUCCOR | Software uncorrectable error containment and recovery capability. | +| SVM | AMD Secure Virtual Machine | +| SVMDA | Indicates support for the SVM decode assists. | +| SVMFBASID | SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control | +| SVML | AMD SVM lock. Indicates support for SVM-Lock. | +| SVMNP | AMD SVM nested paging | +| SVMPF | SVM pause intercept filter. Indicates support for the pause intercept filter | +| SVMPFT | SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold | +| SYSCALL | System-Call Extension (SCE): SYSCALL and SYSRET instructions. | +| SYSEE | SYSENTER and SYSEXIT instructions | +| TBM | AMD Trailing Bit Manipulation | +| TLB_FLUSH_NESTED | AMD: Flushing includes all the nested translations for guest translations | +| TME | Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. | +| TOPEXT | TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. | +| TSCRATEMSR | MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 | +| TSXLDTRK | Intel TSX Suspend Load Address Tracking | +| VAES | Vector AES. AVX(512) versions requires additional checks. | +| VMCBCLEAN | VMCB clean bits. Indicates support for VMCB clean bits. | +| VMPL | AMD VM Permission Levels supported | +| VMSA_REGPROT | AMD VMSA Register Protection supported | +| VMX | Virtual Machine Extensions | +| VPCLMULQDQ | Carry-Less Multiplication Quadword. Requires AVX for 3 register versions. | +| VTE | AMD Virtual Transparent Encryption supported | +| WAITPKG | TPAUSE, UMONITOR, UMWAIT | +| WBNOINVD | Write Back and Do Not Invalidate Cache | +| X87 | FPU | +| XGETBV1 | Supports XGETBV with ECX = 1 | +| XOP | Bulldozer XOP functions | +| XSAVE | XSAVE, XRESTOR, XSETBV, XGETBV | +| XSAVEC | Supports XSAVEC and the compacted form of XRSTOR. | +| XSAVEOPT | XSAVEOPT available | +| XSAVES | Supports XSAVES/XRSTORS and IA32_XSS | + +# ARM features: + +| Feature Flag | Description | +|--------------|------------------------------------------------------------------| +| AESARM | AES instructions | +| ARMCPUID | Some CPU ID registers readable at user-level | +| ASIMD | Advanced SIMD | +| ASIMDDP | SIMD Dot Product | +| ASIMDHP | Advanced SIMD half-precision floating point | +| ASIMDRDM | Rounding Double Multiply Accumulate/Subtract (SQRDMLAH/SQRDMLSH) | +| ATOMICS | Large System Extensions (LSE) | +| CRC32 | CRC32/CRC32C instructions | +| DCPOP | Data cache clean to Point of Persistence (DC CVAP) | +| EVTSTRM | Generic timer | +| FCMA | Floatin point complex number addition and multiplication | +| FP | Single-precision and double-precision floating point | +| FPHP | Half-precision floating point | +| GPA | Generic Pointer Authentication | +| JSCVT | Javascript-style double->int convert (FJCVTZS) | +| LRCPC | Weaker release consistency (LDAPR, etc) | +| PMULL | Polynomial Multiply instructions (PMULL/PMULL2) | +| SHA1 | SHA-1 instructions (SHA1C, etc) | +| SHA2 | SHA-2 instructions (SHA256H, etc) | +| SHA3 | SHA-3 instructions (EOR3, RAXI, XAR, BCAX) | +| SHA512 | SHA512 instructions | +| SM3 | SM3 instructions | +| SM4 | SM4 instructions | +| SVE | Scalable Vector Extension | + # license This code is published under an MIT license. See LICENSE file for more information. diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/cpuid.go b/ext/vendor/github.com/klauspost/cpuid/v2/cpuid.go index 1d88736..cf2ae9c 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/cpuid.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/cpuid.go @@ -14,6 +14,7 @@ import ( "flag" "fmt" "math" + "math/bits" "os" "runtime" "strings" @@ -72,6 +73,7 @@ const ( AMD3DNOW // AMD 3DNOW AMD3DNOWEXT // AMD 3DNowExt AMXBF16 // Tile computational operations on BFLOAT16 numbers + AMXFP16 // Tile computational operations on FP16 numbers AMXINT8 // Tile computational operations on 8-bit integers AMXTILE // Tile architecture AVX // AVX functions @@ -92,26 +94,50 @@ const ( AVX512VNNI // AVX-512 Vector Neural Network Instructions AVX512VP2INTERSECT // AVX-512 Intersect for D/Q AVX512VPOPCNTDQ // AVX-512 Vector Population Count Doubleword and Quadword - AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one. + AVXIFMA // AVX-IFMA instructions + AVXNECONVERT // AVX-NE-CONVERT instructions + AVXSLOW // Indicates the CPU performs 2 128 bit operations instead of one + AVXVNNI // AVX (VEX encoded) VNNI neural network instructions + AVXVNNIINT8 // AVX-VNNI-INT8 instructions BMI1 // Bit Manipulation Instruction Set 1 BMI2 // Bit Manipulation Instruction Set 2 + CETIBT // Intel CET Indirect Branch Tracking + CETSS // Intel CET Shadow Stack CLDEMOTE // Cache Line Demote CLMUL // Carry-less Multiplication CLZERO // CLZERO instruction supported CMOV // i686 CMOV + CMPCCXADD // CMPCCXADD instructions + CMPSB_SCADBS_SHORT // Fast short CMPSB and SCASB + CMPXCHG8 // CMPXCHG8 instruction CPBOOST // Core Performance Boost + CPPC // AMD: Collaborative Processor Performance Control CX16 // CMPXCHG16B Instruction + EFER_LMSLE_UNS // AMD: =Core::X86::Msr::EFER[LMSLE] is not supported, and MBZ ENQCMD // Enqueue Command ERMS // Enhanced REP MOVSB/STOSB F16C // Half-precision floating-point conversion + FLUSH_L1D // Flush L1D cache FMA3 // Intel FMA 3. Does not imply AVX. FMA4 // Bulldozer FMA4 functions - GFNI // Galois Field New Instructions + FP128 // AMD: When set, the internal FP/SIMD execution datapath is no more than 128-bits wide + FP256 // AMD: When set, the internal FP/SIMD execution datapath is no more than 256-bits wide + FSRM // Fast Short Rep Mov + FXSR // FXSAVE, FXRESTOR instructions, CR4 bit 9 + FXSROPT // FXSAVE/FXRSTOR optimizations + GFNI // Galois Field New Instructions. May require other features (AVX, AVX512VL,AVX512F) based on usage. HLE // Hardware Lock Elision + HRESET // If set CPU supports history reset and the IA32_HRESET_ENABLE MSR HTT // Hyperthreading (enabled) HWA // Hardware assert supported. Indicates support for MSRC001_10 + HYBRID_CPU // This part has CPUs of more than one type. HYPERVISOR // This bit has been reserved by Intel & AMD for use by hypervisors + IA32_ARCH_CAP // IA32_ARCH_CAPABILITIES MSR (Intel) + IA32_CORE_CAP // IA32_CORE_CAPABILITIES MSR IBPB // Indirect Branch Restricted Speculation (IBRS) and Indirect Branch Predictor Barrier (IBPB) + IBRS // AMD: Indirect Branch Restricted Speculation + IBRS_PREFERRED // AMD: IBRS is preferred over software solution + IBRS_PROVIDES_SMP // AMD: IBRS provides Same Mode Protection IBS // Instruction Based Sampling (AMD) IBSBRNTRGT // Instruction Based Sampling Feature (AMD) IBSFETCHSAM // Instruction Based Sampling Feature (AMD) @@ -121,19 +147,39 @@ const ( IBSOPSAM // Instruction Based Sampling Feature (AMD) IBSRDWROPCNT // Instruction Based Sampling Feature (AMD) IBSRIPINVALIDCHK // Instruction Based Sampling Feature (AMD) + IBS_FETCH_CTLX // AMD: IBS fetch control extended MSR supported + IBS_OPDATA4 // AMD: IBS op data 4 MSR supported + IBS_OPFUSE // AMD: Indicates support for IbsOpFuse + IBS_PREVENTHOST // Disallowing IBS use by the host supported + IBS_ZEN4 // AMD: Fetch and Op IBS support IBS extensions added with Zen4 INT_WBINVD // WBINVD/WBNOINVD are interruptible. INVLPGB // NVLPGB and TLBSYNC instruction supported + LAHF // LAHF/SAHF in long mode + LAM // If set, CPU supports Linear Address Masking + LBRVIRT // LBR virtualization LZCNT // LZCNT instruction MCAOVERFLOW // MCA overflow recovery support. + MCDT_NO // Processor do not exhibit MXCSR Configuration Dependent Timing behavior and do not need to mitigate it. MCOMMIT // MCOMMIT instruction supported + MD_CLEAR // VERW clears CPU buffers MMX // standard MMX MMXEXT // SSE integer functions or AMD MMX ext + MOVBE // MOVBE instruction (big-endian) MOVDIR64B // Move 64 Bytes as Direct Store MOVDIRI // Move Doubleword as Direct Store + MOVSB_ZL // Fast Zero-Length MOVSB + MOVU // AMD: MOVU SSE instructions are more efficient and should be preferred to SSE MOVL/MOVH. MOVUPS is more efficient than MOVLPS/MOVHPS. MOVUPD is more efficient than MOVLPD/MOVHPD MPX // Intel MPX (Memory Protection Extensions) MSRIRC // Instruction Retired Counter MSR available + MSR_PAGEFLUSH // Page Flush MSR available + NRIPS // Indicates support for NRIP save on VMEXIT NX // NX (No-Execute) bit + OSXSAVE // XSAVE enabled by OS + PCONFIG // PCONFIG for Intel Multi-Key Total Memory Encryption POPCNT // POPCNT instruction + PPIN // AMD: Protected Processor Inventory Number support. Indicates that Protected Processor Inventory Number (PPIN) capability can be enabled + PREFETCHI // PREFETCHIT0/1 instructions + PSFD // AMD: Predictive Store Forward Disable RDPRU // RDPRU instruction supported RDRAND // RDRAND instruction is available RDSEED // RDSEED instruction is available @@ -141,9 +187,20 @@ const ( RTM // Restricted Transactional Memory RTM_ALWAYS_ABORT // Indicates that the loaded microcode is forcing RTM abort. SERIALIZE // Serialize Instruction Execution + SEV // AMD Secure Encrypted Virtualization supported + SEV_64BIT // AMD SEV guest execution only allowed from a 64-bit host + SEV_ALTERNATIVE // AMD SEV Alternate Injection supported + SEV_DEBUGSWAP // Full debug state swap supported for SEV-ES guests + SEV_ES // AMD SEV Encrypted State supported + SEV_RESTRICTED // AMD SEV Restricted Injection supported + SEV_SNP // AMD SEV Secure Nested Paging supported SGX // Software Guard Extensions SGXLC // Software Guard Extensions Launch Control SHA // Intel SHA Extensions + SME // AMD Secure Memory Encryption supported + SME_COHERENT // AMD Hardware cache coherency across encryption domains enforced + SPEC_CTRL_SSBD // Speculative Store Bypass Disable + SRBDS_CTRL // SRBDS mitigation MSR available SSE // SSE functions SSE2 // P4 SSE functions SSE3 // Prescott SSE3 functions @@ -152,15 +209,40 @@ const ( SSE4A // AMD Barcelona microarchitecture SSE4a instructions SSSE3 // Conroe SSSE3 functions STIBP // Single Thread Indirect Branch Predictors + STIBP_ALWAYSON // AMD: Single Thread Indirect Branch Prediction Mode has Enhanced Performance and may be left Always On + STOSB_SHORT // Fast short STOSB SUCCOR // Software uncorrectable error containment and recovery capability. + SVM // AMD Secure Virtual Machine + SVMDA // Indicates support for the SVM decode assists. + SVMFBASID // SVM, Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID's TLB entries. Also indicates support for the extended VMCBTLB_Control + SVML // AMD SVM lock. Indicates support for SVM-Lock. + SVMNP // AMD SVM nested paging + SVMPF // SVM pause intercept filter. Indicates support for the pause intercept filter + SVMPFT // SVM PAUSE filter threshold. Indicates support for the PAUSE filter cycle count threshold + SYSCALL // System-Call Extension (SCE): SYSCALL and SYSRET instructions. + SYSEE // SYSENTER and SYSEXIT instructions TBM // AMD Trailing Bit Manipulation + TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations + TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. + TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. + TSCRATEMSR // MSR based TSC rate control. Indicates support for MSR TSC ratio MSRC000_0104 TSXLDTRK // Intel TSX Suspend Load Address Tracking - VAES // Vector AES + VAES // Vector AES. AVX(512) versions requires additional checks. + VMCBCLEAN // VMCB clean bits. Indicates support for VMCB clean bits. + VMPL // AMD VM Permission Levels supported + VMSA_REGPROT // AMD VMSA Register Protection supported VMX // Virtual Machine Extensions - VPCLMULQDQ // Carry-Less Multiplication Quadword + VPCLMULQDQ // Carry-Less Multiplication Quadword. Requires AVX for 3 register versions. + VTE // AMD Virtual Transparent Encryption supported WAITPKG // TPAUSE, UMONITOR, UMWAIT WBNOINVD // Write Back and Do Not Invalidate Cache + X87 // FPU + XGETBV1 // Supports XGETBV with ECX = 1 XOP // Bulldozer XOP functions + XSAVE // XSAVE, XRESTOR, XSETBV, XGETBV + XSAVEC // Supports XSAVEC and the compacted form of XRSTOR. + XSAVEOPT // XSAVEOPT available + XSAVES // Supports XSAVES/XRSTORS and IA32_XSS // ARM features: AESARM // AES instructions @@ -187,7 +269,6 @@ const ( SM3 // SM3 instructions SM4 // SM4 instructions SVE // Scalable Vector Extension - // Keep it last. It automatically defines the size of []flagSet lastID @@ -205,6 +286,7 @@ type CPUInfo struct { LogicalCores int // Number of physical cores times threads that can run on each core through the use of hyperthreading. Will be 0 if undetectable. Family int // CPU family number Model int // CPU model number + Stepping int // CPU stepping info CacheLine int // Cache line size in bytes. Will be 0 if undetectable. Hz int64 // Clock speed, if known, 0 otherwise. Will attempt to contain base clock speed. BoostFreq int64 // Max clock speed, if known, 0 otherwise @@ -307,10 +389,66 @@ func (c CPUInfo) Supports(ids ...FeatureID) bool { // Has allows for checking a single feature. // Should be inlined by the compiler. -func (c CPUInfo) Has(id FeatureID) bool { +func (c *CPUInfo) Has(id FeatureID) bool { return c.featureSet.inSet(id) } +// AnyOf returns whether the CPU supports one or more of the requested features. +func (c CPUInfo) AnyOf(ids ...FeatureID) bool { + for _, id := range ids { + if c.featureSet.inSet(id) { + return true + } + } + return false +} + +// Features contains several features combined for a fast check using +// CpuInfo.HasAll +type Features *flagSet + +// CombineFeatures allows to combine several features for a close to constant time lookup. +func CombineFeatures(ids ...FeatureID) Features { + var v flagSet + for _, id := range ids { + v.set(id) + } + return &v +} + +func (c *CPUInfo) HasAll(f Features) bool { + return c.featureSet.hasSetP(f) +} + +// https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels +var oneOfLevel = CombineFeatures(SYSEE, SYSCALL) +var level1Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2) +var level2Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3) +var level3Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3, AVX, AVX2, BMI1, BMI2, F16C, FMA3, LZCNT, MOVBE, OSXSAVE) +var level4Features = CombineFeatures(CMOV, CMPXCHG8, X87, FXSR, MMX, SSE, SSE2, CX16, LAHF, POPCNT, SSE3, SSE4, SSE42, SSSE3, AVX, AVX2, BMI1, BMI2, F16C, FMA3, LZCNT, MOVBE, OSXSAVE, AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL) + +// X64Level returns the microarchitecture level detected on the CPU. +// If features are lacking or non x64 mode, 0 is returned. +// See https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels +func (c CPUInfo) X64Level() int { + if !c.featureSet.hasOneOf(oneOfLevel) { + return 0 + } + if c.featureSet.hasSetP(level4Features) { + return 4 + } + if c.featureSet.hasSetP(level3Features) { + return 3 + } + if c.featureSet.hasSetP(level2Features) { + return 2 + } + if c.featureSet.hasSetP(level1Features) { + return 1 + } + return 0 +} + // Disable will disable one or several features. func (c *CPUInfo) Disable(ids ...FeatureID) bool { for _, id := range ids { @@ -333,11 +471,10 @@ func (c CPUInfo) IsVendor(v Vendor) bool { return c.VendorID == v } +// FeatureSet returns all available features as strings. func (c CPUInfo) FeatureSet() []string { - s := make([]string, 0) - for _, f := range c.featureSet.Strings() { - s = append(s, f) - } + s := make([]string, 0, c.featureSet.nEnabled()) + s = append(s, c.featureSet.Strings()...) return s } @@ -470,7 +607,7 @@ const flagMask = flagBits - 1 // flagSet contains detected cpu features and characteristics in an array of flags type flagSet [(lastID + flagMask) / flagBits]flags -func (s flagSet) inSet(feat FeatureID) bool { +func (s *flagSet) inSet(feat FeatureID) bool { return s[feat>>flagBitsLog2]&(1<<(feat&flagMask)) != 0 } @@ -499,6 +636,52 @@ func (s *flagSet) or(other flagSet) { } } +// hasSet returns whether all features are present. +func (s *flagSet) hasSet(other flagSet) bool { + for i, v := range other[:] { + if s[i]&v != v { + return false + } + } + return true +} + +// hasSet returns whether all features are present. +func (s *flagSet) hasSetP(other *flagSet) bool { + for i, v := range other[:] { + if s[i]&v != v { + return false + } + } + return true +} + +// hasOneOf returns whether one or more features are present. +func (s *flagSet) hasOneOf(other *flagSet) bool { + for i, v := range other[:] { + if s[i]&v != 0 { + return true + } + } + return false +} + +// nEnabled will return the number of enabled flags. +func (s *flagSet) nEnabled() (n int) { + for _, v := range s[:] { + n += bits.OnesCount64(uint64(v)) + } + return n +} + +func flagSetWith(feat ...FeatureID) flagSet { + var res flagSet + for _, f := range feat { + res.set(f) + } + return res +} + // ParseFeature will parse the string and return the ID of the matching feature. // Will return UNKNOWN if not found. func ParseFeature(s string) FeatureID { @@ -579,7 +762,7 @@ func threadsPerCore() int { if vend == AMD { // Workaround for AMD returning 0, assume 2 if >= Zen 2 // It will be more correct than not. - fam, _ := familyModel() + fam, _, _ := familyModel() _, _, _, d := cpuid(1) if (d&(1<<28)) != 0 && fam >= 23 { return 2 @@ -617,14 +800,27 @@ func logicalCores() int { } } -func familyModel() (int, int) { +func familyModel() (family, model, stepping int) { if maxFunctionID() < 0x1 { - return 0, 0 + return 0, 0, 0 } eax, _, _, _ := cpuid(1) - family := ((eax >> 8) & 0xf) + ((eax >> 20) & 0xff) - model := ((eax >> 4) & 0xf) + ((eax >> 12) & 0xf0) - return int(family), int(model) + // If BaseFamily[3:0] is less than Fh then ExtendedFamily[7:0] is reserved and Family is equal to BaseFamily[3:0]. + family = int((eax >> 8) & 0xf) + extFam := family == 0x6 // Intel is 0x6, needs extended model. + if family == 0xf { + // Add ExtFamily + family += int((eax >> 20) & 0xff) + extFam = true + } + // If BaseFamily[3:0] is less than 0Fh then ExtendedModel[3:0] is reserved and Model is equal to BaseModel[3:0]. + model = int((eax >> 4) & 0xf) + if extFam { + // Add ExtModel + model += int((eax >> 12) & 0xf0) + } + stepping = int(eax & 0xf) + return family, model, stepping } func physicalCores() int { @@ -708,6 +904,7 @@ func (c *CPUInfo) cacheSize() { if maxFunctionID() < 4 { return } + c.Cache.L1I, c.Cache.L1D, c.Cache.L2, c.Cache.L3 = 0, 0, 0, 0 for i := uint32(0); ; i++ { eax, ebx, ecx, _ := cpuidex(4, i) cacheType := eax & 15 @@ -758,9 +955,14 @@ func (c *CPUInfo) cacheSize() { c.Cache.L2 = int(((ecx >> 16) & 0xFFFF) * 1024) // CPUID Fn8000_001D_EAX_x[N:0] Cache Properties - if maxExtendedFunction() < 0x8000001D { + if maxExtendedFunction() < 0x8000001D || !c.Has(TOPEXT) { return } + + // Xen Hypervisor is buggy and returns the same entry no matter ECX value. + // Hack: When we encounter the same entry 100 times we break. + nSame := 0 + var last uint32 for i := uint32(0); i < math.MaxUint32; i++ { eax, ebx, ecx, _ := cpuidex(0x8000001D, i) @@ -776,6 +978,16 @@ func (c *CPUInfo) cacheSize() { return } + // Check for the same value repeated. + comb := eax ^ ebx ^ ecx + if comb == last { + nSame++ + if nSame == 100 { + return + } + } + last = comb + switch level { case 1: switch typ { @@ -800,8 +1012,6 @@ func (c *CPUInfo) cacheSize() { } } } - - return } type SGXEPCSection struct { @@ -862,21 +1072,26 @@ func support() flagSet { if mfi < 0x1 { return fs } - family, model := familyModel() + family, model, _ := familyModel() _, _, c, d := cpuid(1) + fs.setIf((d&(1<<0)) != 0, X87) + fs.setIf((d&(1<<8)) != 0, CMPXCHG8) + fs.setIf((d&(1<<11)) != 0, SYSEE) fs.setIf((d&(1<<15)) != 0, CMOV) fs.setIf((d&(1<<23)) != 0, MMX) - fs.setIf((d&(1<<25)) != 0, MMXEXT) + fs.setIf((d&(1<<24)) != 0, FXSR) + fs.setIf((d&(1<<25)) != 0, FXSROPT) fs.setIf((d&(1<<25)) != 0, SSE) fs.setIf((d&(1<<26)) != 0, SSE2) fs.setIf((c&1) != 0, SSE3) fs.setIf((c&(1<<5)) != 0, VMX) - fs.setIf((c&0x00000200) != 0, SSSE3) - fs.setIf((c&0x00080000) != 0, SSE4) - fs.setIf((c&0x00100000) != 0, SSE42) + fs.setIf((c&(1<<9)) != 0, SSSE3) + fs.setIf((c&(1<<19)) != 0, SSE4) + fs.setIf((c&(1<<20)) != 0, SSE42) fs.setIf((c&(1<<25)) != 0, AESNI) fs.setIf((c&(1<<1)) != 0, CLMUL) + fs.setIf(c&(1<<22) != 0, MOVBE) fs.setIf(c&(1<<23) != 0, POPCNT) fs.setIf(c&(1<<30) != 0, RDRAND) @@ -892,6 +1107,8 @@ func support() flagSet { if vend == AMD && (d&(1<<28)) != 0 && mfi >= 4 { fs.setIf(threadsPerCore() > 1, HTT) } + fs.setIf(c&1<<26 != 0, XSAVE) + fs.setIf(c&1<<27 != 0, OSXSAVE) // Check XGETBV/XSAVE (26), OXSAVE (27) and AVX (28) bits const avxCheck = 1<<26 | 1<<27 | 1<<28 if c&avxCheck == avxCheck { @@ -917,7 +1134,6 @@ func support() flagSet { // Check AVX2, AVX2 requires OS support, but BMI1/2 don't. if mfi >= 7 { _, ebx, ecx, edx := cpuidex(7, 0) - eax1, _, _, _ := cpuidex(7, 1) if fs.inSet(AVX) && (ebx&0x00000020) != 0 { fs.set(AVX2) } @@ -934,19 +1150,52 @@ func support() flagSet { fs.setIf(ebx&(1<<18) != 0, RDSEED) fs.setIf(ebx&(1<<19) != 0, ADX) fs.setIf(ebx&(1<<29) != 0, SHA) + // CPUID.(EAX=7, ECX=0).ECX fs.setIf(ecx&(1<<5) != 0, WAITPKG) + fs.setIf(ecx&(1<<7) != 0, CETSS) + fs.setIf(ecx&(1<<8) != 0, GFNI) + fs.setIf(ecx&(1<<9) != 0, VAES) + fs.setIf(ecx&(1<<10) != 0, VPCLMULQDQ) + fs.setIf(ecx&(1<<13) != 0, TME) fs.setIf(ecx&(1<<25) != 0, CLDEMOTE) fs.setIf(ecx&(1<<27) != 0, MOVDIRI) fs.setIf(ecx&(1<<28) != 0, MOVDIR64B) fs.setIf(ecx&(1<<29) != 0, ENQCMD) fs.setIf(ecx&(1<<30) != 0, SGXLC) + // CPUID.(EAX=7, ECX=0).EDX + fs.setIf(edx&(1<<4) != 0, FSRM) + fs.setIf(edx&(1<<9) != 0, SRBDS_CTRL) + fs.setIf(edx&(1<<10) != 0, MD_CLEAR) fs.setIf(edx&(1<<11) != 0, RTM_ALWAYS_ABORT) fs.setIf(edx&(1<<14) != 0, SERIALIZE) + fs.setIf(edx&(1<<15) != 0, HYBRID_CPU) fs.setIf(edx&(1<<16) != 0, TSXLDTRK) + fs.setIf(edx&(1<<18) != 0, PCONFIG) + fs.setIf(edx&(1<<20) != 0, CETIBT) fs.setIf(edx&(1<<26) != 0, IBPB) fs.setIf(edx&(1<<27) != 0, STIBP) + fs.setIf(edx&(1<<28) != 0, FLUSH_L1D) + fs.setIf(edx&(1<<29) != 0, IA32_ARCH_CAP) + fs.setIf(edx&(1<<30) != 0, IA32_CORE_CAP) + fs.setIf(edx&(1<<31) != 0, SPEC_CTRL_SSBD) + + // CPUID.(EAX=7, ECX=1).EDX + fs.setIf(edx&(1<<4) != 0, AVXVNNIINT8) + fs.setIf(edx&(1<<5) != 0, AVXNECONVERT) + fs.setIf(edx&(1<<14) != 0, PREFETCHI) + + // CPUID.(EAX=7, ECX=1).EAX + eax1, _, _, _ := cpuidex(7, 1) + fs.setIf(fs.inSet(AVX) && eax1&(1<<4) != 0, AVXVNNI) + fs.setIf(eax1&(1<<7) != 0, CMPCCXADD) + fs.setIf(eax1&(1<<10) != 0, MOVSB_ZL) + fs.setIf(eax1&(1<<11) != 0, STOSB_SHORT) + fs.setIf(eax1&(1<<12) != 0, CMPSB_SCADBS_SHORT) + fs.setIf(eax1&(1<<22) != 0, HRESET) + fs.setIf(eax1&(1<<23) != 0, AVXIFMA) + fs.setIf(eax1&(1<<26) != 0, LAM) // Only detect AVX-512 features if XGETBV is supported if c&((1<<26)|(1<<27)) == (1<<26)|(1<<27) { @@ -972,9 +1221,6 @@ func support() flagSet { // ecx fs.setIf(ecx&(1<<1) != 0, AVX512VBMI) fs.setIf(ecx&(1<<6) != 0, AVX512VBMI2) - fs.setIf(ecx&(1<<8) != 0, GFNI) - fs.setIf(ecx&(1<<9) != 0, VAES) - fs.setIf(ecx&(1<<10) != 0, VPCLMULQDQ) fs.setIf(ecx&(1<<11) != 0, AVX512VNNI) fs.setIf(ecx&(1<<12) != 0, AVX512BITALG) fs.setIf(ecx&(1<<14) != 0, AVX512VPOPCNTDQ) @@ -986,30 +1232,66 @@ func support() flagSet { fs.setIf(edx&(1<<25) != 0, AMXINT8) // eax1 = CPUID.(EAX=7, ECX=1).EAX fs.setIf(eax1&(1<<5) != 0, AVX512BF16) + fs.setIf(eax1&(1<<21) != 0, AMXFP16) } } + + // CPUID.(EAX=7, ECX=2) + _, _, _, edx = cpuidex(7, 2) + fs.setIf(edx&(1<<5) != 0, MCDT_NO) } + // Processor Extended State Enumeration Sub-leaf (EAX = 0DH, ECX = 1) + // EAX + // Bit 00: XSAVEOPT is available. + // Bit 01: Supports XSAVEC and the compacted form of XRSTOR if set. + // Bit 02: Supports XGETBV with ECX = 1 if set. + // Bit 03: Supports XSAVES/XRSTORS and IA32_XSS if set. + // Bits 31 - 04: Reserved. + // EBX + // Bits 31 - 00: The size in bytes of the XSAVE area containing all states enabled by XCRO | IA32_XSS. + // ECX + // Bits 31 - 00: Reports the supported bits of the lower 32 bits of the IA32_XSS MSR. IA32_XSS[n] can be set to 1 only if ECX[n] is 1. + // EDX? + // Bits 07 - 00: Used for XCR0. Bit 08: PT state. Bit 09: Used for XCR0. Bits 12 - 10: Reserved. Bit 13: HWP state. Bits 31 - 14: Reserved. + if mfi >= 0xd { + if fs.inSet(XSAVE) { + eax, _, _, _ := cpuidex(0xd, 1) + fs.setIf(eax&(1<<0) != 0, XSAVEOPT) + fs.setIf(eax&(1<<1) != 0, XSAVEC) + fs.setIf(eax&(1<<2) != 0, XGETBV1) + fs.setIf(eax&(1<<3) != 0, XSAVES) + } + } if maxExtendedFunction() >= 0x80000001 { _, _, c, d := cpuid(0x80000001) if (c & (1 << 5)) != 0 { fs.set(LZCNT) fs.set(POPCNT) } - fs.setIf((c&(1<<10)) != 0, IBS) - fs.setIf((d&(1<<31)) != 0, AMD3DNOW) - fs.setIf((d&(1<<30)) != 0, AMD3DNOWEXT) - fs.setIf((d&(1<<23)) != 0, MMX) - fs.setIf((d&(1<<22)) != 0, MMXEXT) + // ECX + fs.setIf((c&(1<<0)) != 0, LAHF) + fs.setIf((c&(1<<2)) != 0, SVM) fs.setIf((c&(1<<6)) != 0, SSE4A) + fs.setIf((c&(1<<10)) != 0, IBS) + fs.setIf((c&(1<<22)) != 0, TOPEXT) + + // EDX + fs.setIf(d&(1<<11) != 0, SYSCALL) fs.setIf(d&(1<<20) != 0, NX) + fs.setIf(d&(1<<22) != 0, MMXEXT) + fs.setIf(d&(1<<23) != 0, MMX) + fs.setIf(d&(1<<24) != 0, FXSR) + fs.setIf(d&(1<<25) != 0, FXSROPT) fs.setIf(d&(1<<27) != 0, RDTSCP) + fs.setIf(d&(1<<30) != 0, AMD3DNOWEXT) + fs.setIf(d&(1<<31) != 0, AMD3DNOW) /* XOP and FMA4 use the AVX instruction coding scheme, so they can't be * used unless the OS has AVX support. */ if fs.inSet(AVX) { - fs.setIf((c&0x00000800) != 0, XOP) - fs.setIf((c&0x00010000) != 0, FMA4) + fs.setIf((c&(1<<11)) != 0, XOP) + fs.setIf((c&(1<<16)) != 0, FMA4) } } @@ -1023,15 +1305,48 @@ func support() flagSet { if maxExtendedFunction() >= 0x80000008 { _, b, _, _ := cpuid(0x80000008) + fs.setIf(b&(1<<28) != 0, PSFD) + fs.setIf(b&(1<<27) != 0, CPPC) + fs.setIf(b&(1<<24) != 0, SPEC_CTRL_SSBD) + fs.setIf(b&(1<<23) != 0, PPIN) + fs.setIf(b&(1<<21) != 0, TLB_FLUSH_NESTED) + fs.setIf(b&(1<<20) != 0, EFER_LMSLE_UNS) + fs.setIf(b&(1<<19) != 0, IBRS_PROVIDES_SMP) + fs.setIf(b&(1<<18) != 0, IBRS_PREFERRED) + fs.setIf(b&(1<<17) != 0, STIBP_ALWAYSON) + fs.setIf(b&(1<<15) != 0, STIBP) + fs.setIf(b&(1<<14) != 0, IBRS) + fs.setIf((b&(1<<13)) != 0, INT_WBINVD) + fs.setIf(b&(1<<12) != 0, IBPB) fs.setIf((b&(1<<9)) != 0, WBNOINVD) fs.setIf((b&(1<<8)) != 0, MCOMMIT) - fs.setIf((b&(1<<13)) != 0, INT_WBINVD) fs.setIf((b&(1<<4)) != 0, RDPRU) fs.setIf((b&(1<<3)) != 0, INVLPGB) fs.setIf((b&(1<<1)) != 0, MSRIRC) fs.setIf((b&(1<<0)) != 0, CLZERO) } + if fs.inSet(SVM) && maxExtendedFunction() >= 0x8000000A { + _, _, _, edx := cpuid(0x8000000A) + fs.setIf((edx>>0)&1 == 1, SVMNP) + fs.setIf((edx>>1)&1 == 1, LBRVIRT) + fs.setIf((edx>>2)&1 == 1, SVML) + fs.setIf((edx>>3)&1 == 1, NRIPS) + fs.setIf((edx>>4)&1 == 1, TSCRATEMSR) + fs.setIf((edx>>5)&1 == 1, VMCBCLEAN) + fs.setIf((edx>>6)&1 == 1, SVMFBASID) + fs.setIf((edx>>7)&1 == 1, SVMDA) + fs.setIf((edx>>10)&1 == 1, SVMPF) + fs.setIf((edx>>12)&1 == 1, SVMPFT) + } + + if maxExtendedFunction() >= 0x8000001a { + eax, _, _, _ := cpuid(0x8000001a) + fs.setIf((eax>>0)&1 == 1, FP128) + fs.setIf((eax>>1)&1 == 1, MOVU) + fs.setIf((eax>>2)&1 == 1, FP256) + } + if maxExtendedFunction() >= 0x8000001b && fs.inSet(IBS) { eax, _, _, _ := cpuid(0x8000001b) fs.setIf((eax>>0)&1 == 1, IBSFFV) @@ -1042,6 +1357,28 @@ func support() flagSet { fs.setIf((eax>>5)&1 == 1, IBSBRNTRGT) fs.setIf((eax>>6)&1 == 1, IBSOPCNTEXT) fs.setIf((eax>>7)&1 == 1, IBSRIPINVALIDCHK) + fs.setIf((eax>>8)&1 == 1, IBS_OPFUSE) + fs.setIf((eax>>9)&1 == 1, IBS_FETCH_CTLX) + fs.setIf((eax>>10)&1 == 1, IBS_OPDATA4) // Doc says "Fixed,0. IBS op data 4 MSR supported", but assuming they mean 1. + fs.setIf((eax>>11)&1 == 1, IBS_ZEN4) + } + + if maxExtendedFunction() >= 0x8000001f && vend == AMD { + a, _, _, _ := cpuid(0x8000001f) + fs.setIf((a>>0)&1 == 1, SME) + fs.setIf((a>>1)&1 == 1, SEV) + fs.setIf((a>>2)&1 == 1, MSR_PAGEFLUSH) + fs.setIf((a>>3)&1 == 1, SEV_ES) + fs.setIf((a>>4)&1 == 1, SEV_SNP) + fs.setIf((a>>5)&1 == 1, VMPL) + fs.setIf((a>>10)&1 == 1, SME_COHERENT) + fs.setIf((a>>11)&1 == 1, SEV_64BIT) + fs.setIf((a>>12)&1 == 1, SEV_RESTRICTED) + fs.setIf((a>>13)&1 == 1, SEV_ALTERNATIVE) + fs.setIf((a>>14)&1 == 1, SEV_DEBUGSWAP) + fs.setIf((a>>15)&1 == 1, IBS_PREVENTHOST) + fs.setIf((a>>16)&1 == 1, VTE) + fs.setIf((a>>24)&1 == 1, VMSA_REGPROT) } return fs diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go b/ext/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go index 9bf9f77..9a53504 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/detect_arm64.go @@ -1,6 +1,7 @@ // Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. -//+build arm64,!gccgo,!noasm,!appengine +//go:build arm64 && !gccgo && !noasm && !appengine +// +build arm64,!gccgo,!noasm,!appengine package cpuid diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/detect_ref.go b/ext/vendor/github.com/klauspost/cpuid/v2/detect_ref.go index e9c8606..9636c2b 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/detect_ref.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/detect_ref.go @@ -1,6 +1,7 @@ // Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. -//+build !amd64,!386,!arm64 gccgo noasm appengine +//go:build (!amd64 && !386 && !arm64) || gccgo || noasm || appengine +// +build !amd64,!386,!arm64 gccgo noasm appengine package cpuid diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/detect_x86.go b/ext/vendor/github.com/klauspost/cpuid/v2/detect_x86.go index 367c35c..c946824 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/detect_x86.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/detect_x86.go @@ -1,6 +1,7 @@ // Copyright (c) 2015 Klaus Post, released under MIT License. See LICENSE file. -//+build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine +//go:build (386 && !gccgo && !noasm && !appengine) || (amd64 && !gccgo && !noasm && !appengine) +// +build 386,!gccgo,!noasm,!appengine amd64,!gccgo,!noasm,!appengine package cpuid @@ -23,7 +24,7 @@ func addInfo(c *CPUInfo, safe bool) { c.maxExFunc = maxExtendedFunction() c.BrandName = brandName() c.CacheLine = cacheLine() - c.Family, c.Model = familyModel() + c.Family, c.Model, c.Stepping = familyModel() c.featureSet = support() c.SGX = hasSGX(c.featureSet.inSet(SGX), c.featureSet.inSet(SGXLC)) c.ThreadsPerCore = threadsPerCore() diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/featureid_string.go b/ext/vendor/github.com/klauspost/cpuid/v2/featureid_string.go index b1fe42e..8b6cd2b 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/featureid_string.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/featureid_string.go @@ -13,126 +13,207 @@ func _() { _ = x[AMD3DNOW-3] _ = x[AMD3DNOWEXT-4] _ = x[AMXBF16-5] - _ = x[AMXINT8-6] - _ = x[AMXTILE-7] - _ = x[AVX-8] - _ = x[AVX2-9] - _ = x[AVX512BF16-10] - _ = x[AVX512BITALG-11] - _ = x[AVX512BW-12] - _ = x[AVX512CD-13] - _ = x[AVX512DQ-14] - _ = x[AVX512ER-15] - _ = x[AVX512F-16] - _ = x[AVX512FP16-17] - _ = x[AVX512IFMA-18] - _ = x[AVX512PF-19] - _ = x[AVX512VBMI-20] - _ = x[AVX512VBMI2-21] - _ = x[AVX512VL-22] - _ = x[AVX512VNNI-23] - _ = x[AVX512VP2INTERSECT-24] - _ = x[AVX512VPOPCNTDQ-25] - _ = x[AVXSLOW-26] - _ = x[BMI1-27] - _ = x[BMI2-28] - _ = x[CLDEMOTE-29] - _ = x[CLMUL-30] - _ = x[CLZERO-31] - _ = x[CMOV-32] - _ = x[CPBOOST-33] - _ = x[CX16-34] - _ = x[ENQCMD-35] - _ = x[ERMS-36] - _ = x[F16C-37] - _ = x[FMA3-38] - _ = x[FMA4-39] - _ = x[GFNI-40] - _ = x[HLE-41] - _ = x[HTT-42] - _ = x[HWA-43] - _ = x[HYPERVISOR-44] - _ = x[IBPB-45] - _ = x[IBS-46] - _ = x[IBSBRNTRGT-47] - _ = x[IBSFETCHSAM-48] - _ = x[IBSFFV-49] - _ = x[IBSOPCNT-50] - _ = x[IBSOPCNTEXT-51] - _ = x[IBSOPSAM-52] - _ = x[IBSRDWROPCNT-53] - _ = x[IBSRIPINVALIDCHK-54] - _ = x[INT_WBINVD-55] - _ = x[INVLPGB-56] - _ = x[LZCNT-57] - _ = x[MCAOVERFLOW-58] - _ = x[MCOMMIT-59] - _ = x[MMX-60] - _ = x[MMXEXT-61] - _ = x[MOVDIR64B-62] - _ = x[MOVDIRI-63] - _ = x[MPX-64] - _ = x[MSRIRC-65] - _ = x[NX-66] - _ = x[POPCNT-67] - _ = x[RDPRU-68] - _ = x[RDRAND-69] - _ = x[RDSEED-70] - _ = x[RDTSCP-71] - _ = x[RTM-72] - _ = x[RTM_ALWAYS_ABORT-73] - _ = x[SERIALIZE-74] - _ = x[SGX-75] - _ = x[SGXLC-76] - _ = x[SHA-77] - _ = x[SSE-78] - _ = x[SSE2-79] - _ = x[SSE3-80] - _ = x[SSE4-81] - _ = x[SSE42-82] - _ = x[SSE4A-83] - _ = x[SSSE3-84] - _ = x[STIBP-85] - _ = x[SUCCOR-86] - _ = x[TBM-87] - _ = x[TSXLDTRK-88] - _ = x[VAES-89] - _ = x[VMX-90] - _ = x[VPCLMULQDQ-91] - _ = x[WAITPKG-92] - _ = x[WBNOINVD-93] - _ = x[XOP-94] - _ = x[AESARM-95] - _ = x[ARMCPUID-96] - _ = x[ASIMD-97] - _ = x[ASIMDDP-98] - _ = x[ASIMDHP-99] - _ = x[ASIMDRDM-100] - _ = x[ATOMICS-101] - _ = x[CRC32-102] - _ = x[DCPOP-103] - _ = x[EVTSTRM-104] - _ = x[FCMA-105] - _ = x[FP-106] - _ = x[FPHP-107] - _ = x[GPA-108] - _ = x[JSCVT-109] - _ = x[LRCPC-110] - _ = x[PMULL-111] - _ = x[SHA1-112] - _ = x[SHA2-113] - _ = x[SHA3-114] - _ = x[SHA512-115] - _ = x[SM3-116] - _ = x[SM4-117] - _ = x[SVE-118] - _ = x[lastID-119] + _ = x[AMXFP16-6] + _ = x[AMXINT8-7] + _ = x[AMXTILE-8] + _ = x[AVX-9] + _ = x[AVX2-10] + _ = x[AVX512BF16-11] + _ = x[AVX512BITALG-12] + _ = x[AVX512BW-13] + _ = x[AVX512CD-14] + _ = x[AVX512DQ-15] + _ = x[AVX512ER-16] + _ = x[AVX512F-17] + _ = x[AVX512FP16-18] + _ = x[AVX512IFMA-19] + _ = x[AVX512PF-20] + _ = x[AVX512VBMI-21] + _ = x[AVX512VBMI2-22] + _ = x[AVX512VL-23] + _ = x[AVX512VNNI-24] + _ = x[AVX512VP2INTERSECT-25] + _ = x[AVX512VPOPCNTDQ-26] + _ = x[AVXIFMA-27] + _ = x[AVXNECONVERT-28] + _ = x[AVXSLOW-29] + _ = x[AVXVNNI-30] + _ = x[AVXVNNIINT8-31] + _ = x[BMI1-32] + _ = x[BMI2-33] + _ = x[CETIBT-34] + _ = x[CETSS-35] + _ = x[CLDEMOTE-36] + _ = x[CLMUL-37] + _ = x[CLZERO-38] + _ = x[CMOV-39] + _ = x[CMPCCXADD-40] + _ = x[CMPSB_SCADBS_SHORT-41] + _ = x[CMPXCHG8-42] + _ = x[CPBOOST-43] + _ = x[CPPC-44] + _ = x[CX16-45] + _ = x[EFER_LMSLE_UNS-46] + _ = x[ENQCMD-47] + _ = x[ERMS-48] + _ = x[F16C-49] + _ = x[FLUSH_L1D-50] + _ = x[FMA3-51] + _ = x[FMA4-52] + _ = x[FP128-53] + _ = x[FP256-54] + _ = x[FSRM-55] + _ = x[FXSR-56] + _ = x[FXSROPT-57] + _ = x[GFNI-58] + _ = x[HLE-59] + _ = x[HRESET-60] + _ = x[HTT-61] + _ = x[HWA-62] + _ = x[HYBRID_CPU-63] + _ = x[HYPERVISOR-64] + _ = x[IA32_ARCH_CAP-65] + _ = x[IA32_CORE_CAP-66] + _ = x[IBPB-67] + _ = x[IBRS-68] + _ = x[IBRS_PREFERRED-69] + _ = x[IBRS_PROVIDES_SMP-70] + _ = x[IBS-71] + _ = x[IBSBRNTRGT-72] + _ = x[IBSFETCHSAM-73] + _ = x[IBSFFV-74] + _ = x[IBSOPCNT-75] + _ = x[IBSOPCNTEXT-76] + _ = x[IBSOPSAM-77] + _ = x[IBSRDWROPCNT-78] + _ = x[IBSRIPINVALIDCHK-79] + _ = x[IBS_FETCH_CTLX-80] + _ = x[IBS_OPDATA4-81] + _ = x[IBS_OPFUSE-82] + _ = x[IBS_PREVENTHOST-83] + _ = x[IBS_ZEN4-84] + _ = x[INT_WBINVD-85] + _ = x[INVLPGB-86] + _ = x[LAHF-87] + _ = x[LAM-88] + _ = x[LBRVIRT-89] + _ = x[LZCNT-90] + _ = x[MCAOVERFLOW-91] + _ = x[MCDT_NO-92] + _ = x[MCOMMIT-93] + _ = x[MD_CLEAR-94] + _ = x[MMX-95] + _ = x[MMXEXT-96] + _ = x[MOVBE-97] + _ = x[MOVDIR64B-98] + _ = x[MOVDIRI-99] + _ = x[MOVSB_ZL-100] + _ = x[MOVU-101] + _ = x[MPX-102] + _ = x[MSRIRC-103] + _ = x[MSR_PAGEFLUSH-104] + _ = x[NRIPS-105] + _ = x[NX-106] + _ = x[OSXSAVE-107] + _ = x[PCONFIG-108] + _ = x[POPCNT-109] + _ = x[PPIN-110] + _ = x[PREFETCHI-111] + _ = x[PSFD-112] + _ = x[RDPRU-113] + _ = x[RDRAND-114] + _ = x[RDSEED-115] + _ = x[RDTSCP-116] + _ = x[RTM-117] + _ = x[RTM_ALWAYS_ABORT-118] + _ = x[SERIALIZE-119] + _ = x[SEV-120] + _ = x[SEV_64BIT-121] + _ = x[SEV_ALTERNATIVE-122] + _ = x[SEV_DEBUGSWAP-123] + _ = x[SEV_ES-124] + _ = x[SEV_RESTRICTED-125] + _ = x[SEV_SNP-126] + _ = x[SGX-127] + _ = x[SGXLC-128] + _ = x[SHA-129] + _ = x[SME-130] + _ = x[SME_COHERENT-131] + _ = x[SPEC_CTRL_SSBD-132] + _ = x[SRBDS_CTRL-133] + _ = x[SSE-134] + _ = x[SSE2-135] + _ = x[SSE3-136] + _ = x[SSE4-137] + _ = x[SSE42-138] + _ = x[SSE4A-139] + _ = x[SSSE3-140] + _ = x[STIBP-141] + _ = x[STIBP_ALWAYSON-142] + _ = x[STOSB_SHORT-143] + _ = x[SUCCOR-144] + _ = x[SVM-145] + _ = x[SVMDA-146] + _ = x[SVMFBASID-147] + _ = x[SVML-148] + _ = x[SVMNP-149] + _ = x[SVMPF-150] + _ = x[SVMPFT-151] + _ = x[SYSCALL-152] + _ = x[SYSEE-153] + _ = x[TBM-154] + _ = x[TLB_FLUSH_NESTED-155] + _ = x[TME-156] + _ = x[TOPEXT-157] + _ = x[TSCRATEMSR-158] + _ = x[TSXLDTRK-159] + _ = x[VAES-160] + _ = x[VMCBCLEAN-161] + _ = x[VMPL-162] + _ = x[VMSA_REGPROT-163] + _ = x[VMX-164] + _ = x[VPCLMULQDQ-165] + _ = x[VTE-166] + _ = x[WAITPKG-167] + _ = x[WBNOINVD-168] + _ = x[X87-169] + _ = x[XGETBV1-170] + _ = x[XOP-171] + _ = x[XSAVE-172] + _ = x[XSAVEC-173] + _ = x[XSAVEOPT-174] + _ = x[XSAVES-175] + _ = x[AESARM-176] + _ = x[ARMCPUID-177] + _ = x[ASIMD-178] + _ = x[ASIMDDP-179] + _ = x[ASIMDHP-180] + _ = x[ASIMDRDM-181] + _ = x[ATOMICS-182] + _ = x[CRC32-183] + _ = x[DCPOP-184] + _ = x[EVTSTRM-185] + _ = x[FCMA-186] + _ = x[FP-187] + _ = x[FPHP-188] + _ = x[GPA-189] + _ = x[JSCVT-190] + _ = x[LRCPC-191] + _ = x[PMULL-192] + _ = x[SHA1-193] + _ = x[SHA2-194] + _ = x[SHA3-195] + _ = x[SHA512-196] + _ = x[SM3-197] + _ = x[SM4-198] + _ = x[SVE-199] + _ = x[lastID-200] _ = x[firstID-0] } -const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXSLOWBMI1BMI2CLDEMOTECLMULCLZEROCMOVCPBOOSTCX16ENQCMDERMSF16CFMA3FMA4GFNIHLEHTTHWAHYPERVISORIBPBIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKINT_WBINVDINVLPGBLZCNTMCAOVERFLOWMCOMMITMMXMMXEXTMOVDIR64BMOVDIRIMPXMSRIRCNXPOPCNTRDPRURDRANDRDSEEDRDTSCPRTMRTM_ALWAYS_ABORTSERIALIZESGXSGXLCSHASSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSUCCORTBMTSXLDTRKVAESVMXVPCLMULQDQWAITPKGWBNOINVDXOPAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" +const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4INT_WBINVDINVLPGBLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" -var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 58, 62, 72, 84, 92, 100, 108, 116, 123, 133, 143, 151, 161, 172, 180, 190, 208, 223, 230, 234, 238, 246, 251, 257, 261, 268, 272, 278, 282, 286, 290, 294, 298, 301, 304, 307, 317, 321, 324, 334, 345, 351, 359, 370, 378, 390, 406, 416, 423, 428, 439, 446, 449, 455, 464, 471, 474, 480, 482, 488, 493, 499, 505, 511, 514, 530, 539, 542, 547, 550, 553, 557, 561, 565, 570, 575, 580, 585, 591, 594, 602, 606, 609, 619, 626, 634, 637, 643, 651, 656, 663, 670, 678, 685, 690, 695, 702, 706, 708, 712, 715, 720, 725, 730, 734, 738, 742, 748, 751, 754, 757, 763} +var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 65, 69, 79, 91, 99, 107, 115, 123, 130, 140, 150, 158, 168, 179, 187, 197, 215, 230, 237, 249, 256, 263, 274, 278, 282, 288, 293, 301, 306, 312, 316, 325, 343, 351, 358, 362, 366, 380, 386, 390, 394, 403, 407, 411, 416, 421, 425, 429, 436, 440, 443, 449, 452, 455, 465, 475, 488, 501, 505, 509, 523, 540, 543, 553, 564, 570, 578, 589, 597, 609, 625, 639, 650, 660, 675, 683, 693, 700, 704, 707, 714, 719, 730, 737, 744, 752, 755, 761, 766, 775, 782, 790, 794, 797, 803, 816, 821, 823, 830, 837, 843, 847, 856, 860, 865, 871, 877, 883, 886, 902, 911, 914, 923, 938, 951, 957, 971, 978, 981, 986, 989, 992, 1004, 1018, 1028, 1031, 1035, 1039, 1043, 1048, 1053, 1058, 1063, 1077, 1088, 1094, 1097, 1102, 1111, 1115, 1120, 1125, 1131, 1138, 1143, 1146, 1162, 1165, 1171, 1181, 1189, 1193, 1202, 1206, 1218, 1221, 1231, 1234, 1241, 1249, 1252, 1259, 1262, 1267, 1273, 1281, 1287, 1293, 1301, 1306, 1313, 1320, 1328, 1335, 1340, 1345, 1352, 1356, 1358, 1362, 1365, 1370, 1375, 1380, 1384, 1388, 1392, 1398, 1401, 1404, 1407, 1413} func (i FeatureID) String() string { if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) { diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go b/ext/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go index 8d2cb03..84b1acd 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/os_darwin_arm64.go @@ -2,18 +2,120 @@ package cpuid -import "runtime" +import ( + "runtime" + "strings" + + "golang.org/x/sys/unix" +) func detectOS(c *CPUInfo) bool { + if runtime.GOOS != "ios" { + tryToFillCPUInfoFomSysctl(c) + } // There are no hw.optional sysctl values for the below features on Mac OS 11.0 // to detect their supported state dynamically. Assume the CPU features that // Apple Silicon M1 supports to be available as a minimal set of features // to all Go programs running on darwin/arm64. // TODO: Add more if we know them. c.featureSet.setIf(runtime.GOOS != "ios", AESARM, PMULL, SHA1, SHA2) - c.PhysicalCores = runtime.NumCPU() - // For now assuming 1 thread per core... - c.ThreadsPerCore = 1 - c.LogicalCores = c.PhysicalCores + return true } + +func sysctlGetBool(name string) bool { + value, err := unix.SysctlUint32(name) + if err != nil { + return false + } + return value != 0 +} + +func sysctlGetString(name string) string { + value, err := unix.Sysctl(name) + if err != nil { + return "" + } + return value +} + +func sysctlGetInt(unknown int, names ...string) int { + for _, name := range names { + value, err := unix.SysctlUint32(name) + if err != nil { + continue + } + if value != 0 { + return int(value) + } + } + return unknown +} + +func sysctlGetInt64(unknown int, names ...string) int { + for _, name := range names { + value64, err := unix.SysctlUint64(name) + if err != nil { + continue + } + if int(value64) != unknown { + return int(value64) + } + } + return unknown +} + +func setFeature(c *CPUInfo, name string, feature FeatureID) { + c.featureSet.setIf(sysctlGetBool(name), feature) +} +func tryToFillCPUInfoFomSysctl(c *CPUInfo) { + c.BrandName = sysctlGetString("machdep.cpu.brand_string") + + if len(c.BrandName) != 0 { + c.VendorString = strings.Fields(c.BrandName)[0] + } + + c.PhysicalCores = sysctlGetInt(runtime.NumCPU(), "hw.physicalcpu") + c.ThreadsPerCore = sysctlGetInt(1, "machdep.cpu.thread_count", "kern.num_threads") / + sysctlGetInt(1, "hw.physicalcpu") + c.LogicalCores = sysctlGetInt(runtime.NumCPU(), "machdep.cpu.core_count") + c.Family = sysctlGetInt(0, "machdep.cpu.family", "hw.cpufamily") + c.Model = sysctlGetInt(0, "machdep.cpu.model") + c.CacheLine = sysctlGetInt64(0, "hw.cachelinesize") + c.Cache.L1I = sysctlGetInt64(-1, "hw.l1icachesize") + c.Cache.L1D = sysctlGetInt64(-1, "hw.l1dcachesize") + c.Cache.L2 = sysctlGetInt64(-1, "hw.l2cachesize") + c.Cache.L3 = sysctlGetInt64(-1, "hw.l3cachesize") + + // from https://developer.arm.com/downloads/-/exploration-tools/feature-names-for-a-profile + setFeature(c, "hw.optional.arm.FEAT_AES", AESARM) + setFeature(c, "hw.optional.AdvSIMD", ASIMD) + setFeature(c, "hw.optional.arm.FEAT_DotProd", ASIMDDP) + setFeature(c, "hw.optional.arm.FEAT_RDM", ASIMDRDM) + setFeature(c, "hw.optional.FEAT_CRC32", CRC32) + setFeature(c, "hw.optional.arm.FEAT_DPB", DCPOP) + // setFeature(c, "", EVTSTRM) + setFeature(c, "hw.optional.arm.FEAT_FCMA", FCMA) + setFeature(c, "hw.optional.arm.FEAT_FP", FP) + setFeature(c, "hw.optional.arm.FEAT_FP16", FPHP) + setFeature(c, "hw.optional.arm.FEAT_PAuth", GPA) + setFeature(c, "hw.optional.arm.FEAT_JSCVT", JSCVT) + setFeature(c, "hw.optional.arm.FEAT_LRCPC", LRCPC) + setFeature(c, "hw.optional.arm.FEAT_PMULL", PMULL) + setFeature(c, "hw.optional.arm.FEAT_SHA1", SHA1) + setFeature(c, "hw.optional.arm.FEAT_SHA256", SHA2) + setFeature(c, "hw.optional.arm.FEAT_SHA3", SHA3) + setFeature(c, "hw.optional.arm.FEAT_SHA512", SHA512) + // setFeature(c, "", SM3) + // setFeature(c, "", SM4) + setFeature(c, "hw.optional.arm.FEAT_SVE", SVE) + + // from empirical observation + setFeature(c, "hw.optional.AdvSIMD_HPFPCvt", ASIMDHP) + setFeature(c, "hw.optional.armv8_1_atomics", ATOMICS) + setFeature(c, "hw.optional.floatingpoint", FP) + setFeature(c, "hw.optional.armv8_2_sha3", SHA3) + setFeature(c, "hw.optional.armv8_2_sha512", SHA512) + setFeature(c, "hw.optional.armv8_3_compnum", FCMA) + setFeature(c, "hw.optional.armv8_crc32", CRC32) +} diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go b/ext/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go index 1a951e6..8733ba3 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/os_other_arm64.go @@ -1,8 +1,7 @@ // Copyright (c) 2020 Klaus Post, released under MIT License. See LICENSE file. -// +build arm64 -// +build !linux -// +build !darwin +//go:build arm64 && !linux && !darwin +// +build arm64,!linux,!darwin package cpuid diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go b/ext/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go index 4d0b8b4..f8f201b 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/os_safe_linux_arm64.go @@ -1,6 +1,7 @@ // Copyright (c) 2021 Klaus Post, released under MIT License. See LICENSE file. -//+build nounsafe +//go:build nounsafe +// +build nounsafe package cpuid diff --git a/ext/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go b/ext/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go index 3298002..92af622 100644 --- a/ext/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go +++ b/ext/vendor/github.com/klauspost/cpuid/v2/os_unsafe_linux_arm64.go @@ -1,6 +1,7 @@ // Copyright (c) 2021 Klaus Post, released under MIT License. See LICENSE file. -//+build !nounsafe +//go:build !nounsafe +// +build !nounsafe package cpuid diff --git a/ext/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go b/ext/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go index 9054998..fec8adb 100644 --- a/ext/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go +++ b/ext/vendor/github.com/pierrec/lz4/v4/internal/lz4block/block.go @@ -31,11 +31,10 @@ func recoverBlock(e *error) { } } -// blockHash hashes the lower five bytes of x into a value < htSize. +// blockHash hashes the lower 6 bytes into a value < htSize. func blockHash(x uint64) uint32 { const prime6bytes = 227718039650203 - x &= 1<<40 - 1 - return uint32((x * prime6bytes) >> (64 - hashLog)) + return uint32(((x << (64 - 48)) * prime6bytes) >> (64 - hashLog)) } func CompressBlockBound(n int) int { @@ -123,9 +122,9 @@ func (c *Compressor) CompressBlock(src, dst []byte) (int, error) { goto lastLiterals } - // Fast scan strategy: the hash table only stores the last five-byte sequences. + // Fast scan strategy: the hash table only stores the last 4 bytes sequences. for si < sn { - // Hash the next five bytes (sequence)... + // Hash the next 6 bytes (sequence)... match := binary.LittleEndian.Uint64(src[si:]) h := blockHash(match) h2 := blockHash(match >> 8) diff --git a/ext/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go b/ext/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go index 8d3206a..651d10c 100644 --- a/ext/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go +++ b/ext/vendor/github.com/pierrec/lz4/v4/internal/xxh32/xxh32zero.go @@ -1,5 +1,5 @@ // Package xxh32 implements the very fast XXH hashing algorithm (32 bits version). -// (https://github.com/Cyan4973/XXH/) +// (ported from the reference implementation https://github.com/Cyan4973/xxHash/) package xxh32 import ( diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/.gitignore b/ext/vendor/github.com/snowflakedb/gosnowflake/.gitignore index d0fae24..c8fad7b 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/.gitignore +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/.gitignore @@ -11,3 +11,6 @@ wss-golang-agent.config wss-unified-agent.jar whitesource/ *.swp + +# exclude vendor +vendor diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/arrow_chunk.go b/ext/vendor/github.com/snowflakedb/gosnowflake/arrow_chunk.go index f4f030e..344774a 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/arrow_chunk.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/arrow_chunk.go @@ -5,87 +5,78 @@ package gosnowflake import ( "bytes" "encoding/base64" - "io" "time" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/ipc" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/ipc" + "github.com/apache/arrow/go/v12/arrow/memory" ) type arrowResultChunk struct { - reader ipc.Reader - rowCount int - uncompressedSize int - allocator memory.Allocator - loc *time.Location + reader *ipc.Reader + rowCount int + loc *time.Location + allocator memory.Allocator } func (arc *arrowResultChunk) decodeArrowChunk(rowType []execResponseRowType, highPrec bool) ([]chunkRowType, error) { logger.Debug("Arrow Decoder") var chunkRows []chunkRowType - for { - record, err := arc.reader.Read() - if err == io.EOF { - return chunkRows, nil - } else if err != nil { - return nil, err - } + for arc.reader.Next() { + record := arc.reader.Record() + start := len(chunkRows) numRows := int(record.NumRows()) columns := record.Columns() - tmpRows := make([]chunkRowType, numRows) + chunkRows = append(chunkRows, make([]chunkRowType, numRows)...) + for i := start; i < start+numRows; i++ { + chunkRows[i].ArrowRow = make([]snowflakeValue, len(columns)) + } for colIdx, col := range columns { - destcol := make([]snowflakeValue, numRows) - if err = arrowToValue(&destcol, rowType[colIdx], col, arc.loc, highPrec); err != nil { + values := make([]snowflakeValue, numRows) + if err := arrowToValue(values, rowType[colIdx], col, arc.loc, highPrec); err != nil { return nil, err } - for rowIdx := 0; rowIdx < numRows; rowIdx++ { - if colIdx == 0 { - tmpRows[rowIdx] = chunkRowType{ArrowRow: make([]snowflakeValue, len(columns))} - } - tmpRows[rowIdx].ArrowRow[colIdx] = destcol[rowIdx] + for i := range values { + chunkRows[start+i].ArrowRow[colIdx] = values[i] } } - chunkRows = append(chunkRows, tmpRows...) arc.rowCount += numRows } + + return chunkRows, arc.reader.Err() } func (arc *arrowResultChunk) decodeArrowBatch(scd *snowflakeChunkDownloader) (*[]arrow.Record, error) { var records []arrow.Record + defer arc.reader.Release() - for { - rawRecord, err := arc.reader.Read() - if err == io.EOF { - break - } else if err != nil { - return nil, err - } - record, err := arrowToRecord(rawRecord, scd.RowSet.RowType, arc.loc) - rawRecord.Release() + for arc.reader.Next() { + rawRecord := arc.reader.Record() + + record, err := arrowToRecord(rawRecord, arc.allocator, scd.RowSet.RowType, arc.loc) if err != nil { return nil, err } - record.Retain() records = append(records, record) } - return &records, nil + + return &records, arc.reader.Err() } // Build arrow chunk based on RowSet of base64 -func buildFirstArrowChunk(rowsetBase64 string, loc *time.Location) arrowResultChunk { +func buildFirstArrowChunk(rowsetBase64 string, loc *time.Location, alloc memory.Allocator) arrowResultChunk { rowSetBytes, err := base64.StdEncoding.DecodeString(rowsetBase64) if err != nil { return arrowResultChunk{} } - rr, err := ipc.NewReader(bytes.NewReader(rowSetBytes)) + rr, err := ipc.NewReader(bytes.NewReader(rowSetBytes), ipc.WithAllocator(alloc)) if err != nil { return arrowResultChunk{} } - return arrowResultChunk{*rr, 0, 0, memory.NewGoAllocator(), loc} + return arrowResultChunk{rr, 0, loc, alloc} } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/async.go b/ext/vendor/github.com/snowflakedb/gosnowflake/async.go index 5c477dc..65434e4 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/async.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/async.go @@ -63,25 +63,46 @@ func (sr *snowflakeRestful) getAsync( defer close(errChannel) token, _, _ := sr.TokenAccessor.GetTokens() headers[headerAuthorizationKey] = fmt.Sprintf(headerSnowflakeToken, token) - resp, err := sr.FuncGet(ctx, sr, URL, headers, timeout) - if err != nil { - logger.WithContext(ctx).Errorf("failed to get response. err: %v", err) - sfError.Message = err.Error() - errChannel <- sfError - return err - } - if resp.Body != nil { + + var err error + var respd execResponse + retry := 0 + retryPattern := []int32{1, 1, 2, 3, 4, 8, 10} + + for { + resp, err := sr.FuncGet(ctx, sr, URL, headers, timeout) + if err != nil { + logger.WithContext(ctx).Errorf("failed to get response. err: %v", err) + sfError.Message = err.Error() + errChannel <- sfError + return err + } defer resp.Body.Close() - } - respd := execResponse{} - err = json.NewDecoder(resp.Body).Decode(&respd) - resp.Body.Close() - if err != nil { - logger.WithContext(ctx).Errorf("failed to decode JSON. err: %v", err) - sfError.Message = err.Error() - errChannel <- sfError - return err + respd = execResponse{} // reset the response + err = json.NewDecoder(resp.Body).Decode(&respd) + if err != nil { + logger.WithContext(ctx).Errorf("failed to decode JSON. err: %v", err) + sfError.Message = err.Error() + errChannel <- sfError + return err + } + if respd.Code != queryInProgressAsyncCode { + // If the query takes longer than 45 seconds to complete the results are not returned. + // If the query is still in progress after 45 seconds, retry the request to the /results endpoint. + // For all other scenarios continue processing results response + break + } else { + // Sleep before retrying get result request. Exponential backoff up to 5 seconds. + // Once 5 second backoff is reached it will keep retrying with this sleeptime. + sleepTime := time.Millisecond * time.Duration(500*retryPattern[retry]) + logger.WithContext(ctx).Infof("Query execution still in progress. Sleep for %v ms", sleepTime) + time.Sleep(sleepTime) + } + if retry < len(retryPattern)-1 { + retry++ + } + } sc := &snowflakeConn{rest: sr, cfg: cfg} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/auth.go b/ext/vendor/github.com/snowflakedb/gosnowflake/auth.go index e58a2b3..4126355 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/auth.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/auth.go @@ -212,9 +212,10 @@ type authResponse struct { func postAuth( ctx context.Context, sr *snowflakeRestful, + client *http.Client, params *url.Values, headers map[string]string, - body []byte, + bodyCreator bodyCreatorType, timeout time.Duration) ( data *authResponse, err error) { params.Add(requestIDKey, getOrGenerateRequestIDFromContext(ctx).String()) @@ -222,7 +223,7 @@ func postAuth( fullURL := sr.getFullURL(loginRequestPath, params) logger.Infof("full URL: %v", fullURL) - resp, err := sr.FuncPost(ctx, sr, fullURL, headers, body, timeout, true) + resp, err := sr.FuncAuthPost(ctx, client, fullURL, headers, bodyCreator, timeout, true) if err != nil { return nil, err } @@ -286,6 +287,23 @@ func authenticate( samlResponse []byte, proofKey []byte, ) (resp *authResponseMain, err error) { + if sc.cfg.Authenticator == AuthTypeTokenAccessor { + logger.Info("Bypass authentication using existing token from token accessor") + sessionInfo := authResponseSessionInfo{ + DatabaseName: sc.cfg.Database, + SchemaName: sc.cfg.Schema, + WarehouseName: sc.cfg.Warehouse, + RoleName: sc.cfg.Role, + } + token, masterToken, sessionID := sc.cfg.TokenAccessor.GetTokens() + return &authResponseMain{ + Token: token, + MasterToken: masterToken, + SessionID: sessionID, + SessionInfo: sessionInfo, + }, nil + } + headers := getHeaders() clientEnvironment := authRequestClientEnvironment{ Application: sc.cfg.Application, @@ -309,6 +327,67 @@ func authenticate( if sc.cfg.ClientStoreTemporaryCredential == ConfigBoolTrue { sessionParameters[clientStoreTemporaryCredential] = true } + bodyCreator := func() ([]byte, error) { + return createRequestBody(sc, sessionParameters, clientEnvironment, proofKey, samlResponse) + } + + params := &url.Values{} + if sc.cfg.Database != "" { + params.Add("databaseName", sc.cfg.Database) + } + if sc.cfg.Schema != "" { + params.Add("schemaName", sc.cfg.Schema) + } + if sc.cfg.Warehouse != "" { + params.Add("warehouse", sc.cfg.Warehouse) + } + if sc.cfg.Role != "" { + params.Add("roleName", sc.cfg.Role) + } + + logger.WithContext(sc.ctx).Infof("PARAMS for Auth: %v, %v, %v, %v, %v, %v", + params, sc.rest.Protocol, sc.rest.Host, sc.rest.Port, sc.rest.LoginTimeout, sc.cfg.Authenticator.String()) + + respd, err := sc.rest.FuncPostAuth(ctx, sc.rest, sc.rest.getClientFor(sc.cfg.Authenticator), params, headers, bodyCreator, sc.rest.LoginTimeout) + if err != nil { + return nil, err + } + if !respd.Success { + logger.Errorln("Authentication FAILED") + sc.rest.TokenAccessor.SetTokens("", "", -1) + if sessionParameters[clientRequestMfaToken] == true { + deleteCredential(sc, mfaToken) + } + if sessionParameters[clientStoreTemporaryCredential] == true { + deleteCredential(sc, idToken) + } + code, err := strconv.Atoi(respd.Code) + if err != nil { + code = -1 + return nil, err + } + return nil, (&SnowflakeError{ + Number: code, + SQLState: SQLStateConnectionRejected, + Message: respd.Message, + }).exceptionTelemetry(sc) + } + logger.Info("Authentication SUCCESS") + sc.rest.TokenAccessor.SetTokens(respd.Data.Token, respd.Data.MasterToken, respd.Data.SessionID) + if sessionParameters[clientRequestMfaToken] == true { + token := respd.Data.MfaToken + setCredential(sc, mfaToken, token) + } + if sessionParameters[clientStoreTemporaryCredential] == true { + token := respd.Data.IDToken + setCredential(sc, idToken, token) + } + return &respd.Data, nil +} + +func createRequestBody(sc *snowflakeConn, sessionParameters map[string]interface{}, + clientEnvironment authRequestClientEnvironment, proofKey []byte, samlResponse []byte, +) ([]byte, error) { requestMain := authRequestData{ ClientAppID: clientType, ClientAppVersion: SnowflakeGoDriverVersion, @@ -361,83 +440,16 @@ func authenticate( if sc.cfg.MfaToken != "" { requestMain.Token = sc.cfg.MfaToken } - case AuthTypeTokenAccessor: - logger.Info("Bypass authentication using existing token from token accessor") - sessionInfo := authResponseSessionInfo{ - DatabaseName: sc.cfg.Database, - SchemaName: sc.cfg.Schema, - WarehouseName: sc.cfg.Warehouse, - RoleName: sc.cfg.Role, - } - token, masterToken, sessionID := sc.cfg.TokenAccessor.GetTokens() - return &authResponseMain{ - Token: token, - MasterToken: masterToken, - SessionID: sessionID, - SessionInfo: sessionInfo, - }, nil } authRequest := authRequest{ Data: requestMain, } - params := &url.Values{} - if sc.cfg.Database != "" { - params.Add("databaseName", sc.cfg.Database) - } - if sc.cfg.Schema != "" { - params.Add("schemaName", sc.cfg.Schema) - } - if sc.cfg.Warehouse != "" { - params.Add("warehouse", sc.cfg.Warehouse) - } - if sc.cfg.Role != "" { - params.Add("roleName", sc.cfg.Role) - } - jsonBody, err := json.Marshal(authRequest) - if err != nil { - return - } - - logger.WithContext(sc.ctx).Infof("PARAMS for Auth: %v, %v, %v, %v, %v, %v", - params, sc.rest.Protocol, sc.rest.Host, sc.rest.Port, sc.rest.LoginTimeout, sc.cfg.Authenticator.String()) - - respd, err := sc.rest.FuncPostAuth(ctx, sc.rest, params, headers, jsonBody, sc.rest.LoginTimeout) if err != nil { return nil, err } - if !respd.Success { - logger.Errorln("Authentication FAILED") - sc.rest.TokenAccessor.SetTokens("", "", -1) - if sessionParameters[clientRequestMfaToken] == true { - deleteCredential(sc, mfaToken) - } - if sessionParameters[clientStoreTemporaryCredential] == true { - deleteCredential(sc, idToken) - } - code, err := strconv.Atoi(respd.Code) - if err != nil { - code = -1 - return nil, err - } - return nil, (&SnowflakeError{ - Number: code, - SQLState: SQLStateConnectionRejected, - Message: respd.Message, - }).exceptionTelemetry(sc) - } - logger.Info("Authentication SUCCESS") - sc.rest.TokenAccessor.SetTokens(respd.Data.Token, respd.Data.MasterToken, respd.Data.SessionID) - if sessionParameters[clientRequestMfaToken] == true { - token := respd.Data.MfaToken - setCredential(sc, mfaToken, token) - } - if sessionParameters[clientStoreTemporaryCredential] == true { - token := respd.Data.IDToken - setCredential(sc, idToken, token) - } - return &respd.Data, nil + return jsonBody, nil } // Generate a JWT token in string given the configuration @@ -506,7 +518,8 @@ func authenticateWithConfig(sc *snowflakeConn) error { sc.cfg.Application, sc.cfg.Account, sc.cfg.User, - sc.cfg.Password) + sc.cfg.Password, + sc.cfg.ExternalBrowserTimeout) if err != nil { sc.cleanup() return err diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/authexternalbrowser.go b/ext/vendor/github.com/snowflakedb/gosnowflake/authexternalbrowser.go index 3c5e7fb..a8d966c 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/authexternalbrowser.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/authexternalbrowser.go @@ -6,6 +6,7 @@ import ( "bytes" "context" "encoding/json" + "errors" "fmt" "io" "log" @@ -14,6 +15,7 @@ import ( "net/url" "strconv" "strings" + "time" "github.com/pkg/browser" ) @@ -120,6 +122,20 @@ func getIdpURLProofKey( if err != nil { return "", "", err } + if !respd.Success { + logger.Errorln("Authentication FAILED") + sr.TokenAccessor.SetTokens("", "", -1) + code, err := strconv.Atoi(respd.Code) + if err != nil { + code = -1 + return "", "", err + } + return "", "", &SnowflakeError{ + Number: code, + SQLState: SQLStateConnectionRejected, + Message: respd.Message, + } + } return respd.Data.SSOURL, respd.Data.ProofKey, nil } @@ -151,6 +167,34 @@ func getTokenFromResponse(response string) (string, error) { return token, nil } +type authenticateByExternalBrowserResult struct { + escapedSamlResponse []byte + proofKey []byte + err error +} + +func authenticateByExternalBrowser( + ctx context.Context, + sr *snowflakeRestful, + authenticator string, + application string, + account string, + user string, + password string, + externalBrowserTimeout time.Duration, +) ([]byte, []byte, error) { + resultChan := make(chan authenticateByExternalBrowserResult, 1) + go func() { + resultChan <- doAuthenticateByExternalBrowser(ctx, sr, authenticator, application, account, user, password) + }() + select { + case <-time.After(externalBrowserTimeout): + return nil, nil, errors.New("authentication timed out") + case result := <-resultChan: + return result.escapedSamlResponse, result.proofKey, result.err + } +} + // Authentication by an external browser takes place via the following: // - the golang snowflake driver communicates to Snowflake that the user wishes to // authenticate via external browser @@ -160,7 +204,7 @@ func getTokenFromResponse(response string) (string, error) { // - user authenticates at the IDP, and is redirected to Snowflake // - Snowflake directs the user back to the driver // - authenticate is complete! -func authenticateByExternalBrowser( +func doAuthenticateByExternalBrowser( ctx context.Context, sr *snowflakeRestful, authenticator string, @@ -168,10 +212,10 @@ func authenticateByExternalBrowser( account string, user string, password string, -) ([]byte, []byte, error) { +) authenticateByExternalBrowserResult { l, err := bindToPort() if err != nil { - return nil, nil, err + return authenticateByExternalBrowserResult{nil, nil, err} } defer l.Close() @@ -179,11 +223,11 @@ func authenticateByExternalBrowser( idpURL, proofKey, err := getIdpURLProofKey( ctx, sr, authenticator, application, account, callbackPort) if err != nil { - return nil, nil, err + return authenticateByExternalBrowserResult{nil, nil, err} } if err = openBrowser(idpURL); err != nil { - return nil, nil, err + return authenticateByExternalBrowserResult{nil, nil, err} } encodedSamlResponseChan := make(chan string) @@ -239,13 +283,13 @@ func authenticateByExternalBrowser( errFromGoroutine = <-errChan if errFromGoroutine != nil { - return nil, nil, errFromGoroutine + return authenticateByExternalBrowserResult{nil, nil, errFromGoroutine} } escapedSamlResponse, err := url.QueryUnescape(encodedSamlResponse) if err != nil { logger.WithContext(ctx).Errorf("unable to unescape saml response. err: %v", err) - return nil, nil, err + return authenticateByExternalBrowserResult{nil, nil, err} } - return []byte(escapedSamlResponse), []byte(proofKey), nil + return authenticateByExternalBrowserResult{[]byte(escapedSamlResponse), []byte(proofKey), nil} } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/azure_storage_client.go b/ext/vendor/github.com/snowflakedb/gosnowflake/azure_storage_client.go index 04c874e..9a1fc3e 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/azure_storage_client.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/azure_storage_client.go @@ -30,6 +30,13 @@ type azureLocation struct { path string } +type azureAPI interface { + UploadStream(ctx context.Context, body io.Reader, o *azblob.UploadStreamOptions) (azblob.UploadStreamResponse, error) + UploadFile(ctx context.Context, file *os.File, o *azblob.UploadFileOptions) (azblob.UploadFileResponse, error) + DownloadFile(ctx context.Context, file *os.File, o *blob.DownloadFileOptions) (int64, error) + GetProperties(ctx context.Context, o *blob.GetPropertiesOptions) (blob.GetPropertiesResponse, error) +} + func (util *snowflakeAzureClient) createClient(info *execResponseStageInfo, _ bool) (cloudClient, error) { sasToken := info.Creds.AzureSasToken u, err := url.Parse(fmt.Sprintf("https://%s.%s/%s%s", info.StorageAccount, info.EndPoint, info.Path, sasToken)) @@ -68,7 +75,12 @@ func (util *snowflakeAzureClient) getFileHeader(meta *fileMetadata, filename str Message: "failed to create container client", } } - blobClient := containerClient.NewBlockBlobClient(path) + var blobClient azureAPI + blobClient = containerClient.NewBlockBlobClient(path) + // for testing only + if meta.mockAzureClient != nil { + blobClient = meta.mockAzureClient + } resp, err := blobClient.GetProperties(context.Background(), &blob.GetPropertiesOptions{ AccessConditions: &blob.AccessConditions{}, CPKInfo: &blob.CPKInfo{}, @@ -91,8 +103,12 @@ func (util *snowflakeAzureClient) getFileHeader(meta *fileMetadata, filename str meta.resStatus = uploaded metadata := resp.Metadata var encData encryptionData - if err = json.Unmarshal([]byte(*metadata["Encryptiondata"]), &encData); err != nil { - return nil, err + + _, ok = metadata["Encryptiondata"] + if ok { + if err = json.Unmarshal([]byte(*metadata["Encryptiondata"]), &encData); err != nil { + return nil, err + } } matdesc, ok := metadata["Matdesc"] @@ -171,7 +187,12 @@ func (util *snowflakeAzureClient) uploadFile( Message: "failed to create container client", } } - blobClient := containerClient.NewBlockBlobClient(path) + var blobClient azureAPI + blobClient = containerClient.NewBlockBlobClient(path) + // for testing only + if meta.mockAzureClient != nil { + blobClient = meta.mockAzureClient + } if meta.srcStream != nil { uploadSrc := meta.srcStream if meta.realSrcStream != nil { @@ -207,7 +228,7 @@ func (util *snowflakeAzureClient) uploadFile( if err != nil { var se *azcore.ResponseError if errors.As(err, &se) { - if se.StatusCode == 403 && util.detectAzureTokenExpireError(se.RawResponse.Request.Response) { + if se.StatusCode == 403 && util.detectAzureTokenExpireError(se.RawResponse) { meta.resStatus = renewToken } else { meta.resStatus = needRetry @@ -246,7 +267,12 @@ func (util *snowflakeAzureClient) nativeDownloadFile( Message: "failed to create container client", } } - blobClient := containerClient.NewBlockBlobClient(path) + var blobClient azureAPI + blobClient = containerClient.NewBlockBlobClient(path) + // for testing only + if meta.mockAzureClient != nil { + blobClient = meta.mockAzureClient + } f, err := os.OpenFile(fullDstFileName, os.O_CREATE|os.O_WRONLY, os.ModePerm) if err != nil { return err diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/bind_uploader.go b/ext/vendor/github.com/snowflakedb/gosnowflake/bind_uploader.go index a840720..414bbb8 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/bind_uploader.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/bind_uploader.go @@ -5,6 +5,7 @@ package gosnowflake import ( "bytes" "context" + "database/sql" "database/sql/driver" "fmt" "reflect" @@ -215,6 +216,10 @@ func getBindValues(bindings []driver.NamedValue) (map[string]execBindParameter, var err error bindValues := make(map[string]execBindParameter, len(bindings)) for _, binding := range bindings { + if tnt, ok := binding.Value.(TypedNullTime); ok { + tsmode = convertTzTypeToSnowflakeType(tnt.TzType) + binding.Value = tnt.Time + } t := goTypeToSnowflake(binding.Value, tsmode) if t == changeType { tsmode, err = dataTypeMode(binding.Value) @@ -235,7 +240,7 @@ func getBindValues(bindings []driver.NamedValue) (map[string]execBindParameter, if t == nullType || t == unSupportedType { t = textType // if null or not supported, pass to GS as text } - bindValues[strconv.Itoa(idx)] = execBindParameter{ + bindValues[bindingName(binding, idx)] = execBindParameter{ Type: t.String(), Value: val, } @@ -245,6 +250,13 @@ func getBindValues(bindings []driver.NamedValue) (map[string]execBindParameter, return bindValues, nil } +func bindingName(nv driver.NamedValue, idx int) string { + if nv.Name != "" { + return nv.Name + } + return strconv.Itoa(idx) +} + func arrayBindValueCount(bindValues []driver.NamedValue) int { if !isArrayBind(bindValues) { return 0 @@ -298,3 +310,12 @@ func supportedArrayBind(nv *driver.NamedValue) bool { return false } } + +func supportedNullBind(nv *driver.NamedValue) bool { + switch reflect.TypeOf(nv.Value) { + case reflect.TypeOf(sql.NullString{}), reflect.TypeOf(sql.NullInt64{}), + reflect.TypeOf(sql.NullBool{}), reflect.TypeOf(sql.NullFloat64{}), reflect.TypeOf(TypedNullTime{}): + return true + } + return false +} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/chunk_downloader.go b/ext/vendor/github.com/snowflakedb/gosnowflake/chunk_downloader.go index 68af6e9..7da5c62 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/chunk_downloader.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/chunk_downloader.go @@ -17,9 +17,9 @@ import ( "sync" "time" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/ipc" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/ipc" + "github.com/apache/arrow/go/v12/arrow/memory" ) type chunkDownloader interface { @@ -40,6 +40,7 @@ type chunkDownloader interface { type snowflakeChunkDownloader struct { sc *snowflakeConn ctx context.Context + pool memory.Allocator Total int64 TotalRowIndex int64 CellCount int @@ -64,7 +65,7 @@ type snowflakeChunkDownloader struct { RowSet rowSetType FuncDownload func(context.Context, *snowflakeChunkDownloader, int) FuncDownloadHelper func(context.Context, *snowflakeChunkDownloader, int) error - FuncGet func(context.Context, *snowflakeChunkDownloader, string, map[string]string, time.Duration) (*http.Response, error) + FuncGet func(context.Context, *snowflakeConn, string, map[string]string, time.Duration) (*http.Response, error) } func (scd *snowflakeChunkDownloader) totalUncompressedSize() (acc int64) { @@ -105,10 +106,10 @@ func (scd *snowflakeChunkDownloader) start() error { // if the rowsetbase64 retrieved from the server is empty, move on to downloading chunks var err error var loc *time.Location - if scd.sc != nil { + if scd.sc != nil && scd.sc.cfg != nil { loc = getCurrentLocation(scd.sc.cfg.Params) } - firstArrowChunk := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc) + firstArrowChunk := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc, scd.pool) higherPrecision := higherPrecisionEnabled(scd.ctx) scd.CurrentChunk, err = firstArrowChunk.decodeArrowChunk(scd.RowSet.RowType, higherPrecision) scd.CurrentChunkSize = firstArrowChunk.rowCount @@ -128,7 +129,7 @@ func (scd *snowflakeChunkDownloader) start() error { scd.ChunksChan = make(chan int, chunkMetaLen) scd.ChunksError = make(chan *chunkError, MaxChunkDownloadWorkers) for i := 0; i < chunkMetaLen; i++ { - var chunk = scd.ChunkMetas[i] + chunk := scd.ChunkMetas[i] logger.Debugf("add chunk to channel ChunksChan: %v, URL: %v, RowCount: %v, UncompressedSize: %v, ChunkResultFormat: %v", i+1, chunk.URL, chunk.RowCount, chunk.UncompressedSize, scd.QueryResultFormat) scd.ChunksChan <- i @@ -154,7 +155,9 @@ func (scd *snowflakeChunkDownloader) schedule() { func (scd *snowflakeChunkDownloader) checkErrorRetry() (err error) { select { case errc := <-scd.ChunksError: - if scd.ChunksErrorCounter < maxChunkDownloaderErrorCounter && errc.Error != context.Canceled { + if scd.ChunksErrorCounter < maxChunkDownloaderErrorCounter && + errc.Error != context.Canceled && + errc.Error != context.DeadlineExceeded { // add the index to the chunks channel so that the download will be retried. go scd.FuncDownload(scd.ctx, scd, errc.Index) scd.ChunksErrorCounter++ @@ -251,26 +254,27 @@ func (scd *snowflakeChunkDownloader) getArrowBatches() []*ArrowBatch { func getChunk( ctx context.Context, - scd *snowflakeChunkDownloader, + sc *snowflakeConn, fullURL string, headers map[string]string, timeout time.Duration) ( - *http.Response, error) { + *http.Response, error, +) { u, err := url.Parse(fullURL) if err != nil { return nil, err } - return newRetryHTTP(ctx, scd.sc.rest.Client, http.NewRequest, u, headers, timeout).execute() + return newRetryHTTP(ctx, sc.rest.Client, http.NewRequest, u, headers, timeout).execute() } func (scd *snowflakeChunkDownloader) startArrowBatches() error { var err error chunkMetaLen := len(scd.ChunkMetas) var loc *time.Location - if scd.sc != nil { + if scd.sc != nil && scd.sc.cfg != nil { loc = getCurrentLocation(scd.sc.cfg.Params) } - firstArrowChunk := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc) + firstArrowChunk := buildFirstArrowChunk(scd.RowSet.RowSetBase64, loc, scd.pool) scd.FirstBatch = &ArrowBatch{ idx: 0, scd: scd, @@ -284,7 +288,7 @@ func (scd *snowflakeChunkDownloader) startArrowBatches() error { } } scd.ArrowBatches = make([]*ArrowBatch, chunkMetaLen) - for i := 0; i < chunkMetaLen; i++ { + for i := range scd.ArrowBatches { scd.ArrowBatches[i] = &ArrowBatch{ idx: i, scd: scd, @@ -354,7 +358,7 @@ func downloadChunkHelper(ctx context.Context, scd *snowflakeChunkDownloader, idx headers[headerSseCKey] = scd.Qrmk } - resp, err := scd.FuncGet(ctx, scd, scd.ChunkMetas[idx].URL, headers, scd.sc.rest.RequestTimeout) + resp, err := scd.FuncGet(ctx, scd.sc, scd.ChunkMetas[idx].URL, headers, scd.sc.rest.RequestTimeout) if err != nil { return err } @@ -421,20 +425,19 @@ func decodeChunk(scd *snowflakeChunkDownloader, idx int, bufStream *bufio.Reader respd = make([]chunkRowType, len(decRespd)) populateJSONRowSet(respd, decRespd) } else { - ipcReader, err := ipc.NewReader(source) + ipcReader, err := ipc.NewReader(source, ipc.WithAllocator(scd.pool)) if err != nil { return err } var loc *time.Location - if scd.sc != nil { + if scd.sc != nil && scd.sc.cfg != nil { loc = getCurrentLocation(scd.sc.cfg.Params) } arc := arrowResultChunk{ - *ipcReader, + ipcReader, 0, - int(scd.totalUncompressedSize()), - memory.NewGoAllocator(), loc, + scd.pool, } if usesArrowBatches(scd.ctx) { if scd.ArrowBatches[idx].rec, err = arc.decodeArrowBatch(scd); err != nil { @@ -496,7 +499,7 @@ func (scd *streamChunkDownloader) nextResultSet() error { func (scd *streamChunkDownloader) start() error { go func() { - var readErr = io.EOF + readErr := io.EOF logger.WithContext(scd.ctx).Infof( "start downloading. downloader id: %v, %v/%v rows, %v chunks", @@ -607,7 +610,8 @@ func newStreamChunkDownloader( total int64, rowType []execResponseRowType, firstRows [][]*string, - chunks []execResponseChunk) *streamChunkDownloader { + chunks []execResponseChunk, +) *streamChunkDownloader { return &streamChunkDownloader{ ctx: ctx, id: rand.Int63(), @@ -724,6 +728,14 @@ func (rb *ArrowBatch) GetRowCount() int { return rb.rowCount } +func getAllocator(ctx context.Context) memory.Allocator { + pool, ok := ctx.Value(arrowAlloc).(memory.Allocator) + if !ok { + return memory.DefaultAllocator + } + return pool +} + func usesArrowBatches(ctx context.Context) bool { val := ctx.Value(arrowBatches) if val == nil { diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/connection.go b/ext/vendor/github.com/snowflakedb/gosnowflake/connection.go index 0a5867b..aa26e85 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/connection.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/connection.go @@ -3,10 +3,15 @@ package gosnowflake import ( + "bufio" + "bytes" + "compress/gzip" "context" "database/sql" "database/sql/driver" + "encoding/base64" "encoding/json" + "io" "net/http" "net/url" "os" @@ -15,6 +20,9 @@ import ( "strings" "sync" "sync/atomic" + "time" + + "github.com/apache/arrow/go/v12/arrow/ipc" ) const ( @@ -65,6 +73,7 @@ type snowflakeConn struct { var ( queryIDPattern = `[\w\-_]+` queryIDRegexp = regexp.MustCompile(queryIDPattern) + errMutex = &sync.Mutex{} ) func (sc *snowflakeConn) exec( @@ -130,7 +139,10 @@ func (sc *snowflakeConn) exec( } logger.WithContext(ctx).Infof("Success: %v, Code: %v", data.Success, code) if !data.Success { - return nil, (populateErrorFields(code, data)).exceptionTelemetry(sc) + errMutex.Lock() + defer errMutex.Unlock() + err = (populateErrorFields(code, data)).exceptionTelemetry(sc) + return nil, err } // handle PUT/GET commands @@ -183,7 +195,7 @@ func (sc *snowflakeConn) BeginTx( false /* isInternal */, isDesc, nil); err != nil { return nil, err } - return &snowflakeTx{sc}, nil + return &snowflakeTx{sc, ctx}, nil } func (sc *snowflakeConn) cleanup() { @@ -201,7 +213,7 @@ func (sc *snowflakeConn) Close() (err error) { sc.stopHeartBeat() defer sc.cleanup() - if !sc.cfg.KeepSessionAlive { + if sc.cfg != nil && !sc.cfg.KeepSessionAlive { if err = sc.rest.FuncCloseSession(sc.ctx, sc.rest, sc.rest.RequestTimeout); err != nil { logger.Error(err) } @@ -241,9 +253,9 @@ func (sc *snowflakeConn) ExecContext( if err != nil { logger.WithContext(ctx).Infof("error: %v", err) if data != nil { - code, err := strconv.Atoi(data.Code) - if err != nil { - return nil, err + code, e := strconv.Atoi(data.Code) + if e != nil { + return nil, e } return nil, (&SnowflakeError{ Number: code, @@ -320,9 +332,9 @@ func (sc *snowflakeConn) queryContextInternal( if err != nil { logger.WithContext(ctx).Errorf("error: %v", err) if data != nil { - code, err := strconv.Atoi(data.Code) - if err != nil { - return nil, err + code, e := strconv.Atoi(data.Code) + if e != nil { + return nil, e } return nil, (&SnowflakeError{ Number: code, @@ -390,10 +402,10 @@ func (sc *snowflakeConn) Ping(ctx context.Context) error { // CheckNamedValue determines which types are handled by this driver aside from // the instances captured by driver.Value func (sc *snowflakeConn) CheckNamedValue(nv *driver.NamedValue) error { - if supported := supportedArrayBind(nv); !supported { - return driver.ErrSkip + if supportedNullBind(nv) || supportedArrayBind(nv) { + return nil } - return nil + return driver.ErrSkip } func (sc *snowflakeConn) GetQueryStatus( @@ -415,6 +427,260 @@ func (sc *snowflakeConn) GetQueryStatus( }, nil } +// QueryArrowStream returns batches which can be queried for their raw arrow +// ipc stream of bytes. This way consumers don't need to be using the exact +// same version of Arrow as the connection is using internally in order +// to consume Arrow data. +func (sc *snowflakeConn) QueryArrowStream(ctx context.Context, query string, bindings ...driver.NamedValue) (ArrowStreamLoader, error) { + ctx = WithArrowBatches(context.WithValue(ctx, asyncMode, false)) + ctx = setResultType(ctx, queryResultType) + data, err := sc.exec(ctx, query, false, false /* isinternal */, false, bindings) + if err != nil { + logger.WithContext(ctx).Errorf("error: %v", err) + if data != nil { + code, e := strconv.Atoi(data.Code) + if e != nil { + return nil, e + } + return nil, (&SnowflakeError{ + Number: code, + SQLState: data.Data.SQLState, + Message: err.Error(), + QueryID: data.Data.QueryID, + }).exceptionTelemetry(sc) + } + return nil, err + } + + return &snowflakeArrowStreamChunkDownloader{ + sc: sc, + ChunkMetas: data.Data.Chunks, + Total: data.Data.Total, + Qrmk: data.Data.Qrmk, + ChunkHeader: data.Data.ChunkHeaders, + FuncGet: getChunk, + RowSet: rowSetType{ + RowType: data.Data.RowType, + JSON: data.Data.RowSet, + RowSetBase64: data.Data.RowSetBase64, + }, + }, nil +} + +// ArrowStreamBatch is a type describing a potentially yet-to-be-downloaded +// Arrow IPC stream. Call `GetStream` to download and retrieve an io.Reader +// that can be used with ipc.NewReader to get record batch results. +type ArrowStreamBatch struct { + idx int + numrows int64 + scd *snowflakeArrowStreamChunkDownloader + Loc *time.Location + rr io.ReadCloser +} + +// NumRows returns the total number of rows that the metadata stated should +// be in this stream of record batches. +func (asb *ArrowStreamBatch) NumRows() int64 { return asb.numrows } + +// gzip.Reader.Close does NOT close the underlying reader, so we +// need to wrap with wrapReader so that closing will close the +// response body (or any other reader that we want to gzip uncompress) +type wrapReader struct { + io.Reader + wrapped io.ReadCloser +} + +func (w *wrapReader) Close() error { + if cl, ok := w.Reader.(io.ReadCloser); ok { + if err := cl.Close(); err != nil { + return err + } + } + return w.wrapped.Close() +} + +func (asb *ArrowStreamBatch) downloadChunkStreamHelper(ctx context.Context) error { + headers := make(map[string]string) + if len(asb.scd.ChunkHeader) > 0 { + logger.Debug("chunk header is provided") + for k, v := range asb.scd.ChunkHeader { + logger.Debugf("adding header: %v, value: %v", k, v) + + headers[k] = v + } + } else { + headers[headerSseCAlgorithm] = headerSseCAes + headers[headerSseCKey] = asb.scd.Qrmk + } + + resp, err := asb.scd.FuncGet(ctx, asb.scd.sc, asb.scd.ChunkMetas[asb.idx].URL, headers, asb.scd.sc.rest.RequestTimeout) + if err != nil { + return err + } + logger.Debugf("response returned chunk: %v for URL: %v", asb.idx+1, asb.scd.ChunkMetas[asb.idx].URL) + if resp.StatusCode != http.StatusOK { + defer resp.Body.Close() + b, err := io.ReadAll(resp.Body) + if err != nil { + return err + } + + logger.Infof("HTTP: %v, URL: %v, Body: %v", resp.StatusCode, asb.scd.ChunkMetas[asb.idx].URL, b) + logger.Infof("Header: %v", resp.Header) + return &SnowflakeError{ + Number: ErrFailedToGetChunk, + SQLState: SQLStateConnectionFailure, + Message: errMsgFailedToGetChunk, + MessageArgs: []interface{}{asb.idx}, + } + } + + defer func() { + if asb.rr == nil { + resp.Body.Close() + } + }() + + bufStream := bufio.NewReader(resp.Body) + gzipMagic, err := bufStream.Peek(2) + if err != nil { + return err + } + + if gzipMagic[0] == 0x1f && gzipMagic[1] == 0x8b { + // detect and uncompress gzip + bufStream0, err := gzip.NewReader(bufStream) + if err != nil { + return err + } + // gzip.Reader.Close() does NOT close the underlying + // reader, so we need to wrap it and ensure close will + // close the response body. Otherwise we'll leak it. + asb.rr = &wrapReader{Reader: bufStream0, wrapped: resp.Body} + } else { + asb.rr = &wrapReader{Reader: bufStream, wrapped: resp.Body} + } + return nil +} + +// GetStream returns a stream of bytes consisting of an Arrow IPC Record +// batch stream. Close should be called on the returned stream when done +// to ensure no leaked memory. +func (asb *ArrowStreamBatch) GetStream(ctx context.Context) (io.ReadCloser, error) { + if asb.rr == nil { + if err := asb.downloadChunkStreamHelper(ctx); err != nil { + return nil, err + } + } + + return asb.rr, nil +} + +// ArrowStreamLoader is a convenience interface for downloading +// Snowflake results via multiple Arrow Record Batch streams. +// +// Some queries from Snowflake do not return Arrow data regardless +// of the settings, such as "SHOW WAREHOUSES". In these cases, +// you'll find TotalRows() > 0 but GetBatches returns no batches +// and no errors. In this case, the data is accessible via JSONData +// with the actual types matching up to the metadata in RowTypes. +type ArrowStreamLoader interface { + GetBatches() ([]ArrowStreamBatch, error) + TotalRows() int64 + RowTypes() []execResponseRowType + Location() *time.Location + JSONData() [][]*string +} + +type snowflakeArrowStreamChunkDownloader struct { + sc *snowflakeConn + ChunkMetas []execResponseChunk + Total int64 + Qrmk string + ChunkHeader map[string]string + FuncGet func(context.Context, *snowflakeConn, string, map[string]string, time.Duration) (*http.Response, error) + RowSet rowSetType +} + +func (scd *snowflakeArrowStreamChunkDownloader) Location() *time.Location { + if scd.sc != nil { + return getCurrentLocation(scd.sc.cfg.Params) + } + return nil +} +func (scd *snowflakeArrowStreamChunkDownloader) TotalRows() int64 { return scd.Total } +func (scd *snowflakeArrowStreamChunkDownloader) RowTypes() []execResponseRowType { + return scd.RowSet.RowType +} +func (scd *snowflakeArrowStreamChunkDownloader) JSONData() [][]*string { + return scd.RowSet.JSON +} + +// the server might have had an empty first batch, check if we can decode +// that first batch, if not we skip it. +func (scd *snowflakeArrowStreamChunkDownloader) maybeFirstBatch() []byte { + if scd.RowSet.RowSetBase64 == "" { + return nil + } + + // first batch + rowSetBytes, err := base64.StdEncoding.DecodeString(scd.RowSet.RowSetBase64) + if err != nil { + // match logic in buildFirstArrowChunk + // assume there's no first chunk if we can't decode the base64 string + return nil + } + + // verify it's a valid ipc stream, otherwise skip it + rr, err := ipc.NewReader(bytes.NewReader(rowSetBytes)) + if err != nil { + return nil + } + rr.Release() + + return rowSetBytes +} + +func (scd *snowflakeArrowStreamChunkDownloader) GetBatches() (out []ArrowStreamBatch, err error) { + chunkMetaLen := len(scd.ChunkMetas) + loc := scd.Location() + + out = make([]ArrowStreamBatch, chunkMetaLen, chunkMetaLen+1) + toFill := out + rowSetBytes := scd.maybeFirstBatch() + // if there was no first batch in the response from the server, + // skip it and move on. toFill == out + // otherwise expand out by one to account for the first batch + // and fill it in. have toFill refer to the slice of out excluding + // the first batch. + if len(rowSetBytes) > 0 { + out = out[:chunkMetaLen+1] + out[0] = ArrowStreamBatch{ + scd: scd, + Loc: loc, + rr: io.NopCloser(bytes.NewReader(rowSetBytes)), + } + toFill = out[1:] + } + + var totalCounted int64 + for i := range toFill { + toFill[i] = ArrowStreamBatch{ + idx: i, + numrows: int64(scd.ChunkMetas[i].RowCount), + Loc: loc, + scd: scd, + } + totalCounted += int64(scd.ChunkMetas[i].RowCount) + } + + if len(rowSetBytes) > 0 { + // if we had a first batch, fill in the numrows + out[0].numrows = scd.Total - totalCounted + } + return +} + func buildSnowflakeConn(ctx context.Context, config Config) (*snowflakeConn, error) { sc := &snowflakeConn{ SequenceCounter: 0, @@ -462,11 +728,16 @@ func buildSnowflakeConn(ctx context.Context, config Config) (*snowflakeConn, err Timeout: sc.cfg.ClientTimeout, Transport: st, }, + JWTClient: &http.Client{ + Timeout: sc.cfg.JWTClientTimeout, + Transport: st, + }, TokenAccessor: tokenAccessor, LoginTimeout: sc.cfg.LoginTimeout, RequestTimeout: sc.cfg.RequestTimeout, FuncPost: postRestful, FuncGet: getRestful, + FuncAuthPost: postAuthRestful, FuncPostQuery: postRestfulQuery, FuncPostQueryHelper: postRestfulQueryHelper, FuncRenewSession: renewRestfulSession, diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/connection_util.go b/ext/vendor/github.com/snowflakedb/gosnowflake/connection_util.go index f16ea90..2a45e36 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/connection_util.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/connection_util.go @@ -24,20 +24,24 @@ func (sc *snowflakeConn) isClientSessionKeepAliveEnabled() bool { } func (sc *snowflakeConn) startHeartBeat() { - if !sc.isClientSessionKeepAliveEnabled() { + if sc.cfg != nil && !sc.isClientSessionKeepAliveEnabled() { return } - sc.rest.HeartBeat = &heartbeat{ - restful: sc.rest, + if sc.rest != nil { + sc.rest.HeartBeat = &heartbeat{ + restful: sc.rest, + } + sc.rest.HeartBeat.start() } - sc.rest.HeartBeat.start() } func (sc *snowflakeConn) stopHeartBeat() { - if !sc.isClientSessionKeepAliveEnabled() { + if sc.cfg != nil && !sc.isClientSessionKeepAliveEnabled() { return } - sc.rest.HeartBeat.stop() + if sc.rest != nil { + sc.rest.HeartBeat.stop() + } } func (sc *snowflakeConn) getArrayBindStageThreshold() int { @@ -255,6 +259,7 @@ func populateChunkDownloader( return &snowflakeChunkDownloader{ sc: sc, ctx: ctx, + pool: getAllocator(ctx), CurrentChunk: make([]chunkRowType, len(data.RowSet)), ChunkMetas: data.Chunks, Total: data.Total, diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/converter.go b/ext/vendor/github.com/snowflakedb/gosnowflake/converter.go index 373909f..44c0afb 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/converter.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/converter.go @@ -4,6 +4,7 @@ package gosnowflake import ( "context" + "database/sql" "database/sql/driver" "encoding/hex" "fmt" @@ -14,10 +15,11 @@ import ( "strings" "time" - "github.com/apache/arrow/go/v10/arrow" - "github.com/apache/arrow/go/v10/arrow/array" - "github.com/apache/arrow/go/v10/arrow/decimal128" - "github.com/apache/arrow/go/v10/arrow/memory" + "github.com/apache/arrow/go/v12/arrow" + "github.com/apache/arrow/go/v12/arrow/array" + "github.com/apache/arrow/go/v12/arrow/compute" + "github.com/apache/arrow/go/v12/arrow/decimal128" + "github.com/apache/arrow/go/v12/arrow/memory" ) const format = "2006-01-02 15:04:05.999999999" @@ -57,13 +59,13 @@ func isInterfaceArrayBinding(t interface{}) bool { // goTypeToSnowflake translates Go data type to Snowflake data type. func goTypeToSnowflake(v driver.Value, tsmode snowflakeType) snowflakeType { switch t := v.(type) { - case int64: + case int64, sql.NullInt64: return fixedType - case float64: + case float64, sql.NullFloat64: return realType - case bool: + case bool, sql.NullBool: return booleanType - case string: + case string, sql.NullString: return textType case []byte: if tsmode == binaryType { @@ -79,7 +81,7 @@ func goTypeToSnowflake(v driver.Value, tsmode snowflakeType) snowflakeType { return unSupportedType } return changeType - case time.Time: + case time.Time, sql.NullTime: return tsmode } if supportedArrayBind(&driver.NamedValue{Value: v}) { @@ -146,30 +148,68 @@ func valueToString(v driver.Value, tsmode snowflakeType) (*string, error) { s := v1.String() return &s, nil case reflect.Struct: - if tm, ok := v.(time.Time); ok { - switch tsmode { - case dateType: - _, offset := tm.Zone() - tm = tm.Add(time.Second * time.Duration(offset)) - s := fmt.Sprintf("%d", tm.Unix()*1000) - return &s, nil - case timeType: - s := fmt.Sprintf("%d", - (tm.Hour()*3600+tm.Minute()*60+tm.Second())*1e9+tm.Nanosecond()) - return &s, nil - case timestampNtzType, timestampLtzType: - s := fmt.Sprintf("%d", tm.UnixNano()) - return &s, nil - case timestampTzType: - _, offset := tm.Zone() - s := fmt.Sprintf("%v %v", tm.UnixNano(), offset/60+1440) - return &s, nil + switch typedVal := v.(type) { + case time.Time: + return timeTypeValueToString(typedVal, tsmode) + case sql.NullTime: + if !typedVal.Valid { + return nil, nil + } + return timeTypeValueToString(typedVal.Time, tsmode) + case sql.NullBool: + if !typedVal.Valid { + return nil, nil } + s := strconv.FormatBool(typedVal.Bool) + return &s, nil + case sql.NullInt64: + if !typedVal.Valid { + return nil, nil + } + s := strconv.FormatInt(typedVal.Int64, 10) + return &s, nil + case sql.NullFloat64: + if !typedVal.Valid { + return nil, nil + } + s := strconv.FormatFloat(typedVal.Float64, 'g', -1, 32) + return &s, nil + case sql.NullString: + if !typedVal.Valid { + return nil, nil + } + return &typedVal.String, nil } } return nil, fmt.Errorf("unsupported type: %v", v1.Kind()) } +func timeTypeValueToString(tm time.Time, tsmode snowflakeType) (*string, error) { + switch tsmode { + case dateType: + _, offset := tm.Zone() + tm = tm.Add(time.Second * time.Duration(offset)) + s := strconv.FormatInt(tm.Unix()*1000, 10) + return &s, nil + case timeType: + s := fmt.Sprintf("%d", + (tm.Hour()*3600+tm.Minute()*60+tm.Second())*1e9+tm.Nanosecond()) + return &s, nil + case timestampNtzType, timestampLtzType: + unixTime, _ := new(big.Int).SetString(fmt.Sprintf("%d", tm.Unix()), 10) + m, _ := new(big.Int).SetString(strconv.FormatInt(1e9, 10), 10) + unixTime.Mul(unixTime, m) + tmNanos, _ := new(big.Int).SetString(fmt.Sprintf("%d", tm.Nanosecond()), 10) + s := unixTime.Add(unixTime, tmNanos).String() + return &s, nil + case timestampTzType: + _, offset := tm.Zone() + s := fmt.Sprintf("%v %v", tm.UnixNano(), offset/60+1440) + return &s, nil + } + return nil, fmt.Errorf("unsupported time type: %v", tsmode) +} + // extractTimestamp extracts the internal timestamp data to epoch time in seconds and milliseconds func extractTimestamp(srcValue *string) (sec int64, nsec int64, err error) { logger.Debugf("SRC: %v", srcValue) @@ -207,7 +247,8 @@ func stringToValue( dest *driver.Value, srcColumnMeta execResponseRowType, srcValue *string, - loc *time.Location) error { + loc *time.Location, +) error { if srcValue == nil { logger.Debugf("snowflake data type: %v, raw value: nil", srcColumnMeta.Type) *dest = nil @@ -316,14 +357,14 @@ func decimalToBigFloat(num decimal128.Num, scale int64) *big.Float { // Arrow Interface (Column) converter. This is called when Arrow chunks are // downloaded to convert to the corresponding row type. func arrowToValue( - destcol *[]snowflakeValue, + destcol []snowflakeValue, srcColumnMeta execResponseRowType, srcValue arrow.Array, loc *time.Location, higherPrecision bool) error { - data := srcValue.Data() + var err error - if len(*destcol) != srcValue.Data().Len() { + if len(destcol) != srcValue.Len() { err = fmt.Errorf("array interface length mismatch") } logger.Debugf("snowflake data type: %v, arrow data type: %v", srcColumnMeta.Type, srcValue.DataType()) @@ -332,98 +373,98 @@ func arrowToValue( case fixedType: // Snowflake data types that are fixed-point numbers will fall into this category // e.g. NUMBER, DECIMAL/NUMERIC, INT/INTEGER - switch srcValue.DataType().ID() { - case arrow.DECIMAL: - for i, num := range array.NewDecimal128Data(data).Values() { + switch data := srcValue.(type) { + case *array.Decimal128: + for i, num := range data.Values() { if !srcValue.IsNull(i) { if srcColumnMeta.Scale == 0 { if higherPrecision { - (*destcol)[i] = decimalToBigInt(num) + destcol[i] = num.BigInt() } else { - (*destcol)[i] = decimalToBigInt(num).String() + destcol[i] = num.ToString(0) } } else { f := decimalToBigFloat(num, srcColumnMeta.Scale) if higherPrecision { - (*destcol)[i] = f + destcol[i] = f } else { - (*destcol)[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, f) + destcol[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, f) } } } } - case arrow.INT64: - for i, val := range array.NewInt64Data(data).Int64Values() { + case *array.Int64: + for i, val := range data.Int64Values() { if !srcValue.IsNull(i) { if srcColumnMeta.Scale == 0 { if higherPrecision { - (*destcol)[i] = val + destcol[i] = val } else { - (*destcol)[i] = fmt.Sprintf("%d", val) + destcol[i] = fmt.Sprintf("%d", val) } } else { if higherPrecision { f := intToBigFloat(val, srcColumnMeta.Scale) - (*destcol)[i] = f + destcol[i] = f } else { - (*destcol)[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) + destcol[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) } } } } - case arrow.INT32: - for i, val := range array.NewInt32Data(data).Int32Values() { + case *array.Int32: + for i, val := range data.Int32Values() { if !srcValue.IsNull(i) { if srcColumnMeta.Scale == 0 { if higherPrecision { - (*destcol)[i] = int64(val) + destcol[i] = int64(val) } else { - (*destcol)[i] = fmt.Sprintf("%d", val) + destcol[i] = fmt.Sprintf("%d", val) } } else { if higherPrecision { f := intToBigFloat(int64(val), srcColumnMeta.Scale) - (*destcol)[i] = f + destcol[i] = f } else { - (*destcol)[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) + destcol[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) } } } } - case arrow.INT16: - for i, val := range array.NewInt16Data(data).Int16Values() { + case *array.Int16: + for i, val := range data.Int16Values() { if !srcValue.IsNull(i) { if srcColumnMeta.Scale == 0 { if higherPrecision { - (*destcol)[i] = int64(val) + destcol[i] = int64(val) } else { - (*destcol)[i] = fmt.Sprintf("%d", val) + destcol[i] = fmt.Sprintf("%d", val) } } else { if higherPrecision { f := intToBigFloat(int64(val), srcColumnMeta.Scale) - (*destcol)[i] = f + destcol[i] = f } else { - (*destcol)[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) + destcol[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) } } } } - case arrow.INT8: - for i, val := range array.NewInt8Data(data).Int8Values() { + case *array.Int8: + for i, val := range data.Int8Values() { if !srcValue.IsNull(i) { if srcColumnMeta.Scale == 0 { if higherPrecision { - (*destcol)[i] = int64(val) + destcol[i] = int64(val) } else { - (*destcol)[i] = fmt.Sprintf("%d", val) + destcol[i] = fmt.Sprintf("%d", val) } } else { if higherPrecision { f := intToBigFloat(int64(val), srcColumnMeta.Scale) - (*destcol)[i] = f + destcol[i] = f } else { - (*destcol)[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) + destcol[i] = fmt.Sprintf("%.*f", srcColumnMeta.Scale, float64(val)/math.Pow10(int(srcColumnMeta.Scale))) } } } @@ -431,124 +472,124 @@ func arrowToValue( } return err case booleanType: - boolData := array.NewBooleanData(data) - for i := range *destcol { + boolData := srcValue.(*array.Boolean) + for i := range destcol { if !srcValue.IsNull(i) { - (*destcol)[i] = boolData.Value(i) + destcol[i] = boolData.Value(i) } } return err case realType: // Snowflake data types that are floating-point numbers will fall in this category // e.g. FLOAT/REAL/DOUBLE - for i, flt64 := range array.NewFloat64Data(data).Float64Values() { + for i, flt64 := range srcValue.(*array.Float64).Float64Values() { if !srcValue.IsNull(i) { - (*destcol)[i] = flt64 + destcol[i] = flt64 } } return err case textType, arrayType, variantType, objectType: - strings := array.NewStringData(data) - for i := range *destcol { + strings := srcValue.(*array.String) + for i := range destcol { if !srcValue.IsNull(i) { - (*destcol)[i] = strings.Value(i) + destcol[i] = strings.Value(i) } } return err case binaryType: - binaryData := array.NewBinaryData(data) - for i := range *destcol { + binaryData := srcValue.(*array.Binary) + for i := range destcol { if !srcValue.IsNull(i) { - (*destcol)[i] = binaryData.Value(i) + destcol[i] = binaryData.Value(i) } } return err case dateType: - for i, date32 := range array.NewDate32Data(data).Date32Values() { + for i, date32 := range srcValue.(*array.Date32).Date32Values() { if !srcValue.IsNull(i) { t0 := time.Unix(int64(date32)*86400, 0).UTC() - (*destcol)[i] = t0 + destcol[i] = t0 } } return err case timeType: t0 := time.Time{} if srcValue.DataType().ID() == arrow.INT64 { - for i, i64 := range array.NewInt64Data(data).Int64Values() { + for i, i64 := range srcValue.(*array.Int64).Int64Values() { if !srcValue.IsNull(i) { - (*destcol)[i] = t0.Add(time.Duration(i64 * int64(math.Pow10(9-int(srcColumnMeta.Scale))))) + destcol[i] = t0.Add(time.Duration(i64 * int64(math.Pow10(9-int(srcColumnMeta.Scale))))) } } } else { - for i, i32 := range array.NewInt32Data(data).Int32Values() { + for i, i32 := range srcValue.(*array.Int32).Int32Values() { if !srcValue.IsNull(i) { - (*destcol)[i] = t0.Add(time.Duration(int64(i32) * int64(math.Pow10(9-int(srcColumnMeta.Scale))))) + destcol[i] = t0.Add(time.Duration(int64(i32) * int64(math.Pow10(9-int(srcColumnMeta.Scale))))) } } } return err case timestampNtzType: if srcValue.DataType().ID() == arrow.STRUCT { - structData := array.NewStructData(data) - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() - for i := range *destcol { + structData := srcValue.(*array.Struct) + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() + for i := range destcol { if !srcValue.IsNull(i) { - (*destcol)[i] = time.Unix(epoch[i], int64(fraction[i])).UTC() + destcol[i] = time.Unix(epoch[i], int64(fraction[i])).UTC() } } } else { - for i, t := range array.NewInt64Data(data).Int64Values() { + for i, t := range srcValue.(*array.Int64).Int64Values() { if !srcValue.IsNull(i) { scale := int(srcColumnMeta.Scale) epoch := t / int64(math.Pow10(scale)) fraction := (t % int64(math.Pow10(scale))) * int64(math.Pow10(9-scale)) - (*destcol)[i] = time.Unix(epoch, fraction).UTC() + destcol[i] = time.Unix(epoch, fraction).UTC() } } } return err case timestampLtzType: if srcValue.DataType().ID() == arrow.STRUCT { - structData := array.NewStructData(data) - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() - for i := range *destcol { + structData := srcValue.(*array.Struct) + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() + for i := range destcol { if !srcValue.IsNull(i) { - (*destcol)[i] = time.Unix(epoch[i], int64(fraction[i])).In(loc) + destcol[i] = time.Unix(epoch[i], int64(fraction[i])).In(loc) } } } else { - for i, t := range array.NewInt64Data(data).Int64Values() { + for i, t := range srcValue.(*array.Int64).Int64Values() { if !srcValue.IsNull(i) { q := t / int64(math.Pow10(int(srcColumnMeta.Scale))) r := t % int64(math.Pow10(int(srcColumnMeta.Scale))) - (*destcol)[i] = time.Unix(q, r).In(loc) + destcol[i] = time.Unix(q, r).In(loc) } } } return err case timestampTzType: - structData := array.NewStructData(data) + structData := srcValue.(*array.Struct) if structData.NumField() == 2 { - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - timezone := array.NewInt32Data(structData.Field(1).Data()).Int32Values() - for i := range *destcol { + epoch := structData.Field(0).(*array.Int64).Int64Values() + timezone := structData.Field(1).(*array.Int32).Int32Values() + for i := range destcol { if !srcValue.IsNull(i) { loc := Location(int(timezone[i]) - 1440) tt := time.Unix(epoch[i], 0) - (*destcol)[i] = tt.In(loc) + destcol[i] = tt.In(loc) } } } else { - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() - timezone := array.NewInt32Data(structData.Field(2).Data()).Int32Values() - for i := range *destcol { + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() + timezone := structData.Field(2).(*array.Int32).Int32Values() + for i := range destcol { if !srcValue.IsNull(i) { loc := Location(int(timezone[i]) - 1440) tt := time.Unix(epoch[i], int64(fraction[i])) - (*destcol)[i] = tt.In(loc) + destcol[i] = tt.In(loc) } } } @@ -651,12 +692,14 @@ func Array(a interface{}, typ ...timezoneType) interface{} { if len(typ) < 1 { return interfaceArrayBinding{ hasTimezone: false, - timezoneTypeArray: a} + timezoneTypeArray: a, + } } return interfaceArrayBinding{ hasTimezone: true, tzType: typ[0], - timezoneTypeArray: a} + timezoneTypeArray: a, + } default: return a } @@ -909,7 +952,7 @@ func higherPrecisionEnabled(ctx context.Context) bool { return ok && d } -func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time.Location) (arrow.Record, error) { +func arrowToRecord(record arrow.Record, pool memory.Allocator, rowType []execResponseRowType, loc *time.Location) (arrow.Record, error) { s, err := recordToSchema(record.Schema(), rowType, loc) if err != nil { return nil, err @@ -917,126 +960,52 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time var cols []arrow.Array numRows := record.NumRows() - pool := memory.NewGoAllocator() + ctx := compute.WithAllocator(context.Background(), pool) for i, col := range record.Columns() { srcColumnMeta := rowType[i] - data := col.Data() - //TODO: confirm that it is okay to be using higher precision logic for conversions - var newCol = col + // TODO: confirm that it is okay to be using higher precision logic for conversions + newCol := col switch getSnowflakeType(strings.ToUpper(srcColumnMeta.Type)) { case fixedType: - switch col.DataType().ID() { - case arrow.DECIMAL: + var toType arrow.DataType + if col.DataType().ID() == arrow.DECIMAL || col.DataType().ID() == arrow.DECIMAL256 { if srcColumnMeta.Scale == 0 { - ib := array.NewInt64Builder(pool) - for i, num := range array.NewDecimal128Data(data).Values() { - if !col.IsNull(i) { - bi := decimalToBigInt(num) - val := bi.Int64() - ib.Append(val) - } else { - ib.AppendNull() - } - } - newCol = ib.NewArray() + toType = arrow.PrimitiveTypes.Int64 } else { - fb := array.NewFloat64Builder(pool) - for i, num := range array.NewDecimal128Data(data).Values() { - if !col.IsNull(i) { - f := decimalToBigFloat(num, srcColumnMeta.Scale) - val, _ := f.Float64() - fb.Append(val) - } else { - fb.AppendNull() - } - } - newCol = fb.NewArray() - } - case arrow.INT8: - if srcColumnMeta.Scale != 0 { - fb := array.NewFloat64Builder(pool) - for i, val := range array.NewInt8Data(data).Int8Values() { - if !col.IsNull(i) { - f := intToBigFloat(int64(val), srcColumnMeta.Scale) - val, _ := f.Float64() - fb.Append(val) - } else { - fb.AppendNull() - } - } - newCol = fb.NewArray() + toType = arrow.PrimitiveTypes.Float64 } - case arrow.INT16: - if srcColumnMeta.Scale != 0 { - fb := array.NewFloat64Builder(pool) - for i, val := range array.NewInt16Data(data).Int16Values() { - if !col.IsNull(i) { - f := intToBigFloat(int64(val), srcColumnMeta.Scale) - val, _ := f.Float64() - fb.Append(val) - } else { - fb.AppendNull() - } - } - newCol = fb.NewArray() - } - case arrow.INT32: - if srcColumnMeta.Scale != 0 { - fb := array.NewFloat64Builder(pool) - for i, val := range array.NewInt32Data(data).Int32Values() { - if !col.IsNull(i) { - f := intToBigFloat(int64(val), srcColumnMeta.Scale) - val, _ := f.Float64() - fb.Append(val) - } else { - fb.AppendNull() - } - } - newCol = fb.NewArray() + // we're fine truncating so no error for data loss here. + // so we use UnsafeCastOptions. + newCol, err = compute.CastArray(ctx, col, compute.UnsafeCastOptions(toType)) + if err != nil { + return nil, err } - case arrow.INT64: - if srcColumnMeta.Scale != 0 { - fb := array.NewFloat64Builder(pool) - for i, val := range array.NewInt64Data(data).Int64Values() { - if !col.IsNull(i) { - f := intToBigFloat(val, srcColumnMeta.Scale) - val, _ := f.Float64() - fb.Append(val) - } else { - fb.AppendNull() - } - } - newCol = fb.NewArray() + defer newCol.Release() + } else if srcColumnMeta.Scale != 0 { + result, err := compute.Divide(ctx, compute.ArithmeticOptions{NoCheckOverflow: true}, + &compute.ArrayDatum{Value: newCol.Data()}, + compute.NewDatum(math.Pow10(int(srcColumnMeta.Scale)))) + if err != nil { + return nil, err } + defer result.Release() + newCol = result.(*compute.ArrayDatum).MakeArray() + defer newCol.Release() } case timeType: - tb := array.NewTime64Builder(pool, &arrow.Time64Type{}) - if col.DataType().ID() == arrow.INT64 || col.DataType().ID() == arrow.TIME64 { - for i, i64 := range array.NewInt64Data(data).Int64Values() { - if !col.IsNull(i) { - tb.Append(arrow.Time64(i64)) - } else { - tb.AppendNull() - } - } - } else { - for i, i32 := range array.NewInt32Data(data).Int32Values() { - if !col.IsNull(i) { - tb.Append(arrow.Time64(int64(i32))) - } else { - tb.AppendNull() - } - } + newCol, err = compute.CastArray(ctx, col, compute.SafeCastOptions(arrow.FixedWidthTypes.Time64ns)) + if err != nil { + return nil, err } - newCol = tb.NewArray() + defer newCol.Release() case timestampNtzType: tb := array.NewTimestampBuilder(pool, &arrow.TimestampType{Unit: arrow.Nanosecond}) if col.DataType().ID() == arrow.STRUCT { - structData := array.NewStructData(data) - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() + structData := col.(*array.Struct) + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() for i := 0; i < int(numRows); i++ { if !col.IsNull(i) { val := time.Unix(epoch[i], int64(fraction[i])) @@ -1046,9 +1015,9 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } } else { - for i, t := range array.NewInt64Data(data).Int64Values() { + for i, t := range col.(*array.Timestamp).TimestampValues() { if !col.IsNull(i) { - val := time.Unix(0, t*int64(math.Pow10(9-int(srcColumnMeta.Scale)))).UTC() + val := time.Unix(0, int64(t)*int64(math.Pow10(9-int(srcColumnMeta.Scale)))).UTC() tb.Append(arrow.Timestamp(val.UnixNano())) } else { tb.AppendNull() @@ -1056,12 +1025,14 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } newCol = tb.NewArray() + defer newCol.Release() + tb.Release() case timestampLtzType: tb := array.NewTimestampBuilder(pool, &arrow.TimestampType{Unit: arrow.Nanosecond, TimeZone: loc.String()}) if col.DataType().ID() == arrow.STRUCT { - structData := array.NewStructData(data) - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() + structData := col.(*array.Struct) + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() for i := 0; i < int(numRows); i++ { if !col.IsNull(i) { val := time.Unix(epoch[i], int64(fraction[i])) @@ -1071,10 +1042,10 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } } else { - for i, t := range array.NewInt64Data(data).Int64Values() { + for i, t := range col.(*array.Timestamp).TimestampValues() { if !col.IsNull(i) { - q := t / int64(math.Pow10(int(srcColumnMeta.Scale))) - r := t % int64(math.Pow10(int(srcColumnMeta.Scale))) + q := int64(t) / int64(math.Pow10(int(srcColumnMeta.Scale))) + r := int64(t) % int64(math.Pow10(int(srcColumnMeta.Scale))) val := time.Unix(q, r) tb.Append(arrow.Timestamp(val.UnixNano())) } else { @@ -1083,12 +1054,14 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } newCol = tb.NewArray() + defer newCol.Release() + tb.Release() case timestampTzType: tb := array.NewTimestampBuilder(pool, &arrow.TimestampType{Unit: arrow.Nanosecond}) - structData := array.NewStructData(data) + structData := col.(*array.Struct) if structData.NumField() == 2 { - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - timezone := array.NewInt32Data(structData.Field(1).Data()).Int32Values() + epoch := structData.Field(0).(*array.Int64).Int64Values() + timezone := structData.Field(1).(*array.Int32).Int32Values() for i := 0; i < int(numRows); i++ { if !col.IsNull(i) { loc := Location(int(timezone[i]) - 1440) @@ -1100,9 +1073,9 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } } else { - epoch := array.NewInt64Data(structData.Field(0).Data()).Int64Values() - fraction := array.NewInt32Data(structData.Field(1).Data()).Int32Values() - timezone := array.NewInt32Data(structData.Field(2).Data()).Int32Values() + epoch := structData.Field(0).(*array.Int64).Int64Values() + fraction := structData.Field(1).(*array.Int32).Int32Values() + timezone := structData.Field(2).(*array.Int32).Int32Values() for i := 0; i < int(numRows); i++ { if !col.IsNull(i) { loc := Location(int(timezone[i]) - 1440) @@ -1115,6 +1088,8 @@ func arrowToRecord(record arrow.Record, rowType []execResponseRowType, loc *time } } newCol = tb.NewArray() + defer newCol.Release() + tb.Release() } cols = append(cols, newCol) } @@ -1146,7 +1121,7 @@ func recordToSchema(sc *arrow.Schema, rowType []execResponseRowType, loc *time.L } } case timeType: - t = &arrow.Time64Type{} + t = &arrow.Time64Type{Unit: arrow.Nanosecond} case timestampNtzType, timestampTzType: t = &arrow.TimestampType{Unit: arrow.Nanosecond} case timestampLtzType: @@ -1155,7 +1130,7 @@ func recordToSchema(sc *arrow.Schema, rowType []execResponseRowType, loc *time.L converted = false } - var newField = f + newField := f if converted { newField = arrow.Field{ Name: f.Name, @@ -1169,3 +1144,26 @@ func recordToSchema(sc *arrow.Schema, rowType []execResponseRowType, loc *time.L meta := sc.Metadata() return arrow.NewSchema(fields, &meta), nil } + +// TypedNullTime is required to properly bind the null value with the snowflakeType as the Snowflake functions +// require the type of the field to be provided explicitly for the null values +type TypedNullTime struct { + Time sql.NullTime + TzType timezoneType +} + +func convertTzTypeToSnowflakeType(tzType timezoneType) snowflakeType { + switch tzType { + case TimestampNTZType: + return timestampNtzType + case TimestampLTZType: + return timestampLtzType + case TimestampTZType: + return timestampTzType + case DateType: + return dateType + case TimeType: + return timeType + } + return unSupportedType +} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/doc.go b/ext/vendor/github.com/snowflakedb/gosnowflake/doc.go index 74a4211..0b34352 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/doc.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/doc.go @@ -400,6 +400,15 @@ The “?“ inside the “VALUES“ clause specifies that the SQL statement uses Binding data that involves time zones can require special handling. For details, see the section titled "Timestamps with Time Zones". +Version 1.6.23 (and later) of the driver takes advantage of sql.Null types which enables the proper handling of null parameters inside function calls, i.e.: + + rows, err := db.Query("SELECT * FROM TABLE(SOMEFUNCTION(?))", sql.NullBool{}) + +The timestamp nullability had to be achieved by wrapping the sql.NullTime type as the Snowflake provides several date and time types +which are mapped to single Go time.Time type: + + rows, err := db.Query("SELECT * FROM TABLE(SOMEFUNCTION(?))", sf.TypedNullTime{sql.NullTime{}, sf.TimestampLTZType}) + # Binding Parameters to Array Variables Version 1.3.9 (and later) of the Go Snowflake Driver supports the ability to bind an array variable to a parameter in a SQL @@ -568,8 +577,8 @@ or using a Config structure specifying: config := &Config{ ... - Authenticator: "SNOWFLAKE_JWT" - PrivateKey: "" + Authenticator: AuthTypeJwt, + PrivateKey: "", } The should be a base64 URL encoded PKCS8 rsa private key string. One way to encode a byte slice to URL @@ -599,6 +608,30 @@ Note: As of February 2020, Golang's official library does not support passcode-e For security purposes, Snowflake highly recommends that you store the passcode-encrypted private key on the disk and decrypt the key in your application using a library you trust. +# External browser authentication + +The driver allows to authenticate using the external browser. + +When a connection is created, the driver will open the browser window and ask the user to sign in. + +To enable this feature, construct the DSN with field "authenticator=EXTERNALBROWSER" or using a Config structure with +following Authenticator specified: + + config := &Config{ + ... + Authenticator: AuthTypeExternalBrowser, + } + +The external browser authentication implements timeout mechanism. This prevents the driver from hanging interminably when +browser window was closed, or not responding. + +Timeout defaults to 120s and can be changed through setting DSN field "externalBrowserTimeout=240" (time in seconds) +or using a Config structure with following ExternalBrowserTimeout specified: + + config := &Config{ + ExternalBrowserTimeout: 240 * time.Second, // Requires time.Duration + } + # Executing Multiple Statements in One Call This feature is available in version 1.3.8 or later of the driver. @@ -775,12 +808,12 @@ Because the example code above executes only one query and no other activity, th no significant difference in behavior between asynchronous and synchronous behavior. The differences become significant if, for example, you want to perform some other activity after the query starts and before it completes. The example code below starts -multiple queries, which run in the background, and then retrieves the results later. +a query, which run in the background, and then retrieves the results later. This example uses small SELECT statements that do not retrieve enough data to require asynchronous handling. However, the technique works for larger data sets, and for situations where the programmer might want to do other work after starting the queries -and before retrieving the results. +and before retrieving the results. For a more elaborative example please see cmd/async/async.go package gosnowflake @@ -797,28 +830,26 @@ and before retrieving the results. ... func DemonstrateAsyncMode(db *sql.DB) { - // Enable asynchronous mode. - ctx := WithAsyncMode(context.Background()) - // Establish connection - conn, _ := db.Conn(ctx) - - // Unwrap connection - err = conn.Raw(func(x interface{}) error { - // Execute asynchronous query - rows, _ := x.(driver.QueryerContext).QueryContext(ctx, "select 1", nil) - defer rows.Close() - - // Retrieve and check results of the query after casting the result - status := rows.(SnowflakeResult).GetStatus() - if status == QueryStatusComplete { - // do something - } else if status == QueryStatusInProgress { - // do something - } else if status == QueryFailed { - // do something - } - return nil - }) + // Enable asynchronous mode + ctx := sf.WithAsyncMode(context.Background()) + + // Run the query with asynchronous context + rows, err := db.QueryContext(ctx, "select 1") + if err != nil { + // handle error + } + + // do something as the workflow continues whereas the query is computing in the background + ... + + // Get the data when you are ready to handle it + var val int + err = rows.Scan(&val) + if err != nil { + // handle error + } + + ... } # Support For PUT and GET diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/dsn.go b/ext/vendor/github.com/snowflakedb/gosnowflake/dsn.go index ae4decd..f5a3429 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/dsn.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/dsn.go @@ -4,22 +4,28 @@ package gosnowflake import ( "crypto/rsa" + "crypto/x509" "encoding/base64" + "encoding/pem" + "errors" "fmt" "net" "net/http" "net/url" + "os" "strconv" "strings" "time" ) const ( - defaultClientTimeout = 900 * time.Second // Timeout for network round trip + read out http response - defaultLoginTimeout = 60 * time.Second // Timeout for retry for login EXCLUDING clientTimeout - defaultRequestTimeout = 0 * time.Second // Timeout for retry for request EXCLUDING clientTimeout - defaultJWTTimeout = 60 * time.Second - defaultDomain = ".snowflakecomputing.com" + defaultClientTimeout = 900 * time.Second // Timeout for network round trip + read out http response + defaultJWTClientTimeout = 10 * time.Second // Timeout for network round trip + read out http response but used for JWT auth + defaultLoginTimeout = 60 * time.Second // Timeout for retry for login EXCLUDING clientTimeout + defaultRequestTimeout = 0 * time.Second // Timeout for retry for request EXCLUDING clientTimeout + defaultJWTTimeout = 60 * time.Second + defaultExternalBrowserTimeout = 120 * time.Second // Timeout for external browser login + defaultDomain = ".snowflakecomputing.com" ) // ConfigBool is a type to represent true or false in the Config @@ -62,10 +68,12 @@ type Config struct { OktaURL *url.URL - LoginTimeout time.Duration // Login retry timeout EXCLUDING network roundtrip and read out http response - RequestTimeout time.Duration // request retry timeout EXCLUDING network roundtrip and read out http response - JWTExpireTimeout time.Duration // JWT expire after timeout - ClientTimeout time.Duration // Timeout for network round trip + read out http response + LoginTimeout time.Duration // Login retry timeout EXCLUDING network roundtrip and read out http response + RequestTimeout time.Duration // request retry timeout EXCLUDING network roundtrip and read out http response + JWTExpireTimeout time.Duration // JWT expire after timeout + ClientTimeout time.Duration // Timeout for network round trip + read out http response + JWTClientTimeout time.Duration // Timeout for network round trip + read out http response used when JWT token auth is taking place + ExternalBrowserTimeout time.Duration // Timeout for external browser login Application string // application name. InsecureMode bool // driver doesn't check certificate revocation status @@ -163,6 +171,9 @@ func DSN(cfg *Config) (dsn string, err error) { if cfg.ClientTimeout != defaultClientTimeout { params.Add("clientTimeout", strconv.FormatInt(int64(cfg.ClientTimeout/time.Second), 10)) } + if cfg.JWTClientTimeout != defaultJWTClientTimeout { + params.Add("jwtClientTimeout", strconv.FormatInt(int64(cfg.JWTClientTimeout/time.Second), 10)) + } if cfg.LoginTimeout != defaultLoginTimeout { params.Add("loginTimeout", strconv.FormatInt(int64(cfg.LoginTimeout/time.Second), 10)) } @@ -172,6 +183,9 @@ func DSN(cfg *Config) (dsn string, err error) { if cfg.JWTExpireTimeout != defaultJWTTimeout { params.Add("jwtTimeout", strconv.FormatInt(int64(cfg.JWTExpireTimeout/time.Second), 10)) } + if cfg.ExternalBrowserTimeout != defaultExternalBrowserTimeout { + params.Add("externalBrowserTimeout", strconv.FormatInt(int64(cfg.ExternalBrowserTimeout/time.Second), 10)) + } if cfg.Application != clientType { params.Add("application", cfg.Application) } @@ -376,16 +390,11 @@ func fillMissingConfigParameters(cfg *Config) error { return ErrEmptyAccount } - if cfg.Authenticator != AuthTypeOAuth && strings.Trim(cfg.User, " ") == "" { - // oauth does not require a username + if authRequiresUser(cfg) && strings.TrimSpace(cfg.User) == "" { return ErrEmptyUsername } - if cfg.Authenticator != AuthTypeExternalBrowser && - cfg.Authenticator != AuthTypeOAuth && - cfg.Authenticator != AuthTypeJwt && - strings.Trim(cfg.Password, " ") == "" { - // no password parameter is required for EXTERNALBROWSER, OAUTH or JWT. + if authRequiresPassword(cfg) && strings.TrimSpace(cfg.Password) == "" { return ErrEmptyPassword } if strings.Trim(cfg.Protocol, " ") == "" { @@ -425,6 +434,12 @@ func fillMissingConfigParameters(cfg *Config) error { if cfg.ClientTimeout == 0 { cfg.ClientTimeout = defaultClientTimeout } + if cfg.JWTClientTimeout == 0 { + cfg.JWTClientTimeout = defaultJWTClientTimeout + } + if cfg.ExternalBrowserTimeout == 0 { + cfg.ExternalBrowserTimeout = defaultExternalBrowserTimeout + } if strings.Trim(cfg.Application, " ") == "" { cfg.Application = clientType } @@ -447,6 +462,19 @@ func fillMissingConfigParameters(cfg *Config) error { return nil } +func authRequiresUser(cfg *Config) bool { + return cfg.Authenticator != AuthTypeOAuth && + cfg.Authenticator != AuthTypeTokenAccessor && + cfg.Authenticator != AuthTypeExternalBrowser +} + +func authRequiresPassword(cfg *Config) bool { + return cfg.Authenticator != AuthTypeOAuth && + cfg.Authenticator != AuthTypeTokenAccessor && + cfg.Authenticator != AuthTypeExternalBrowser && + cfg.Authenticator != AuthTypeJwt +} + // transformAccountToHost transforms host to account name func transformAccountToHost(cfg *Config) (err error) { if cfg.Port == 0 && !strings.HasSuffix(cfg.Host, defaultDomain) && cfg.Host != "" { @@ -554,6 +582,11 @@ func parseDSNParams(cfg *Config, params string) (err error) { if err != nil { return } + case "jwtClientTimeout": + cfg.JWTClientTimeout, err = parseTimeout(value) + if err != nil { + return + } case "loginTimeout": cfg.LoginTimeout, err = parseTimeout(value) if err != nil { @@ -569,6 +602,11 @@ func parseDSNParams(cfg *Config, params string) (err error) { if err != nil { return err } + case "externalBrowserTimeout": + cfg.ExternalBrowserTimeout, err = parseTimeout(value) + if err != nil { + return err + } case "application": cfg.Application = value case "authenticator": @@ -665,3 +703,101 @@ func parseTimeout(value string) (time.Duration, error) { } return time.Duration(vv * int64(time.Second)), nil } + +// ConfigParam is used to bind the name of the Config field with the environment variable and set the requirement for it +type ConfigParam struct { + Name string + EnvName string + FailOnMissing bool +} + +// GetConfigFromEnv is used to parse the environment variable values to specific fields of the Config +func GetConfigFromEnv(properties []*ConfigParam) (*Config, error) { + var account, user, password, role, host, portStr, protocol, warehouse, database, schema, region, passcode, application string + var privateKey *rsa.PrivateKey + var err error + if len(properties) == 0 || properties == nil { + return nil, errors.New("missing configuration parameters for the connection") + } + for _, prop := range properties { + value, err := GetFromEnv(prop.EnvName, prop.FailOnMissing) + if err != nil { + return nil, err + } + switch prop.Name { + case "Account": + account = value + case "User": + user = value + case "Password": + password = value + case "Role": + role = value + case "Host": + host = value + case "Port": + portStr = value + case "Protocol": + protocol = value + case "Warehouse": + warehouse = value + case "Database": + database = value + case "Region": + region = value + case "Passcode": + passcode = value + case "Schema": + schema = value + case "Application": + application = value + case "PrivateKey": + privateKey, err = parsePrivateKeyFromFile(value) + if err != nil { + return nil, err + } + } + } + + port := 443 // snowflake default port + if len(portStr) > 0 { + port, err = strconv.Atoi(portStr) + if err != nil { + return nil, err + } + } + + cfg := &Config{ + Account: account, + User: user, + Password: password, + Role: role, + Host: host, + Port: port, + Protocol: protocol, + Warehouse: warehouse, + Database: database, + Schema: schema, + PrivateKey: privateKey, + Region: region, + Passcode: passcode, + Application: application, + } + return cfg, nil +} + +func parsePrivateKeyFromFile(path string) (*rsa.PrivateKey, error) { + bytes, err := os.ReadFile(path) + if err != nil { + return nil, err + } + block, _ := pem.Decode(bytes) + if block == nil { + return nil, errors.New("failed to parse PEM block containing the private key") + } + privateKey, err := x509.ParsePKCS8PrivateKey(block.Bytes) + if err != nil { + return nil, err + } + return privateKey.(*rsa.PrivateKey), nil +} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/errors.go b/ext/vendor/github.com/snowflakedb/gosnowflake/errors.go index 3b50503..c49fc92 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/errors.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/errors.go @@ -82,12 +82,7 @@ func (se *SnowflakeError) exceptionTelemetry(sc *snowflakeConn) *SnowflakeError // return populated error fields replacing the default response func populateErrorFields(code int, data *execResponse) *SnowflakeError { - err := &SnowflakeError{ - Number: -1, - SQLState: "-1", - Message: "an unknown server side error occurred", - QueryID: "-1", - } + err := ErrUnknownError if code != -1 { err.Number = code } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/file_transfer_agent.go b/ext/vendor/github.com/snowflakedb/gosnowflake/file_transfer_agent.go index 024012a..99bec9b 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/file_transfer_agent.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/file_transfer_agent.go @@ -655,9 +655,8 @@ func (sfa *snowflakeFileTransferAgent) getLocalFilePathFromCommand(command strin } filePathEndIdx = -1 if getMin(indexList) != -1 { - filePathEndIdx = getMin(indexList) + filePathEndIdx = filePathBeginIdx + getMin(indexList) } - if filePathEndIdx > filePathBeginIdx { filePath = command[filePathBeginIdx:filePathEndIdx] } else { @@ -747,6 +746,23 @@ func (sfa *snowflakeFileTransferAgent) uploadFilesParallel(fileMetas []*fileMeta } wg.Wait() + // append errors with no result associated to separate array + var errorMessages []string + for i, result := range results { + if result == nil { + if errors[i] == nil { + errorMessages = append(errorMessages, "unknown error") + } else { + errorMessages = append(errorMessages, errors[i].Error()) + } + } + } + if errorMessages != nil { + // sort the error messages to be more deterministic as the goroutines may finish in different order each time + sort.Strings(errorMessages) + return fmt.Errorf("errors during file upload:\n%v", strings.Join(errorMessages, "\n")) + } + retryMeta := make([]*fileMetadata, 0) for i, result := range results { result.errorDetails = errors[i] diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/file_util.go b/ext/vendor/github.com/snowflakedb/gosnowflake/file_util.go index faaa110..4a0b08d 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/file_util.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/file_util.go @@ -143,8 +143,11 @@ type fileMetadata struct { gcsFileHeaderEncryptionMeta *encryptMetadata /* mock */ - mockUploader s3UploadAPI - mockHeader s3HeaderAPI + mockUploader s3UploadAPI + mockDownloader s3DownloadAPI + mockHeader s3HeaderAPI + mockGcsClient gcsAPI + mockAzureClient azureAPI } type fileTransferResultType struct { diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/gcs_storage_client.go b/ext/vendor/github.com/snowflakedb/gosnowflake/gcs_storage_client.go index 95bfd88..dbd674b 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/gcs_storage_client.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/gcs_storage_client.go @@ -66,12 +66,19 @@ func (util *snowflakeGcsClient) getFileHeader(meta *fileMetadata, filename strin for k, v := range gcsHeaders { req.Header.Add(k, v) } - client := &http.Client{} + var client gcsAPI + client = &http.Client{} + // for testing only + if meta.mockGcsClient != nil { + client = meta.mockGcsClient + } resp, err := client.Do(req) if err != nil { return nil, err } if resp.StatusCode != http.StatusOK { + meta.lastError = fmt.Errorf(resp.Status) + meta.resStatus = errStatus if resp.StatusCode == 403 || resp.StatusCode == 408 || resp.StatusCode == 429 || resp.StatusCode == 500 || resp.StatusCode == 503 { meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = needRetry @@ -83,8 +90,6 @@ func (util *snowflakeGcsClient) getFileHeader(meta *fileMetadata, filename strin meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = renewToken } - meta.lastError = fmt.Errorf(resp.Status) - meta.resStatus = errStatus return nil, meta.lastError } @@ -96,7 +101,10 @@ func (util *snowflakeGcsClient) getFileHeader(meta *fileMetadata, filename strin var encryptionMeta *encryptMetadata if resp.Header.Get(gcsMetadataEncryptionDataProp) != "" { var encryptData *encryptionData - json.Unmarshal([]byte(resp.Header.Get(gcsMetadataEncryptionDataProp)), encryptData) + err := json.Unmarshal([]byte(resp.Header.Get(gcsMetadataEncryptionDataProp)), &encryptData) + if err != nil { + logger.Error(err) + } if encryptData != nil { encryptionMeta = &encryptMetadata{ key: encryptData.WrappedContentKey.EncryptionKey, @@ -117,6 +125,10 @@ func (util *snowflakeGcsClient) getFileHeader(meta *fileMetadata, filename strin return nil, nil } +type gcsAPI interface { + Do(req *http.Request) (*http.Response, error) +} + // cloudUtil implementation func (util *snowflakeGcsClient) uploadFile( dataFile string, @@ -197,13 +209,17 @@ func (util *snowflakeGcsClient) uploadFile( for k, v := range gcsHeaders { req.Header.Add(k, v) } - client := &http.Client{} + var client gcsAPI + client = &http.Client{} + // for testing only + if meta.mockGcsClient != nil { + client = meta.mockGcsClient + } resp, err := client.Do(req) if err != nil { return err } if resp.StatusCode != http.StatusOK { - meta.lastError = fmt.Errorf(resp.Status) if resp.StatusCode == 403 || resp.StatusCode == 408 || resp.StatusCode == 429 || resp.StatusCode == 500 || resp.StatusCode == 503 { meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = needRetry @@ -213,6 +229,8 @@ func (util *snowflakeGcsClient) uploadFile( } else if accessToken != "" && util.isTokenExpired(resp) { meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = renewToken + } else { + meta.lastError = fmt.Errorf(resp.Status) } return meta.lastError } @@ -266,17 +284,22 @@ func (util *snowflakeGcsClient) nativeDownloadFile( for k, v := range gcsHeaders { req.Header.Add(k, v) } - client := &http.Client{} + var client gcsAPI + client = &http.Client{} + // for testing only + if meta.mockGcsClient != nil { + client = meta.mockGcsClient + } resp, err := client.Do(req) if err != nil { return err } if resp.StatusCode != http.StatusOK { - meta.lastError = fmt.Errorf(resp.Status) if resp.StatusCode == 403 || resp.StatusCode == 408 || resp.StatusCode == 429 || resp.StatusCode == 500 || resp.StatusCode == 503 { meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = needRetry } else if resp.StatusCode == 404 { + meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = notFoundFile } else if accessToken == "" && resp.StatusCode == 400 && meta.lastError == nil { meta.lastError = fmt.Errorf(resp.Status) @@ -284,6 +307,9 @@ func (util *snowflakeGcsClient) nativeDownloadFile( } else if accessToken != "" && util.isTokenExpired(resp) { meta.lastError = fmt.Errorf(resp.Status) meta.resStatus = renewToken + } else { + meta.lastError = fmt.Errorf(resp.Status) + } return meta.lastError } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/gosnowflake.mak b/ext/vendor/github.com/snowflakedb/gosnowflake/gosnowflake.mak index 010c5a5..bbe42fa 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/gosnowflake.mak +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/gosnowflake.mak @@ -9,8 +9,7 @@ setup: ## Install dependencies deps: setup - go mod tidy - go mod vendor + go mod tidy ## Show help help: diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/monitoring.go b/ext/vendor/github.com/snowflakedb/gosnowflake/monitoring.go index b009934..8ac4c1d 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/monitoring.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/monitoring.go @@ -237,20 +237,20 @@ func (sc *snowflakeConn) rowsForRunningQuery( resp, err := sc.getQueryResultResp(ctx, resultPath) if err != nil { logger.WithContext(ctx).Errorf("error: %v", err) - if resp != nil { - code, err := strconv.Atoi(resp.Code) - if err != nil { - return err - } - return (&SnowflakeError{ - Number: code, - SQLState: resp.Data.SQLState, - Message: err.Error(), - QueryID: resp.Data.QueryID, - }).exceptionTelemetry(sc) - } return err } + if !resp.Success { + code, err := strconv.Atoi(resp.Code) + if err != nil { + return err + } + return (&SnowflakeError{ + Number: code, + SQLState: resp.Data.SQLState, + Message: resp.Message, + QueryID: resp.Data.QueryID, + }).exceptionTelemetry(sc) + } rows.addDownloader(populateChunkDownloader(ctx, sc, resp.Data)) return nil } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/multistatement.go b/ext/vendor/github.com/snowflakedb/gosnowflake/multistatement.go index 3b32ae7..c8b13e2 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/multistatement.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/multistatement.go @@ -52,35 +52,23 @@ func (sc *snowflakeConn) handleMultiExec( childData, err := sc.getQueryResultResp(ctx, resultPath) if err != nil { logger.Errorf("error: %v", err) + return nil, err + } + if childData != nil && !childData.Success { code, err := strconv.Atoi(childData.Code) if err != nil { return nil, err } - if childData != nil { - return nil, (&SnowflakeError{ - Number: code, - SQLState: childData.Data.SQLState, - Message: err.Error(), - QueryID: childData.Data.QueryID, - }).exceptionTelemetry(sc) - } - return nil, err + return nil, (&SnowflakeError{ + Number: code, + SQLState: childData.Data.SQLState, + Message: childData.Message, + QueryID: childData.Data.QueryID, + }).exceptionTelemetry(sc) } count, err := updateRows(childData.Data) if err != nil { logger.WithContext(ctx).Errorf("error: %v", err) - if childData != nil { - code, err := strconv.Atoi(childData.Code) - if err != nil { - return nil, err - } - return nil, (&SnowflakeError{ - Number: code, - SQLState: childData.Data.SQLState, - Message: err.Error(), - QueryID: childData.Data.QueryID, - }).exceptionTelemetry(sc) - } return nil, err } updatedRows += count diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/restful.go b/ext/vendor/github.com/snowflakedb/gosnowflake/restful.go index 04da332..3278717 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/restful.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/restful.go @@ -42,10 +42,16 @@ const ( ) type ( - funcGetType func(context.Context, *snowflakeRestful, *url.URL, map[string]string, time.Duration) (*http.Response, error) - funcPostType func(context.Context, *snowflakeRestful, *url.URL, map[string]string, []byte, time.Duration, bool) (*http.Response, error) + funcGetType func(context.Context, *snowflakeRestful, *url.URL, map[string]string, time.Duration) (*http.Response, error) + funcPostType func(context.Context, *snowflakeRestful, *url.URL, map[string]string, []byte, time.Duration, bool) (*http.Response, error) + funcAuthPostType func(context.Context, *http.Client, *url.URL, map[string]string, bodyCreatorType, time.Duration, bool) (*http.Response, error) + bodyCreatorType func() ([]byte, error) ) +var emptyBodyCreator = func() ([]byte, error) { + return []byte{}, nil +} + type snowflakeRestful struct { Host string Port int @@ -54,6 +60,7 @@ type snowflakeRestful struct { RequestTimeout time.Duration // request timeout Client *http.Client + JWTClient *http.Client TokenAccessor TokenAccessor HeartBeat *heartbeat @@ -63,11 +70,12 @@ type snowflakeRestful struct { FuncPostQueryHelper func(context.Context, *snowflakeRestful, *url.Values, map[string]string, []byte, time.Duration, UUID, *Config) (*execResponse, error) FuncPost funcPostType FuncGet funcGetType + FuncAuthPost funcAuthPostType FuncRenewSession func(context.Context, *snowflakeRestful, time.Duration) error - FuncPostAuth func(context.Context, *snowflakeRestful, *url.Values, map[string]string, []byte, time.Duration) (*authResponse, error) FuncCloseSession func(context.Context, *snowflakeRestful, time.Duration) error FuncCancelQuery func(context.Context, *snowflakeRestful, UUID, time.Duration) error + FuncPostAuth func(context.Context, *snowflakeRestful, *http.Client, *url.Values, map[string]string, bodyCreatorType, time.Duration) (*authResponse, error) FuncPostAuthSAML func(context.Context, *snowflakeRestful, map[string]string, []byte, time.Duration) (*authResponse, error) FuncPostAuthOKTA func(context.Context, *snowflakeRestful, map[string]string, []byte, string, time.Duration) (*authOKTAResponse, error) FuncGetSSO func(context.Context, *snowflakeRestful, *url.Values, map[string]string, string, time.Duration) ([]byte, error) @@ -92,6 +100,16 @@ func (sr *snowflakeRestful) getFullURL(path string, params *url.Values) *url.URL return ret } +// We need separate client for JWT, because if token processing takes too long, token may be already expired. +func (sr *snowflakeRestful) getClientFor(authType AuthType) *http.Client { + switch authType { + case AuthTypeJwt: + return sr.JWTClient + default: + return sr.Client + } +} + // Renew the snowflake session if the current token is still the stale token specified func (sr *snowflakeRestful) renewExpiredSessionToken(ctx context.Context, timeout time.Duration, expiredToken string) error { err := sr.TokenAccessor.Lock() @@ -146,8 +164,11 @@ func postRestful( timeout time.Duration, raise4XX bool) ( *http.Response, error) { - return newRetryHTTP( - ctx, sr.Client, http.NewRequest, fullURL, headers, timeout).doPost().setBody(body).doRaise4XX(raise4XX).execute() + return newRetryHTTP(ctx, sr.Client, http.NewRequest, fullURL, headers, timeout). + doPost(). + setBody(body). + doRaise4XX(raise4XX). + execute() } func getRestful( @@ -157,8 +178,23 @@ func getRestful( headers map[string]string, timeout time.Duration) ( *http.Response, error) { - return newRetryHTTP( - ctx, sr.Client, http.NewRequest, fullURL, headers, timeout).execute() + return newRetryHTTP(ctx, sr.Client, http.NewRequest, fullURL, headers, timeout).execute() +} + +func postAuthRestful( + ctx context.Context, + client *http.Client, + fullURL *url.URL, + headers map[string]string, + bodyCreator bodyCreatorType, + timeout time.Duration, + raise4XX bool) ( + *http.Response, error) { + return newRetryHTTP(ctx, client, http.NewRequest, fullURL, headers, timeout). + doPost(). + setBodyCreator(bodyCreator). + doRaise4XX(raise4XX). + execute() } func postRestfulQuery( diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/retry.go b/ext/vendor/github.com/snowflakedb/gosnowflake/retry.go index 07a7709..95efbc7 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/retry.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/retry.go @@ -161,15 +161,15 @@ type clientInterface interface { } type retryHTTP struct { - ctx context.Context - client clientInterface - req requestFunc - method string - fullURL *url.URL - headers map[string]string - body []byte - timeout time.Duration - raise4XX bool + ctx context.Context + client clientInterface + req requestFunc + method string + fullURL *url.URL + headers map[string]string + bodyCreator bodyCreatorType + timeout time.Duration + raise4XX bool } func newRetryHTTP(ctx context.Context, @@ -185,8 +185,8 @@ func newRetryHTTP(ctx context.Context, instance.method = "GET" instance.fullURL = fullURL instance.headers = headers - instance.body = nil instance.timeout = timeout + instance.bodyCreator = emptyBodyCreator instance.raise4XX = false return &instance } @@ -202,7 +202,14 @@ func (r *retryHTTP) doPost() *retryHTTP { } func (r *retryHTTP) setBody(body []byte) *retryHTTP { - r.body = body + r.bodyCreator = func() ([]byte, error) { + return body, nil + } + return r +} + +func (r *retryHTTP) setBodyCreator(bodyCreator bodyCreatorType) *retryHTTP { + r.bodyCreator = bodyCreator return r } @@ -217,7 +224,11 @@ func (r *retryHTTP) execute() (res *http.Response, err error) { for { logger.Debugf("retry count: %v", retryCounter) - req, err := r.req(r.method, r.fullURL.String(), bytes.NewReader(r.body)) + body, err := r.bodyCreator() + if err != nil { + return nil, err + } + req, err := r.req(r.method, r.fullURL.String(), bytes.NewReader(body)) if err != nil { return nil, err } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/s3_storage_client.go b/ext/vendor/github.com/snowflakedb/gosnowflake/s3_storage_client.go index f92def8..28376d9 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/s3_storage_client.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/s3_storage_client.go @@ -7,6 +7,7 @@ import ( "context" "errors" "fmt" + "io" "os" "strings" @@ -69,6 +70,7 @@ func (util *snowflakeS3Client) getFileHeader(meta *fileMetadata, filename string if !ok { return nil, fmt.Errorf("could not parse client to s3.Client") } + // for testing only if meta.mockHeader != nil { s3Cli = meta.mockHeader } @@ -147,6 +149,7 @@ func (util *snowflakeS3Client) uploadFile( u.Concurrency = maxConcurrency u.PartSize = int64Max(multiPartThreshold, manager.DefaultUploadPartSize) }) + // for testing only if meta.mockUploader != nil { uploader = meta.mockUploader } @@ -197,6 +200,10 @@ func (util *snowflakeS3Client) uploadFile( return nil } +type s3DownloadAPI interface { + Download(ctx context.Context, w io.WriterAt, params *s3.GetObjectInput, optFns ...func(*manager.Downloader)) (int64, error) +} + // cloudUtil implementation func (util *snowflakeS3Client) nativeDownloadFile( meta *fileMetadata, @@ -215,9 +222,14 @@ func (util *snowflakeS3Client) nativeDownloadFile( return err } defer f.Close() - downloader := manager.NewDownloader(client, func(u *manager.Downloader) { + var downloader s3DownloadAPI + downloader = manager.NewDownloader(client, func(u *manager.Downloader) { u.Concurrency = int(maxConcurrency) }) + // for testing only + if meta.mockDownloader != nil { + downloader = meta.mockDownloader + } if _, err = downloader.Download(context.Background(), f, &s3.GetObjectInput{ Bucket: s3Obj.Bucket, Key: s3Obj.Key, diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/storage_client.go b/ext/vendor/github.com/snowflakedb/gosnowflake/storage_client.go index 650180f..a7385c2 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/storage_client.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/storage_client.go @@ -226,23 +226,6 @@ func (rsu *remoteStorageUtil) downloadOneFile(meta *fileMetadata) error { meta.dstFileSize = fi.Size() } return nil - } else if meta.resStatus == renewPresignedURL { - return nil - } else if meta.resStatus == renewToken { - return nil - } else if meta.resStatus == needRetryWithLowerConcurrency { - maxConcurrency = meta.parallel - int64(retry)*meta.parallel/int64(maxRetry) - maxConcurrency = int64Max(defaultConcurrency, maxConcurrency) - meta.lastMaxConcurrency = int(maxConcurrency) - if !meta.noSleepingTime { - sleepingTime := intMin(int(math.Exp2(float64(retry))), 16) - time.Sleep(time.Duration(sleepingTime) * time.Second) - } - } else if meta.resStatus == needRetry { - if !meta.noSleepingTime { - sleepingTime := intMin(int(math.Exp2(float64(retry))), 16) - time.Sleep(time.Duration(sleepingTime) * time.Second) - } } lastErr = meta.lastError } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/test_util.go b/ext/vendor/github.com/snowflakedb/gosnowflake/test_util.go new file mode 100644 index 0000000..f9f7a9b --- /dev/null +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/test_util.go @@ -0,0 +1,33 @@ +// Copyright (c) 2021-2022 Snowflake Computing Inc. All rights reserved. + +package gosnowflake + +import ( + "io" + "net/http" + "strconv" + "testing" +) + +func resetHTTPMocks(t *testing.T) { + _, err := http.Post("http://localhost:12345/reset", "text/plain", nil) + if err != nil { + t.Fatalf("Cannot reset HTTP mocks") + } +} + +func getMocksInvocations(t *testing.T) int { + resp, err := http.Get("http://localhost:12345/invocations") + if err != nil { + t.Fatalf(err.Error()) + } + bytes, err := io.ReadAll(resp.Body) + if err != nil { + t.Fatalf(err.Error()) + } + ret, err := strconv.Atoi(string(bytes)) + if err != nil { + t.Fatalf(err.Error()) + } + return ret +} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/transaction.go b/ext/vendor/github.com/snowflakedb/gosnowflake/transaction.go index 1ccf73b..d6e5fa6 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/transaction.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/transaction.go @@ -3,30 +3,50 @@ package gosnowflake import ( + "context" "database/sql/driver" + "errors" ) type snowflakeTx struct { - sc *snowflakeConn + sc *snowflakeConn + ctx context.Context } -func (tx *snowflakeTx) Commit() (err error) { - if tx.sc == nil || tx.sc.rest == nil { - return driver.ErrBadConn +type txCommand int + +const ( + commit txCommand = iota + rollback +) + +func (cmd txCommand) string() (string, error) { + switch cmd { + case commit: + return "COMMIT", nil + case rollback: + return "ROLLBACK", nil } - _, err = tx.sc.exec(tx.sc.ctx, "COMMIT", false /* noResult */, false /* isInternal */, false /* describeOnly */, nil) + return "", errors.New("unsupported transaction command") +} + +func (tx *snowflakeTx) Commit() error { + return tx.execTxCommand(commit) +} + +func (tx *snowflakeTx) Rollback() error { + return tx.execTxCommand(rollback) +} + +func (tx *snowflakeTx) execTxCommand(command txCommand) (err error) { + txStr, err := command.string() if err != nil { return } - tx.sc = nil - return -} - -func (tx *snowflakeTx) Rollback() (err error) { if tx.sc == nil || tx.sc.rest == nil { return driver.ErrBadConn } - _, err = tx.sc.exec(tx.sc.ctx, "ROLLBACK", false /* noResult */, false /* isInternal */, false /* describeOnly */, nil) + _, err = tx.sc.exec(tx.ctx, txStr, false /* noResult */, false /* isInternal */, false /* describeOnly */, nil) if err != nil { return } diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/util.go b/ext/vendor/github.com/snowflakedb/gosnowflake/util.go index 74ad549..d112189 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/util.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/util.go @@ -5,10 +5,14 @@ package gosnowflake import ( "context" "database/sql/driver" + "fmt" "io" + "os" "strings" "sync" "time" + + "github.com/apache/arrow/go/v12/arrow/memory" ) type contextKey string @@ -23,6 +27,7 @@ const ( fileTransferOptions contextKey = "FILE_TRANSFER_OPTIONS" enableHigherPrecision contextKey = "ENABLE_HIGHER_PRECISION" arrowBatches contextKey = "ARROW_BATCHES" + arrowAlloc contextKey = "ARROW_ALLOC" ) const ( @@ -89,6 +94,13 @@ func WithArrowBatches(ctx context.Context) context.Context { return context.WithValue(ctx, arrowBatches, true) } +// WithArrowAllocator returns a context embedding the provided allocator +// which will be utilized by chunk downloaders when constructing Arrow +// objects. +func WithArrowAllocator(ctx context.Context, pool memory.Allocator) context.Context { + return context.WithValue(ctx, arrowAlloc, pool) +} + // Get the request ID from the context if specified, otherwise generate one func getOrGenerateRequestIDFromContext(ctx context.Context) UUID { requestID, ok := ctx.Value(snowflakeRequestIDKey).(UUID) @@ -212,3 +224,14 @@ func escapeForCSV(value string) string { } return value } + +// GetFromEnv is used to get the value of an environment variable from the system +func GetFromEnv(name string, failOnMissing bool) (string, error) { + if value := os.Getenv(name); value != "" { + return value, nil + } + if failOnMissing { + return "", fmt.Errorf("%v environment variable is not set", name) + } + return "", nil +} diff --git a/ext/vendor/github.com/snowflakedb/gosnowflake/version.go b/ext/vendor/github.com/snowflakedb/gosnowflake/version.go index a2892cb..cd59328 100644 --- a/ext/vendor/github.com/snowflakedb/gosnowflake/version.go +++ b/ext/vendor/github.com/snowflakedb/gosnowflake/version.go @@ -3,4 +3,4 @@ package gosnowflake // SnowflakeGoDriverVersion is the version of Go Snowflake Driver. -const SnowflakeGoDriverVersion = "1.6.20" +const SnowflakeGoDriverVersion = "1.6.23" diff --git a/ext/vendor/golang.org/x/exp/LICENSE b/ext/vendor/golang.org/x/exp/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/ext/vendor/golang.org/x/exp/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ext/vendor/golang.org/x/exp/PATENTS b/ext/vendor/golang.org/x/exp/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/ext/vendor/golang.org/x/exp/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google 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, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/ext/vendor/golang.org/x/exp/constraints/constraints.go b/ext/vendor/golang.org/x/exp/constraints/constraints.go new file mode 100644 index 0000000..2c033df --- /dev/null +++ b/ext/vendor/golang.org/x/exp/constraints/constraints.go @@ -0,0 +1,50 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package constraints defines a set of useful constraints to be used +// with type parameters. +package constraints + +// Signed is a constraint that permits any signed integer type. +// If future releases of Go add new predeclared signed integer types, +// this constraint will be modified to include them. +type Signed interface { + ~int | ~int8 | ~int16 | ~int32 | ~int64 +} + +// Unsigned is a constraint that permits any unsigned integer type. +// If future releases of Go add new predeclared unsigned integer types, +// this constraint will be modified to include them. +type Unsigned interface { + ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr +} + +// Integer is a constraint that permits any integer type. +// If future releases of Go add new predeclared integer types, +// this constraint will be modified to include them. +type Integer interface { + Signed | Unsigned +} + +// Float is a constraint that permits any floating-point type. +// If future releases of Go add new predeclared floating-point types, +// this constraint will be modified to include them. +type Float interface { + ~float32 | ~float64 +} + +// Complex is a constraint that permits any complex numeric type. +// If future releases of Go add new predeclared complex numeric types, +// this constraint will be modified to include them. +type Complex interface { + ~complex64 | ~complex128 +} + +// Ordered is a constraint that permits any ordered type: any type +// that supports the operators < <= >= >. +// If future releases of Go add new ordered types, +// this constraint will be modified to include them. +type Ordered interface { + Integer | Float | ~string +} diff --git a/ext/vendor/golang.org/x/exp/maps/maps.go b/ext/vendor/golang.org/x/exp/maps/maps.go new file mode 100644 index 0000000..ecc0dab --- /dev/null +++ b/ext/vendor/golang.org/x/exp/maps/maps.go @@ -0,0 +1,94 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package maps defines various functions useful with maps of any type. +package maps + +// Keys returns the keys of the map m. +// The keys will be in an indeterminate order. +func Keys[M ~map[K]V, K comparable, V any](m M) []K { + r := make([]K, 0, len(m)) + for k := range m { + r = append(r, k) + } + return r +} + +// Values returns the values of the map m. +// The values will be in an indeterminate order. +func Values[M ~map[K]V, K comparable, V any](m M) []V { + r := make([]V, 0, len(m)) + for _, v := range m { + r = append(r, v) + } + return r +} + +// Equal reports whether two maps contain the same key/value pairs. +// Values are compared using ==. +func Equal[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool { + if len(m1) != len(m2) { + return false + } + for k, v1 := range m1 { + if v2, ok := m2[k]; !ok || v1 != v2 { + return false + } + } + return true +} + +// EqualFunc is like Equal, but compares values using eq. +// Keys are still compared with ==. +func EqualFunc[M1 ~map[K]V1, M2 ~map[K]V2, K comparable, V1, V2 any](m1 M1, m2 M2, eq func(V1, V2) bool) bool { + if len(m1) != len(m2) { + return false + } + for k, v1 := range m1 { + if v2, ok := m2[k]; !ok || !eq(v1, v2) { + return false + } + } + return true +} + +// Clear removes all entries from m, leaving it empty. +func Clear[M ~map[K]V, K comparable, V any](m M) { + for k := range m { + delete(m, k) + } +} + +// Clone returns a copy of m. This is a shallow clone: +// the new keys and values are set using ordinary assignment. +func Clone[M ~map[K]V, K comparable, V any](m M) M { + // Preserve nil in case it matters. + if m == nil { + return nil + } + r := make(M, len(m)) + for k, v := range m { + r[k] = v + } + return r +} + +// Copy copies all key/value pairs in src adding them to dst. +// When a key in src is already present in dst, +// the value in dst will be overwritten by the value associated +// with the key in src. +func Copy[M1 ~map[K]V, M2 ~map[K]V, K comparable, V any](dst M1, src M2) { + for k, v := range src { + dst[k] = v + } +} + +// DeleteFunc deletes any key/value pairs from m for which del returns true. +func DeleteFunc[M ~map[K]V, K comparable, V any](m M, del func(K, V) bool) { + for k, v := range m { + if del(k, v) { + delete(m, k) + } + } +} diff --git a/ext/vendor/golang.org/x/exp/slices/slices.go b/ext/vendor/golang.org/x/exp/slices/slices.go new file mode 100644 index 0000000..cff0cd4 --- /dev/null +++ b/ext/vendor/golang.org/x/exp/slices/slices.go @@ -0,0 +1,258 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package slices defines various functions useful with slices of any type. +// Unless otherwise specified, these functions all apply to the elements +// of a slice at index 0 <= i < len(s). +// +// Note that the less function in IsSortedFunc, SortFunc, SortStableFunc requires a +// strict weak ordering (https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings), +// or the sorting may fail to sort correctly. A common case is when sorting slices of +// floating-point numbers containing NaN values. +package slices + +import "golang.org/x/exp/constraints" + +// Equal reports whether two slices are equal: the same length and all +// elements equal. If the lengths are different, Equal returns false. +// Otherwise, the elements are compared in increasing index order, and the +// comparison stops at the first unequal pair. +// Floating point NaNs are not considered equal. +func Equal[E comparable](s1, s2 []E) bool { + if len(s1) != len(s2) { + return false + } + for i := range s1 { + if s1[i] != s2[i] { + return false + } + } + return true +} + +// EqualFunc reports whether two slices are equal using a comparison +// function on each pair of elements. If the lengths are different, +// EqualFunc returns false. Otherwise, the elements are compared in +// increasing index order, and the comparison stops at the first index +// for which eq returns false. +func EqualFunc[E1, E2 any](s1 []E1, s2 []E2, eq func(E1, E2) bool) bool { + if len(s1) != len(s2) { + return false + } + for i, v1 := range s1 { + v2 := s2[i] + if !eq(v1, v2) { + return false + } + } + return true +} + +// Compare compares the elements of s1 and s2. +// The elements are compared sequentially, starting at index 0, +// until one element is not equal to the other. +// The result of comparing the first non-matching elements is returned. +// If both slices are equal until one of them ends, the shorter slice is +// considered less than the longer one. +// The result is 0 if s1 == s2, -1 if s1 < s2, and +1 if s1 > s2. +// Comparisons involving floating point NaNs are ignored. +func Compare[E constraints.Ordered](s1, s2 []E) int { + s2len := len(s2) + for i, v1 := range s1 { + if i >= s2len { + return +1 + } + v2 := s2[i] + switch { + case v1 < v2: + return -1 + case v1 > v2: + return +1 + } + } + if len(s1) < s2len { + return -1 + } + return 0 +} + +// CompareFunc is like Compare but uses a comparison function +// on each pair of elements. The elements are compared in increasing +// index order, and the comparisons stop after the first time cmp +// returns non-zero. +// The result is the first non-zero result of cmp; if cmp always +// returns 0 the result is 0 if len(s1) == len(s2), -1 if len(s1) < len(s2), +// and +1 if len(s1) > len(s2). +func CompareFunc[E1, E2 any](s1 []E1, s2 []E2, cmp func(E1, E2) int) int { + s2len := len(s2) + for i, v1 := range s1 { + if i >= s2len { + return +1 + } + v2 := s2[i] + if c := cmp(v1, v2); c != 0 { + return c + } + } + if len(s1) < s2len { + return -1 + } + return 0 +} + +// Index returns the index of the first occurrence of v in s, +// or -1 if not present. +func Index[E comparable](s []E, v E) int { + for i, vs := range s { + if v == vs { + return i + } + } + return -1 +} + +// IndexFunc returns the first index i satisfying f(s[i]), +// or -1 if none do. +func IndexFunc[E any](s []E, f func(E) bool) int { + for i, v := range s { + if f(v) { + return i + } + } + return -1 +} + +// Contains reports whether v is present in s. +func Contains[E comparable](s []E, v E) bool { + return Index(s, v) >= 0 +} + +// ContainsFunc reports whether at least one +// element e of s satisfies f(e). +func ContainsFunc[E any](s []E, f func(E) bool) bool { + return IndexFunc(s, f) >= 0 +} + +// Insert inserts the values v... into s at index i, +// returning the modified slice. +// In the returned slice r, r[i] == v[0]. +// Insert panics if i is out of range. +// This function is O(len(s) + len(v)). +func Insert[S ~[]E, E any](s S, i int, v ...E) S { + tot := len(s) + len(v) + if tot <= cap(s) { + s2 := s[:tot] + copy(s2[i+len(v):], s[i:]) + copy(s2[i:], v) + return s2 + } + s2 := make(S, tot) + copy(s2, s[:i]) + copy(s2[i:], v) + copy(s2[i+len(v):], s[i:]) + return s2 +} + +// Delete removes the elements s[i:j] from s, returning the modified slice. +// Delete panics if s[i:j] is not a valid slice of s. +// Delete modifies the contents of the slice s; it does not create a new slice. +// Delete is O(len(s)-j), so if many items must be deleted, it is better to +// make a single call deleting them all together than to delete one at a time. +// Delete might not modify the elements s[len(s)-(j-i):len(s)]. If those +// elements contain pointers you might consider zeroing those elements so that +// objects they reference can be garbage collected. +func Delete[S ~[]E, E any](s S, i, j int) S { + _ = s[i:j] // bounds check + + return append(s[:i], s[j:]...) +} + +// Replace replaces the elements s[i:j] by the given v, and returns the +// modified slice. Replace panics if s[i:j] is not a valid slice of s. +func Replace[S ~[]E, E any](s S, i, j int, v ...E) S { + _ = s[i:j] // verify that i:j is a valid subslice + tot := len(s[:i]) + len(v) + len(s[j:]) + if tot <= cap(s) { + s2 := s[:tot] + copy(s2[i+len(v):], s[j:]) + copy(s2[i:], v) + return s2 + } + s2 := make(S, tot) + copy(s2, s[:i]) + copy(s2[i:], v) + copy(s2[i+len(v):], s[j:]) + return s2 +} + +// Clone returns a copy of the slice. +// The elements are copied using assignment, so this is a shallow clone. +func Clone[S ~[]E, E any](s S) S { + // Preserve nil in case it matters. + if s == nil { + return nil + } + return append(S([]E{}), s...) +} + +// Compact replaces consecutive runs of equal elements with a single copy. +// This is like the uniq command found on Unix. +// Compact modifies the contents of the slice s; it does not create a new slice. +// When Compact discards m elements in total, it might not modify the elements +// s[len(s)-m:len(s)]. If those elements contain pointers you might consider +// zeroing those elements so that objects they reference can be garbage collected. +func Compact[S ~[]E, E comparable](s S) S { + if len(s) < 2 { + return s + } + i := 1 + last := s[0] + for _, v := range s[1:] { + if v != last { + s[i] = v + i++ + last = v + } + } + return s[:i] +} + +// CompactFunc is like Compact but uses a comparison function. +func CompactFunc[S ~[]E, E any](s S, eq func(E, E) bool) S { + if len(s) < 2 { + return s + } + i := 1 + last := s[0] + for _, v := range s[1:] { + if !eq(v, last) { + s[i] = v + i++ + last = v + } + } + return s[:i] +} + +// Grow increases the slice's capacity, if necessary, to guarantee space for +// another n elements. After Grow(n), at least n elements can be appended +// to the slice without another allocation. If n is negative or too large to +// allocate the memory, Grow panics. +func Grow[S ~[]E, E any](s S, n int) S { + if n < 0 { + panic("cannot be negative") + } + if n -= cap(s) - len(s); n > 0 { + // TODO(https://go.dev/issue/53888): Make using []E instead of S + // to workaround a compiler bug where the runtime.growslice optimization + // does not take effect. Revert when the compiler is fixed. + s = append([]E(s)[:cap(s)], make([]E, n)...)[:len(s)] + } + return s +} + +// Clip removes unused capacity from the slice, returning s[:len(s):len(s)]. +func Clip[S ~[]E, E any](s S) S { + return s[:len(s):len(s)] +} diff --git a/ext/vendor/golang.org/x/exp/slices/sort.go b/ext/vendor/golang.org/x/exp/slices/sort.go new file mode 100644 index 0000000..f14f40d --- /dev/null +++ b/ext/vendor/golang.org/x/exp/slices/sort.go @@ -0,0 +1,126 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package slices + +import ( + "math/bits" + + "golang.org/x/exp/constraints" +) + +// Sort sorts a slice of any ordered type in ascending order. +// Sort may fail to sort correctly when sorting slices of floating-point +// numbers containing Not-a-number (NaN) values. +// Use slices.SortFunc(x, func(a, b float64) bool {return a < b || (math.IsNaN(a) && !math.IsNaN(b))}) +// instead if the input may contain NaNs. +func Sort[E constraints.Ordered](x []E) { + n := len(x) + pdqsortOrdered(x, 0, n, bits.Len(uint(n))) +} + +// SortFunc sorts the slice x in ascending order as determined by the less function. +// This sort is not guaranteed to be stable. +// +// SortFunc requires that less is a strict weak ordering. +// See https://en.wikipedia.org/wiki/Weak_ordering#Strict_weak_orderings. +func SortFunc[E any](x []E, less func(a, b E) bool) { + n := len(x) + pdqsortLessFunc(x, 0, n, bits.Len(uint(n)), less) +} + +// SortStableFunc sorts the slice x while keeping the original order of equal +// elements, using less to compare elements. +func SortStableFunc[E any](x []E, less func(a, b E) bool) { + stableLessFunc(x, len(x), less) +} + +// IsSorted reports whether x is sorted in ascending order. +func IsSorted[E constraints.Ordered](x []E) bool { + for i := len(x) - 1; i > 0; i-- { + if x[i] < x[i-1] { + return false + } + } + return true +} + +// IsSortedFunc reports whether x is sorted in ascending order, with less as the +// comparison function. +func IsSortedFunc[E any](x []E, less func(a, b E) bool) bool { + for i := len(x) - 1; i > 0; i-- { + if less(x[i], x[i-1]) { + return false + } + } + return true +} + +// BinarySearch searches for target in a sorted slice and returns the position +// where target is found, or the position where target would appear in the +// sort order; it also returns a bool saying whether the target is really found +// in the slice. The slice must be sorted in increasing order. +func BinarySearch[E constraints.Ordered](x []E, target E) (int, bool) { + // Inlining is faster than calling BinarySearchFunc with a lambda. + n := len(x) + // Define x[-1] < target and x[n] >= target. + // Invariant: x[i-1] < target, x[j] >= target. + i, j := 0, n + for i < j { + h := int(uint(i+j) >> 1) // avoid overflow when computing h + // i ≤ h < j + if x[h] < target { + i = h + 1 // preserves x[i-1] < target + } else { + j = h // preserves x[j] >= target + } + } + // i == j, x[i-1] < target, and x[j] (= x[i]) >= target => answer is i. + return i, i < n && x[i] == target +} + +// BinarySearchFunc works like BinarySearch, but uses a custom comparison +// function. The slice must be sorted in increasing order, where "increasing" is +// defined by cmp. cmp(a, b) is expected to return an integer comparing the two +// parameters: 0 if a == b, a negative number if a < b and a positive number if +// a > b. +func BinarySearchFunc[E, T any](x []E, target T, cmp func(E, T) int) (int, bool) { + n := len(x) + // Define cmp(x[-1], target) < 0 and cmp(x[n], target) >= 0 . + // Invariant: cmp(x[i - 1], target) < 0, cmp(x[j], target) >= 0. + i, j := 0, n + for i < j { + h := int(uint(i+j) >> 1) // avoid overflow when computing h + // i ≤ h < j + if cmp(x[h], target) < 0 { + i = h + 1 // preserves cmp(x[i - 1], target) < 0 + } else { + j = h // preserves cmp(x[j], target) >= 0 + } + } + // i == j, cmp(x[i-1], target) < 0, and cmp(x[j], target) (= cmp(x[i], target)) >= 0 => answer is i. + return i, i < n && cmp(x[i], target) == 0 +} + +type sortedHint int // hint for pdqsort when choosing the pivot + +const ( + unknownHint sortedHint = iota + increasingHint + decreasingHint +) + +// xorshift paper: https://www.jstatsoft.org/article/view/v008i14/xorshift.pdf +type xorshift uint64 + +func (r *xorshift) Next() uint64 { + *r ^= *r << 13 + *r ^= *r >> 17 + *r ^= *r << 5 + return uint64(*r) +} + +func nextPowerOfTwo(length int) uint { + return 1 << bits.Len(uint(length)) +} diff --git a/ext/vendor/golang.org/x/exp/slices/zsortfunc.go b/ext/vendor/golang.org/x/exp/slices/zsortfunc.go new file mode 100644 index 0000000..2a63247 --- /dev/null +++ b/ext/vendor/golang.org/x/exp/slices/zsortfunc.go @@ -0,0 +1,479 @@ +// Code generated by gen_sort_variants.go; DO NOT EDIT. + +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package slices + +// insertionSortLessFunc sorts data[a:b] using insertion sort. +func insertionSortLessFunc[E any](data []E, a, b int, less func(a, b E) bool) { + for i := a + 1; i < b; i++ { + for j := i; j > a && less(data[j], data[j-1]); j-- { + data[j], data[j-1] = data[j-1], data[j] + } + } +} + +// siftDownLessFunc implements the heap property on data[lo:hi]. +// first is an offset into the array where the root of the heap lies. +func siftDownLessFunc[E any](data []E, lo, hi, first int, less func(a, b E) bool) { + root := lo + for { + child := 2*root + 1 + if child >= hi { + break + } + if child+1 < hi && less(data[first+child], data[first+child+1]) { + child++ + } + if !less(data[first+root], data[first+child]) { + return + } + data[first+root], data[first+child] = data[first+child], data[first+root] + root = child + } +} + +func heapSortLessFunc[E any](data []E, a, b int, less func(a, b E) bool) { + first := a + lo := 0 + hi := b - a + + // Build heap with greatest element at top. + for i := (hi - 1) / 2; i >= 0; i-- { + siftDownLessFunc(data, i, hi, first, less) + } + + // Pop elements, largest first, into end of data. + for i := hi - 1; i >= 0; i-- { + data[first], data[first+i] = data[first+i], data[first] + siftDownLessFunc(data, lo, i, first, less) + } +} + +// pdqsortLessFunc sorts data[a:b]. +// The algorithm based on pattern-defeating quicksort(pdqsort), but without the optimizations from BlockQuicksort. +// pdqsort paper: https://arxiv.org/pdf/2106.05123.pdf +// C++ implementation: https://github.com/orlp/pdqsort +// Rust implementation: https://docs.rs/pdqsort/latest/pdqsort/ +// limit is the number of allowed bad (very unbalanced) pivots before falling back to heapsort. +func pdqsortLessFunc[E any](data []E, a, b, limit int, less func(a, b E) bool) { + const maxInsertion = 12 + + var ( + wasBalanced = true // whether the last partitioning was reasonably balanced + wasPartitioned = true // whether the slice was already partitioned + ) + + for { + length := b - a + + if length <= maxInsertion { + insertionSortLessFunc(data, a, b, less) + return + } + + // Fall back to heapsort if too many bad choices were made. + if limit == 0 { + heapSortLessFunc(data, a, b, less) + return + } + + // If the last partitioning was imbalanced, we need to breaking patterns. + if !wasBalanced { + breakPatternsLessFunc(data, a, b, less) + limit-- + } + + pivot, hint := choosePivotLessFunc(data, a, b, less) + if hint == decreasingHint { + reverseRangeLessFunc(data, a, b, less) + // The chosen pivot was pivot-a elements after the start of the array. + // After reversing it is pivot-a elements before the end of the array. + // The idea came from Rust's implementation. + pivot = (b - 1) - (pivot - a) + hint = increasingHint + } + + // The slice is likely already sorted. + if wasBalanced && wasPartitioned && hint == increasingHint { + if partialInsertionSortLessFunc(data, a, b, less) { + return + } + } + + // Probably the slice contains many duplicate elements, partition the slice into + // elements equal to and elements greater than the pivot. + if a > 0 && !less(data[a-1], data[pivot]) { + mid := partitionEqualLessFunc(data, a, b, pivot, less) + a = mid + continue + } + + mid, alreadyPartitioned := partitionLessFunc(data, a, b, pivot, less) + wasPartitioned = alreadyPartitioned + + leftLen, rightLen := mid-a, b-mid + balanceThreshold := length / 8 + if leftLen < rightLen { + wasBalanced = leftLen >= balanceThreshold + pdqsortLessFunc(data, a, mid, limit, less) + a = mid + 1 + } else { + wasBalanced = rightLen >= balanceThreshold + pdqsortLessFunc(data, mid+1, b, limit, less) + b = mid + } + } +} + +// partitionLessFunc does one quicksort partition. +// Let p = data[pivot] +// Moves elements in data[a:b] around, so that data[i]

=p for inewpivot. +// On return, data[newpivot] = p +func partitionLessFunc[E any](data []E, a, b, pivot int, less func(a, b E) bool) (newpivot int, alreadyPartitioned bool) { + data[a], data[pivot] = data[pivot], data[a] + i, j := a+1, b-1 // i and j are inclusive of the elements remaining to be partitioned + + for i <= j && less(data[i], data[a]) { + i++ + } + for i <= j && !less(data[j], data[a]) { + j-- + } + if i > j { + data[j], data[a] = data[a], data[j] + return j, true + } + data[i], data[j] = data[j], data[i] + i++ + j-- + + for { + for i <= j && less(data[i], data[a]) { + i++ + } + for i <= j && !less(data[j], data[a]) { + j-- + } + if i > j { + break + } + data[i], data[j] = data[j], data[i] + i++ + j-- + } + data[j], data[a] = data[a], data[j] + return j, false +} + +// partitionEqualLessFunc partitions data[a:b] into elements equal to data[pivot] followed by elements greater than data[pivot]. +// It assumed that data[a:b] does not contain elements smaller than the data[pivot]. +func partitionEqualLessFunc[E any](data []E, a, b, pivot int, less func(a, b E) bool) (newpivot int) { + data[a], data[pivot] = data[pivot], data[a] + i, j := a+1, b-1 // i and j are inclusive of the elements remaining to be partitioned + + for { + for i <= j && !less(data[a], data[i]) { + i++ + } + for i <= j && less(data[a], data[j]) { + j-- + } + if i > j { + break + } + data[i], data[j] = data[j], data[i] + i++ + j-- + } + return i +} + +// partialInsertionSortLessFunc partially sorts a slice, returns true if the slice is sorted at the end. +func partialInsertionSortLessFunc[E any](data []E, a, b int, less func(a, b E) bool) bool { + const ( + maxSteps = 5 // maximum number of adjacent out-of-order pairs that will get shifted + shortestShifting = 50 // don't shift any elements on short arrays + ) + i := a + 1 + for j := 0; j < maxSteps; j++ { + for i < b && !less(data[i], data[i-1]) { + i++ + } + + if i == b { + return true + } + + if b-a < shortestShifting { + return false + } + + data[i], data[i-1] = data[i-1], data[i] + + // Shift the smaller one to the left. + if i-a >= 2 { + for j := i - 1; j >= 1; j-- { + if !less(data[j], data[j-1]) { + break + } + data[j], data[j-1] = data[j-1], data[j] + } + } + // Shift the greater one to the right. + if b-i >= 2 { + for j := i + 1; j < b; j++ { + if !less(data[j], data[j-1]) { + break + } + data[j], data[j-1] = data[j-1], data[j] + } + } + } + return false +} + +// breakPatternsLessFunc scatters some elements around in an attempt to break some patterns +// that might cause imbalanced partitions in quicksort. +func breakPatternsLessFunc[E any](data []E, a, b int, less func(a, b E) bool) { + length := b - a + if length >= 8 { + random := xorshift(length) + modulus := nextPowerOfTwo(length) + + for idx := a + (length/4)*2 - 1; idx <= a+(length/4)*2+1; idx++ { + other := int(uint(random.Next()) & (modulus - 1)) + if other >= length { + other -= length + } + data[idx], data[a+other] = data[a+other], data[idx] + } + } +} + +// choosePivotLessFunc chooses a pivot in data[a:b]. +// +// [0,8): chooses a static pivot. +// [8,shortestNinther): uses the simple median-of-three method. +// [shortestNinther,∞): uses the Tukey ninther method. +func choosePivotLessFunc[E any](data []E, a, b int, less func(a, b E) bool) (pivot int, hint sortedHint) { + const ( + shortestNinther = 50 + maxSwaps = 4 * 3 + ) + + l := b - a + + var ( + swaps int + i = a + l/4*1 + j = a + l/4*2 + k = a + l/4*3 + ) + + if l >= 8 { + if l >= shortestNinther { + // Tukey ninther method, the idea came from Rust's implementation. + i = medianAdjacentLessFunc(data, i, &swaps, less) + j = medianAdjacentLessFunc(data, j, &swaps, less) + k = medianAdjacentLessFunc(data, k, &swaps, less) + } + // Find the median among i, j, k and stores it into j. + j = medianLessFunc(data, i, j, k, &swaps, less) + } + + switch swaps { + case 0: + return j, increasingHint + case maxSwaps: + return j, decreasingHint + default: + return j, unknownHint + } +} + +// order2LessFunc returns x,y where data[x] <= data[y], where x,y=a,b or x,y=b,a. +func order2LessFunc[E any](data []E, a, b int, swaps *int, less func(a, b E) bool) (int, int) { + if less(data[b], data[a]) { + *swaps++ + return b, a + } + return a, b +} + +// medianLessFunc returns x where data[x] is the median of data[a],data[b],data[c], where x is a, b, or c. +func medianLessFunc[E any](data []E, a, b, c int, swaps *int, less func(a, b E) bool) int { + a, b = order2LessFunc(data, a, b, swaps, less) + b, c = order2LessFunc(data, b, c, swaps, less) + a, b = order2LessFunc(data, a, b, swaps, less) + return b +} + +// medianAdjacentLessFunc finds the median of data[a - 1], data[a], data[a + 1] and stores the index into a. +func medianAdjacentLessFunc[E any](data []E, a int, swaps *int, less func(a, b E) bool) int { + return medianLessFunc(data, a-1, a, a+1, swaps, less) +} + +func reverseRangeLessFunc[E any](data []E, a, b int, less func(a, b E) bool) { + i := a + j := b - 1 + for i < j { + data[i], data[j] = data[j], data[i] + i++ + j-- + } +} + +func swapRangeLessFunc[E any](data []E, a, b, n int, less func(a, b E) bool) { + for i := 0; i < n; i++ { + data[a+i], data[b+i] = data[b+i], data[a+i] + } +} + +func stableLessFunc[E any](data []E, n int, less func(a, b E) bool) { + blockSize := 20 // must be > 0 + a, b := 0, blockSize + for b <= n { + insertionSortLessFunc(data, a, b, less) + a = b + b += blockSize + } + insertionSortLessFunc(data, a, n, less) + + for blockSize < n { + a, b = 0, 2*blockSize + for b <= n { + symMergeLessFunc(data, a, a+blockSize, b, less) + a = b + b += 2 * blockSize + } + if m := a + blockSize; m < n { + symMergeLessFunc(data, a, m, n, less) + } + blockSize *= 2 + } +} + +// symMergeLessFunc merges the two sorted subsequences data[a:m] and data[m:b] using +// the SymMerge algorithm from Pok-Son Kim and Arne Kutzner, "Stable Minimum +// Storage Merging by Symmetric Comparisons", in Susanne Albers and Tomasz +// Radzik, editors, Algorithms - ESA 2004, volume 3221 of Lecture Notes in +// Computer Science, pages 714-723. Springer, 2004. +// +// Let M = m-a and N = b-n. Wolog M < N. +// The recursion depth is bound by ceil(log(N+M)). +// The algorithm needs O(M*log(N/M + 1)) calls to data.Less. +// The algorithm needs O((M+N)*log(M)) calls to data.Swap. +// +// The paper gives O((M+N)*log(M)) as the number of assignments assuming a +// rotation algorithm which uses O(M+N+gcd(M+N)) assignments. The argumentation +// in the paper carries through for Swap operations, especially as the block +// swapping rotate uses only O(M+N) Swaps. +// +// symMerge assumes non-degenerate arguments: a < m && m < b. +// Having the caller check this condition eliminates many leaf recursion calls, +// which improves performance. +func symMergeLessFunc[E any](data []E, a, m, b int, less func(a, b E) bool) { + // Avoid unnecessary recursions of symMerge + // by direct insertion of data[a] into data[m:b] + // if data[a:m] only contains one element. + if m-a == 1 { + // Use binary search to find the lowest index i + // such that data[i] >= data[a] for m <= i < b. + // Exit the search loop with i == b in case no such index exists. + i := m + j := b + for i < j { + h := int(uint(i+j) >> 1) + if less(data[h], data[a]) { + i = h + 1 + } else { + j = h + } + } + // Swap values until data[a] reaches the position before i. + for k := a; k < i-1; k++ { + data[k], data[k+1] = data[k+1], data[k] + } + return + } + + // Avoid unnecessary recursions of symMerge + // by direct insertion of data[m] into data[a:m] + // if data[m:b] only contains one element. + if b-m == 1 { + // Use binary search to find the lowest index i + // such that data[i] > data[m] for a <= i < m. + // Exit the search loop with i == m in case no such index exists. + i := a + j := m + for i < j { + h := int(uint(i+j) >> 1) + if !less(data[m], data[h]) { + i = h + 1 + } else { + j = h + } + } + // Swap values until data[m] reaches the position i. + for k := m; k > i; k-- { + data[k], data[k-1] = data[k-1], data[k] + } + return + } + + mid := int(uint(a+b) >> 1) + n := mid + m + var start, r int + if m > mid { + start = n - b + r = mid + } else { + start = a + r = m + } + p := n - 1 + + for start < r { + c := int(uint(start+r) >> 1) + if !less(data[p-c], data[c]) { + start = c + 1 + } else { + r = c + } + } + + end := n - start + if start < m && m < end { + rotateLessFunc(data, start, m, end, less) + } + if a < start && start < mid { + symMergeLessFunc(data, a, start, mid, less) + } + if mid < end && end < b { + symMergeLessFunc(data, mid, end, b, less) + } +} + +// rotateLessFunc rotates two consecutive blocks u = data[a:m] and v = data[m:b] in data: +// Data of the form 'x u v y' is changed to 'x v u y'. +// rotate performs at most b-a many calls to data.Swap, +// and it assumes non-degenerate arguments: a < m && m < b. +func rotateLessFunc[E any](data []E, a, m, b int, less func(a, b E) bool) { + i := m - a + j := b - m + + for i != j { + if i > j { + swapRangeLessFunc(data, m-i, m, j, less) + i -= j + } else { + swapRangeLessFunc(data, m-i, m+j-i, i, less) + j -= i + } + } + // i == j + swapRangeLessFunc(data, m-i, m, i, less) +} diff --git a/ext/vendor/golang.org/x/exp/slices/zsortordered.go b/ext/vendor/golang.org/x/exp/slices/zsortordered.go new file mode 100644 index 0000000..efaa1c8 --- /dev/null +++ b/ext/vendor/golang.org/x/exp/slices/zsortordered.go @@ -0,0 +1,481 @@ +// Code generated by gen_sort_variants.go; DO NOT EDIT. + +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package slices + +import "golang.org/x/exp/constraints" + +// insertionSortOrdered sorts data[a:b] using insertion sort. +func insertionSortOrdered[E constraints.Ordered](data []E, a, b int) { + for i := a + 1; i < b; i++ { + for j := i; j > a && (data[j] < data[j-1]); j-- { + data[j], data[j-1] = data[j-1], data[j] + } + } +} + +// siftDownOrdered implements the heap property on data[lo:hi]. +// first is an offset into the array where the root of the heap lies. +func siftDownOrdered[E constraints.Ordered](data []E, lo, hi, first int) { + root := lo + for { + child := 2*root + 1 + if child >= hi { + break + } + if child+1 < hi && (data[first+child] < data[first+child+1]) { + child++ + } + if !(data[first+root] < data[first+child]) { + return + } + data[first+root], data[first+child] = data[first+child], data[first+root] + root = child + } +} + +func heapSortOrdered[E constraints.Ordered](data []E, a, b int) { + first := a + lo := 0 + hi := b - a + + // Build heap with greatest element at top. + for i := (hi - 1) / 2; i >= 0; i-- { + siftDownOrdered(data, i, hi, first) + } + + // Pop elements, largest first, into end of data. + for i := hi - 1; i >= 0; i-- { + data[first], data[first+i] = data[first+i], data[first] + siftDownOrdered(data, lo, i, first) + } +} + +// pdqsortOrdered sorts data[a:b]. +// The algorithm based on pattern-defeating quicksort(pdqsort), but without the optimizations from BlockQuicksort. +// pdqsort paper: https://arxiv.org/pdf/2106.05123.pdf +// C++ implementation: https://github.com/orlp/pdqsort +// Rust implementation: https://docs.rs/pdqsort/latest/pdqsort/ +// limit is the number of allowed bad (very unbalanced) pivots before falling back to heapsort. +func pdqsortOrdered[E constraints.Ordered](data []E, a, b, limit int) { + const maxInsertion = 12 + + var ( + wasBalanced = true // whether the last partitioning was reasonably balanced + wasPartitioned = true // whether the slice was already partitioned + ) + + for { + length := b - a + + if length <= maxInsertion { + insertionSortOrdered(data, a, b) + return + } + + // Fall back to heapsort if too many bad choices were made. + if limit == 0 { + heapSortOrdered(data, a, b) + return + } + + // If the last partitioning was imbalanced, we need to breaking patterns. + if !wasBalanced { + breakPatternsOrdered(data, a, b) + limit-- + } + + pivot, hint := choosePivotOrdered(data, a, b) + if hint == decreasingHint { + reverseRangeOrdered(data, a, b) + // The chosen pivot was pivot-a elements after the start of the array. + // After reversing it is pivot-a elements before the end of the array. + // The idea came from Rust's implementation. + pivot = (b - 1) - (pivot - a) + hint = increasingHint + } + + // The slice is likely already sorted. + if wasBalanced && wasPartitioned && hint == increasingHint { + if partialInsertionSortOrdered(data, a, b) { + return + } + } + + // Probably the slice contains many duplicate elements, partition the slice into + // elements equal to and elements greater than the pivot. + if a > 0 && !(data[a-1] < data[pivot]) { + mid := partitionEqualOrdered(data, a, b, pivot) + a = mid + continue + } + + mid, alreadyPartitioned := partitionOrdered(data, a, b, pivot) + wasPartitioned = alreadyPartitioned + + leftLen, rightLen := mid-a, b-mid + balanceThreshold := length / 8 + if leftLen < rightLen { + wasBalanced = leftLen >= balanceThreshold + pdqsortOrdered(data, a, mid, limit) + a = mid + 1 + } else { + wasBalanced = rightLen >= balanceThreshold + pdqsortOrdered(data, mid+1, b, limit) + b = mid + } + } +} + +// partitionOrdered does one quicksort partition. +// Let p = data[pivot] +// Moves elements in data[a:b] around, so that data[i]

=p for inewpivot. +// On return, data[newpivot] = p +func partitionOrdered[E constraints.Ordered](data []E, a, b, pivot int) (newpivot int, alreadyPartitioned bool) { + data[a], data[pivot] = data[pivot], data[a] + i, j := a+1, b-1 // i and j are inclusive of the elements remaining to be partitioned + + for i <= j && (data[i] < data[a]) { + i++ + } + for i <= j && !(data[j] < data[a]) { + j-- + } + if i > j { + data[j], data[a] = data[a], data[j] + return j, true + } + data[i], data[j] = data[j], data[i] + i++ + j-- + + for { + for i <= j && (data[i] < data[a]) { + i++ + } + for i <= j && !(data[j] < data[a]) { + j-- + } + if i > j { + break + } + data[i], data[j] = data[j], data[i] + i++ + j-- + } + data[j], data[a] = data[a], data[j] + return j, false +} + +// partitionEqualOrdered partitions data[a:b] into elements equal to data[pivot] followed by elements greater than data[pivot]. +// It assumed that data[a:b] does not contain elements smaller than the data[pivot]. +func partitionEqualOrdered[E constraints.Ordered](data []E, a, b, pivot int) (newpivot int) { + data[a], data[pivot] = data[pivot], data[a] + i, j := a+1, b-1 // i and j are inclusive of the elements remaining to be partitioned + + for { + for i <= j && !(data[a] < data[i]) { + i++ + } + for i <= j && (data[a] < data[j]) { + j-- + } + if i > j { + break + } + data[i], data[j] = data[j], data[i] + i++ + j-- + } + return i +} + +// partialInsertionSortOrdered partially sorts a slice, returns true if the slice is sorted at the end. +func partialInsertionSortOrdered[E constraints.Ordered](data []E, a, b int) bool { + const ( + maxSteps = 5 // maximum number of adjacent out-of-order pairs that will get shifted + shortestShifting = 50 // don't shift any elements on short arrays + ) + i := a + 1 + for j := 0; j < maxSteps; j++ { + for i < b && !(data[i] < data[i-1]) { + i++ + } + + if i == b { + return true + } + + if b-a < shortestShifting { + return false + } + + data[i], data[i-1] = data[i-1], data[i] + + // Shift the smaller one to the left. + if i-a >= 2 { + for j := i - 1; j >= 1; j-- { + if !(data[j] < data[j-1]) { + break + } + data[j], data[j-1] = data[j-1], data[j] + } + } + // Shift the greater one to the right. + if b-i >= 2 { + for j := i + 1; j < b; j++ { + if !(data[j] < data[j-1]) { + break + } + data[j], data[j-1] = data[j-1], data[j] + } + } + } + return false +} + +// breakPatternsOrdered scatters some elements around in an attempt to break some patterns +// that might cause imbalanced partitions in quicksort. +func breakPatternsOrdered[E constraints.Ordered](data []E, a, b int) { + length := b - a + if length >= 8 { + random := xorshift(length) + modulus := nextPowerOfTwo(length) + + for idx := a + (length/4)*2 - 1; idx <= a+(length/4)*2+1; idx++ { + other := int(uint(random.Next()) & (modulus - 1)) + if other >= length { + other -= length + } + data[idx], data[a+other] = data[a+other], data[idx] + } + } +} + +// choosePivotOrdered chooses a pivot in data[a:b]. +// +// [0,8): chooses a static pivot. +// [8,shortestNinther): uses the simple median-of-three method. +// [shortestNinther,∞): uses the Tukey ninther method. +func choosePivotOrdered[E constraints.Ordered](data []E, a, b int) (pivot int, hint sortedHint) { + const ( + shortestNinther = 50 + maxSwaps = 4 * 3 + ) + + l := b - a + + var ( + swaps int + i = a + l/4*1 + j = a + l/4*2 + k = a + l/4*3 + ) + + if l >= 8 { + if l >= shortestNinther { + // Tukey ninther method, the idea came from Rust's implementation. + i = medianAdjacentOrdered(data, i, &swaps) + j = medianAdjacentOrdered(data, j, &swaps) + k = medianAdjacentOrdered(data, k, &swaps) + } + // Find the median among i, j, k and stores it into j. + j = medianOrdered(data, i, j, k, &swaps) + } + + switch swaps { + case 0: + return j, increasingHint + case maxSwaps: + return j, decreasingHint + default: + return j, unknownHint + } +} + +// order2Ordered returns x,y where data[x] <= data[y], where x,y=a,b or x,y=b,a. +func order2Ordered[E constraints.Ordered](data []E, a, b int, swaps *int) (int, int) { + if data[b] < data[a] { + *swaps++ + return b, a + } + return a, b +} + +// medianOrdered returns x where data[x] is the median of data[a],data[b],data[c], where x is a, b, or c. +func medianOrdered[E constraints.Ordered](data []E, a, b, c int, swaps *int) int { + a, b = order2Ordered(data, a, b, swaps) + b, c = order2Ordered(data, b, c, swaps) + a, b = order2Ordered(data, a, b, swaps) + return b +} + +// medianAdjacentOrdered finds the median of data[a - 1], data[a], data[a + 1] and stores the index into a. +func medianAdjacentOrdered[E constraints.Ordered](data []E, a int, swaps *int) int { + return medianOrdered(data, a-1, a, a+1, swaps) +} + +func reverseRangeOrdered[E constraints.Ordered](data []E, a, b int) { + i := a + j := b - 1 + for i < j { + data[i], data[j] = data[j], data[i] + i++ + j-- + } +} + +func swapRangeOrdered[E constraints.Ordered](data []E, a, b, n int) { + for i := 0; i < n; i++ { + data[a+i], data[b+i] = data[b+i], data[a+i] + } +} + +func stableOrdered[E constraints.Ordered](data []E, n int) { + blockSize := 20 // must be > 0 + a, b := 0, blockSize + for b <= n { + insertionSortOrdered(data, a, b) + a = b + b += blockSize + } + insertionSortOrdered(data, a, n) + + for blockSize < n { + a, b = 0, 2*blockSize + for b <= n { + symMergeOrdered(data, a, a+blockSize, b) + a = b + b += 2 * blockSize + } + if m := a + blockSize; m < n { + symMergeOrdered(data, a, m, n) + } + blockSize *= 2 + } +} + +// symMergeOrdered merges the two sorted subsequences data[a:m] and data[m:b] using +// the SymMerge algorithm from Pok-Son Kim and Arne Kutzner, "Stable Minimum +// Storage Merging by Symmetric Comparisons", in Susanne Albers and Tomasz +// Radzik, editors, Algorithms - ESA 2004, volume 3221 of Lecture Notes in +// Computer Science, pages 714-723. Springer, 2004. +// +// Let M = m-a and N = b-n. Wolog M < N. +// The recursion depth is bound by ceil(log(N+M)). +// The algorithm needs O(M*log(N/M + 1)) calls to data.Less. +// The algorithm needs O((M+N)*log(M)) calls to data.Swap. +// +// The paper gives O((M+N)*log(M)) as the number of assignments assuming a +// rotation algorithm which uses O(M+N+gcd(M+N)) assignments. The argumentation +// in the paper carries through for Swap operations, especially as the block +// swapping rotate uses only O(M+N) Swaps. +// +// symMerge assumes non-degenerate arguments: a < m && m < b. +// Having the caller check this condition eliminates many leaf recursion calls, +// which improves performance. +func symMergeOrdered[E constraints.Ordered](data []E, a, m, b int) { + // Avoid unnecessary recursions of symMerge + // by direct insertion of data[a] into data[m:b] + // if data[a:m] only contains one element. + if m-a == 1 { + // Use binary search to find the lowest index i + // such that data[i] >= data[a] for m <= i < b. + // Exit the search loop with i == b in case no such index exists. + i := m + j := b + for i < j { + h := int(uint(i+j) >> 1) + if data[h] < data[a] { + i = h + 1 + } else { + j = h + } + } + // Swap values until data[a] reaches the position before i. + for k := a; k < i-1; k++ { + data[k], data[k+1] = data[k+1], data[k] + } + return + } + + // Avoid unnecessary recursions of symMerge + // by direct insertion of data[m] into data[a:m] + // if data[m:b] only contains one element. + if b-m == 1 { + // Use binary search to find the lowest index i + // such that data[i] > data[m] for a <= i < m. + // Exit the search loop with i == m in case no such index exists. + i := a + j := m + for i < j { + h := int(uint(i+j) >> 1) + if !(data[m] < data[h]) { + i = h + 1 + } else { + j = h + } + } + // Swap values until data[m] reaches the position i. + for k := m; k > i; k-- { + data[k], data[k-1] = data[k-1], data[k] + } + return + } + + mid := int(uint(a+b) >> 1) + n := mid + m + var start, r int + if m > mid { + start = n - b + r = mid + } else { + start = a + r = m + } + p := n - 1 + + for start < r { + c := int(uint(start+r) >> 1) + if !(data[p-c] < data[c]) { + start = c + 1 + } else { + r = c + } + } + + end := n - start + if start < m && m < end { + rotateOrdered(data, start, m, end) + } + if a < start && start < mid { + symMergeOrdered(data, a, start, mid) + } + if mid < end && end < b { + symMergeOrdered(data, mid, end, b) + } +} + +// rotateOrdered rotates two consecutive blocks u = data[a:m] and v = data[m:b] in data: +// Data of the form 'x u v y' is changed to 'x v u y'. +// rotate performs at most b-a many calls to data.Swap, +// and it assumes non-degenerate arguments: a < m && m < b. +func rotateOrdered[E constraints.Ordered](data []E, a, m, b int) { + i := m - a + j := b - m + + for i != j { + if i > j { + swapRangeOrdered(data, m-i, m, j) + i -= j + } else { + swapRangeOrdered(data, m-i, m+j-i, i) + j -= i + } + } + // i == j + swapRangeOrdered(data, m-i, m, i) +} diff --git a/ext/vendor/golang.org/x/sync/LICENSE b/ext/vendor/golang.org/x/sync/LICENSE new file mode 100644 index 0000000..6a66aea --- /dev/null +++ b/ext/vendor/golang.org/x/sync/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ext/vendor/golang.org/x/sync/PATENTS b/ext/vendor/golang.org/x/sync/PATENTS new file mode 100644 index 0000000..7330990 --- /dev/null +++ b/ext/vendor/golang.org/x/sync/PATENTS @@ -0,0 +1,22 @@ +Additional IP Rights Grant (Patents) + +"This implementation" means the copyrightable works distributed by +Google as part of the Go project. + +Google 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, +transfer and otherwise run, modify and propagate the contents of this +implementation of Go, where such license applies only to those patent +claims, both currently owned or controlled by Google and acquired in +the future, licensable by Google that are necessarily infringed by this +implementation of Go. This grant does not include claims that would be +infringed only as a consequence of further modification of this +implementation. If you or your agent or exclusive licensee institute or +order or agree to the institution of patent litigation against any +entity (including a cross-claim or counterclaim in a lawsuit) alleging +that this implementation of Go or any code incorporated within this +implementation of Go constitutes direct or contributory patent +infringement, or inducement of patent infringement, then any patent +rights granted to you under this License for this implementation of Go +shall terminate as of the date such litigation is filed. diff --git a/ext/vendor/golang.org/x/sync/errgroup/errgroup.go b/ext/vendor/golang.org/x/sync/errgroup/errgroup.go new file mode 100644 index 0000000..cbee7a4 --- /dev/null +++ b/ext/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -0,0 +1,132 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package errgroup provides synchronization, error propagation, and Context +// cancelation for groups of goroutines working on subtasks of a common task. +package errgroup + +import ( + "context" + "fmt" + "sync" +) + +type token struct{} + +// A Group is a collection of goroutines working on subtasks that are part of +// the same overall task. +// +// A zero Group is valid, has no limit on the number of active goroutines, +// and does not cancel on error. +type Group struct { + cancel func() + + wg sync.WaitGroup + + sem chan token + + errOnce sync.Once + err error +} + +func (g *Group) done() { + if g.sem != nil { + <-g.sem + } + g.wg.Done() +} + +// WithContext returns a new Group and an associated Context derived from ctx. +// +// The derived Context is canceled the first time a function passed to Go +// returns a non-nil error or the first time Wait returns, whichever occurs +// first. +func WithContext(ctx context.Context) (*Group, context.Context) { + ctx, cancel := context.WithCancel(ctx) + return &Group{cancel: cancel}, ctx +} + +// Wait blocks until all function calls from the Go method have returned, then +// returns the first non-nil error (if any) from them. +func (g *Group) Wait() error { + g.wg.Wait() + if g.cancel != nil { + g.cancel() + } + return g.err +} + +// Go calls the given function in a new goroutine. +// It blocks until the new goroutine can be added without the number of +// active goroutines in the group exceeding the configured limit. +// +// The first call to return a non-nil error cancels the group's context, if the +// group was created by calling WithContext. The error will be returned by Wait. +func (g *Group) Go(f func() error) { + if g.sem != nil { + g.sem <- token{} + } + + g.wg.Add(1) + go func() { + defer g.done() + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel() + } + }) + } + }() +} + +// TryGo calls the given function in a new goroutine only if the number of +// active goroutines in the group is currently below the configured limit. +// +// The return value reports whether the goroutine was started. +func (g *Group) TryGo(f func() error) bool { + if g.sem != nil { + select { + case g.sem <- token{}: + // Note: this allows barging iff channels in general allow barging. + default: + return false + } + } + + g.wg.Add(1) + go func() { + defer g.done() + + if err := f(); err != nil { + g.errOnce.Do(func() { + g.err = err + if g.cancel != nil { + g.cancel() + } + }) + } + }() + return true +} + +// SetLimit limits the number of active goroutines in this group to at most n. +// A negative value indicates no limit. +// +// Any subsequent call to the Go method will block until it can add an active +// goroutine without exceeding the configured limit. +// +// The limit must not be modified while any goroutines in the group are active. +func (g *Group) SetLimit(n int) { + if n < 0 { + g.sem = nil + return + } + if len(g.sem) != 0 { + panic(fmt.Errorf("errgroup: modify limit while %v goroutines in the group are still active", len(g.sem))) + } + g.sem = make(chan token, n) +} diff --git a/ext/vendor/modules.txt b/ext/vendor/modules.txt index 55b9f3a..3c91fbd 100644 --- a/ext/vendor/modules.txt +++ b/ext/vendor/modules.txt @@ -1,8 +1,8 @@ # github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 ## explicit github.com/99designs/go-keychain -# github.com/99designs/keyring v1.2.1 -## explicit; go 1.17 +# github.com/99designs/keyring v1.2.2 +## explicit; go 1.19 github.com/99designs/keyring # github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 ## explicit; go 1.18 @@ -44,37 +44,46 @@ github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/shared github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/pageblob github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/service +# github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c +## explicit +github.com/JohnCGriffin/overflow # github.com/andybalholm/brotli v1.0.4 ## explicit; go 1.12 github.com/andybalholm/brotli -# github.com/apache/arrow/go/v10 v10.0.1 -## explicit; go 1.17 -github.com/apache/arrow/go/v10/arrow -github.com/apache/arrow/go/v10/arrow/array -github.com/apache/arrow/go/v10/arrow/arrio -github.com/apache/arrow/go/v10/arrow/bitutil -github.com/apache/arrow/go/v10/arrow/decimal128 -github.com/apache/arrow/go/v10/arrow/decimal256 -github.com/apache/arrow/go/v10/arrow/endian -github.com/apache/arrow/go/v10/arrow/float16 -github.com/apache/arrow/go/v10/arrow/internal -github.com/apache/arrow/go/v10/arrow/internal/debug -github.com/apache/arrow/go/v10/arrow/internal/dictutils -github.com/apache/arrow/go/v10/arrow/internal/flatbuf -github.com/apache/arrow/go/v10/arrow/ipc -github.com/apache/arrow/go/v10/arrow/memory -github.com/apache/arrow/go/v10/arrow/memory/internal/cgoalloc -github.com/apache/arrow/go/v10/internal/bitutils -github.com/apache/arrow/go/v10/internal/hashing -github.com/apache/arrow/go/v10/internal/utils -github.com/apache/arrow/go/v10/parquet -github.com/apache/arrow/go/v10/parquet/compress -github.com/apache/arrow/go/v10/parquet/internal/debug -github.com/apache/arrow/go/v10/parquet/internal/gen-go/parquet +# github.com/apache/arrow/go/v12 v12.0.1 +## explicit; go 1.20 +github.com/apache/arrow/go/v12/arrow +github.com/apache/arrow/go/v12/arrow/array +github.com/apache/arrow/go/v12/arrow/arrio +github.com/apache/arrow/go/v12/arrow/bitutil +github.com/apache/arrow/go/v12/arrow/compute +github.com/apache/arrow/go/v12/arrow/compute/internal/exec +github.com/apache/arrow/go/v12/arrow/compute/internal/kernels +github.com/apache/arrow/go/v12/arrow/decimal128 +github.com/apache/arrow/go/v12/arrow/decimal256 +github.com/apache/arrow/go/v12/arrow/encoded +github.com/apache/arrow/go/v12/arrow/endian +github.com/apache/arrow/go/v12/arrow/float16 +github.com/apache/arrow/go/v12/arrow/internal +github.com/apache/arrow/go/v12/arrow/internal/debug +github.com/apache/arrow/go/v12/arrow/internal/dictutils +github.com/apache/arrow/go/v12/arrow/internal/flatbuf +github.com/apache/arrow/go/v12/arrow/ipc +github.com/apache/arrow/go/v12/arrow/memory +github.com/apache/arrow/go/v12/arrow/memory/internal/cgoalloc +github.com/apache/arrow/go/v12/arrow/memory/mallocator +github.com/apache/arrow/go/v12/arrow/scalar +github.com/apache/arrow/go/v12/internal/bitutils +github.com/apache/arrow/go/v12/internal/hashing +github.com/apache/arrow/go/v12/internal/utils +github.com/apache/arrow/go/v12/parquet +github.com/apache/arrow/go/v12/parquet/compress +github.com/apache/arrow/go/v12/parquet/internal/debug +github.com/apache/arrow/go/v12/parquet/internal/gen-go/parquet # github.com/apache/thrift v0.16.0 ## explicit; go 1.16 github.com/apache/thrift/lib/go/thrift -# github.com/aws/aws-sdk-go-v2 v1.16.16 +# github.com/aws/aws-sdk-go-v2 v1.17.7 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/aws github.com/aws/aws-sdk-go-v2/aws/arn @@ -93,49 +102,49 @@ github.com/aws/aws-sdk-go-v2/internal/sdkio github.com/aws/aws-sdk-go-v2/internal/strings github.com/aws/aws-sdk-go-v2/internal/sync/singleflight github.com/aws/aws-sdk-go-v2/internal/timeconv -# github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.8 +# github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream/eventstreamapi -# github.com/aws/aws-sdk-go-v2/credentials v1.12.20 +# github.com/aws/aws-sdk-go-v2/credentials v1.13.18 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/credentials -# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.33 +# github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.59 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/feature/s3/manager -# github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23 +# github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.31 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/internal/configsources -# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17 +# github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.25 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 -# github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.14 +# github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.23 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/internal/v4a github.com/aws/aws-sdk-go-v2/internal/v4a/internal/crypto github.com/aws/aws-sdk-go-v2/internal/v4a/internal/v4 -# github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.9 +# github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding -# github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.18 +# github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.26 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/service/internal/checksum -# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17 +# github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.25 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/service/internal/presigned-url -# github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 +# github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.0 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/service/internal/s3shared github.com/aws/aws-sdk-go-v2/service/internal/s3shared/arn github.com/aws/aws-sdk-go-v2/service/internal/s3shared/config -# github.com/aws/aws-sdk-go-v2/service/s3 v1.27.11 +# github.com/aws/aws-sdk-go-v2/service/s3 v1.31.0 ## explicit; go 1.15 github.com/aws/aws-sdk-go-v2/service/s3 github.com/aws/aws-sdk-go-v2/service/s3/internal/arn github.com/aws/aws-sdk-go-v2/service/s3/internal/customizations github.com/aws/aws-sdk-go-v2/service/s3/internal/endpoints github.com/aws/aws-sdk-go-v2/service/s3/types -# github.com/aws/smithy-go v1.13.3 +# github.com/aws/smithy-go v1.13.5 ## explicit; go 1.15 github.com/aws/smithy-go github.com/aws/smithy-go/auth/bearer @@ -171,13 +180,13 @@ github.com/dvsekhvalnov/jose2go/padding # github.com/form3tech-oss/jwt-go v3.2.5+incompatible ## explicit github.com/form3tech-oss/jwt-go -# github.com/gabriel-vasile/mimetype v1.4.1 -## explicit; go 1.12 +# github.com/gabriel-vasile/mimetype v1.4.2 +## explicit; go 1.20 github.com/gabriel-vasile/mimetype github.com/gabriel-vasile/mimetype/internal/charset github.com/gabriel-vasile/mimetype/internal/json github.com/gabriel-vasile/mimetype/internal/magic -# github.com/goccy/go-json v0.9.11 +# github.com/goccy/go-json v0.10.0 ## explicit; go 1.12 github.com/goccy/go-json github.com/goccy/go-json/internal/decoder @@ -194,7 +203,7 @@ github.com/godbus/dbus # github.com/golang/snappy v0.0.4 ## explicit github.com/golang/snappy -# github.com/google/flatbuffers v2.0.8+incompatible +# github.com/google/flatbuffers v23.1.21+incompatible ## explicit github.com/google/flatbuffers/go # github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c @@ -207,7 +216,7 @@ github.com/jmespath/go-jmespath ## explicit; go 1.16 github.com/klauspost/asmfmt github.com/klauspost/asmfmt/cmd/asmfmt -# github.com/klauspost/compress v1.15.11 +# github.com/klauspost/compress v1.15.15 ## explicit; go 1.17 github.com/klauspost/compress github.com/klauspost/compress/flate @@ -218,8 +227,8 @@ github.com/klauspost/compress/internal/cpuinfo github.com/klauspost/compress/internal/snapref github.com/klauspost/compress/zstd github.com/klauspost/compress/zstd/internal/xxhash -# github.com/klauspost/cpuid/v2 v2.0.9 -## explicit; go 1.13 +# github.com/klauspost/cpuid/v2 v2.2.3 +## explicit; go 1.15 github.com/klauspost/cpuid/v2 # github.com/mattn/go-pointer v0.0.1 ## explicit @@ -233,7 +242,7 @@ github.com/minio/c2goasm # github.com/mtibben/percent v0.2.1 ## explicit; go 1.14 github.com/mtibben/percent -# github.com/pierrec/lz4/v4 v4.1.16 +# github.com/pierrec/lz4/v4 v4.1.17 ## explicit; go 1.14 github.com/pierrec/lz4/v4 github.com/pierrec/lz4/v4/internal/lz4block @@ -246,7 +255,7 @@ github.com/pkg/browser # github.com/sirupsen/logrus v1.9.0 ## explicit; go 1.13 github.com/sirupsen/logrus -# github.com/snowflakedb/gosnowflake v1.6.20 +# github.com/snowflakedb/gosnowflake v1.6.23 ## explicit; go 1.19 github.com/snowflakedb/gosnowflake # github.com/zeebo/xxh3 v1.0.2 @@ -255,6 +264,11 @@ github.com/zeebo/xxh3 # golang.org/x/crypto v0.7.0 ## explicit; go 1.17 golang.org/x/crypto/ocsp +# golang.org/x/exp v0.0.0-20230206171751-46f607a40771 +## explicit; go 1.18 +golang.org/x/exp/constraints +golang.org/x/exp/maps +golang.org/x/exp/slices # golang.org/x/mod v0.8.0 ## explicit; go 1.17 golang.org/x/mod/internal/lazyregexp @@ -266,6 +280,9 @@ golang.org/x/net/html golang.org/x/net/html/atom golang.org/x/net/http/httpguts golang.org/x/net/idna +# golang.org/x/sync v0.1.0 +## explicit +golang.org/x/sync/errgroup # golang.org/x/sys v0.6.0 ## explicit; go 1.17 golang.org/x/sys/cpu